diff options
Diffstat (limited to 'x11-libs/vte/files')
-rw-r--r-- | x11-libs/vte/files/vte-0.28.2-interix.patch | 51 | ||||
-rw-r--r-- | x11-libs/vte/files/vte-0.28.2-limit-arguments.patch | 40 | ||||
-rw-r--r-- | x11-libs/vte/files/vte-0.30.1-alt-meta.patch | 74 |
3 files changed, 165 insertions, 0 deletions
diff --git a/x11-libs/vte/files/vte-0.28.2-interix.patch b/x11-libs/vte/files/vte-0.28.2-interix.patch new file mode 100644 index 000000000000..c54d46ebc3dc --- /dev/null +++ b/x11-libs/vte/files/vte-0.28.2-interix.patch @@ -0,0 +1,51 @@ +reported upstream: https://bugzilla.gnome.org/show_bug.cgi?id=652290 + +diff -ru vte-0.26.2.orig/configure.in vte-0.26.2/configure.in +--- vte-0.26.2.orig/configure.in 2011-08-17 08:30:55 +0200 ++++ vte-0.26.2/configure.in 2011-08-17 08:35:42 +0200 +@@ -362,7 +362,11 @@ + AC_DEFINE(HAVE_RECVMSG,1,[Define if you have the recvmsg function.]) + fi + AC_CHECK_FUNC(floor,,AC_CHECK_LIB(m,floor,LIBS=["$LIBS -lm"])) +-AC_CHECK_FUNCS([ceil floor]) ++dnl if the first check didn't find floor, it caches the "no" value, ++dnl and doesn't recheck. this makes the below check fail always on ++dnl systems with floor in -lm. thus we unset the chached result. ++unset ac_cv_func_floor ++AC_CHECK_FUNCS([ceil floor round]) + + # Look for tgetent + +--- vte-0.26.2.orig/configure 2012-04-30 20:02:55.000000000 +0200 ++++ vte-0.26.2/configure 2012-04-30 20:03:16.000000000 +0200 +@@ -13277,7 +13277,7 @@ + + fi + +-for ac_func in ceil floor ++for ac_func in ceil floor round + do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` + ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +diff -ru vte-0.26.2.orig/src/vte.c vte-0.26.2/src/vte.c +--- vte-0.26.2.orig/src/vte.c 2011-08-17 08:30:58 +0200 ++++ vte-0.26.2/src/vte.c 2011-08-17 08:38:09 +0200 +@@ -63,6 +63,18 @@ + #include <locale.h> + #endif + ++#ifndef HAVE_ROUND ++# if defined(HAVE_CEIL) && defined(HAVE_FLOOR) ++static inline double round(double x) { ++ if(x - floor(x) < 0.5) { ++ return floor(x); ++ } else { ++ return ceil(x); ++ } ++} ++# endif ++#endif ++ + #if GTK_CHECK_VERSION (2, 90, 7) + #define GDK_KEY(symbol) GDK_KEY_##symbol + #else diff --git a/x11-libs/vte/files/vte-0.28.2-limit-arguments.patch b/x11-libs/vte/files/vte-0.28.2-limit-arguments.patch new file mode 100644 index 000000000000..fd454079390f --- /dev/null +++ b/x11-libs/vte/files/vte-0.28.2-limit-arguments.patch @@ -0,0 +1,40 @@ +From feeee4b5832b17641e505b7083e0d299fdae318e Mon Sep 17 00:00:00 2001 +From: Christian Persch <chpe@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/x11-libs/vte/files/vte-0.30.1-alt-meta.patch b/x11-libs/vte/files/vte-0.30.1-alt-meta.patch new file mode 100644 index 000000000000..bd364be5846c --- /dev/null +++ b/x11-libs/vte/files/vte-0.30.1-alt-meta.patch @@ -0,0 +1,74 @@ +From 180dcc578e13c6096e277fb853e7162db640f207 Mon Sep 17 00:00:00 2001 +From: Alexandre Rostovtsev <tetromino@gentoo.org> +Date: Tue, 15 Nov 2011 03:06:40 -0500 +Subject: [PATCH] Map both gdk's Meta and Alt to vte's Meta for >=gtk+-3.2.2 + compatibility + +Also, since VTE_META_MASK is now a mask with multiple bits set, code that +compares gdk key modifiers to VTE_META_MASK by numerical equality is no +longer guaranteed to work. Therefore, for such comparisons a new function, +vte_keymap_fixup_modifiers, is introduced; it ensures that if any bits +matching matching VTE_META_MASK are set, then all are set. + +https://bugzilla.gnome.org/show_bug.cgi?id=663779 +--- + src/keymap.c | 15 +++++++++++++-- + src/keymap.h | 2 +- + 2 files changed, 14 insertions(+), 3 deletions(-) + +diff --git a/src/keymap.c b/src/keymap.c +index 9a21669..95b4c5b 100644 +--- a/src/keymap.c ++++ b/src/keymap.c +@@ -990,6 +990,17 @@ static const struct _vte_keymap_group { + {GDK_KEY (F35), _vte_keymap_GDK_F35}, + }; + ++/* Restrict modifiers to the specified mask and ensure that VTE_META_MASK, ++ * despite being a compound mask, is treated as indivisible. */ ++GdkModifierType ++_vte_keymap_fixup_modifiers(GdkModifierType modifiers, ++ GdkModifierType mask) ++{ ++ if (modifiers & VTE_META_MASK) ++ modifiers |= VTE_META_MASK; ++ return modifiers & mask; ++} ++ + /* Map the specified keyval/modifier setup, dependent on the mode, to either + * a literal string or a capability name. */ + void +@@ -1104,7 +1115,7 @@ _vte_keymap_map(guint keyval, + } else { + fkey_mode = fkey_default; + } +- modifiers &= (GDK_SHIFT_MASK | GDK_CONTROL_MASK | VTE_META_MASK | VTE_NUMLOCK_MASK); ++ modifiers = _vte_keymap_fixup_modifiers(modifiers, GDK_SHIFT_MASK | GDK_CONTROL_MASK | VTE_META_MASK | VTE_NUMLOCK_MASK); + + /* Search for the conditions. */ + for (i = 0; entries[i].normal_length || entries[i].special[0]; i++) +@@ -1375,7 +1386,7 @@ _vte_keymap_key_add_key_modifiers(guint keyval, + return; + } + +- switch (modifiers & significant_modifiers) { ++ switch (_vte_keymap_fixup_modifiers(modifiers, significant_modifiers)) { + case 0: + modifier = 0; + break; +diff --git a/src/keymap.h b/src/keymap.h +index 243e22e..21d9b8e 100644 +--- a/src/keymap.h ++++ b/src/keymap.h +@@ -27,7 +27,7 @@ + + G_BEGIN_DECLS + +-#define VTE_META_MASK GDK_META_MASK ++#define VTE_META_MASK (GDK_META_MASK | GDK_MOD1_MASK) + #define VTE_NUMLOCK_MASK GDK_MOD2_MASK + + /* Map the specified keyval/modifier setup, dependent on the mode, to either +-- +1.7.8.rc3 + |