[packages/vte0] - add various bugfixes from fedora - rel 17

baggins baggins at pld-linux.org
Sun Sep 11 14:30:59 CEST 2016


commit 0d17364762b6d39261f3c1950d1a6c3b5270d6f3
Author: Jan Rękorajski <baggins at pld-linux.org>
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 <chpe at gnome.org>
+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



More information about the pld-cvs-commit mailing list