[gnome-builder/auto-indent] auto-indent: add fallback when we don't find a stmt or expr.
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/auto-indent] auto-indent: add fallback when we don't find a stmt or expr.
- Date: Wed, 17 Sep 2014 22:38:10 +0000 (UTC)
commit 19a5f279e2c021e1013788936d4b0ddceb025d1d
Author: Christian Hergert <christian hergert me>
Date: Wed Sep 17 15:38:00 2014 -0700
auto-indent: add fallback when we don't find a stmt or expr.
src/editor/gb-source-auto-indenter-c.c | 30 +++++++++++++++++++++++++++++-
1 files changed, 29 insertions(+), 1 deletions(-)
---
diff --git a/src/editor/gb-source-auto-indenter-c.c b/src/editor/gb-source-auto-indenter-c.c
index bd369a5..13917c3 100644
--- a/src/editor/gb-source-auto-indenter-c.c
+++ b/src/editor/gb-source-auto-indenter-c.c
@@ -56,6 +56,9 @@ build_indent (GbSourceAutoIndenterC *c,
GtkTextIter iter;
gunichar ch;
+ if (!line_offset)
+ return;
+
gtk_text_buffer_get_iter_at_line (gtk_text_iter_get_buffer (matching_line),
&iter,
gtk_text_iter_get_line (matching_line));
@@ -155,6 +158,30 @@ backward_find_stmt_expr (GtkTextIter *iter)
return FALSE;
}
+static guint
+backward_first_char (GtkTextIter *iter)
+{
+ GtkTextIter tmp;
+
+ gtk_text_buffer_get_iter_at_line (gtk_text_iter_get_buffer (iter),
+ &tmp,
+ gtk_text_iter_get_line (iter));
+
+ do {
+ gunichar ch;
+
+ ch = gtk_text_iter_get_char (&tmp);
+
+ if (!g_unichar_isspace (ch))
+ break;
+ } while (!gtk_text_iter_ends_line (&tmp) &&
+ gtk_text_iter_forward_char (&tmp));
+
+ gtk_text_iter_assign (iter, &tmp);
+
+ return gtk_text_iter_get_line_offset (iter);
+}
+
static gboolean
in_c89_comment (GtkTextIter *iter)
{
@@ -294,7 +321,8 @@ gb_source_auto_indenter_c_query (GbSourceAutoIndenter *indenter,
if (!backward_find_stmt_expr (iter))
{
gtk_text_iter_assign (iter, &cur);
- build_indent (c, 0, iter, str);
+ offset = backward_first_char (iter);
+ build_indent (c, offset, iter, str);
}
else
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]