From e532ef40a238dae34e36c12112d0c2b492d483bd Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 25 Jan 2023 14:47:41 -0500 Subject: [PATCH] Fix decrement number feature Resolves: #2062786 --- ...ew-fix-decrement-of-negative-numbers.patch | 90 +++++++++++++++++++ gtksourceview4.spec | 11 ++- 2 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 0001-view-fix-decrement-of-negative-numbers.patch diff --git a/0001-view-fix-decrement-of-negative-numbers.patch b/0001-view-fix-decrement-of-negative-numbers.patch new file mode 100644 index 0000000..666e98d --- /dev/null +++ b/0001-view-fix-decrement-of-negative-numbers.patch @@ -0,0 +1,90 @@ +From d33ed342af50b66c7c49c2843d7495febfd663e9 Mon Sep 17 00:00:00 2001 +From: Christian Hergert +Date: Wed, 28 Jul 2021 17:49:40 -0700 +Subject: [PATCH] view: fix decrement of negative numbers + +Fixes #117 +--- + gtksourceview/gtksourceview.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/gtksourceview/gtksourceview.c b/gtksourceview/gtksourceview.c +index e10584aa..377cdd8d 100644 +--- a/gtksourceview/gtksourceview.c ++++ b/gtksourceview/gtksourceview.c +@@ -360,61 +360,72 @@ gtk_source_view_move_to_matching_bracket (GtkSourceView *view, + gtk_text_buffer_move_mark (buffer, insert_mark, &bracket_match); + } + else + { + gtk_text_buffer_place_cursor (buffer, &bracket_match); + } + + gtk_text_view_scroll_mark_onscreen (text_view, insert_mark); + } + } + + static void + gtk_source_view_change_number (GtkSourceView *view, + gint count) + { + GtkTextView *text_view = GTK_TEXT_VIEW (view); + GtkTextBuffer *buffer; + GtkTextIter start, end; + gchar *str; + + buffer = gtk_text_view_get_buffer (text_view); + if (!GTK_SOURCE_IS_BUFFER (buffer)) + { + return; + } + + if (!gtk_text_buffer_get_selection_bounds (buffer, &start, &end)) + { + if (!gtk_text_iter_starts_word (&start)) + { ++ GtkTextIter prev; ++ + gtk_text_iter_backward_word_start (&start); ++ ++ /* Include the negative sign if there is one. ++ * https://gitlab.gnome.org/GNOME/gtksourceview/-/issues/117 ++ */ ++ prev = start; ++ if (gtk_text_iter_backward_char (&prev) && gtk_text_iter_get_char (&prev) == '-') ++ { ++ start = prev; ++ } + } + + if (!gtk_text_iter_ends_word (&end)) + { + gtk_text_iter_forward_word_end (&end); + } + } + + str = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); + + if (str != NULL && *str != '\0') + { + gchar *p; + gint64 n; + glong len; + + len = gtk_text_iter_get_offset (&end) - gtk_text_iter_get_offset (&start); + g_assert (len > 0); + + n = g_ascii_strtoll (str, &p, 10); + + /* do the action only if strtoll succeeds (p != str) and + * the whole string is the number, e.g. not 123abc + */ + if ((p - str) == len) + { + gchar *newstr; + + newstr = g_strdup_printf ("%"G_GINT64_FORMAT, (n + count)); + +-- +2.35.1 + diff --git a/gtksourceview4.spec b/gtksourceview4.spec index 8c8ad35..41128ec 100644 --- a/gtksourceview4.spec +++ b/gtksourceview4.spec @@ -3,7 +3,7 @@ Name: gtksourceview4 Version: 4.8.1 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Source code editing widget License: LGPLv2+ @@ -12,6 +12,7 @@ Source0: https://download.gnome.org/sources/gtksourceview/4.8/gtksourcevi BuildRequires: gcc BuildRequires: gettext +BuildRequires: git BuildRequires: gtk-doc BuildRequires: itstool BuildRequires: meson @@ -27,6 +28,8 @@ BuildRequires: vala Requires: glib2%{?_isa} >= %{glib_version} Requires: gtk3%{?_isa} >= %{gtk_version} +Patch10001: 0001-view-fix-decrement-of-negative-numbers.patch + %description GtkSourceView is a GNOME library that extends GtkTextView, the standard GTK+ widget for multiline text editing. GtkSourceView adds support for syntax @@ -53,7 +56,7 @@ The %{name}-tests package contains tests that can be used to verify the functionality of the installed %{name} package. %prep -%autosetup -n gtksourceview-%{version} +%autosetup -n gtksourceview-%{version} -S git %build %meson -Dgtk_doc=true -Dglade_catalog=true -Dinstall_tests=true @@ -95,6 +98,10 @@ the functionality of the installed %{name} package. %{_datadir}/installed-tests/gtksourceview-4/ %changelog +* Wed Jan 25 2023 Ray Strode - 4.8.1-3 - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags Related: rhbz#1991688