Revision: 1677
          http://gtkpod.svn.sourceforge.net/gtkpod/?rev=1677&view=rev
Author:   jcsjcs
Date:     2007-08-09 07:28:52 -0700 (Thu, 09 Aug 2007)

Log Message:
-----------
        * src/file_convert.c (conversion_log_append): don't append
          character by character as this takes up too much CPU
          time. Thanks to Javier Kohen for the patch.

Modified Paths:
--------------
    gtkpod/trunk/ChangeLog_detailed
    gtkpod/trunk/src/file_convert.c

Modified: gtkpod/trunk/ChangeLog_detailed
===================================================================
--- gtkpod/trunk/ChangeLog_detailed     2007-08-08 20:22:05 UTC (rev 1676)
+++ gtkpod/trunk/ChangeLog_detailed     2007-08-09 14:28:52 UTC (rev 1677)
@@ -1,3 +1,9 @@
+2007-08-09 Jorg Schuler <jcsjcs at users.sourceforge.net>
+
+       * src/file_convert.c (conversion_log_append): don't append
+         character by character as this takes up too much CPU
+         time. Thanks to Javier Kohen for the patch.
+
 2007-08-08  Todd Zullinger  <tmzullinger at users.sourceforge.net>
 
        * data/gtkpod.glade

Modified: gtkpod/trunk/src/file_convert.c
===================================================================
--- gtkpod/trunk/src/file_convert.c     2007-08-08 20:22:05 UTC (rev 1676)
+++ gtkpod/trunk/src/file_convert.c     2007-08-09 14:28:52 UTC (rev 1677)
@@ -739,7 +739,7 @@
     GtkWidget *textview;
     GtkTextBuffer *textbuffer;
     GtkTextIter start, end;
-    const gchar *ptr, *next;
+    const gchar *run, *ptr, *next;
 
     g_return_if_fail (conv);
 
@@ -753,13 +753,18 @@
     textbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview));
     gtk_text_buffer_get_end_iter (textbuffer, &end);
 
-    ptr = text;
+    run = ptr = text;
 
     while (*ptr)
     {
        next = g_utf8_find_next_char (ptr, NULL);
        if (*ptr == '\b')
        {
+           if (ptr > run)
+           {
+               gtk_text_buffer_insert (textbuffer, &end, run, ptr - run);
+           }
+           run = next;
            start = end;
            if (gtk_text_iter_backward_char (&start))
            {
@@ -768,16 +773,21 @@
        }
        else if(*ptr == '\r')
        {
+           if (ptr > run)
+           {
+               gtk_text_buffer_insert (textbuffer, &end, run, ptr - run);
+           }
+           run = next;
            start = end;
            gtk_text_iter_set_line_offset (&start, 0);
            gtk_text_buffer_delete (textbuffer, &start, &end);
        }
-       else
-       {
-           gtk_text_buffer_insert (textbuffer, &end, ptr, next - ptr);
-       }
        ptr = next;
     }
+    if (ptr > run)
+    {
+       gtk_text_buffer_insert (textbuffer, &end, run, ptr - run);
+    }
     gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW (textview),
                                  &end, 0.0, FALSE, 0.0, 0.0); 
 


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
gtkpod-cvs2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to