diff options
Diffstat (limited to 'pkgs/desktops/gnome-3/3.18/core/vte')
-rw-r--r-- | pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix | 40 | ||||
-rw-r--r-- | pkgs/desktops/gnome-3/3.18/core/vte/default.nix | 39 | ||||
-rw-r--r-- | pkgs/desktops/gnome-3/3.18/core/vte/expose_select_text.0.40.0.patch | 226 | ||||
-rw-r--r-- | pkgs/desktops/gnome-3/3.18/core/vte/src.nix | 10 |
4 files changed, 315 insertions, 0 deletions
diff --git a/pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix b/pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix new file mode 100644 index 00000000000..5ccca36bcaa --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses, gobjectIntrospection }: + +stdenv.mkDerivation rec { + versionMajor = "0.36"; + versionMinor = "3"; + moduleName = "vte"; + + name = "${moduleName}-${versionMajor}.${versionMinor}"; + + src = fetchurl { + url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz"; + sha256 = "54e5b07be3c0f7b158302f54ee79d4de1cb002f4259b6642b79b1e0e314a959c"; + }; + + buildInputs = [ gobjectIntrospection intltool pkgconfig gnome3.glib gnome3.gtk3 ncurses ]; + + configureFlags = [ "--enable-introspection" ]; + + enableParallelBuilding = true; + + postInstall = '' + substituteInPlace $out/lib/libvte2_90.la --replace "-lncurses" "-L${ncurses}/lib -lncurses" + ''; + + meta = with stdenv.lib; { + homepage = http://www.gnome.org/; + description = "A library implementing a terminal emulator widget for GTK+"; + longDescription = '' + VTE is a library (libvte) implementing a terminal emulator widget for + GTK+, and a minimal sample application (vte) using that. Vte is + mainly used in gnome-terminal, but can also be used to embed a + console/terminal in games, editors, IDEs, etc. VTE supports Unicode and + character set conversion, as well as emulating any terminal known to + the system's terminfo database. + ''; + license = licenses.lgpl2; + maintainers = with maintainers; [ astsmtl antono lethalman ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/vte/default.nix b/pkgs/desktops/gnome-3/3.18/core/vte/default.nix new file mode 100644 index 00000000000..b47381cf61b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/vte/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses, gobjectIntrospection, vala, libxml2 +, gnutls, selectTextPatch ? false }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + patches = with stdenv.lib; optional selectTextPatch ./expose_select_text.0.40.0.patch; + + buildInputs = [ gobjectIntrospection intltool pkgconfig gnome3.glib + gnome3.gtk3 ncurses vala libxml2 ]; + + propagatedBuildInputs = [ gnutls ]; + + preConfigure = "patchShebangs ."; + + configureFlags = [ "--enable-introspection" ]; + + enableParallelBuilding = true; + + postInstall = '' + substituteInPlace $out/lib/libvte2_90.la --replace "-lncurses" "-L${ncurses}/lib -lncurses" + ''; + + meta = with stdenv.lib; { + homepage = http://www.gnome.org/; + description = "A library implementing a terminal emulator widget for GTK+"; + longDescription = '' + VTE is a library (libvte) implementing a terminal emulator widget for + GTK+, and a minimal sample application (vte) using that. Vte is + mainly used in gnome-terminal, but can also be used to embed a + console/terminal in games, editors, IDEs, etc. VTE supports Unicode and + character set conversion, as well as emulating any terminal known to + the system's terminfo database. + ''; + license = licenses.lgpl2; + maintainers = with maintainers; [ astsmtl antono lethalman ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/vte/expose_select_text.0.40.0.patch b/pkgs/desktops/gnome-3/3.18/core/vte/expose_select_text.0.40.0.patch new file mode 100644 index 00000000000..c18f1b76b41 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/vte/expose_select_text.0.40.0.patch @@ -0,0 +1,226 @@ +Only in vte-0.40.0.new: .git +diff --unified -aur vte-0.40.0/src/vteaccess.c vte-0.40.0.new/src/vteaccess.c +--- vte-0.40.0/src/vteaccess.c 2015-03-16 06:34:37.000000000 -0400 ++++ vte-0.40.0.new/src/vteaccess.c 2015-04-10 00:08:53.146853382 -0400 +@@ -1444,7 +1444,7 @@ + *start_offset = offset_from_xy (priv, start_x, start_y); + _vte_terminal_get_end_selection (terminal, &end_x, &end_y); + *end_offset = offset_from_xy (priv, end_x, end_y); +- return _vte_terminal_get_selection (terminal); ++ return vte_terminal_get_selection (terminal); + } + + static gboolean +diff --unified -aur vte-0.40.0/src/vte.c vte-0.40.0.new/src/vte.c +--- vte-0.40.0/src/vte.c 2015-03-18 12:38:09.000000000 -0400 ++++ vte-0.40.0.new/src/vte.c 2015-04-10 00:08:53.150186722 -0400 +@@ -123,7 +123,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); + +@@ -3344,9 +3343,10 @@ + _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) + { ++ g_return_if_fail(VTE_IS_TERMINAL(terminal)); + if (terminal->pvt->pty_channel == NULL) { + return; + } +@@ -3398,9 +3398,10 @@ + } + } + +-static void +-_vte_terminal_disconnect_pty_read(VteTerminal *terminal) ++void ++vte_terminal_disconnect_pty_read(VteTerminal *terminal) + { ++ g_return_if_fail(VTE_IS_TERMINAL(terminal)); + if (terminal->pvt->pty_input_source != 0) { + _vte_debug_print (VTE_DEBUG_IO, "disconnecting poll of vte_terminal_io_read\n"); + g_source_remove(terminal->pvt->pty_input_source); +@@ -6302,6 +6303,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->cursor.col = column; ++ terminal->pvt->cursor.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) + { +@@ -6465,7 +6488,7 @@ + vte_terminal_extend_selection(terminal, x, y, FALSE, TRUE); + + /* Temporarily stop caring about input from the child. */ +- _vte_terminal_disconnect_pty_read(terminal); ++ vte_terminal_disconnect_pty_read(terminal); + } + + static gboolean +@@ -6482,7 +6505,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; + } +@@ -6982,6 +7005,50 @@ + vte_terminal_deselect_all (terminal); + } + ++/** ++ * 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); ++} ++ + /* Autoscroll a bit. */ + static gboolean + vte_terminal_autoscroll(VteTerminal *terminal) +@@ -8631,7 +8698,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); +@@ -12188,7 +12255,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) { +@@ -12243,7 +12310,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"); + +@@ -12276,7 +12343,7 @@ + } + + char * +-_vte_terminal_get_selection(VteTerminal *terminal) ++vte_terminal_get_selection(VteTerminal *terminal) + { + g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL); + +diff --unified -aur vte-0.40.0/src/vteint.h vte-0.40.0.new/src/vteint.h +--- vte-0.40.0/src/vteint.h 2014-05-28 08:22:48.000000000 -0400 ++++ vte-0.40.0.new/src/vteint.h 2015-04-10 00:08:53.153520062 -0400 +@@ -25,7 +25,6 @@ + G_BEGIN_DECLS + + void _vte_terminal_accessible_ref(VteTerminal *terminal); +-char* _vte_terminal_get_selection(VteTerminal *terminal); + void _vte_terminal_get_start_selection(VteTerminal *terminal, long *x, long *y); + void _vte_terminal_get_end_selection(VteTerminal *terminal, long *x, long *y); + void _vte_terminal_select_text(VteTerminal *terminal, long start_x, long start_y, long end_x, long end_y, int start_offset, int end_offset); +diff --unified -aur vte-0.40.0/src/vteterminal.h vte-0.40.0.new/src/vteterminal.h +--- vte-0.40.0/src/vteterminal.h 2015-03-18 12:38:09.000000000 -0400 ++++ vte-0.40.0.new/src/vteterminal.h 2015-04-10 00:08:53.150186722 -0400 +@@ -169,6 +169,18 @@ + + void vte_terminal_select_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); + void vte_terminal_unselect_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); ++gboolean vte_terminal_get_selection_block_mode(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); ++void vte_terminal_set_selection_block_mode(VteTerminal *terminal, ++ gboolean block_mode) _VTE_GNUC_NONNULL(1); ++void vte_terminal_select_text(VteTerminal *terminal, ++ long start_col, long start_row, ++ long end_col, long end_row) _VTE_GNUC_NONNULL(1); ++char * ++vte_terminal_get_selection(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); ++ ++/* pause and unpause output */ ++void vte_terminal_disconnect_pty_read(VteTerminal *vte); ++void vte_terminal_connect_pty_read(VteTerminal *vte); + + /* By-word selection */ + void vte_terminal_set_word_char_exceptions(VteTerminal *terminal, +@@ -280,6 +292,8 @@ + void vte_terminal_get_cursor_position(VteTerminal *terminal, + glong *column, + glong *row) _VTE_GNUC_NONNULL(1); ++void vte_terminal_set_cursor_position(VteTerminal *terminal, ++ long column, long row) _VTE_GNUC_NONNULL(1); + + /* Add a matching expression, returning the tag the widget assigns to that + * expression. */ diff --git a/pkgs/desktops/gnome-3/3.18/core/vte/src.nix b/pkgs/desktops/gnome-3/3.18/core/vte/src.nix new file mode 100644 index 00000000000..ea6e39182fc --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/vte/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "vte-0.42.0"; + + src = fetchurl { + url = mirror://gnome/sources/vte/0.42/vte-0.42.0.tar.xz; + sha256 = "2168f79d2043cbbe6d4375d01e54cebda71bb6f5d9dc8ad658b9a1dc1052de04"; + }; +} |