diff --git a/vte-0.62.3.tar.xz b/vte-0.62.3.tar.xz deleted file mode 100644 index 5ddea795f3a0b654a0ee53a9191e8f5257cab6ea..0000000000000000000000000000000000000000 Binary files a/vte-0.62.3.tar.xz and /dev/null differ diff --git a/vte-0.68.0.tar.xz b/vte-0.68.0.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..d6711a84fe57396975c26bbbd3ad07f1aec9696a Binary files /dev/null and b/vte-0.68.0.tar.xz differ diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index 59ad6b543ef5966bd750a38218d187e5eb92dafd..bb93ced7786709525b9aa1d2cdead73d7d2d65ed 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,7 +1,7 @@ -From 0728f06f528c1ba77a8671c529e44fbabd9c8980 Mon Sep 17 00:00:00 2001 +From c809170f42582f3f02fbcc10e5157ebae9efd0ce Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 -Subject: [PATCH 01/10] Add sequences and signals for desktop notification +Subject: [PATCH 01/11] Add sequences and signals for desktop notification Add sequences OSC 777 ; notify ; SUMMARY ; BODY BEL @@ -18,16 +18,16 @@ https://phab.enlightenment.org/T1765 https://bugzilla.gnome.org/show_bug.cgi?id=711059 --- src/marshal.list | 1 + - src/vte.cc | 9 +++++++++ + src/vte.cc | 8 ++++++++ src/vte/vteterminal.h | 4 +++- src/vtegtk.cc | 21 +++++++++++++++++++++ src/vtegtk.hh | 1 + src/vteinternal.hh | 8 ++++++++ src/vteseq.cc | 32 +++++++++++++++++++++++++++++++- - 7 files changed, 74 insertions(+), 2 deletions(-) + 7 files changed, 73 insertions(+), 2 deletions(-) diff --git a/src/marshal.list b/src/marshal.list -index 241128c3ccfe..4412cf3d5f5c 100644 +index 241128c3..4412cf3d 100644 --- a/src/marshal.list +++ b/src/marshal.list @@ -1,3 +1,4 @@ @@ -36,46 +36,47 @@ index 241128c3ccfe..4412cf3d5f5c 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index c33b27c45023..01c7dd7eebc4 100644 +index 8b75883f..05cc5589 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10135,6 +10135,15 @@ Terminal::emit_pending_signals() +@@ -10032,6 +10032,14 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); -+ if (m_notification_received) { ++ if (m_pending_changes & vte::to_integral(PendingChanges::NOTIFICATION)) { + _vte_debug_print (VTE_DEBUG_SIGNALS, + "Emitting `notification-received'.\n"); + g_signal_emit(freezer.get(), signals[SIGNAL_NOTIFICATION_RECEIVED], 0, + m_notification_summary.c_str(), + m_notification_body.c_str()); -+ m_notification_received = false; + } + - if (m_window_title_changed) { + if (m_pending_changes & vte::to_integral(PendingChanges::TITLE)) { if (m_window_title != m_window_title_pending) { m_window_title.swap(m_window_title_pending); diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index d5e96535a867..71c4c66cc4ee 100644 +index 41f153d0..1e9a737a 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -104,8 +104,10 @@ struct _VteTerminalClass { +@@ -108,10 +108,12 @@ struct _VteTerminalClass { void (*bell)(VteTerminal* terminal); + void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); + - /* Padding for future expansion. */ -- gpointer padding[16]; -+ gpointer padding[15]; + #if _VTE_GTK == 3 + /* Compatibility padding due to fedora patches intruding on our ABI */ + /*< private >*/ +- gpointer _extra_padding[3]; ++ gpointer _extra_padding[2]; + #endif /* _VTE_GTK == 3 */ - VteTerminalClassPrivate *priv; - }; + /* Add new vfuncs here, and subtract from the padding below. */ diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index f7a65f72b68e..30e0af0f8015 100644 +index 05b82294..a09a2f75 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -934,6 +934,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1242,6 +1242,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; @@ -83,7 +84,7 @@ index f7a65f72b68e..30e0af0f8015 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -1015,6 +1016,26 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1325,6 +1326,26 @@ vte_terminal_class_init(VteTerminalClass *klass) G_OBJECT_CLASS_TYPE(klass), g_cclosure_marshal_VOID__INTv); @@ -111,34 +112,41 @@ index f7a65f72b68e..30e0af0f8015 100644 * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index cb207e57f928..b44dfd13a054 100644 +index 6b7a1ea2..8ba10395 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -56,6 +56,7 @@ enum { - SIGNAL_TEXT_INSERTED, - SIGNAL_TEXT_MODIFIED, - SIGNAL_TEXT_SCROLLED, +@@ -52,6 +52,7 @@ enum { + SIGNAL_RESIZE_WINDOW, + SIGNAL_RESTORE_WINDOW, + SIGNAL_SELECTION_CHANGED, + SIGNAL_NOTIFICATION_RECEIVED, SIGNAL_WINDOW_TITLE_CHANGED, LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 333f858c164e..7608eecc38d9 100644 +index eb95ad68..69a32276 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -917,6 +917,11 @@ public: +@@ -660,6 +660,10 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; + /* desktop notification */ -+ bool m_notification_received{false}; + std::string m_notification_summary; + std::string m_notification_body; + std::string m_window_title{}; std::string m_current_directory_uri{}; std::string m_current_file_uri{}; -@@ -1634,6 +1639,9 @@ public: +@@ -673,6 +677,7 @@ public: + TITLE = 1u << 0, + CWD = 1u << 1, + CWF = 1u << 2, ++ NOTIFICATION = 1u << 3, + }; + unsigned m_pending_changes{0}; + +@@ -1488,6 +1493,9 @@ public: int osc) noexcept; /* OSC handlers */ @@ -149,10 +157,10 @@ index 333f858c164e..7608eecc38d9 100644 vte::parser::StringTokeniser::const_iterator& token, vte::parser::StringTokeniser::const_iterator const& endtoken, diff --git a/src/vteseq.cc b/src/vteseq.cc -index ba9a2df6b9c4..c765b0bfb1f4 100644 +index 874d2405..537e8e13 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1377,6 +1377,33 @@ Terminal::delete_lines(vte::grid::row_t param) +@@ -1376,6 +1376,33 @@ Terminal::delete_lines(vte::grid::row_t param) m_text_deleted_flag = TRUE; } @@ -172,7 +180,7 @@ index ba9a2df6b9c4..c765b0bfb1f4 100644 + + m_notification_summary = *token; + m_notification_body.clear(); -+ m_notification_received = true; ++ m_pending_changes |= vte::to_integral(PendingChanges::NOTIFICATION); + ++token; + + if (token == endtoken) @@ -186,7 +194,7 @@ index ba9a2df6b9c4..c765b0bfb1f4 100644 bool Terminal::get_osc_color_index(int osc, int value, -@@ -6475,6 +6502,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6541,6 +6568,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); break; @@ -197,7 +205,7 @@ index ba9a2df6b9c4..c765b0bfb1f4 100644 case VTE_OSC_XTERM_SET_ICON_TITLE: case VTE_OSC_XTERM_SET_XPROPERTY: case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: -@@ -6515,7 +6546,6 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6582,7 +6613,6 @@ Terminal::OSC(vte::parser::Sequence const& seq) case VTE_OSC_URXVT_SET_FONT_BOLD_ITALIC: case VTE_OSC_URXVT_VIEW_UP: case VTE_OSC_URXVT_VIEW_DOWN: @@ -206,13 +214,13 @@ index ba9a2df6b9c4..c765b0bfb1f4 100644 default: break; -- -2.25.4 +2.35.1 -From 4c3bce7d70e208bee0f36d64a540ade9975c3ce7 Mon Sep 17 00:00:00 2001 +From 05a642746f1c3985ea204571e0179a1147dda1a9 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 -Subject: [PATCH 02/10] vte.sh: Emit OSC 777 from PROMPT_COMMAND +Subject: [PATCH 02/11] vte.sh: Emit OSC 777 from PROMPT_COMMAND For some reason, the three consecutive backslashes break the parsing. As Christian Persch suggested, replacing the double quotes with @@ -224,10 +232,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711059 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vte.sh.in b/src/vte.sh.in -index a12e254b6cba..f7c4fdeff30b 100644 +index 242d6c42..50242223 100644 --- a/src/vte.sh.in +++ b/src/vte.sh.in -@@ -27,10 +27,12 @@ __vte_osc7 () { +@@ -33,10 +33,12 @@ __vte_osc7 () { } __vte_prompt_command() { @@ -242,13 +250,13 @@ index a12e254b6cba..f7c4fdeff30b 100644 } -- -2.25.4 +2.35.1 -From 5171a84e95ad20048dcb1683c149711430002149 Mon Sep 17 00:00:00 2001 +From d0cca4421d0108b0f9e23ea03ea5e99f745646a6 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 -Subject: [PATCH 03/10] Test the notification-received signal +Subject: [PATCH 03/11] Test the notification-received signal --- bindings/vala/app.vala | 7 +++++++ @@ -256,7 +264,7 @@ Subject: [PATCH 03/10] Test the notification-received signal 2 files changed, 17 insertions(+) diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala -index fc26c2b0dfc3..634b8ddeeb91 100644 +index 4bcb5804..06546440 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -309,6 +309,8 @@ class Window : Gtk.ApplicationWindow @@ -281,11 +289,11 @@ index fc26c2b0dfc3..634b8ddeeb91 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index d8bfe9e13826..e95f58cd3bac 100644 +index 3b7835aa..fc8220a5 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1851,6 +1851,14 @@ window_window_title_changed_cb(VteTerminal* terminal, - vte_terminal_get_window_title(window->terminal)); +@@ -2209,6 +2209,14 @@ window_window_title_changed_cb(VteTerminal* terminal, + gtk_window_set_title(GTK_WINDOW(window), title && title[0] ? title : "Terminal"); } +static void @@ -299,42 +307,42 @@ index d8bfe9e13826..e95f58cd3bac 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2086,6 +2094,8 @@ vteapp_window_constructed(GObject *object) +@@ -2505,6 +2513,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); + g_signal_connect(window->terminal, "notification-received", G_CALLBACK(notification_received_cb), NULL); + /* Settings */ + #if VTE_GTK == 3 if (options.no_double_buffer) { - G_GNUC_BEGIN_IGNORE_DEPRECATIONS; -- -2.25.4 +2.35.1 -From ed262358646832779ee0eb5afa0a8a7a6c1c2adf Mon Sep 17 00:00:00 2001 +From e87bc628fdecf7480c12b861ba3fb98b03abe4d9 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 -Subject: [PATCH 04/10] Add a property to configure the scroll speed +Subject: [PATCH 04/11] Add a property to configure the scroll speed By default, it is set to zero which gives the current behaviour of moving the buffer by a function of the number of visible rows. https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- - doc/reference/vte-sections.txt | 1 + - src/vte.cc | 19 +++++++++++++- - src/vte/vteterminal.h | 4 +++ - src/vtegtk.cc | 45 ++++++++++++++++++++++++++++++++++ - src/vtegtk.hh | 1 + - src/vteinternal.hh | 2 ++ - 6 files changed, 71 insertions(+), 1 deletion(-) + doc/reference/vte-sections.txt.in | 1 + + src/vte.cc | 19 +++++++++++- + src/vte/vteterminal.h | 4 +++ + src/vtegtk.cc | 51 +++++++++++++++++++++++++++++++ + src/vtegtk.hh | 1 + + src/vteinternal.hh | 2 ++ + 6 files changed, 77 insertions(+), 1 deletion(-) -diff --git a/doc/reference/vte-sections.txt b/doc/reference/vte-sections.txt -index c222e7fdff0b..6da5eff30715 100644 ---- a/doc/reference/vte-sections.txt -+++ b/doc/reference/vte-sections.txt -@@ -52,6 +52,7 @@ vte_terminal_get_cursor_blink_mode +diff --git a/doc/reference/vte-sections.txt.in b/doc/reference/vte-sections.txt.in +index 283dd056..64907389 100644 +--- a/doc/reference/vte-sections.txt.in ++++ b/doc/reference/vte-sections.txt.in +@@ -58,6 +58,7 @@ vte_terminal_get_cursor_blink_mode vte_terminal_set_cursor_blink_mode vte_terminal_get_text_blink_mode vte_terminal_set_text_blink_mode @@ -343,24 +351,24 @@ index c222e7fdff0b..6da5eff30715 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index 01c7dd7eebc4..af73288b9f20 100644 +index 05cc5589..a4e6069d 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9334,6 +9334,7 @@ vte_cairo_get_clip_region (cairo_t *cr) +@@ -9239,6 +9239,7 @@ vte_cairo_get_clip_region(cairo_t *cr) bool - Terminal::widget_mouse_scroll(MouseEvent const& event) + Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) { + gdouble scroll_speed; gdouble v; gint cnt, i; int button; -@@ -9390,7 +9391,13 @@ Terminal::widget_mouse_scroll(MouseEvent const& event) +@@ -9273,7 +9274,13 @@ Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) return true; } -- v = MAX (1., ceil (gtk_adjustment_get_page_increment (m_vadjustment.get()) / 10.)); +- v = MAX (1., ceil (m_row_count /* page increment */ / 10.)); + if (m_scroll_speed == 0) { -+ scroll_speed = ceil (gtk_adjustment_get_page_increment (m_vadjustment.get()) / 10.); ++ scroll_speed = ceil (m_row_count /* page increment */ / 10.); + } else { + scroll_speed = m_scroll_speed; + } @@ -369,7 +377,7 @@ index 01c7dd7eebc4..af73288b9f20 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -9693,6 +9700,16 @@ Terminal::decscusr_cursor_shape() const noexcept +@@ -9583,6 +9590,16 @@ Terminal::decscusr_cursor_shape() const noexcept } } @@ -387,25 +395,25 @@ index 01c7dd7eebc4..af73288b9f20 100644 Terminal::set_scrollback_lines(long lines) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 71c4c66cc4ee..203c77e08c57 100644 +index 1e9a737a..b63967a3 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -306,6 +306,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, +@@ -330,6 +330,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, _VTE_PUBLIC VteCursorShape vte_terminal_get_cursor_shape(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); +_VTE_PUBLIC +void vte_terminal_set_scroll_speed(VteTerminal *terminal, -+ guint scroll_speed) _VTE_GNUC_NONNULL(1); ++ guint scroll_speed) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); + /* Set the number of scrollback lines, above or at an internal minimum. */ _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 30e0af0f8015..bf88b9481981 100644 +index a09a2f75..ab1de923 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -712,6 +712,9 @@ try +@@ -993,6 +993,9 @@ try case PROP_REWRAP_ON_RESIZE: g_value_set_boolean (value, vte_terminal_get_rewrap_on_resize (terminal)); break; @@ -415,7 +423,7 @@ index 30e0af0f8015..bf88b9481981 100644 case PROP_SCROLLBACK_LINES: g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal)); break; -@@ -827,6 +830,9 @@ try +@@ -1114,6 +1117,9 @@ try case PROP_REWRAP_ON_RESIZE: vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value)); break; @@ -425,7 +433,7 @@ index 30e0af0f8015..bf88b9481981 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -1917,6 +1923,21 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -2210,6 +2216,21 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -447,7 +455,7 @@ index 30e0af0f8015..bf88b9481981 100644 /** * VteTerminal:scrollback-lines: * -@@ -5324,6 +5345,30 @@ catch (...) +@@ -5726,6 +5747,36 @@ catch (...) return -1; } @@ -462,7 +470,9 @@ index 30e0af0f8015..bf88b9481981 100644 + * rows the widget can display. + */ +void -+vte_terminal_set_scroll_speed(VteTerminal *terminal, guint scroll_speed) ++vte_terminal_set_scroll_speed(VteTerminal *terminal, ++ guint scroll_speed) noexcept ++try +{ + g_return_if_fail(VTE_IS_TERMINAL(terminal)); + @@ -474,15 +484,19 @@ index 30e0af0f8015..bf88b9481981 100644 + + g_object_thaw_notify(object); +} ++catch (...) ++{ ++ vte::log_exception(); ++} + /** * vte_terminal_set_scrollback_lines: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index b44dfd13a054..30b917786b5b 100644 +index 8ba10395..f6cd891b 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -89,6 +89,7 @@ enum { +@@ -86,6 +86,7 @@ enum { PROP_MOUSE_POINTER_AUTOHIDE, PROP_PTY, PROP_REWRAP_ON_RESIZE, @@ -491,33 +505,33 @@ index b44dfd13a054..30b917786b5b 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 7608eecc38d9..79ea9e7f0da0 100644 +index 69a32276..d3e25179 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -696,6 +696,7 @@ public: - /* Scrolling options. */ +@@ -426,6 +426,7 @@ public: + bool m_fallback_scrolling{true}; bool m_scroll_on_output{false}; bool m_scroll_on_keystroke{true}; + guint m_scroll_speed; vte::grid::row_t m_scrollback_lines{0}; - /* Restricted scrolling */ -@@ -1512,6 +1513,7 @@ public: + inline auto scroll_limit_lower() const noexcept +@@ -1363,6 +1364,7 @@ public: bool set_input_enabled(bool enabled); bool set_mouse_autohide(bool autohide); bool set_rewrap_on_resize(bool rewrap); + bool set_scroll_speed(unsigned int scroll_speed); bool set_scrollback_lines(long lines); - bool set_scroll_on_keystroke(bool scroll); - bool set_scroll_on_output(bool scroll); + bool set_fallback_scrolling(bool set); + auto fallback_scrolling() const noexcept { return m_fallback_scrolling; } -- -2.25.4 +2.35.1 -From 73e7009c342747fbb3bdbef322811e09467dab9b Mon Sep 17 00:00:00 2001 +From f8a8d2adf1000720f269adb80473e8971bc51135 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 -Subject: [PATCH 05/10] Test the scroll-speed property +Subject: [PATCH 05/11] Test the scroll-speed property https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- @@ -526,7 +540,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1103380 2 files changed, 8 insertions(+) diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala -index 634b8ddeeb91..c984b868246d 100644 +index 06546440..552a702d 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -335,6 +335,7 @@ class Window : Gtk.ApplicationWindow @@ -555,10 +569,10 @@ index 634b8ddeeb91..c984b868246d 100644 "Specify the number of scrollback-lines", null }, { "transparent", 'T', 0, OptionArg.INT, ref transparency_percent, diff --git a/src/app/app.cc b/src/app/app.cc -index e95f58cd3bac..52893c87414a 100644 +index fc8220a5..c6f5cc0b 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -108,6 +108,7 @@ public: +@@ -118,6 +118,7 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; @@ -566,31 +580,31 @@ index e95f58cd3bac..52893c87414a 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -569,6 +570,8 @@ public: +@@ -620,6 +621,8 @@ public: "Reverse foreground/background colors", nullptr }, { "require-systemd-scope", 0, 0, G_OPTION_ARG_NONE, &require_systemd_scope, "Require use of a systemd user scope", nullptr }, + { "scroll-speed", 0, 0, G_OPTION_ARG_INT, &scroll_speed, + "Specify the scroll speed", nullptr }, + { "scroll-unit-is-pixels", 0, 0, G_OPTION_ARG_NONE, &scroll_unit_is_pixels, + "Use pixels as scroll unit", nullptr }, { "scrollback-lines", 'n', 0, G_OPTION_ARG_INT, &scrollback_lines, - "Specify the number of scrollback-lines (-1 for infinite)", nullptr }, - { "transparent", 'T', 0, G_OPTION_ARG_INT, &transparency_percent, -@@ -2127,6 +2130,7 @@ vteapp_window_constructed(GObject *object) +@@ -2549,6 +2552,7 @@ vteapp_window_constructed(GObject *object) vte_terminal_set_rewrap_on_resize(window->terminal, !options.no_rewrap); vte_terminal_set_scroll_on_output(window->terminal, false); vte_terminal_set_scroll_on_keystroke(window->terminal, true); + vte_terminal_set_scroll_speed(window->terminal, options.scroll_speed); + vte_terminal_set_scroll_unit_is_pixels(window->terminal, options.scroll_unit_is_pixels); vte_terminal_set_scrollback_lines(window->terminal, options.scrollback_lines); vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); - -- -2.25.4 +2.35.1 -From 2fe27cbe7cbb120e9055284c9e7e34423e5add49 Mon Sep 17 00:00:00 2001 +From 60d5670e793d2aa2ccda489e4e468bbc9c120908 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 -Subject: [PATCH 06/10] Support preexec notifications from an interactive shell +Subject: [PATCH 06/11] Support preexec notifications from an interactive shell Add sequences OSC 777 ; preexec BEL @@ -606,67 +620,71 @@ https://phab.enlightenment.org/T1765 https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 --- - src/vte.cc | 7 +++++++ - src/vte.sh.in | 2 +- + src/vte.cc | 6 ++++++ + src/vte.sh.in | 4 ++-- src/vte/vteterminal.h | 3 ++- src/vtegtk.cc | 18 ++++++++++++++++++ src/vtegtk.hh | 1 + - src/vteinternal.hh | 2 ++ + src/vteinternal.hh | 1 + src/vteseq.cc | 4 ++++ - 7 files changed, 35 insertions(+), 2 deletions(-) + 7 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index af73288b9f20..d77d27967b50 100644 +index a4e6069d..6d8ab2bb 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10161,6 +10161,13 @@ Terminal::emit_pending_signals() - m_notification_received = false; +@@ -10057,6 +10057,12 @@ Terminal::emit_pending_signals() + m_notification_body.c_str()); } -+ if (m_shell_preexec) { ++ if (m_pending_changes & vte::to_integral(PendingChanges::SHELL_PREEXEC)) { + _vte_debug_print (VTE_DEBUG_SIGNALS, + "Emitting `shell-preexec'.\n"); + g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PREEXEC], 0); -+ m_shell_preexec = FALSE; + } + - if (m_window_title_changed) { + if (m_pending_changes & vte::to_integral(PendingChanges::TITLE)) { if (m_window_title != m_window_title_pending) { m_window_title.swap(m_window_title_pending); diff --git a/src/vte.sh.in b/src/vte.sh.in -index f7c4fdeff30b..ec094db032c7 100644 +index 50242223..01b44e23 100644 --- a/src/vte.sh.in +++ b/src/vte.sh.in -@@ -38,7 +38,7 @@ __vte_prompt_command() { +@@ -51,9 +51,9 @@ if [[ -n "${BASH_VERSION:-}" ]]; then + # use the __vte_prompt_command function which also sets the title. + + if [[ "$(declare -p PROMPT_COMMAND 2>&1)" =~ "declare -a" ]]; then +- PROMPT_COMMAND+=(__vte_osc7) ++ PROMPT_COMMAND+=(__vte_osc7) && PS0=$(printf "\033]777;preexec\033\\") + else +- PROMPT_COMMAND="__vte_prompt_command" ++ PROMPT_COMMAND="__vte_prompt_command" && PS0=$(printf "\033]777;preexec\033\\") + fi - case "$TERM" in - xterm*|vte*) -- [ -n "${BASH_VERSION:-}" ] && PROMPT_COMMAND="__vte_prompt_command" -+ [ -n "${BASH_VERSION:-}" ] && PROMPT_COMMAND="__vte_prompt_command" && PS0=$(printf "\033]777;preexec\033\\") - [ -n "${ZSH_VERSION:-}" ] && precmd_functions+=(__vte_osc7) - ;; - esac + elif [[ -n "${ZSH_VERSION:-}" ]]; then diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 203c77e08c57..5668ac7d71df 100644 +index b63967a3..062b6694 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -105,9 +105,10 @@ struct _VteTerminalClass { +@@ -109,11 +109,12 @@ struct _VteTerminalClass { void (*bell)(VteTerminal* terminal); void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); + void (*shell_preexec)(VteTerminal* terminal); - /* Padding for future expansion. */ -- gpointer padding[15]; -+ gpointer padding[14]; + #if _VTE_GTK == 3 + /* Compatibility padding due to fedora patches intruding on our ABI */ + /*< private >*/ +- gpointer _extra_padding[2]; ++ gpointer _extra_padding[1]; + #endif /* _VTE_GTK == 3 */ - VteTerminalClassPrivate *priv; - }; + /* Add new vfuncs here, and subtract from the padding below. */ diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index bf88b9481981..df247f27c038 100644 +index ab1de923..a4d51bfb 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -941,6 +941,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1249,6 +1249,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -674,7 +692,7 @@ index bf88b9481981..df247f27c038 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -1042,6 +1043,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1352,6 +1353,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -699,7 +717,7 @@ index bf88b9481981..df247f27c038 100644 * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 30b917786b5b..d3ad1435ae53 100644 +index f6cd891b..bf85bdf4 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -52,6 +52,7 @@ enum { @@ -707,45 +725,44 @@ index 30b917786b5b..d3ad1435ae53 100644 SIGNAL_RESTORE_WINDOW, SIGNAL_SELECTION_CHANGED, + SIGNAL_SHELL_PREEXEC, - SIGNAL_TEXT_DELETED, - SIGNAL_TEXT_INSERTED, - SIGNAL_TEXT_MODIFIED, + SIGNAL_NOTIFICATION_RECEIVED, + SIGNAL_WINDOW_TITLE_CHANGED, + LAST_SIGNAL diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 79ea9e7f0da0..009500a3ffc6 100644 +index d3e25179..b4f1b4c9 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -923,6 +923,8 @@ public: - std::string m_notification_summary; - std::string m_notification_body; +@@ -679,6 +679,7 @@ public: + CWD = 1u << 1, + CWF = 1u << 2, + NOTIFICATION = 1u << 3, ++ SHELL_PREEXEC = 1u << 4, + }; + unsigned m_pending_changes{0}; -+ gboolean m_shell_preexec; -+ - std::string m_window_title{}; - std::string m_current_directory_uri{}; - std::string m_current_file_uri{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index c765b0bfb1f4..ad5935063bd9 100644 +index 537e8e13..dbc6276f 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1402,6 +1402,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1401,6 +1401,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, m_notification_body = *token; return; } + + if (*token == "preexec") { -+ m_shell_preexec = TRUE; ++ m_pending_changes |= vte::to_integral(PendingChanges::SHELL_PREEXEC); + } } bool -- -2.25.4 +2.35.1 -From 62b4dec7a7493f531de60ee814596176f3b9c082 Mon Sep 17 00:00:00 2001 +From 9fe74c4f17f1fb708a90f22a64fd2b5f4aa794a9 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 20 Apr 2018 18:21:53 +0200 -Subject: [PATCH 07/10] Test the shell-preexec signal +Subject: [PATCH 07/11] Test the shell-preexec signal https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 @@ -755,7 +772,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 2 files changed, 13 insertions(+) diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala -index c984b868246d..83af686be106 100644 +index 552a702d..cc30f9ad 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -310,6 +310,7 @@ class Window : Gtk.ApplicationWindow @@ -779,10 +796,10 @@ index c984b868246d..83af686be106 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 52893c87414a..3ef597e97365 100644 +index c6f5cc0b..33a9481e 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1862,6 +1862,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -2220,6 +2220,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -795,22 +812,22 @@ index 52893c87414a..3ef597e97365 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2098,6 +2104,7 @@ vteapp_window_constructed(GObject *object) +@@ -2517,6 +2523,7 @@ vteapp_window_constructed(GObject *object) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); g_signal_connect(window->terminal, "notification-received", G_CALLBACK(notification_received_cb), NULL); + g_signal_connect(window->terminal, "shell-preexec", G_CALLBACK(shell_preexec_cb), NULL); /* Settings */ - if (options.no_double_buffer) { + #if VTE_GTK == 3 -- -2.25.4 +2.35.1 -From ce908501de9d32ab9d3e0cc600058e104bec2130 Mon Sep 17 00:00:00 2001 +From ed2a83fbf034f79f7c08e8d5e4eeaaea2599e484 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 -Subject: [PATCH 08/10] Support precmd notifications from an interactive shell +Subject: [PATCH 08/11] Support precmd notifications from an interactive shell Add sequences OSC 777 ; precmd BEL @@ -826,38 +843,37 @@ https://phab.enlightenment.org/T1765 https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 --- - src/vte.cc | 7 +++++++ + src/vte.cc | 6 ++++++ src/vte.sh.in | 2 +- - src/vte/vteterminal.h | 3 ++- + src/vte/vteterminal.h | 7 +------ src/vtegtk.cc | 18 ++++++++++++++++++ src/vtegtk.hh | 1 + src/vteinternal.hh | 1 + src/vteseq.cc | 4 +++- - 7 files changed, 33 insertions(+), 3 deletions(-) + 7 files changed, 31 insertions(+), 8 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index d77d27967b50..54654c8589ab 100644 +index 6d8ab2bb..e8a344ee 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10168,6 +10168,13 @@ Terminal::emit_pending_signals() - m_shell_preexec = FALSE; +@@ -10063,6 +10063,12 @@ Terminal::emit_pending_signals() + g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PREEXEC], 0); } -+ if (m_shell_precmd) { ++ if (m_pending_changes & vte::to_integral(PendingChanges::SHELL_PRECMD)) { + _vte_debug_print (VTE_DEBUG_SIGNALS, + "Emitting `shell-precmd'.\n"); + g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PRECMD], 0); -+ m_shell_precmd = FALSE; + } + - if (m_window_title_changed) { + if (m_pending_changes & vte::to_integral(PendingChanges::TITLE)) { if (m_window_title != m_window_title_pending) { m_window_title.swap(m_window_title_pending); diff --git a/src/vte.sh.in b/src/vte.sh.in -index ec094db032c7..18bb266e8d87 100644 +index 01b44e23..877fe93d 100644 --- a/src/vte.sh.in +++ b/src/vte.sh.in -@@ -32,7 +32,7 @@ __vte_prompt_command() { +@@ -38,7 +38,7 @@ __vte_prompt_command() { local pwd='~' [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} pwd="${pwd//[[:cntrl:]]}" @@ -867,27 +883,30 @@ index ec094db032c7..18bb266e8d87 100644 } diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 5668ac7d71df..cbd2a77f9f29 100644 +index 062b6694..ed08880d 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -105,10 +105,11 @@ struct _VteTerminalClass { +@@ -109,14 +109,9 @@ struct _VteTerminalClass { void (*bell)(VteTerminal* terminal); void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); + void (*shell_precmd)(VteTerminal* terminal); void (*shell_preexec)(VteTerminal* terminal); - /* Padding for future expansion. */ -- gpointer padding[14]; -+ gpointer padding[13]; +-#if _VTE_GTK == 3 +- /* Compatibility padding due to fedora patches intruding on our ABI */ +- /*< private >*/ +- gpointer _extra_padding[1]; +-#endif /* _VTE_GTK == 3 */ +- + /* Add new vfuncs here, and subtract from the padding below. */ - VteTerminalClassPrivate *priv; - }; + /* Padding for future expansion. */ diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index df247f27c038..afccd6d85c65 100644 +index a4d51bfb..7020c2af 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -941,6 +941,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1249,6 +1249,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -895,7 +914,7 @@ index df247f27c038..afccd6d85c65 100644 klass->shell_preexec = NULL; klass->window_title_changed = NULL; klass->icon_title_changed = NULL; -@@ -1043,6 +1044,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1353,6 +1354,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -920,7 +939,7 @@ index df247f27c038..afccd6d85c65 100644 * VteTerminal::shell-preexec: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index d3ad1435ae53..85c2a38d61ec 100644 +index bf85bdf4..cee56b65 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -52,6 +52,7 @@ enum { @@ -929,43 +948,43 @@ index d3ad1435ae53..85c2a38d61ec 100644 SIGNAL_SELECTION_CHANGED, + SIGNAL_SHELL_PRECMD, SIGNAL_SHELL_PREEXEC, - SIGNAL_TEXT_DELETED, - SIGNAL_TEXT_INSERTED, + SIGNAL_NOTIFICATION_RECEIVED, + SIGNAL_WINDOW_TITLE_CHANGED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 009500a3ffc6..18ffeaf3a270 100644 +index b4f1b4c9..eabc0062 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -923,6 +923,7 @@ public: - std::string m_notification_summary; - std::string m_notification_body; +@@ -680,6 +680,7 @@ public: + CWF = 1u << 2, + NOTIFICATION = 1u << 3, + SHELL_PREEXEC = 1u << 4, ++ SHELL_PRECMD = 1u << 5, + }; + unsigned m_pending_changes{0}; -+ gboolean m_shell_precmd; - gboolean m_shell_preexec; - - std::string m_window_title{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index ad5935063bd9..4b66681d713c 100644 +index dbc6276f..4de2a6f1 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1403,7 +1403,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1402,7 +1402,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, return; } - if (*token == "preexec") { + if (*token == "precmd") { -+ m_shell_precmd = TRUE; ++ m_pending_changes |= vte::to_integral(PendingChanges::SHELL_PRECMD); + } else if (*token == "preexec") { - m_shell_preexec = TRUE; + m_pending_changes |= vte::to_integral(PendingChanges::SHELL_PREEXEC); } } -- -2.25.4 +2.35.1 -From c57e30715838cb9d6eb0d4390867746bea0c42d5 Mon Sep 17 00:00:00 2001 +From 2f3ea5834f7ae8c946724c3aef05964383088ec0 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 -Subject: [PATCH 09/10] Test the shell-precmd signal +Subject: [PATCH 09/11] Test the shell-precmd signal https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 @@ -975,7 +994,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 2 files changed, 13 insertions(+) diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala -index 83af686be106..300384f5c74b 100644 +index cc30f9ad..ecc4b769 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -310,6 +310,7 @@ class Window : Gtk.ApplicationWindow @@ -999,10 +1018,10 @@ index 83af686be106..300384f5c74b 100644 { print("[shell] executing command\n"); diff --git a/src/app/app.cc b/src/app/app.cc -index 3ef597e97365..e1b10ca43b2c 100644 +index 33a9481e..d30f8bd7 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1862,6 +1862,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -2220,6 +2220,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -1015,7 +1034,7 @@ index 3ef597e97365..e1b10ca43b2c 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -2104,6 +2110,7 @@ vteapp_window_constructed(GObject *object) +@@ -2523,6 +2529,7 @@ vteapp_window_constructed(GObject *object) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); g_signal_connect(window->terminal, "notification-received", G_CALLBACK(notification_received_cb), NULL); @@ -1024,16 +1043,22 @@ index 3ef597e97365..e1b10ca43b2c 100644 /* Settings */ -- -2.25.4 +2.35.1 -From 3e049907ff0981ba235df9b97b56828cb814fb76 Mon Sep 17 00:00:00 2001 +From 08d50a8599dad3ac60f54cb0aeeadb3ca26c214d Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 10 Jun 2019 20:30:18 +0200 -Subject: [PATCH 10/10] Support tracking the active container inside the +Subject: [PATCH 10/11] Support tracking the active container inside the terminal Add sequences + + OSC 777 ; container ; push ; NAME ; RUNTIME ; UID BEL + OSC 777 ; container ; push ; NAME ; RUNTIME ; UID ST + OSC 777 ; container ; pop ; NAME ; RUNTIME ; UID BEL + OSC 777 ; container ; pop ; NAME ; RUNTIME ; UID ST + OSC 777 ; container ; push ; NAME ; RUNTIME BEL OSC 777 ; container ; push ; NAME ; RUNTIME ST OSC 777 ; container ; pop ; NAME ; RUNTIME BEL @@ -1042,7 +1067,9 @@ Add sequences that let container tools notify the terminal emulator when entering and leaving a container environment. The RUNTIME argument namespaces the NAME and identifies the container tooling being used. eg., docker, -flatpak, podman, toolbox, etc.. +flatpak, podman, toolbox, etc.. The UID argument is the real UID of the +container tools. Only those containers that are used with the same real +UID as the VTE process are tracked. The OSC 777 escape sequence is taken from Enlightenment's Terminology: https://phab.enlightenment.org/T1765 @@ -1052,39 +1079,38 @@ agreed upon across multiple different terminal emulators [1]. [1] https://gitlab.freedesktop.org/terminal-wg/specifications/issues/17 --- - src/vte.cc | 9 +++++ - src/vte/vteterminal.h | 4 +++ - src/vtegtk.cc | 77 +++++++++++++++++++++++++++++++++++++++++++ - src/vtegtk.hh | 2 ++ - src/vteinternal.hh | 16 +++++++++ - src/vteseq.cc | 31 +++++++++++++++++ - 6 files changed, 139 insertions(+) + src/vte.cc | 8 ++++ + src/vte/vteterminal.h | 4 ++ + src/vtegtk.cc | 77 ++++++++++++++++++++++++++++++++++++++ + src/vtegtk.hh | 2 + + src/vteinternal.hh | 16 ++++++++ + src/vteseq.cc | 86 +++++++++++++++++++++++++++++++++++++++++++ + 6 files changed, 193 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index 54654c8589ab..b5f1258bbd99 100644 +index e8a344ee..a3ca5108 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10189,6 +10189,15 @@ Terminal::emit_pending_signals() - m_window_title_changed = false; +@@ -10082,6 +10082,14 @@ Terminal::emit_pending_signals() + m_window_title_pending.clear(); } -+ if (m_containers_changed) { ++ if (m_pending_changes & vte::to_integral(PendingChanges::CONTAINERS)) { + _vte_debug_print(VTE_DEBUG_SIGNALS, + "Notifying `current-container-name' and `current-container-runtime'.\n"); + + g_object_notify_by_pspec(freezer.get(), pspecs[PROP_CURRENT_CONTAINER_NAME]); + g_object_notify_by_pspec(freezer.get(), pspecs[PROP_CURRENT_CONTAINER_RUNTIME]); -+ m_containers_changed = false; + } + - if (m_current_directory_uri_changed) { + if (m_pending_changes & vte::to_integral(PendingChanges::CWD)) { if (m_current_directory_uri != m_current_directory_uri_pending) { m_current_directory_uri.swap(m_current_directory_uri_pending); diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index cbd2a77f9f29..15aa421a0c68 100644 +index ed08880d..d25eb93a 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -484,6 +484,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VT +@@ -511,6 +511,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VT _VTE_PUBLIC const char *vte_terminal_get_window_title(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); _VTE_PUBLIC @@ -1096,10 +1122,10 @@ index cbd2a77f9f29..15aa421a0c68 100644 _VTE_PUBLIC const char *vte_terminal_get_current_file_uri(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index afccd6d85c65..242d6d979ddc 100644 +index 7020c2af..2ee5b029 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -664,6 +664,12 @@ try +@@ -942,6 +942,12 @@ try case PROP_CURSOR_BLINK_MODE: g_value_set_enum (value, vte_terminal_get_cursor_blink_mode (terminal)); break; @@ -1112,7 +1138,7 @@ index afccd6d85c65..242d6d979ddc 100644 case PROP_CURRENT_DIRECTORY_URI: g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal)); break; -@@ -2036,6 +2042,27 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -2357,6 +2363,27 @@ vte_terminal_class_init(VteTerminalClass *klass) NULL, (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -1140,7 +1166,7 @@ index afccd6d85c65..242d6d979ddc 100644 /** * VteTerminal:current-directory-uri: * -@@ -4531,6 +4558,56 @@ catch (...) +@@ -4929,6 +4956,56 @@ catch (...) return -1; } @@ -1198,10 +1224,10 @@ index afccd6d85c65..242d6d979ddc 100644 * vte_terminal_get_current_directory_uri: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 85c2a38d61ec..a258902a3092 100644 +index cee56b65..e41f2f3a 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -76,6 +76,8 @@ enum { +@@ -72,6 +72,8 @@ enum { PROP_CJK_AMBIGUOUS_WIDTH, PROP_CURSOR_BLINK_MODE, PROP_CURSOR_SHAPE, @@ -1211,10 +1237,10 @@ index 85c2a38d61ec..a258902a3092 100644 PROP_CURRENT_FILE_URI, PROP_DELETE_BINDING, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 18ffeaf3a270..f6b98f670ad5 100644 +index eabc0062..dcb6a6fc 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -56,6 +56,7 @@ +@@ -59,6 +59,7 @@ #include #include #include @@ -1222,7 +1248,7 @@ index 18ffeaf3a270..f6b98f670ad5 100644 #include #include #include -@@ -94,6 +95,18 @@ typedef enum _VteCharacterReplacement { +@@ -110,6 +111,18 @@ typedef enum _VteCharacterReplacement { VTE_CHARACTER_REPLACEMENT_LINE_DRAWING } VteCharacterReplacement; @@ -1241,21 +1267,43 @@ index 18ffeaf3a270..f6b98f670ad5 100644 typedef struct _VtePaletteColor { struct { vte::color::rgb color; -@@ -918,6 +931,9 @@ public: +@@ -661,6 +674,8 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; -+ bool m_containers_changed{false}; + std::stack m_containers; + /* desktop notification */ - bool m_notification_received{false}; std::string m_notification_summary; + std::string m_notification_body; +@@ -681,6 +696,7 @@ public: + NOTIFICATION = 1u << 3, + SHELL_PREEXEC = 1u << 4, + SHELL_PRECMD = 1u << 5, ++ CONTAINERS = 1u << 6, + }; + unsigned m_pending_changes{0}; + diff --git a/src/vteseq.cc b/src/vteseq.cc -index 4b66681d713c..6e7cb8741696 100644 +index 4de2a6f1..18c0d89c 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1385,6 +1385,37 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -19,10 +19,14 @@ + + #include "config.h" + ++#include ++ + #include + #include + #include + #include ++#include ++#include + #ifdef HAVE_SYS_SYSLIMITS_H + #include + #endif +@@ -1384,6 +1388,88 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, if (token == endtoken) return; @@ -1269,10 +1317,41 @@ index 4b66681d713c..6e7cb8741696 100644 + ++token; + + if (sub_command == "pop") { -+ if (!m_containers.empty()) { -+ m_containers.pop(); -+ m_containers_changed = true; ++ if (token == endtoken) ++ return; ++ ++ ++token; ++ ++ if (token == endtoken) ++ return; ++ ++ ++token; ++ ++ if (token == endtoken) { ++ if (!m_containers.empty()) { ++ m_containers.pop(); ++ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); ++ } ++ ++ return; ++ } ++ ++ const std::string uid_token = *token; ++ ++token; ++ ++ const uid_t uid = getuid(); ++ const std::string uid_str = std::to_string(uid); ++ ++ if (uid_token == uid_str) { ++ if (!m_containers.empty()) { ++ m_containers.pop(); ++ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); ++ } ++ ++ return; + } ++ ++ return; + } else if (sub_command == "push") { + if (token == endtoken) + return; @@ -1284,15 +1363,81 @@ index 4b66681d713c..6e7cb8741696 100644 + return; + + const std::string runtime = *token; ++ ++token; ++ ++ if (token == endtoken) { ++ m_containers.emplace(name, runtime); ++ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); ++ return; ++ } + -+ m_containers.emplace(name, runtime); -+ m_containers_changed = true; ++ const std::string uid_token = *token; ++ ++token; ++ ++ const uid_t uid = getuid(); ++ const std::string uid_str = std::to_string(uid); ++ ++ if (uid_token == uid_str) { ++ m_containers.emplace(name, runtime); ++ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); ++ return; ++ } ++ ++ return; + } ++ ++ return; + } + if (*token == "notify") { ++token; -- -2.25.4 +2.35.1 + + +From 62df90e5147c8be4e12bcf5ce99679c1fb2390d0 Mon Sep 17 00:00:00 2001 +From: Kalev Lember +Date: Tue, 16 Feb 2021 16:30:44 +0100 +Subject: [PATCH 11/11] Revert "widget: Limit select-all to the writable region + not including the scrollback" + +... as decided by Fedora Workstation WG. + +https://pagure.io/fedora-workstation/issue/216 + +This reverts commit 73713ec0644e232fb740170e399282be778d97f9. +--- + src/vte.cc | 9 +++------ + 1 file changed, 3 insertions(+), 6 deletions(-) + +diff --git a/src/vte.cc b/src/vte.cc +index a3ca5108..1834b090 100644 +--- a/src/vte.cc ++++ b/src/vte.cc +@@ -6497,10 +6497,7 @@ Terminal::maybe_end_selection() + /* + * Terminal::select_all: + * +- * Selects all text within the terminal. Note that we only select the writable +- * region, *not* the scrollback buffer, due to this potentially selecting so +- * much data that putting it on the clipboard either hangs the process for a long +- * time or even crash it directly. (FIXME!) ++ * Selects all text within the terminal (including the scrollback buffer). + */ + void + Terminal::select_all() +@@ -6509,8 +6506,8 @@ Terminal::select_all() + + m_selecting_had_delta = TRUE; + +- m_selection_resolved.set({m_screen->insert_delta, 0}, +- {_vte_ring_next(m_screen->row_data), 0}); ++ m_selection_resolved.set ({ _vte_ring_delta (m_screen->row_data), 0 }, ++ { _vte_ring_next (m_screen->row_data), 0 }); + + _vte_debug_print(VTE_DEBUG_SELECTION, "Selecting *all* text.\n"); + +-- +2.35.1 diff --git a/vte291-vala-Make-binding-tests-compile-without-warning.patch b/vte291-vala-Make-binding-tests-compile-without-warning.patch deleted file mode 100644 index 44bab07b0cc20c5da0198019e463b2da184815d3..0000000000000000000000000000000000000000 --- a/vte291-vala-Make-binding-tests-compile-without-warning.patch +++ /dev/null @@ -1,257 +0,0 @@ -From b1b365cf8162479adc10db2ffcf40e4844bf739d Mon Sep 17 00:00:00 2001 -Date: Thu, 11 Jun 2020 11:40:16 +0800 - ---- - bindings/vala/app.vala | 96 +++++++++++++++++++++--------------------- - 1 file changed, 48 insertions(+), 48 deletions(-) - -diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala -index 3b73106..b6c3b65 100644 ---- a/bindings/vala/app.vala -+++ b/bindings/vala/app.vala -@@ -109,7 +109,7 @@ class SearchPopover : Gtk.Popover - - if (search_text.length != 0) { - try { -- if (!App.Options.no_pcre) { -+ if (!Options.no_pcre) { - uint32 flags; - - flags = 0x40080400u /* PCRE2_UTF | PCRE2_NO_UTF_CHECK | PCRE2_MULTILINE */; -@@ -148,7 +148,7 @@ class SearchPopover : Gtk.Popover - search_entry.set_tooltip_text(null); - } - -- if (!App.Options.no_pcre) { -+ if (!Options.no_pcre) { - has_regex = regex != null; - terminal.search_set_regex(regex, 0); - } else { -@@ -210,7 +210,7 @@ class Window : Gtk.ApplicationWindow - - /* Create terminal and connect scrollbar */ - terminal = new Vte.Terminal(); -- var margin = App.Options.extra_margin; -+ var margin = Options.extra_margin; - if (margin > 0) { - terminal.margin_start = - terminal.margin_end = -@@ -274,8 +274,8 @@ class Window : Gtk.ApplicationWindow - title = "Terminal"; - - /* Set ARGB visual */ -- if (App.Options.transparency_percent != 0) { -- if (!App.Options.no_argb_visual) { -+ if (Options.transparency_percent != 0) { -+ if (!Options.no_argb_visual) { - var screen = get_screen(); - Gdk.Visual? visual = screen.get_rgba_visual(); - if (visual != null) -@@ -306,57 +306,57 @@ class Window : Gtk.ApplicationWindow - terminal.restore_window.connect(restore_window_cb); - terminal.selection_changed.connect(selection_changed_cb); - terminal.window_title_changed.connect(window_title_changed_cb); -- if (App.Options.object_notifications) -+ if (Options.object_notifications) - terminal.notify.connect(notify_cb); - - terminal.notification_received.connect(notification_received_cb); - - /* Settings */ -- if (App.Options.no_double_buffer) -+ if (Options.no_double_buffer) - terminal.set_double_buffered(false); - -- if (App.Options.encoding != null) { -+ if (Options.encoding != null) { - try { -- terminal.set_encoding(App.Options.encoding); -+ terminal.set_encoding(Options.encoding); - } catch (Error e) { - printerr("Failed to set encoding: %s\n", e.message); - } - } - -- if (App.Options.word_char_exceptions != null) -- terminal.set_word_char_exceptions(App.Options.word_char_exceptions); -+ if (Options.word_char_exceptions != null) -+ terminal.set_word_char_exceptions(Options.word_char_exceptions); - -- terminal.set_allow_hyperlink(!App.Options.no_hyperlink); -- terminal.set_audible_bell(App.Options.audible); -- terminal.set_cjk_ambiguous_width(App.Options.get_cjk_ambiguous_width()); -- terminal.set_cursor_blink_mode(App.Options.get_cursor_blink_mode()); -- terminal.set_cursor_shape(App.Options.get_cursor_shape()); -+ terminal.set_allow_hyperlink(!Options.no_hyperlink); -+ terminal.set_audible_bell(Options.audible); -+ terminal.set_cjk_ambiguous_width(Options.get_cjk_ambiguous_width()); -+ terminal.set_cursor_blink_mode(Options.get_cursor_blink_mode()); -+ terminal.set_cursor_shape(Options.get_cursor_shape()); - terminal.set_mouse_autohide(true); -- terminal.set_rewrap_on_resize(!App.Options.no_rewrap); -+ terminal.set_rewrap_on_resize(!Options.no_rewrap); - terminal.set_scroll_on_output(false); - terminal.set_scroll_on_keystroke(true); -- terminal.set_scroll_speed(App.Options.scroll_speed); -- terminal.set_scrollback_lines(App.Options.scrollback_lines); -+ terminal.set_scroll_speed(Options.scroll_speed); -+ terminal.set_scrollback_lines(Options.scrollback_lines); - - /* Style */ -- if (App.Options.font_string != null) { -- var desc = Pango.FontDescription.from_string(App.Options.font_string); -+ if (Options.font_string != null) { -+ var desc = Pango.FontDescription.from_string(Options.font_string); - terminal.set_font(desc); - } - -- terminal.set_colors(App.Options.get_color_fg(), -- App.Options.get_color_bg(), -+ terminal.set_colors(Options.get_color_fg(), -+ Options.get_color_bg(), - null); -- terminal.set_color_cursor(App.Options.get_color_cursor_background()); -- terminal.set_color_cursor_foreground(App.Options.get_color_cursor_foreground()); -- terminal.set_color_highlight(App.Options.get_color_hl_bg()); -- terminal.set_color_highlight_foreground(App.Options.get_color_hl_fg()); -+ terminal.set_color_cursor(Options.get_color_cursor_background()); -+ terminal.set_color_cursor_foreground(Options.get_color_cursor_foreground()); -+ terminal.set_color_highlight(Options.get_color_hl_bg()); -+ terminal.set_color_highlight_foreground(Options.get_color_hl_fg()); - - /* Dingus */ -- if (!App.Options.no_builtin_dingus) -+ if (!Options.no_builtin_dingus) - add_dingus(builtin_dingus); -- if (App.Options.dingus != null) -- add_dingus(App.Options.dingus); -+ if (Options.dingus != null) -+ add_dingus(Options.dingus); - - /* Done! */ - terminal_box.pack_start(terminal); -@@ -378,7 +378,7 @@ class Window : Gtk.ApplicationWindow - try { - int tag; - -- if (!App.Options.no_pcre) { -+ if (!Options.no_pcre) { - Vte.Regex regex; - - regex = new Vte.Regex.for_match(dingus[i], dingus[i].length, -@@ -427,8 +427,8 @@ class Window : Gtk.ApplicationWindow - */ - terminal.realize(); - -- if (App.Options.geometry != null) { -- if (parse_geometry(App.Options.geometry)) { -+ if (Options.geometry != null) { -+ if (parse_geometry(Options.geometry)) { - /* After parse_geometry(), we can get the default size in - * width/height increments, i.e. in grid size. - */ -@@ -437,7 +437,7 @@ class Window : Gtk.ApplicationWindow - terminal.set_size(columns, rows); - resize_to_geometry(columns, rows); - } else -- printerr("Failed to parse geometry spec \"%s\"\n", App.Options.geometry); -+ printerr("Failed to parse geometry spec \"%s\"\n", Options.geometry); - } else { - /* In GTK+ 3.0, the default size of a window comes from its minimum - * size not its natural size, so we need to set the right default size -@@ -455,9 +455,9 @@ class Window : Gtk.ApplicationWindow - launch_idle_id = GLib.Idle.add(() => { - try { - terminal.spawn_sync(Vte.PtyFlags.DEFAULT, -- App.Options.working_directory, -+ Options.working_directory, - argv, -- App.Options.environment, -+ Options.environment, - GLib.SpawnFlags.SEARCH_PATH, - null, /* child setup */ - out child_pid, -@@ -524,9 +524,9 @@ class Window : Gtk.ApplicationWindow - public void launch() - { - try { -- if (App.Options.command != null) -- launch_command(App.Options.command); -- else if (!App.Options.no_shell) -+ if (Options.command != null) -+ launch_command(Options.command); -+ else if (!Options.no_shell) - launch_shell(); - else - fork(); -@@ -557,7 +557,7 @@ class Window : Gtk.ApplicationWindow - - private void update_geometry() - { -- if (App.Options.no_geometry_hints) -+ if (Options.no_geometry_hints) - return; - if (!terminal.get_realized()) - return; -@@ -627,7 +627,7 @@ class Window : Gtk.ApplicationWindow - - private bool show_context_menu(uint button, uint32 timestamp, Gdk.Event? event) - { -- if (App.Options.no_context_menu) -+ if (Options.no_context_menu) - return false; - - var menu = new GLib.Menu(); -@@ -665,18 +665,18 @@ class Window : Gtk.ApplicationWindow - { - printerr("Child exited with status %x\n", status); - -- if (App.Options.output_filename != null) { -+ if (Options.output_filename != null) { - try { -- var file = GLib.File.new_for_commandline_arg(App.Options.output_filename); -+ var file = GLib.File.new_for_commandline_arg(Options.output_filename); - var stream = file.replace(null, false, GLib.FileCreateFlags.NONE, null); - terminal.write_contents_sync(stream, Vte.WriteFlags.DEFAULT, null); - } catch (Error e) { - printerr("Failed to write output to \"%s\": %s\n", -- App.Options.output_filename, e.message); -+ Options.output_filename, e.message); - } - } - -- if (App.Options.keep) -+ if (Options.keep) - return; - - destroy(); -@@ -808,7 +808,7 @@ class App : Gtk.Application - { - base.startup(); - -- for (uint i = 0; i < App.Options.n_windows.clamp(0, 16); i++) -+ for (uint i = 0; i < Options.n_windows.clamp(0, 16); i++) - new Window(this); - } - -@@ -824,8 +824,9 @@ class App : Gtk.Application - window.launch(); - } - } -+} /* class App */ - -- public struct Options -+ namespace Options - { - public static bool audible = false; - public static string? command = null; -@@ -1105,6 +1106,5 @@ class App : Gtk.Application - var app = new App(); - return app.run(null); - } --} /* class App */ - - } /* namespace */ --- -2.23.0 - diff --git a/vte291.spec b/vte291.spec index 2f6077db835eba46de7f2fd8a7916feef383c953..255adeebde46657d8d8dbe73fa2b00bb757b4b62 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,22 +1,46 @@ +%global apiver 2.91 + +%global fribidi_version 1.0.0 +%global glib2_version 2.52.0 +%global gnutls_version 3.2.7 +%global gtk3_version 3.24.22 +%global icu_uc_version 4.8 +%global libsystemd_version 220 +%global pango_version 1.22.0 +%global pcre2_version 10.21 + Name: vte291 -Version: 0.62.3 +Version: 0.68.0 Release: 1 Summary: Virtual terminal widget -License: LGPLv2+ and GPLv3+ -URL: http://www.gnome.org/ -Source0: http://download.gnome.org/sources/vte/0.62/vte-%{version}.tar.xz -Patch0000: vte291-cntnr-precmd-preexec-scroll.patch - -BuildRequires: gcc-c++ gettext pkgconfig(gnutls) >= 3.2.7 -BuildRequires: gobject-introspection-devel gperf pkgconfig(gtk+-3.0) >= 3.24.22 -BuildRequires: pkgconfig(libpcre2-8) >= 10.21 vala systemd gtk-doc meson -BuildRequires: pkgconfig(fribidi) >= 1.0.0 pkgconfig(gio-2.0) >= 2.52.0 -BuildRequires: pkgconfig(glib-2.0) >= 2.52.0 pkgconfig(gobject-2.0) >= 2.52.0 -BuildRequires: pkgconfig(icu-uc) >= 4.8 pkgconfig(libsystemd) >= 220 -BuildRequires: pkgconfig(pango) >= 1.22.0 -Requires: gnutls >= 3.2.7 gtk3 >= 3.24.22 pcre2 >= 10.21 -Requires: fribidi >= 1.0.0 glib2 >= 2.52.0 pango >= 1.22.0 -Requires: libicu >= 4.8 systemd +License: LGPLv3+ and MIT +URL: https://wiki.gnome.org/Apps/Terminal/VTE +Source0: https://download.gnome.org/sources/vte/0.68/vte-%{version}.tar.xz +Patch0: vte291-cntnr-precmd-preexec-scroll.patch + +BuildRequires: gcc-c++ gettext gobject-introspection-devel gperf vala systemd gtk-doc meson +BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} +BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} +BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version} +BuildRequires: pkgconfig(gnutls) >= %{gnutls_version} +BuildRequires: pkgconfig(gobject-2.0) >= %{glib2_version} +BuildRequires: pkgconfig(gtk+-3.0) >= %{gtk3_version} +BuildRequires: pkgconfig(icu-uc) >= %{icu_uc_version} +BuildRequires: pkgconfig(libpcre2-8) >= %{pcre2_version} +BuildRequires: pkgconfig(libsystemd) >= %{libsystemd_version} +BuildRequires: pkgconfig(pango) >= %{pango_version} +BuildRequires: pkgconfig(zlib) + +Requires: fribidi >= %{fribidi_version} +Requires: glib2 >= %{glib2_version} +Requires: gnutls%{?_isa} >= %{gnutls_version} +Requires: gtk3%{?_isa} >= %{gtk3_version} +Requires: libicu%{?_isa} >= %{icu_uc_version} +Requires: pango >= %{pango_version} +Requires: pcre2%{?_isa} >= %{pcre2_version} +Requires: systemd-libs >= %{libsystemd_version} +Requires: vte-profile + Conflicts: gnome-terminal < 3.20.1-2 vte3 < 0.36.1-3 Provides: vte-profile = %{version}-%{release} Obsoletes: vte-profile < %{version}-%{release} @@ -28,11 +52,14 @@ console/terminal in games, editors, IDEs, etc. %package devel Summary: Development files for %{name} +License: GPLv3+ and LGPLv3+ Requires: %{name} = %{version}-%{release} %description devel The package contains libraries and header files for developing applications that use vte291. +%package_help + %prep %autosetup -n vte-%{version} -p1 %if 0%{?flatpak} @@ -46,27 +73,36 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %install %meson_install -%find_lang vte-2.91 -%files -f vte-2.91.lang -%license COPYING.GPL3 -%{_libdir}/libvte-*.so.0* +%find_lang vte-%{apiver} + +%files -f vte-%{apiver}.lang +%license COPYING.LGPL3 +%license COPYING.XTERM +%{_libdir}/libvte-%{apiver}.so.0* %{_libdir}/girepository-1.0/ -%{_userunitdir}/vte-spawn-.scope.d %{_libexecdir}/vte-urlencode-cwd -%{_sysconfdir}/profile.d/vte.sh %{_sysconfdir}/profile.d/vte.csh +%{_sysconfdir}/profile.d/vte.sh +%{_userunitdir}/vte-spawn-.scope.d %files devel -%{_bindir}/vte-* -%{_includedir}/vte-2.91/ -%{_libdir}/libvte-*.so -%{_libdir}/pkgconfig/vte-*.pc +%{_bindir}/vte-%{apiver} +%{_includedir}/vte-%{apiver}/ +%{_libdir}/libvte-%{apiver}.so +%{_libdir}/pkgconfig/vte-%{apiver}.pc %{_datadir}/gir-1.0/ -%doc %{_datadir}/gtk-doc/ +%{_datadir}/glade/ %{_datadir}/vala/ +%files help +%doc README.md +%doc %{_datadir}/gtk-doc/ + %changelog +* Wed Apr 20 2022 dillon chen - 0.68.0-1 +- Update to 0.68.0 + * Mon May 24 2021 weijin deng - 0.62.3-1 - Upgrade to 0.62.3 - Update Version, uncorrect date