]> Pileus Git - ~andy/gtk/commitdiff
Replace manual offset calculations by g_utf8_offset_to_pointer().
authorMatthias Clasen <mclasen@redhat.com>
Wed, 2 Nov 2005 05:08:31 +0000 (05:08 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Wed, 2 Nov 2005 05:08:31 +0000 (05:08 +0000)
2005-11-02  Matthias Clasen  <mclasen@redhat.com>

* gtk/gtktextbtree.c (_gtk_text_line_char_to_byte_offsets):
* gtk/gtktextiter.c (gtk_text_iter_backward_chars): Replace
manual offset calculations by g_utf8_offset_to_pointer().
(#320360, Paolo Borelli)

ChangeLog
ChangeLog.pre-2-10
gtk/gtktextbtree.c
gtk/gtktextiter.c

index 13f28cfaf84767819b42639a6895f40958e350ff..ad80c735ed2abfec5ff911024487da3bee6b5c0d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2005-11-02  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtktextbtree.c (_gtk_text_line_char_to_byte_offsets): 
+       * gtk/gtktextiter.c (gtk_text_iter_backward_chars): Replace
+       manual offset calculations by g_utf8_offset_to_pointer().
+       (#320360, Paolo Borelli)
+
 Tue Nov  1 16:18:24 2005  Tim Janik  <timj@imendio.com>
 
        * gtk/gtkrbtree.[hc]: get rid of GAllocator usage, allocate and free 
index 13f28cfaf84767819b42639a6895f40958e350ff..ad80c735ed2abfec5ff911024487da3bee6b5c0d 100644 (file)
@@ -1,3 +1,10 @@
+2005-11-02  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtktextbtree.c (_gtk_text_line_char_to_byte_offsets): 
+       * gtk/gtktextiter.c (gtk_text_iter_backward_chars): Replace
+       manual offset calculations by g_utf8_offset_to_pointer().
+       (#320360, Paolo Borelli)
+
 Tue Nov  1 16:18:24 2005  Tim Janik  <timj@imendio.com>
 
        * gtk/gtkrbtree.[hc]: get rid of GAllocator usage, allocate and free 
index f9e1594a1dc6060d3b2902f3d00fd6d8a02e1d50..c323c713fa4b1896ff2c6244fe98ca7c2c618336 100644 (file)
@@ -4144,16 +4144,11 @@ _gtk_text_line_char_to_byte_offsets (GtkTextLine *line,
 
   if (seg->type == &gtk_text_char_type)
     {
-      *seg_byte_offset = 0;
-      while (offset > 0)
-        {
-          gint bytes;
-          const char * start = seg->body.chars + *seg_byte_offset;
+      const char *p;
 
-          bytes = g_utf8_next_char (start) - start;
-          *seg_byte_offset += bytes;
-          offset -= 1;
-        }
+      p = g_utf8_offset_to_pointer (seg->body.chars, offset);
+
+      *seg_byte_offset = p - seg->body.chars;
 
       g_assert (*seg_byte_offset < seg->byte_count);
 
index 0a62df89b413361ec1fd7ea98a0034e60f22bf4f..7a83d30a33cb0aaf3813090129185deac4ddbb6c 100644 (file)
@@ -2391,19 +2391,14 @@ gtk_text_iter_backward_chars (GtkTextIter *iter, gint count)
 
       if (real->line_byte_offset >= 0)
         {
+          const char *p;
           gint new_byte_offset;
           gint i;
 
-          new_byte_offset = 0;
-          i = 0;
-          while (i < real->segment_char_offset)
-            {
-              const char * start = real->segment->body.chars + new_byte_offset;
-              new_byte_offset += g_utf8_next_char (start) - start;
-
-              ++i;
-            }
+          p = g_utf8_offset_to_pointer (real->segment->body.chars,
+                                        real->segment_char_offset);
 
+          new_byte_offset = p - real->segment->body.chars;
           real->line_byte_offset -= (real->segment_byte_offset - new_byte_offset);
           real->segment_byte_offset = new_byte_offset;
         }