commit 0d17364762b6d39261f3c1950d1a6c3b5270d6f3
Author: Jan Rękorajski <[email protected]>
Date:   Sun Sep 11 14:30:29 2016 +0200

    - add various bugfixes from fedora
    - rel 17

 vte-0.28.2-control.patch         | 68 +++++++++++++++++++++++++++++++
 vte-0.28.2-limit-arguments.patch | 40 +++++++++++++++++++
 vte-0.28.2-paste-fix.diff        | 71 +++++++++++++++++++++++++++++++++
 vte-python-bugfixes.patch        | 86 ++++++++++++++++++++++++++++++++++++++++
 vte0.spec                        | 10 ++++-
 5 files changed, 274 insertions(+), 1 deletion(-)
---
diff --git a/vte0.spec b/vte0.spec
index f70ac00..acd7a95 100644
--- a/vte0.spec
+++ b/vte0.spec
@@ -2,13 +2,17 @@ Summary:      VTE terminal widget library for GTK+ 2
 Summary(pl.UTF-8):     Biblioteka z kontrolką terminala VTE for GTK+ 2
 Name:          vte0
 Version:       0.28.2
-Release:       16
+Release:       17
 License:       LGPL v2+
 Group:         X11/Libraries
 Source0:       
http://ftp.gnome.org/pub/GNOME/sources/vte/0.28/vte-%{version}.tar.bz2
 # Source0-md5: f07a4bf943194f94b7f142db8f7f36dc
 Patch0:                vte-alt-meta.patch
 Patch1:                repaint-bug.patch
+Patch2:                vte-0.28.2-control.patch
+Patch3:                vte-0.28.2-limit-arguments.patch
+Patch4:                vte-0.28.2-paste-fix.diff
+Patch5:                vte-python-bugfixes.patch
 BuildRequires: autoconf >= 2.63
 BuildRequires: automake >= 1:1.9
 BuildRequires: docbook-dtd412-xml
@@ -123,6 +127,10 @@ Pliki programistyczne wiązań Pythona do VTE.
 %setup -q -n vte-%{version}
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
 
 %build
 %configure \
diff --git a/vte-0.28.2-control.patch b/vte-0.28.2-control.patch
new file mode 100644
index 0000000..20e0ee1
--- /dev/null
+++ b/vte-0.28.2-control.patch
@@ -0,0 +1,68 @@
+--- a/src/keymap.c     
++++ a/src/keymap.c     
+@@ -286,6 +286,8 @@ static const struct _vte_keymap_entry 
_vte_keymap_GDK_Home[] = {
+       {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_CSI "1~", -1, X_NULL},
+       {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "h", -1, X_NULL},
+       {cursor_all, keypad_all, fkey_nothpvt, 0, X_NULL, 0, "kh"},
++      {cursor_default, keypad_all, fkey_default, 0, _VTE_CAP_CSI "H", -1, 
X_NULL},
++      {cursor_app, keypad_all, fkey_default, 0, _VTE_CAP_SS3 "H", -1, X_NULL},
+       {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+ };
+ 
+@@ -293,6 +295,8 @@ static const struct _vte_keymap_entry 
_vte_keymap_GDK_End[] = {
+       {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "@7"},
+       {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_CSI "4~", -1, X_NULL},
+       {cursor_all, keypad_all, fkey_notvt220, 0, X_NULL, 0, "@7"},
++      {cursor_default, keypad_all, fkey_default, 0, _VTE_CAP_CSI "F", -1, 
X_NULL},
++      {cursor_app, keypad_all, fkey_default, 0, _VTE_CAP_SS3 "F", -1, X_NULL},
+       {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+ };
+ 
+@@ -504,10 +508,11 @@ static const struct _vte_keymap_entry 
_vte_keymap_GDK_KP_Insert[] = {
+ 
+ static const struct _vte_keymap_entry _vte_keymap_GDK_KP_End[] = {
+       {cursor_all, keypad_default, fkey_all, 0, X_NULL, 0, "K4"},
+-      {cursor_all, keypad_default, fkey_notvt220,
+-       0, _VTE_CAP_CSI "4~", -1, X_NULL},
++      {cursor_default, keypad_default, fkey_notvt220, 0, _VTE_CAP_CSI "F", 
-1, X_NULL},
++      {cursor_app, keypad_default, fkey_notvt220, 0, _VTE_CAP_SS3 "F", -1, 
X_NULL},
+       {cursor_all, keypad_default, fkey_vt220, 0, "1", 1, X_NULL},
+-      {cursor_all, keypad_app, fkey_notvt220, 0, _VTE_CAP_CSI "4~", -1, 
X_NULL},
++      {cursor_default, keypad_app, fkey_notvt220, 0, _VTE_CAP_CSI "F", -1, 
X_NULL},
++      {cursor_app, keypad_app, fkey_notvt220, 0, _VTE_CAP_SS3 "F", -1, 
X_NULL},
+       {cursor_all, keypad_app, fkey_vt220, 0, _VTE_CAP_SS3 "q", -1, X_NULL},
+       {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+ };
+@@ -565,10 +570,11 @@ static const struct _vte_keymap_entry 
_vte_keymap_GDK_KP_Right[] = {
+ 
+ static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Home[] = {
+       {cursor_all, keypad_default, fkey_all, 0, X_NULL, 0, "K1"},
+-      {cursor_all, keypad_default, fkey_notvt220,
+-       0, _VTE_CAP_CSI "1~", -1, X_NULL},
++      {cursor_default, keypad_default, fkey_notvt220, 0, _VTE_CAP_CSI "H", 
-1, X_NULL},
++      {cursor_app, keypad_default, fkey_notvt220, 0, _VTE_CAP_SS3 "H", -1, 
X_NULL},
+       {cursor_all, keypad_default, fkey_vt220, 0, "7", 1, X_NULL},
+-      {cursor_all, keypad_app, fkey_notvt220, 0, _VTE_CAP_CSI "1~", -1, 
X_NULL},
++      {cursor_default, keypad_app, fkey_notvt220, 0, _VTE_CAP_CSI "H", -1, 
X_NULL},
++      {cursor_app, keypad_app, fkey_notvt220, 0, _VTE_CAP_SS3 "H", -1, 
X_NULL},
+       {cursor_all, keypad_app, fkey_vt220, 0, _VTE_CAP_SS3 "w", -1, X_NULL},
+       {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+ };
+@@ -1280,6 +1286,8 @@ _vte_keymap_key_gets_modifiers(guint keyval)
+       case GDK_KEY (Right):
+       case GDK_KEY (Insert):
+       case GDK_KEY (Delete):
++      case GDK_KEY (Home):
++      case GDK_KEY (End):
+       case GDK_KEY (Page_Up):
+       case GDK_KEY (Page_Down):
+       case GDK_KEY (KP_Up):
+@@ -1288,6 +1296,8 @@ _vte_keymap_key_gets_modifiers(guint keyval)
+       case GDK_KEY (KP_Right):
+       case GDK_KEY (KP_Insert):
+       case GDK_KEY (KP_Delete):
++      case GDK_KEY (KP_Home):
++      case GDK_KEY (KP_End):
+       case GDK_KEY (KP_Page_Up):
+       case GDK_KEY (KP_Page_Down):
+       case GDK_KEY (F1):
diff --git a/vte-0.28.2-limit-arguments.patch b/vte-0.28.2-limit-arguments.patch
new file mode 100644
index 0000000..fd45407
--- /dev/null
+++ b/vte-0.28.2-limit-arguments.patch
@@ -0,0 +1,40 @@
+From feeee4b5832b17641e505b7083e0d299fdae318e Mon Sep 17 00:00:00 2001
+From: Christian Persch <[email protected]>
+Date: Sat, 19 May 2012 17:36:09 +0000
+Subject: emulation: Limit integer arguments to 65535
+
+To guard against malicious sequences containing excessively big numbers,
+limit all parsed numbers to 16 bit range. Doing this here in the parsing
+routine is a catch-all guard; this doesn't preclude enforcing
+more stringent limits in the handlers themselves.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=676090
+---
+diff --git a/src/table.c b/src/table.c
+index 140e8c8..85cf631 100644
+--- a/src/table.c
++++ b/src/table.c
+@@ -550,7 +550,7 @@ _vte_table_extract_numbers(GValueArray **array,
+               if (G_UNLIKELY (*array == NULL)) {
+                       *array = g_value_array_new(1);
+               }
+-              g_value_set_long(&value, total);
++              g_value_set_long(&value, CLAMP (total, 0, G_MAXUSHORT));
+               g_value_array_append(*array, &value);
+       } while (i++ < arginfo->length);
+       g_value_unset(&value);
+diff --git a/src/vteseq.c b/src/vteseq.c
+index 457c06a..46def5b 100644
+--- a/src/vteseq.c
++++ b/src/vteseq.c
+@@ -557,7 +557,7 @@ vte_sequence_handler_multiple(VteTerminal *terminal,
+                               GValueArray *params,
+                               VteTerminalSequenceHandler handler)
+ {
+-        vte_sequence_handler_multiple_limited(terminal, params, handler, 
G_MAXLONG);
++        vte_sequence_handler_multiple_limited(terminal, params, handler, 
G_MAXUSHORT);
+ }
+ 
+ static void
+--
+cgit v0.9.0.2
diff --git a/vte-0.28.2-paste-fix.diff b/vte-0.28.2-paste-fix.diff
new file mode 100644
index 0000000..cc51ead
--- /dev/null
+++ b/vte-0.28.2-paste-fix.diff
@@ -0,0 +1,71 @@
+diff -ur vte-0.28.2.orig/src/vte.c vte-0.28.2/src/vte.c
+--- vte-0.28.2.orig/src/vte.c  2011-08-29 00:31:45.000000000 +0300
++++ vte-0.28.2/src/vte.c       2014-06-26 04:20:52.409371214 +0300
+@@ -5806,10 +5806,10 @@
+                               p++;
+                       }
+               }
+-              if (terminal->pvt->screen->bracketed_paste_mode)
++              if (terminal->pvt->bracketed_paste_mode)
+                       vte_terminal_feed_child(terminal, "\e[200~", -1);
+               vte_terminal_feed_child(terminal, paste, length);
+-              if (terminal->pvt->screen->bracketed_paste_mode)
++              if (terminal->pvt->bracketed_paste_mode)
+                       vte_terminal_feed_child(terminal, "\e[201~", -1);
+               g_free(paste);
+       }
+@@ -14065,14 +14065,12 @@
+       pvt->normal_screen.linefeed_mode = FALSE;
+       pvt->normal_screen.origin_mode = FALSE;
+       pvt->normal_screen.reverse_mode = FALSE;
+-      pvt->normal_screen.bracketed_paste_mode = FALSE;
+       pvt->alternate_screen.scrolling_restricted = FALSE;
+       pvt->alternate_screen.sendrecv_mode = TRUE;
+       pvt->alternate_screen.insert_mode = FALSE;
+       pvt->alternate_screen.linefeed_mode = FALSE;
+       pvt->alternate_screen.origin_mode = FALSE;
+       pvt->alternate_screen.reverse_mode = FALSE;
+-      pvt->alternate_screen.bracketed_paste_mode = FALSE;
+       pvt->cursor_visible = TRUE;
+       /* Reset the encoding. */
+       vte_terminal_set_encoding(terminal, NULL);
+@@ -14102,6 +14100,8 @@
+       pvt->mouse_last_y = 0;
+       /* Clear modifiers. */
+       pvt->modifiers = 0;
++      /* Reset miscellaneous stuff. */
++      pvt->bracketed_paste_mode = FALSE;
+       /* Cause everything to be redrawn (or cleared). */
+       vte_terminal_maybe_scroll_to_bottom(terminal);
+       _vte_invalidate_all(terminal);
+diff -ur vte-0.28.2.orig/src/vte-private.h vte-0.28.2/src/vte-private.h
+--- vte-0.28.2.orig/src/vte-private.h  2011-08-17 00:52:48.000000000 +0300
++++ vte-0.28.2/src/vte-private.h       2014-06-26 04:20:52.410371214 +0300
+@@ -219,7 +219,6 @@
+               gboolean sendrecv_mode; /* sendrecv mode */
+               gboolean insert_mode;   /* insert mode */
+               gboolean linefeed_mode; /* linefeed mode */
+-              gboolean bracketed_paste_mode;
+               struct vte_scrolling_region {
+                       int start, end;
+               } scrolling_region;     /* the region we scroll in */
+@@ -274,6 +273,7 @@
+       gboolean text_modified_flag;
+       gboolean text_inserted_flag;
+       gboolean text_deleted_flag;
++      gboolean bracketed_paste_mode;
+ 
+       /* Scrolling options. */
+       gboolean scroll_background;
+diff -ur vte-0.28.2.orig/src/vteseq.c vte-0.28.2/src/vteseq.c
+--- vte-0.28.2.orig/src/vteseq.c       2014-06-26 04:08:49.998358634 +0300
++++ vte-0.28.2/src/vteseq.c    2014-06-26 04:34:00.214384933 +0300
+@@ -737,7 +737,7 @@
+                GINT_TO_POINTER(TRUE),
+                NULL, NULL},
+               /* 2004: Bracketed paste mode. */
+-              {2004, &terminal->pvt->screen->bracketed_paste_mode, NULL, NULL,
++              {2004, &terminal->pvt->bracketed_paste_mode, NULL, NULL,
+                GINT_TO_POINTER(FALSE),
+                GINT_TO_POINTER(TRUE),
+                NULL, NULL,},
diff --git a/vte-python-bugfixes.patch b/vte-python-bugfixes.patch
new file mode 100644
index 0000000..691b350
--- /dev/null
+++ b/vte-python-bugfixes.patch
@@ -0,0 +1,86 @@
+diff -ur vte-0.22.5-orig/python/vte.override 
vte-0.22.5-python-get-text/python/vte.override
+--- vte-0.22.5-orig/python/vte.override        2010-01-16 20:54:40.515014436 
-0500
++++ vte-0.22.5-python-get-text/python/vte.override     2010-01-16 
22:14:40.881828300 -0500
+@@ -306,9 +306,9 @@
+     }
+ 
+     cb = PySequence_GetItem(data, 0); /* INCREFs */
+-    Py_XDECREF(cb);
+ 
+     if (!PyCallable_Check(cb)) {
++          Py_XDECREF(cb);
+         PyErr_SetString(PyExc_TypeError, "callback is not a callable object");
+         return FALSE;
+     }
+@@ -320,6 +320,7 @@
+     PyTuple_SetItem(args, 3, PySequence_GetItem(data, 2));
+ 
+     result = PyObject_CallObject(cb, args);
++    Py_XDECREF(cb);
+     Py_DECREF(args);
+     
+     ret = (result && PyObject_IsTrue(result));
+@@ -332,7 +333,7 @@
+ build_attributes(GArray *attrs)
+ {
+     PyObject *py_attrs = PyTuple_New(attrs->len);
+-    int count;
++    guint count;
+     PyObject *row = PyString_FromString("row");
+     PyObject *column = PyString_FromString("column");
+     PyObject *fore = PyString_FromString("fore");
+@@ -344,6 +345,8 @@
+       VteCharAttributes *cht;
+       PyObject *py_char_attr;
+ 
++      cht = &g_array_index(attrs, VteCharAttributes, count);
++      
+       py_char_attr = Py_BuildValue("{S:l,S:l,S:N,S:N,S:I,S:I}",
+                                    row, cht->row,
+                                    column, cht->column,
+@@ -380,10 +383,9 @@
+     GArray *attrs = NULL;
+     char *text;
+     PyObject *py_attrs;
+-    int count;
+     long length;
+ 
+-    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|OO:terminal_get_text",
++    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|OOO:terminal_get_text",
+                                    kwlist, &callback, &do_attr, &data)) {
+         return NULL;
+     }
+@@ -451,10 +453,9 @@
+     GArray *attrs = NULL;
+     char *text;
+     PyObject *py_attrs;
+-    int count;
+     long length;
+ 
+-    if (!PyArg_ParseTupleAndKeywords(args, kwargs, 
"O|OO:terminal_get_text_include_trailing_spaces",
++    if (!PyArg_ParseTupleAndKeywords(args, kwargs, 
"|OOO:terminal_get_text_include_trailing_spaces",
+                                    kwlist, &callback, &do_attr, &data)) {
+         return NULL;
+     }
+@@ -522,11 +523,10 @@
+     GArray *attrs = NULL;
+     char *text;
+     PyObject *py_attrs;
+-    int count;
+     long length;
+ 
+     if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+-                                   "llllO|OO:terminal_get_text_range",
++                                   "llll|OOO:terminal_get_text_range",
+                                    kwlist,
+                                    &start_row, &start_col, &end_row, &end_col,
+                                    &callback, &do_attr, &data)) {
+@@ -641,7 +641,7 @@
+     static char *kwlist[] = { "column", "row", NULL };
+     gchar *ret;
+     glong column, row;
+-    int *tag;
++    int tag;
+ 
+     if (!PyArg_ParseTupleAndKeywords(args, kwargs, 
"ll:VteTerminal.match_check", kwlist, &column, &row))
+         return NULL;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/vte0.git/commitdiff/0d17364762b6d39261f3c1950d1a6c3b5270d6f3

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to