[gtk+] textiter: make the FindLogAttrFunc functions clearer
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] textiter: make the FindLogAttrFunc functions clearer
- Date: Thu, 17 Jul 2014 11:00:25 +0000 (UTC)
commit 76f3866bd35b29edec770e107d8e2bb44fbd5ec9
Author: Sébastien Wilmet <swilmet gnome org>
Date: Tue Jul 15 15:24:36 2014 +0200
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
gtk/gtktextiter.c | 84 +++++++++++++++++++++++++++++++++++++---------------
1 files changed, 60 insertions(+), 24 deletions(-)
---
diff --git a/gtk/gtktextiter.c b/gtk/gtktextiter.c
index 93cc801..bfc296e 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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]