summaryrefslogtreecommitdiff
path: root/vte3
diff options
context:
space:
mode:
authorDanny Rawlins <monster.romster@gmail.com>2014-11-09 02:20:22 +1100
committerDanny Rawlins <monster.romster@gmail.com>2014-11-09 02:25:24 +1100
commitc495a1e0602e0ff99f208f027110a4cfe19725af (patch)
tree7a5a86ea485464d752c29583427fa5088a7e5911 /vte3
parent72b218f992dc85cddc941963fe2d35f3acacc21b (diff)
downloadcontrib-c495a1e0602e0ff99f208f027110a4cfe19725af.tar.gz
contrib-c495a1e0602e0ff99f208f027110a4cfe19725af.tar.xz
vte3: opt -> contrib
Diffstat (limited to 'vte3')
-rw-r--r--vte3/.footprint31
-rw-r--r--vte3/.md5sum3
-rw-r--r--vte3/Pkgfile37
-rw-r--r--vte3/expose_select_text.patch214
-rw-r--r--vte3/vte-0.30.1-alt-meta.patch74
5 files changed, 359 insertions, 0 deletions
diff --git a/vte3/.footprint b/vte3/.footprint
new file mode 100644
index 000000000..4607edbdf
--- /dev/null
+++ b/vte3/.footprint
@@ -0,0 +1,31 @@
+drwxr-xr-x root/root etc/
+drwxr-xr-x root/root etc/profile.d/
+-rw-r--r-- root/root etc/profile.d/vte.sh
+drwxr-xr-x root/root usr/
+drwxr-xr-x root/root usr/bin/
+-rwxr-xr-x root/root usr/bin/vte2_90
+drwxr-xr-x root/root usr/include/
+drwxr-xr-x root/root usr/include/vte-2.90/
+drwxr-xr-x root/root usr/include/vte-2.90/vte/
+-rw-r--r-- root/root usr/include/vte-2.90/vte/pty.h
+-rw-r--r-- root/root usr/include/vte-2.90/vte/reaper.h
+-rw-r--r-- root/root usr/include/vte-2.90/vte/vte.h
+-rw-r--r-- root/root usr/include/vte-2.90/vte/vteaccess.h
+-rw-r--r-- root/root usr/include/vte-2.90/vte/vtedeprecated.h
+-rw-r--r-- root/root usr/include/vte-2.90/vte/vtepty.h
+-rw-r--r-- root/root usr/include/vte-2.90/vte/vtetypebuiltins.h
+-rw-r--r-- root/root usr/include/vte-2.90/vte/vteversion.h
+drwxr-xr-x root/root usr/lib/
+drwxr-xr-x root/root usr/lib/girepository-1.0/
+-rw-r--r-- root/root usr/lib/girepository-1.0/Vte-2.90.typelib
+-rw-r--r-- root/root usr/lib/libvte2_90.a
+-rwxr-xr-x root/root usr/lib/libvte2_90.la
+lrwxrwxrwx root/root usr/lib/libvte2_90.so -> libvte2_90.so.9.3600.3
+lrwxrwxrwx root/root usr/lib/libvte2_90.so.9 -> libvte2_90.so.9.3600.3
+-rwxr-xr-x root/root usr/lib/libvte2_90.so.9.3600.3
+drwxr-xr-x root/root usr/lib/pkgconfig/
+-rw-r--r-- root/root usr/lib/pkgconfig/vte-2.90.pc
+drwxr-xr-x root/root usr/lib/vte/
+drwxr-xr-x root/root usr/share/
+drwxr-xr-x root/root usr/share/gir-1.0/
+-rw-r--r-- root/root usr/share/gir-1.0/Vte-2.90.gir
diff --git a/vte3/.md5sum b/vte3/.md5sum
new file mode 100644
index 000000000..05e306d62
--- /dev/null
+++ b/vte3/.md5sum
@@ -0,0 +1,3 @@
+a81adf559428a6f4e4395f3e0430b69d expose_select_text.patch
+6bf2c631a5f51a29d46d63e5333082ce vte-0.30.1-alt-meta.patch
+3f9df4c9a67b09bf5c660bf5c3bae109 vte-0.36.3.tar.xz
diff --git a/vte3/Pkgfile b/vte3/Pkgfile
new file mode 100644
index 000000000..31ac1f943
--- /dev/null
+++ b/vte3/Pkgfile
@@ -0,0 +1,37 @@
+# Description: Virtual Terminal Emulator widget for use with GTK3.
+# URL: http://developer.gnome.org/arch/gnome/widgets/vte.html
+# Maintainer: Danny Rawlins, monster dot romster at gmail dot com
+# Packager: Danny Rawlins, monster dot romster at gmail dot com
+# Depends on: gtk3 util-linux xorg-libxdamage
+
+name=vte3
+version=0.36.3
+release=3
+source=(http://download.gnome.org/sources/vte/${version::4}/vte-$version.tar.xz
+ vte-0.30.1-alt-meta.patch
+ expose_select_text.patch)
+
+build() {
+ cd vte-$version
+
+ # https://bugzilla.gnome.org/show_bug.cgi?id=663779
+ patch -p1 -i $SRC/vte-0.30.1-alt-meta.patch
+
+ # https://github.com/thestinger/termite/blob/master/expose_select_text.patch
+ patch -p1 -i $SRC/expose_select_text.patch
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/vte \
+ --enable-introspection=yes \
+ --disable-nls \
+ --disable-gtk-doc-html
+
+ make
+ make DESTDIR=$PKG install
+
+ rm -r $PKG/usr/share/{gtk-doc,locale}
+
+ rm $PKG/usr/lib/vte/gnome-pty-helper
+}
diff --git a/vte3/expose_select_text.patch b/vte3/expose_select_text.patch
new file mode 100644
index 000000000..80a2a445e
--- /dev/null
+++ b/vte3/expose_select_text.patch
@@ -0,0 +1,214 @@
+diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c
+--- vte-0.32.2-old/src/vte.c 2012-07-13 21:09:04.003969877 -0400
++++ vte-0.32.2/src/vte.c 2012-08-30 04:30:04.285924831 -0400
+@@ -129,7 +129,6 @@
+ gpointer data,
+ GArray *attributes,
+ gboolean include_trailing_spaces);
+-static void _vte_terminal_disconnect_pty_read(VteTerminal *terminal);
+ static void _vte_terminal_disconnect_pty_write(VteTerminal *terminal);
+ static void vte_terminal_stop_processing (VteTerminal *terminal);
+
+@@ -3508,8 +3507,8 @@
+ _vte_debug_print (VTE_DEBUG_IO, "removed poll of vte_terminal_io_read\n");
+ terminal->pvt->pty_input_source = 0;
+ }
+-static void
+-_vte_terminal_connect_pty_read(VteTerminal *terminal)
++void
++vte_terminal_connect_pty_read(VteTerminal *terminal)
+ {
+ if (terminal->pvt->pty_channel == NULL) {
+ return;
+@@ -3560,8 +3559,8 @@
+ }
+ }
+
+-static void
+-_vte_terminal_disconnect_pty_read(VteTerminal *terminal)
++void
++vte_terminal_disconnect_pty_read(VteTerminal *terminal)
+ {
+ if (terminal->pvt->pty_input_source != 0) {
+ _vte_debug_print (VTE_DEBUG_IO, "disconnecting poll of vte_terminal_io_read\n");
+@@ -3708,8 +3707,8 @@
+ return NULL;
+ }
+
+-static char *
+-_vte_terminal_get_user_shell_with_fallback (void)
++char *
++vte_terminal_get_user_shell_with_fallback (void)
+ {
+ char *command;
+ const gchar *env;
+@@ -3744,7 +3743,7 @@
+ char **argv2;
+ char *shell = NULL;
+
+- argv2 = __vte_pty_get_argv(command ? command : (shell = _vte_terminal_get_user_shell_with_fallback ()),
++ argv2 = __vte_pty_get_argv(command ? command : (shell = vte_terminal_get_user_shell_with_fallback ()),
+ argv,
+ flags);
+ g_free(shell);
+@@ -6545,6 +6544,28 @@
+ }
+ }
+
++/**
++ * vte_terminal_set_cursor_position:
++ * @terminal: a #VteTerminal
++ * @column: the new cursor column
++ * @row: the new cursor row
++ *
++ * Set the location of the cursor.
++ */
++void
++vte_terminal_set_cursor_position(VteTerminal *terminal,
++ long column, long row)
++{
++ g_return_if_fail(VTE_IS_TERMINAL(terminal));
++
++ _vte_invalidate_cursor_once(terminal, FALSE);
++ terminal->pvt->screen->cursor_current.col = column;
++ terminal->pvt->screen->cursor_current.row = row;
++ _vte_invalidate_cursor_once(terminal, FALSE);
++ _vte_check_cursor_blink(terminal);
++ vte_terminal_queue_cursor_moved(terminal);
++}
++
+ static GtkClipboard *
+ vte_terminal_clipboard_get(VteTerminal *terminal, GdkAtom board)
+ {
+@@ -6676,7 +6697,7 @@
+ terminal->pvt->selection_start.row);
+
+ /* Temporarily stop caring about input from the child. */
+- _vte_terminal_disconnect_pty_read(terminal);
++ vte_terminal_disconnect_pty_read(terminal);
+ }
+
+ static gboolean
+@@ -6693,7 +6714,7 @@
+ terminal->pvt->selecting = FALSE;
+
+ /* Reconnect to input from the child if we paused it. */
+- _vte_terminal_connect_pty_read(terminal);
++ vte_terminal_connect_pty_read(terminal);
+
+ return TRUE;
+ }
+@@ -8994,7 +9015,7 @@
+ #endif
+ kill(terminal->pvt->pty_pid, SIGHUP);
+ }
+- _vte_terminal_disconnect_pty_read(terminal);
++ vte_terminal_disconnect_pty_read(terminal);
+ _vte_terminal_disconnect_pty_write(terminal);
+ if (terminal->pvt->pty_channel != NULL) {
+ g_io_channel_unref (terminal->pvt->pty_channel);
+@@ -14384,7 +14405,7 @@
+ g_object_freeze_notify(object);
+
+ if (pvt->pty != NULL) {
+- _vte_terminal_disconnect_pty_read(terminal);
++ vte_terminal_disconnect_pty_read(terminal);
+ _vte_terminal_disconnect_pty_write(terminal);
+
+ if (terminal->pvt->pty_channel != NULL) {
+@@ -14440,7 +14461,7 @@
+ _vte_terminal_setup_utf8 (terminal);
+
+ /* Open channels to listen for input on. */
+- _vte_terminal_connect_pty_read (terminal);
++ vte_terminal_connect_pty_read (terminal);
+
+ g_object_notify(object, "pty");
+ g_object_notify(object, "pty-object");
+@@ -14567,6 +14588,50 @@
+ }
+ }
+
++/**
++ * vte_terminal_get_selection_block_mode:
++ * @terminal: a #VteTerminal
++ *
++ * Checks whether or not block selection is enabled.
++ *
++ * Returns: %TRUE if block selection is enabled, %FALSE if not
++ */
++gboolean
++vte_terminal_get_selection_block_mode(VteTerminal *terminal) {
++ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE);
++ return terminal->pvt->selection_block_mode;
++}
++
++/**
++ * vte_terminal_set_selection_block_mode:
++ * @terminal: a #VteTerminal
++ * @block_mode: whether block selection is enabled
++ *
++ * Sets whether or not block selection is enabled.
++ */
++void
++vte_terminal_set_selection_block_mode(VteTerminal *terminal, gboolean block_mode) {
++ g_return_if_fail(VTE_IS_TERMINAL(terminal));
++ terminal->pvt->selection_block_mode = block_mode;
++}
++
++/**
++ * vte_terminal_select_text:
++ * @terminal: a #VteTerminal
++ * @start_col: the starting column for the selection
++ * @start_row: the starting row for the selection
++ * @end_col: the end column for the selection
++ * @end_row: the end row for the selection
++ *
++ * Sets the current selection region.
++ */
++void
++vte_terminal_select_text(VteTerminal *terminal,
++ long start_col, long start_row,
++ long end_col, long end_row) {
++ _vte_terminal_select_text(terminal, start_col, start_row, end_col, end_row, 0, 0);
++}
++
+ void
+ _vte_terminal_select_text(VteTerminal *terminal,
+ long start_col, long start_row,
+diff -aur vte-0.32.2-old/src/vte.h vte-0.32.2/src/vte.h
+--- vte-0.32.2-old/src/vte.h 2012-07-13 21:09:04.003969877 -0400
++++ vte-0.32.2/src/vte.h 2012-08-30 04:30:09.695999432 -0400
+@@ -296,6 +296,15 @@
+ /* simple manipulation of selection */
+ void vte_terminal_select_all(VteTerminal *terminal);
+ void vte_terminal_select_none(VteTerminal *terminal);
++gboolean vte_terminal_get_selection_block_mode(VteTerminal *terminal);
++void vte_terminal_set_selection_block_mode(VteTerminal *terminal, gboolean block_mode);
++void vte_terminal_select_text(VteTerminal *terminal,
++ long start_col, long start_row,
++ long end_col, long end_row);
++
++/* pause and unpause output */
++void vte_terminal_disconnect_pty_read(VteTerminal *vte);
++void vte_terminal_connect_pty_read(VteTerminal *vte);
+
+ /* Set the terminal's size. */
+ void vte_terminal_set_size(VteTerminal *terminal,
+@@ -435,6 +444,8 @@
+ GArray *attributes);
+ void vte_terminal_get_cursor_position(VteTerminal *terminal,
+ glong *column, glong *row);
++void vte_terminal_set_cursor_position(VteTerminal *terminal,
++ long column, long row);
+ /* Display string matching: clear all matching expressions. */
+ void vte_terminal_match_clear_all(VteTerminal *terminal);
+
+@@ -484,6 +495,7 @@
+ VtePty *vte_terminal_get_pty_object(VteTerminal *terminal);
+
+ char *vte_get_user_shell (void);
++char *vte_terminal_get_user_shell_with_fallback(void);
+
+ /* Accessors for bindings. */
+ #if !GTK_CHECK_VERSION (2, 91, 2)
diff --git a/vte3/vte-0.30.1-alt-meta.patch b/vte3/vte-0.30.1-alt-meta.patch
new file mode 100644
index 000000000..bd364be58
--- /dev/null
+++ b/vte3/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
+

Generated by cgit