Changeset 3099

Show
Ignore:
Timestamp:
12/11/07 19:48:46
Author:
pvanhoof
Message:

2007-12-11 Milko Krachounov <milko@3mhz.net>

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ChangeLog

    r3098 r3099  
     12007-12-11  Milko Krachounov <milko@3mhz.net> 
     2 
     3        * Committed by Philip Van Hoof 
     4        * Bugfix in TnyGtkTextBufferStream 
     5 
    162007-12-11  Sergio Villar Senin  <svillar@gmail.com> 
    27 
     
    1015        folders asynchronously 
    1116 
    12 2007-12-09 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl> 
     172007-12-09 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl> 
    1318 
    1419        * optimization :) for NULL strings in decode_it  
  • trunk/libtinymailui-gtk/tny-gtk-text-buffer-stream.c

    r2825 r3099  
    9595{ 
    9696        TnyGtkTextBufferStreamPriv *priv = TNY_GTK_TEXT_BUFFER_STREAM_GET_PRIVATE (self); 
    97         GtkTextIter dest, end; 
     97        GtkTextIter chunk_end; 
    9898        gchar *buf; 
    99         gint cur_offset, end_offset, rlength
    100         gtk_text_buffer_get_end_iter (priv->buffer, &end)
     99        const gchar *valid_end
     100        gint cur_offset
    101101 
    102102        cur_offset = gtk_text_iter_get_offset (&(priv->cur));     
    103         end_offset = gtk_text_iter_get_offset (&end); 
    104  
    105         if (cur_offset + (gint)n > end_offset) 
    106                 rlength = end_offset - cur_offset; 
    107         else rlength = (gint)n; 
    108  
    109         gtk_text_buffer_get_start_iter (priv->buffer, &dest); 
    110         gtk_text_iter_set_offset (&dest, rlength); 
    111  
    112  
    113         buf = gtk_text_buffer_get_text (priv->buffer, &(priv->cur), &dest, TRUE); 
    114         strncpy (buffer, buf, rlength); 
     103 
     104        gtk_text_buffer_get_iter_at_offset(priv->buffer, &chunk_end, (gint)n + cur_offset); 
     105 
     106        buf = gtk_text_buffer_get_text (priv->buffer, &(priv->cur), &chunk_end, TRUE); 
     107        strncpy (buffer, buf, n); 
    115108        g_free (buf); 
    116         gtk_text_iter_set_offset (&(priv->cur), cur_offset + rlength); 
    117  
    118         return (gssize) rlength; 
     109 
     110        g_utf8_validate(buffer, n, &valid_end); 
     111        gtk_text_iter_set_offset (&(priv->cur), cur_offset + g_utf8_strlen(buffer, valid_end - buffer)); 
     112 
     113        return (gssize) (valid_end - buffer); 
    119114} 
    120115