ports/contrib (3.1): vte3: opt -> contrib
commit c495a1e0602e0ff99f208f027110a4cfe19725af Author: Danny Rawlins <monster.romster@gmail.com> Date: Sun Nov 9 02:20:22 2014 +1100 vte3: opt -> contrib diff --git a/vte3/.footprint b/vte3/.footprint new file mode 100644 index 0000000..4607edb --- /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 0000000..05e306d --- /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 0000000..31ac1f9 --- /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 0000000..80a2a44 --- /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 0000000..bd364be --- /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 +
participants (1)
-
crux@crux.nu