[gnome-builder] buffer: fix line trimming broken by previous commit



commit 4298a6b03b77730c4133d0b54048e0e12ed88027
Author: Christian Hergert <christian hergert me>
Date:   Fri Oct 16 12:46:35 2015 -0700

    buffer: fix line trimming broken by previous commit
    
    We were relying that the last character in the line is \n and therefore
    whitespace.

 libide/ide-buffer.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)
---
diff --git a/libide/ide-buffer.c b/libide/ide-buffer.c
index 00ee4b1..de84eda 100644
--- a/libide/ide-buffer.c
+++ b/libide/ide-buffer.c
@@ -1710,10 +1710,19 @@ ide_buffer_trim_trailing_whitespace (IdeBuffer *self)
     (ch == ' ' || ch == '\t'); \
   })
 
-          if (gtk_text_iter_forward_to_line_end (&iter) && TEXT_ITER_IS_SPACE (&iter))
+          /*
+           * Move to the first character at the end of the line (skipping the newline)
+           * and progress to trip if it is white space.
+           */
+          if (gtk_text_iter_forward_to_line_end (&iter) &&
+              !gtk_text_iter_starts_line (&iter) &&
+              gtk_text_iter_backward_char (&iter) &&
+              TEXT_ITER_IS_SPACE (&iter))
             {
               GtkTextIter begin = iter;
 
+              gtk_text_iter_forward_to_line_end (&iter);
+
               while (TEXT_ITER_IS_SPACE (&begin))
                 {
                   if (gtk_text_iter_starts_line (&begin))


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]