summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorhaawda2018-04-06 08:47:16 +0200
committerhaawda2018-04-06 08:47:16 +0200
commitd7d11f8c443224ed919ca7a7ec20fdccd27d0df2 (patch)
tree9ba0dfb459949465e49002fa3f3df0b7a221f08b
downloadaur-d7d11f8c443224ed919ca7a7ec20fdccd27d0df2.tar.gz
Initial import in AUR
-rw-r--r--.SRCINFO28
-rw-r--r--PKGBUILD46
-rw-r--r--bracketed_paste_mode_fix.patch83
-rw-r--r--make_alt_work.patch50
-rw-r--r--scroll_region.patch67
5 files changed, 274 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..074bc61b748e
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,28 @@
+# Generated by mksrcinfo v8
+# Fri Apr 6 06:47:00 UTC 2018
+pkgbase = vte-legacy
+ pkgdesc = Virtual Terminal Emulator widget for use with GTK2
+ pkgver = 0.28.2
+ pkgrel = 9
+ url = http://www.gnome.org
+ arch = i686
+ arch = x86_64
+ license = LGPL
+ makedepends = pygtk
+ makedepends = intltool
+ makedepends = gobject-introspection
+ makedepends = pygobject2-devel
+ depends = gtk2
+ depends = vte-common
+ options = !emptydirs
+ source = http://ftp.gnome.org/pub/GNOME/sources/vte/0.28/vte-0.28.2.tar.xz
+ source = make_alt_work.patch
+ source = scroll_region.patch
+ source = bracketed_paste_mode_fix.patch
+ sha256sums = 86cf0b81aa023fa93ed415653d51c96767f20b2d7334c893caba71e42654b0ae
+ sha256sums = 2cd58ffffd42a9d59e05369c2efa1e70b7d32bfb5c8cdbd67b3b95ae3c3e6d61
+ sha256sums = 9a99c486b1c0377a4b8c6fae25067c68913bded2988fafea2c86f5adf6a49c81
+ sha256sums = 634d4526efdff9fac0e75cb056afb0a886354cd52c5dc98f5a70bef282631724
+
+pkgname = vte-legacy
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..dab9b75b2df7
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,46 @@
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Stefan Husmann <Stefan-Husmann@t-online.de>
+
+pkgname=vte-legacy
+pkgver=0.28.2
+pkgrel=9
+pkgdesc="Virtual Terminal Emulator widget for use with GTK2"
+arch=('i686' 'x86_64')
+license=('LGPL')
+options=('!emptydirs')
+depends=('gtk2' 'vte-common')
+makedepends=('pygtk' 'intltool' 'gobject-introspection' 'pygobject2-devel')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/GNOME/sources/vte/0.28/vte-$pkgver.tar.xz
+ make_alt_work.patch
+ scroll_region.patch
+ bracketed_paste_mode_fix.patch)
+sha256sums=('86cf0b81aa023fa93ed415653d51c96767f20b2d7334c893caba71e42654b0ae'
+ '2cd58ffffd42a9d59e05369c2efa1e70b7d32bfb5c8cdbd67b3b95ae3c3e6d61'
+ '9a99c486b1c0377a4b8c6fae25067c68913bded2988fafea2c86f5adf6a49c81'
+ '634d4526efdff9fac0e75cb056afb0a886354cd52c5dc98f5a70bef282631724')
+
+prepare() {
+ cd vte-$pkgver
+ patch -Np1 -i ../make_alt_work.patch
+ patch -Np1 -i ../scroll_region.patch
+ patch -Np1 -i ../bracketed_paste_mode_fix.patch
+ rm -r doc/reference/html
+}
+build() {
+ cd vte-$pkgver
+ #warning: type-punning to incomplete type might break strict-aliasing rules
+ export CFLAGS="$CFLAGS -fno-strict-aliasing"
+
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/vte \
+ --localstatedir=/var --disable-static \
+ --enable-introspection --with-gtk=2.0 --disable-gnome-pty-helper
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+ make
+}
+
+package(){
+ cd vte-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/bracketed_paste_mode_fix.patch b/bracketed_paste_mode_fix.patch
new file mode 100644
index 000000000000..c41ca6f8ff43
--- /dev/null
+++ b/bracketed_paste_mode_fix.patch
@@ -0,0 +1,83 @@
+commit 7206376160aac2743a93f70a4726bad4f34fa688
+Author: Fuujuhi <fuujuhi-ml1@noekeon.org>
+Date: Wed Jul 30 15:52:52 2014 +0200
+
+ backporting vte bracked paste mode bug patch on v0.28.2-5ubuntu1
+
+ See https://bugzilla.gnome.org/show_bug.cgi?id=729533
+ Patch at https://bugzilla.gnome.org/attachment.cgi?id=279320
+
+diff --git a/src/vte-private.h b/src/vte-private.h
+index 65d5022..ac1f2d8 100644
+--- a/src/vte-private.h
++++ b/src/vte-private.h
+@@ -219,7 +219,6 @@ struct _VteTerminalPrivate {
+ 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 @@ struct _VteTerminalPrivate {
+ gboolean text_modified_flag;
+ gboolean text_inserted_flag;
+ gboolean text_deleted_flag;
++ gboolean bracketed_paste_mode;
+
+ /* Scrolling options. */
+ gboolean scroll_background;
+diff --git a/src/vte.c b/src/vte.c
+index c20ee78..dbab6de 100644
+--- a/src/vte.c
++++ b/src/vte.c
+@@ -5823,10 +5823,10 @@ static void mark_output_source_invalid(VteTerminal *terminal)
+ 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);
+ }
+@@ -14106,14 +14106,12 @@ static void mark_output_source_invalid(VteTerminal *terminal)
+ 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);
+@@ -14143,6 +14141,8 @@ static void mark_output_source_invalid(VteTerminal *terminal)
+ 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 --git a/src/vteseq.c b/src/vteseq.c
+index 209522f..8c8d43c 100644
+--- a/src/vteseq.c
++++ b/src/vteseq.c
+@@ -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/make_alt_work.patch b/make_alt_work.patch
new file mode 100644
index 000000000000..65c3ddf1fcf8
--- /dev/null
+++ b/make_alt_work.patch
@@ -0,0 +1,50 @@
+From a9d6a34708f846952f423d078397352858f7b1a4 Mon Sep 17 00:00:00 2001
+From: Christian Persch <chpe@gnome.org>
+Date: Sat, 12 May 2012 18:48:05 +0200
+Subject: [PATCH] keymap: Treat ALT as META
+
+https://bugzilla.gnome.org/show_bug.cgi?id=663779
+---
+ src/vte.c | 23 ++++++++++++++---------
+ 1 files changed, 14 insertions(+), 9 deletions(-)
+
+diff --git a/src/vte.c b/src/vte.c
+index dd27e9a..0657921 100644
+--- a/src/vte.c
++++ b/src/vte.c
+@@ -5170,19 +5170,24 @@ static void
+ vte_terminal_read_modifiers (VteTerminal *terminal,
+ GdkEvent *event)
+ {
++ GdkKeymap *keymap;
+ GdkModifierType modifiers;
+
+ /* Read the modifiers. */
+- if (gdk_event_get_state((GdkEvent*)event, &modifiers)) {
+- GdkKeymap *keymap;
+-#if GTK_CHECK_VERSION (2, 90, 8)
+- keymap = gdk_keymap_get_for_display(gdk_window_get_display(((GdkEventAny*)event)->window));
+-#else
+- keymap = gdk_keymap_get_for_display(gdk_drawable_get_display(((GdkEventAny*)event)->window));
++ if (!gdk_event_get_state((GdkEvent*)event, &modifiers))
++ return;
++
++ keymap = gdk_keymap_get_for_display(gdk_window_get_display(((GdkEventAny*)event)->window));
++
++ gdk_keymap_add_virtual_modifiers (keymap, &modifiers);
++
++#if 1
++ /* HACK! Treat ALT as META; see bug #663779. */
++ if (modifiers & GDK_MOD1_MASK)
++ modifiers |= VTE_META_MASK;
+ #endif
+- gdk_keymap_add_virtual_modifiers (keymap, &modifiers);
+- terminal->pvt->modifiers = modifiers;
+- }
++
++ terminal->pvt->modifiers = modifiers;
+ }
+
+ /* Read and handle a keypress event. */
+--
+1.7.5.1.217.g4e3aa.dirty \ No newline at end of file
diff --git a/scroll_region.patch b/scroll_region.patch
new file mode 100644
index 000000000000..9e3e83b1262a
--- /dev/null
+++ b/scroll_region.patch
@@ -0,0 +1,67 @@
+Index: vte-0.26.0/src/vte.c
+===================================================================
+--- vte-0.26.0.orig/src/vte.c 2010-11-30 23:04:53.000000000 -0800
++++ vte-0.26.0/src/vte.c 2010-12-07 20:05:07.865548000 -0800
+@@ -3862,6 +3862,7 @@ vte_terminal_process_incoming(VteTermina
+ long wcount, start, delta;
+ gboolean leftovers, modified, bottom, again;
+ gboolean invalidated_text;
++ gboolean in_scroll_region;
+ GArray *unichars;
+ struct _vte_incoming_chunk *chunk, *next_chunk, *achunk = NULL;
+
+@@ -3881,6 +3882,10 @@ vte_terminal_process_incoming(VteTermina
+ cursor = screen->cursor_current;
+ cursor_visible = terminal->pvt->cursor_visible;
+
++ in_scroll_region = screen->scrolling_restricted
++ && (screen->cursor_current.row >= (screen->insert_delta + screen->scrolling_region.start))
++ && (screen->cursor_current.row <= (screen->insert_delta + screen->scrolling_region.end));
++
+ /* We should only be called when there's data to process. */
+ g_assert(terminal->pvt->incoming ||
+ (terminal->pvt->pending->len > 0));
+@@ -3979,6 +3984,8 @@ skip_chunk:
+ * points to the first character which isn't part of this
+ * sequence. */
+ if ((match != NULL) && (match[0] != '\0')) {
++ gboolean new_in_scroll_region;
++
+ /* Call the right sequence handler for the requested
+ * behavior. */
+ _vte_terminal_handle_sequence(terminal,
+@@ -3989,12 +3996,20 @@ skip_chunk:
+ start = (next - wbuf);
+ modified = TRUE;
+
+- /* if we have moved during the sequence handler, restart the bbox */
++ new_in_scroll_region = screen->scrolling_restricted
++ && (screen->cursor_current.row >= (screen->insert_delta + screen->scrolling_region.start))
++ && (screen->cursor_current.row <= (screen->insert_delta + screen->scrolling_region.end));
++
++ delta = screen->scroll_delta; /* delta may have changed from sequence. */
++
++ /* if we have moved greatly during the sequence handler, or moved into a scroll_region
++ * from outside it, restart the bbox */
+ if (invalidated_text &&
+- (screen->cursor_current.col > bbox_bottomright.x + VTE_CELL_BBOX_SLACK ||
+- screen->cursor_current.col < bbox_topleft.x - VTE_CELL_BBOX_SLACK ||
+- screen->cursor_current.row > bbox_bottomright.y + VTE_CELL_BBOX_SLACK ||
+- screen->cursor_current.row < bbox_topleft.y - VTE_CELL_BBOX_SLACK)) {
++ ((new_in_scroll_region && !in_scroll_region) ||
++ (screen->cursor_current.col > bbox_bottomright.x + VTE_CELL_BBOX_SLACK ||
++ screen->cursor_current.col < bbox_topleft.x - VTE_CELL_BBOX_SLACK ||
++ screen->cursor_current.row > bbox_bottomright.y + VTE_CELL_BBOX_SLACK ||
++ screen->cursor_current.row < bbox_topleft.y - VTE_CELL_BBOX_SLACK))) {
+ /* Clip off any part of the box which isn't already on-screen. */
+ bbox_topleft.x = MAX(bbox_topleft.x, 0);
+ bbox_topleft.y = MAX(bbox_topleft.y, delta);
+@@ -4014,6 +4029,8 @@ skip_chunk:
+ bbox_bottomright.x = bbox_bottomright.y = -G_MAXINT;
+ bbox_topleft.x = bbox_topleft.y = G_MAXINT;
+ }
++
++ in_scroll_region = new_in_scroll_region;
+ } else
+ /* Second, we have a NULL match, and next points to the very
+ * next character in the buffer. Insert the character which