summaryrefslogtreecommitdiff
path: root/gtk/gtktextiter.c
diff options
context:
space:
mode:
authorSébastien Wilmet <swilmet@gnome.org>2014-07-15 14:51:02 +0200
committerSébastien Wilmet <swilmet@gnome.org>2014-07-17 12:56:56 +0200
commit37f5f78f810bccda3ff6442686a02ca48ee4b5b4 (patch)
tree291d1a94a478b5512ffa316e02934c4822ffcdd6 /gtk/gtktextiter.c
parent5d666344820bc23330f128109c011848ec744736 (diff)
downloadgtk+-37f5f78f810bccda3ff6442686a02ca48ee4b5b4.tar.gz
textiter: simplify FindLogAttrFunc
The min_offset parameter was always 0. Since there are some bugs in this code, it'll be clearer if there are fewer parameters. https://bugzilla.gnome.org/show_bug.cgi?id=618852
Diffstat (limited to 'gtk/gtktextiter.c')
-rw-r--r--gtk/gtktextiter.c99
1 files changed, 43 insertions, 56 deletions
diff --git a/gtk/gtktextiter.c b/gtk/gtktextiter.c
index 8d9a140a38..93cc801b15 100644
--- a/gtk/gtktextiter.c
+++ b/gtk/gtktextiter.c
@@ -2873,7 +2873,6 @@ gtk_text_iter_backward_visible_lines (GtkTextIter *iter,
typedef gboolean (* FindLogAttrFunc) (const PangoLogAttr *attrs,
gint offset,
- gint min_offset,
gint len,
gint *found_offset,
gboolean already_moved_initially);
@@ -2887,23 +2886,21 @@ typedef gboolean (* TestLogAttrFunc) (const PangoLogAttr *attrs,
static gboolean
find_word_end_func (const PangoLogAttr *attrs,
- gint offset,
- gint min_offset,
- gint len,
- gint *found_offset,
- gboolean already_moved_initially)
+ gint offset,
+ gint len,
+ gint *found_offset,
+ gboolean already_moved_initially)
{
if (!already_moved_initially)
++offset;
/* Find end of next word */
- while (offset < min_offset + len &&
- !attrs[offset].is_word_end)
+ while (offset < len && !attrs[offset].is_word_end)
++offset;
*found_offset = offset;
- return offset < min_offset + len;
+ return offset < len;
}
static gboolean
@@ -2917,23 +2914,21 @@ is_word_end_func (const PangoLogAttr *attrs,
static gboolean
find_word_start_func (const PangoLogAttr *attrs,
- gint offset,
- gint min_offset,
- gint len,
- gint *found_offset,
- gboolean already_moved_initially)
+ gint offset,
+ gint len,
+ gint *found_offset,
+ gboolean already_moved_initially)
{
if (!already_moved_initially)
--offset;
/* Find start of prev word */
- while (offset >= min_offset &&
- !attrs[offset].is_word_start)
+ while (offset >= 0 && !attrs[offset].is_word_start)
--offset;
*found_offset = offset;
- return offset >= min_offset;
+ return offset >= 0;
}
static gboolean
@@ -2966,23 +2961,21 @@ inside_word_func (const PangoLogAttr *attrs,
static gboolean
find_sentence_end_func (const PangoLogAttr *attrs,
- gint offset,
- gint min_offset,
- gint len,
- gint *found_offset,
- gboolean already_moved_initially)
+ gint offset,
+ gint len,
+ gint *found_offset,
+ gboolean already_moved_initially)
{
if (!already_moved_initially)
++offset;
/* Find end of next sentence */
- while (offset < min_offset + len &&
- !attrs[offset].is_sentence_end)
+ while (offset < len && !attrs[offset].is_sentence_end)
++offset;
*found_offset = offset;
- return offset < min_offset + len;
+ return offset < len;
}
static gboolean
@@ -2996,23 +2989,21 @@ is_sentence_end_func (const PangoLogAttr *attrs,
static gboolean
find_sentence_start_func (const PangoLogAttr *attrs,
- gint offset,
- gint min_offset,
- gint len,
- gint *found_offset,
- gboolean already_moved_initially)
+ gint offset,
+ gint len,
+ gint *found_offset,
+ gboolean already_moved_initially)
{
if (!already_moved_initially)
--offset;
/* Find start of prev sentence */
- while (offset >= min_offset &&
- !attrs[offset].is_sentence_start)
+ while (offset >= 0 && !attrs[offset].is_sentence_start)
--offset;
*found_offset = offset;
- return offset >= min_offset;
+ return offset >= 0;
}
static gboolean
@@ -3090,7 +3081,7 @@ find_line_log_attrs (const GtkTextIter *iter,
*/
if (attrs)
- result = (* func) (attrs, offset, 0, char_len, found_offset,
+ result = (* func) (attrs, offset, char_len, found_offset,
already_moved_initially);
return result;
@@ -3245,7 +3236,7 @@ gtk_text_iter_forward_word_end (GtkTextIter *iter)
* Returns: %TRUE if @iter moved and is not the end iterator
**/
gboolean
-gtk_text_iter_backward_word_start (GtkTextIter *iter)
+gtk_text_iter_backward_word_start (GtkTextIter *iter)
{
return find_by_log_attrs (iter, find_word_start_func, FALSE);
}
@@ -3507,7 +3498,7 @@ gtk_text_iter_forward_sentence_end (GtkTextIter *iter)
* Returns: %TRUE if @iter moved and is not the end iterator
**/
gboolean
-gtk_text_iter_backward_sentence_start (GtkTextIter *iter)
+gtk_text_iter_backward_sentence_start (GtkTextIter *iter)
{
return find_by_log_attrs (iter, find_sentence_start_func, FALSE);
}
@@ -3547,8 +3538,8 @@ gtk_text_iter_forward_sentence_ends (GtkTextIter *iter,
* Returns: %TRUE if @iter moved and is not the end iterator
**/
gboolean
-gtk_text_iter_backward_sentence_starts (GtkTextIter *iter,
- gint count)
+gtk_text_iter_backward_sentence_starts (GtkTextIter *iter,
+ gint count)
{
return move_multiple_steps (iter, count,
gtk_text_iter_backward_sentence_start,
@@ -3557,42 +3548,38 @@ gtk_text_iter_backward_sentence_starts (GtkTextIter *iter,
static gboolean
find_forward_cursor_pos_func (const PangoLogAttr *attrs,
- gint offset,
- gint min_offset,
- gint len,
- gint *found_offset,
- gboolean already_moved_initially)
+ gint offset,
+ gint len,
+ gint *found_offset,
+ gboolean already_moved_initially)
{
if (!already_moved_initially)
++offset;
- while (offset < (min_offset + len) &&
- !attrs[offset].is_cursor_position)
+ while (offset < len && !attrs[offset].is_cursor_position)
++offset;
*found_offset = offset;
- return offset < (min_offset + len);
+ return offset < len;
}
static gboolean
find_backward_cursor_pos_func (const PangoLogAttr *attrs,
- gint offset,
- gint min_offset,
- gint len,
- gint *found_offset,
- gboolean already_moved_initially)
-{
+ gint offset,
+ gint len,
+ gint *found_offset,
+ gboolean already_moved_initially)
+{
if (!already_moved_initially)
--offset;
- while (offset > min_offset &&
- !attrs[offset].is_cursor_position)
+ while (offset > 0 && !attrs[offset].is_cursor_position)
--offset;
*found_offset = offset;
-
- return offset >= min_offset;
+
+ return offset >= 0;
}
static gboolean