Re: [gedit-list] patch for reverse plugin
- From: Chema Celorio <chema celorio com>
- To: Alexandre Owen Muniz <munizao xprt net>
- Cc: gedit-list lists sourceforge net
- Subject: Re: [gedit-list] patch for reverse plugin
- Date: Sun, 25 Jun 2000 14:50:34 -0500
Applied.
I had to make some changes to it, because I renamed
gedit_view_current() to gedit_view_active a couple of
weeks ago.
Thank You
Chema
Alexandre Owen Muniz wrote:
>
> Here is a little patch to make the reverse plugin selection aware (so
> that if there is a selection, it reverses only the selection, not the
> entire buffer.) I'd like to also do this for other plugins where
> appropriate if nobody objects, but the reverse plugin was an easy place
> to start.
>
> **Ali Muñiz
>
> ------------------------------------------------------------------------
> Index: reverse.c
> ===================================================================
> RCS file: /cvs/gnome/gedit/plugins/reverse/reverse.c,v
> retrieving revision 1.6
> diff -u -r1.6 reverse.c
> --- reverse.c 2000/06/11 06:30:07 1.6
> +++ reverse.c 2000/06/25 02:22:22
> @@ -10,6 +10,7 @@
> #include <gnome.h>
>
> #include "document.h"
> +#include "view.h"
> #include "plugin.h"
>
>
> @@ -23,27 +24,36 @@
> reverse (void)
> {
> Document *doc = gedit_document_current();
> + View *view = gedit_view_current();
> gchar *buffer ;
> gchar tmp ;
> gint buffer_length ;
> gint i;
> + gint * start = g_new(gint, 1);
> + gint * end = g_new(gint, 1);
>
> if (!doc)
> return;
>
> buffer_length = gedit_document_get_buffer_length (doc);
> buffer = gedit_document_get_buffer (doc);
> + if (!gedit_view_get_selection(view, start, end))
> + {
> + *start = 0;
> + *end = buffer_length;
> + }
>
> - for (i=0; i < ( buffer_length / 2 ); i++)
> + for (i=*start; i < ( *start + (*end - *start) / 2 ); i++)
> {
> tmp = buffer [i];
> - buffer [i] = buffer [buffer_length - i - 1];
> - buffer [buffer_length - i - 1] = tmp;
> + buffer [i] = buffer [*end + *start - i - 1];
> + buffer [*end + *start - i - 1] = tmp;
> }
> -
> +
> gedit_document_delete_text (doc, 0, buffer_length, TRUE);
> gedit_document_insert_text (doc, buffer, 0, TRUE);
> -
> + g_free (start);
> + g_free (end);
> g_free (buffer);
>
> }
>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]