summaryrefslogtreecommitdiff
path: root/gtk/gtktextiter.c
diff options
context:
space:
mode:
authorSébastien Wilmet <swilmet@gnome.org>2014-07-15 15:24:36 +0200
committerSébastien Wilmet <swilmet@gnome.org>2014-07-17 12:56:56 +0200
commit76f3866bd35b29edec770e107d8e2bb44fbd5ec9 (patch)
tree7feca5808eeed0076e6c9ad6245160ab31ac2287 /gtk/gtktextiter.c
parent37f5f78f810bccda3ff6442686a02ca48ee4b5b4 (diff)
downloadgtk+-76f3866bd35b29edec770e107d8e2bb44fbd5ec9.tar.gz
textiter: make the FindLogAttrFunc functions clearer
- Return true (found) and false (not found) explicitly. - Set found_offset only when something has been found. find_backward_cursor_pos_func() was a bit different, the while loop had the condition "offset > 0" but the return was "offset >= 0". Probably a micro-optimization, since offset == 0 is always a cursor position. Anyway now the code is the same as the other functions. https://bugzilla.gnome.org/show_bug.cgi?id=618852
Diffstat (limited to 'gtk/gtktextiter.c')
-rw-r--r--gtk/gtktextiter.c84
1 files changed, 60 insertions, 24 deletions
diff --git a/gtk/gtktextiter.c b/gtk/gtktextiter.c
index 93cc801b15..bfc296eb86 100644
--- a/gtk/gtktextiter.c
+++ b/gtk/gtktextiter.c
@@ -2895,12 +2895,18 @@ find_word_end_func (const PangoLogAttr *attrs,
++offset;
/* Find end of next word */
- while (offset < len && !attrs[offset].is_word_end)
- ++offset;
+ while (offset < len)
+ {
+ if (attrs[offset].is_word_end)
+ {
+ *found_offset = offset;
+ return TRUE;
+ }
- *found_offset = offset;
+ ++offset;
+ }
- return offset < len;
+ return FALSE;
}
static gboolean
@@ -2923,12 +2929,18 @@ find_word_start_func (const PangoLogAttr *attrs,
--offset;
/* Find start of prev word */
- while (offset >= 0 && !attrs[offset].is_word_start)
- --offset;
+ while (offset >= 0)
+ {
+ if (attrs[offset].is_word_start)
+ {
+ *found_offset = offset;
+ return TRUE;
+ }
- *found_offset = offset;
+ --offset;
+ }
- return offset >= 0;
+ return FALSE;
}
static gboolean
@@ -2970,12 +2982,18 @@ find_sentence_end_func (const PangoLogAttr *attrs,
++offset;
/* Find end of next sentence */
- while (offset < len && !attrs[offset].is_sentence_end)
- ++offset;
+ while (offset < len)
+ {
+ if (attrs[offset].is_sentence_end)
+ {
+ *found_offset = offset;
+ return TRUE;
+ }
- *found_offset = offset;
+ ++offset;
+ }
- return offset < len;
+ return FALSE;
}
static gboolean
@@ -2998,12 +3016,18 @@ find_sentence_start_func (const PangoLogAttr *attrs,
--offset;
/* Find start of prev sentence */
- while (offset >= 0 && !attrs[offset].is_sentence_start)
- --offset;
+ while (offset >= 0)
+ {
+ if (attrs[offset].is_sentence_start)
+ {
+ *found_offset = offset;
+ return TRUE;
+ }
- *found_offset = offset;
+ --offset;
+ }
- return offset >= 0;
+ return FALSE;
}
static gboolean
@@ -3556,12 +3580,18 @@ find_forward_cursor_pos_func (const PangoLogAttr *attrs,
if (!already_moved_initially)
++offset;
- while (offset < len && !attrs[offset].is_cursor_position)
- ++offset;
+ while (offset < len)
+ {
+ if (attrs[offset].is_cursor_position)
+ {
+ *found_offset = offset;
+ return TRUE;
+ }
- *found_offset = offset;
+ ++offset;
+ }
- return offset < len;
+ return FALSE;
}
static gboolean
@@ -3574,12 +3604,18 @@ find_backward_cursor_pos_func (const PangoLogAttr *attrs,
if (!already_moved_initially)
--offset;
- while (offset > 0 && !attrs[offset].is_cursor_position)
- --offset;
+ while (offset >= 0)
+ {
+ if (attrs[offset].is_cursor_position)
+ {
+ *found_offset = offset;
+ return TRUE;
+ }
- *found_offset = offset;
+ --offset;
+ }
- return offset >= 0;
+ return FALSE;
}
static gboolean