[gtksourceview] Fix corner case in join lines
- From: Paolo Borelli <pborelli src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview] Fix corner case in join lines
- Date: Thu, 12 Mar 2015 13:28:50 +0000 (UTC)
commit d862246aeb1ee47791e55b5b778f8a4cb5d4c0a9
Author: Paolo Borelli <pborelli gnome org>
Date: Thu Mar 12 14:27:36 2015 +0100
Fix corner case in join lines
https://bugzilla.gnome.org/show_bug.cgi?id=746056
gtksourceview/gtksourcebuffer.c | 17 +++++++++--------
1 files changed, 9 insertions(+), 8 deletions(-)
---
diff --git a/gtksourceview/gtksourcebuffer.c b/gtksourceview/gtksourcebuffer.c
index c9ab977..d3ce2f4 100644
--- a/gtksourceview/gtksourcebuffer.c
+++ b/gtksourceview/gtksourcebuffer.c
@@ -2580,11 +2580,6 @@ gtk_source_buffer_join_lines (GtkSourceBuffer *buffer,
g_return_if_fail (start != NULL);
g_return_if_fail (end != NULL);
- if (gtk_text_iter_get_line (start) == gtk_text_iter_get_line (end))
- {
- return;
- }
-
gtk_text_iter_order (start, end);
text_buffer = GTK_TEXT_BUFFER (buffer);
@@ -2594,10 +2589,11 @@ gtk_source_buffer_join_lines (GtkSourceBuffer *buffer,
move_to_line_text_end (start);
- while (gtk_text_iter_compare (start, end) < 0)
+ while (gtk_text_iter_get_line (start) < gtk_text_iter_get_line (end))
{
GtkTextIter iter;
gunichar ch;
+ gboolean insert_space = FALSE;
iter = *start;
@@ -2606,14 +2602,19 @@ gtk_source_buffer_join_lines (GtkSourceBuffer *buffer,
ch = gtk_text_iter_get_char (&iter);
if (!g_unichar_isspace (ch))
{
+ insert_space = TRUE;
break;
}
- } while (gtk_text_iter_forward_char (&iter));
+ } while (gtk_text_iter_forward_char (&iter) &&
+ gtk_text_iter_compare (&iter, end) < 0);
if (!gtk_text_iter_is_end (&iter))
{
gtk_text_buffer_delete (text_buffer, start, &iter);
- gtk_text_buffer_insert (text_buffer, start, " ", 1);
+ if (insert_space)
+ {
+ gtk_text_buffer_insert (text_buffer, start, " ", 1);
+ }
}
move_to_line_text_end (start);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]