diff options
author | Havoc Pennington <hp@redhat.com> | 2001-11-14 18:58:26 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2001-11-14 18:58:26 +0000 |
commit | 419f3e9bcc0f27b49dfd2e59328f10dc198a421d (patch) | |
tree | a1be8e717411a9002f18b30073824efb7d0162a6 /gtk/gtktextiter.c | |
parent | dcff7a6aeac7d36a1cbd891ff639898b07868552 (diff) | |
download | gdk-pixbuf-419f3e9bcc0f27b49dfd2e59328f10dc198a421d.tar.gz |
bulk of the tests were commented out, oops.
2001-11-14 Havoc Pennington <hp@redhat.com>
* tests/testtextbuffer.c (main): bulk of the tests were commented
out, oops.
* gtk/gtktextiter.c (find_paragraph_delimiter_for_line): make this
function work, should resolve #63426
(gtk_text_iter_ends_line): return TRUE for the end iterator
* gtk/gtktextiter.h: put padding back in GtkTextIter, I thought of
a couple things that might get cached in here.
Diffstat (limited to 'gtk/gtktextiter.c')
-rw-r--r-- | gtk/gtktextiter.c | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/gtk/gtktextiter.c b/gtk/gtktextiter.c index cd380f68a..041ec2309 100644 --- a/gtk/gtktextiter.c +++ b/gtk/gtktextiter.c @@ -65,6 +65,10 @@ struct _GtkTextRealIter and ditto for char offsets. */ gint segment_byte_offset; gint segment_char_offset; + + /* padding */ + gint pad1; + gpointer pad2; }; /* These "set" functions should not assume any fields @@ -1511,12 +1515,14 @@ gtk_text_iter_starts_line (const GtkTextIter *iter) * gtk_text_iter_ends_line: * @iter: an iterator * - * Returns %TRUE if @iter points to the start of the paragraph delimiter - * characters for a line (delimiters will be either a newline, a - * carriage return, a carriage return followed by a newline, or a - * Unicode paragraph separator character). Note that an iterator pointing - * to the \n of a \r\n pair will not be counted as the end of a line, - * the line ends before the \r. + * Returns %TRUE if @iter points to the start of the paragraph + * delimiter characters for a line (delimiters will be either a + * newline, a carriage return, a carriage return followed by a + * newline, or a Unicode paragraph separator character). Note that an + * iterator pointing to the \n of a \r\n pair will not be counted as + * the end of a line, the line ends before the \r. The end iterator is + * considered to be at the end of a line, even though there are no + * paragraph delimiter chars there. * * Return value: whether @iter is at the end of a line **/ @@ -1539,7 +1545,7 @@ gtk_text_iter_ends_line (const GtkTextIter *iter) wc = gtk_text_iter_get_char (iter); - if (wc == '\r' || wc == PARAGRAPH_SEPARATOR) + if (wc == '\r' || wc == PARAGRAPH_SEPARATOR || wc == 0) /* wc == 0 is end iterator */ return TRUE; else if (wc == '\n') { @@ -3760,11 +3766,17 @@ find_paragraph_delimiter_for_line (GtkTextIter *iter) GtkTextIter end; end = *iter; - /* if we aren't on the last line, go forward to start of next line, then scan - * back for the delimiters on the previous line - */ - if (gtk_text_iter_forward_line (&end)) + if (_gtk_text_line_contains_end_iter (_gtk_text_iter_get_text_line (&end), + _gtk_text_iter_get_btree (&end))) + { + gtk_text_iter_forward_to_end (&end); + } + else { + /* if we aren't on the last line, go forward to start of next line, then scan + * back for the delimiters on the previous line + */ + gtk_text_iter_forward_line (&end); gtk_text_iter_backward_char (&end); while (!gtk_text_iter_ends_line (&end)) gtk_text_iter_backward_char (&end); |