diff --git a/x11/elementary-terminal/Makefile b/x11/elementary-terminal/Makefile index 3b0ae5dee5c1..e3e1e2933753 100644 --- a/x11/elementary-terminal/Makefile +++ b/x11/elementary-terminal/Makefile @@ -1,24 +1,24 @@ PORTNAME= terminal -DISTVERSION= 6.1.0 +DISTVERSION= 6.1.1 CATEGORIES= x11 PKGNAMEPREFIX= elementary- MAINTAINER= nc@FreeBSD.org COMMENT= Terminal emulator designed for elementary OS WWW= https://github.com/elementary/terminal LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/COPYING LIB_DEPENDS= libgee-0.8.so:devel/libgee \ libgranite.so:x11-toolkits/granite \ libhandy-1.so:x11-toolkits/libhandy \ libpcre2-posix.so:devel/pcre2 USES= desktop-file-utils gettext gnome meson pkgconfig vala:build USE_GITHUB= yes GH_ACCOUNT= elementary USE_GNOME= cairo gdkpixbuf2 glib20 gtk30 vte3 GLIB_SCHEMAS= io.elementary.terminal.gschema.xml .include diff --git a/x11/elementary-terminal/distinfo b/x11/elementary-terminal/distinfo index e453005e572b..9c40e4fd6fe9 100644 --- a/x11/elementary-terminal/distinfo +++ b/x11/elementary-terminal/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1660337780 -SHA256 (elementary-terminal-6.1.0_GH0.tar.gz) = ed930dded4f51bc59ebc6213bc21d0a5eca156ddc58c919d33735921a950bbb2 -SIZE (elementary-terminal-6.1.0_GH0.tar.gz) = 1015594 +TIMESTAMP = 1666967246 +SHA256 (elementary-terminal-6.1.1_GH0.tar.gz) = 22d86fd35735195a5b93b74697e11569339447887ae121c654a86f486a8ed48b +SIZE (elementary-terminal-6.1.1_GH0.tar.gz) = 1037361 diff --git a/x11/elementary-terminal/files/patch-src_Widgets_TerminalWidget.vala b/x11/elementary-terminal/files/patch-src_Widgets_TerminalWidget.vala index ab10a93473b2..74442c7f4f2b 100644 --- a/x11/elementary-terminal/files/patch-src_Widgets_TerminalWidget.vala +++ b/x11/elementary-terminal/files/patch-src_Widgets_TerminalWidget.vala @@ -1,84 +1,85 @@ ---- src/Widgets/TerminalWidget.vala.orig 2021-12-13 18:31:36 UTC +--- src/Widgets/TerminalWidget.vala.orig 2022-10-27 16:47:44 UTC +++ src/Widgets/TerminalWidget.vala @@ -68,13 +68,6 @@ namespace Terminal { } public int default_size; - const string SEND_PROCESS_FINISHED_BASH = "dbus-send --type=method_call " + - "--session --dest=io.elementary.terminal " + - "/io/elementary/terminal " + - "io.elementary.terminal.ProcessFinished " + - "string:$PANTHEON_TERMINAL_ID " + -- "string:\"$(history 1 | cut -c 8-)\" " + +- "string:\"$(fc -nl -1 | cut -c 3-)\" " + - "int32:\$__bp_last_ret_value >/dev/null 2>&1"; /* Following strings are used to build RegEx for matching URIs */ const string USERCHARS = "-[:alnum:]"; -@@ -364,14 +357,7 @@ namespace Terminal { +@@ -351,15 +344,7 @@ namespace Terminal { + shell = Vte.get_user_shell (); envv = { - // Export ID so we can identify the terminal for which the process completion is reported +- // Export ID so we can identify the terminal for which the process completion is reported - "PANTHEON_TERMINAL_ID=" + terminal_id, - - // Export callback command a BASH-specific variable, see "man bash" for details - "PROMPT_COMMAND=" + SEND_PROCESS_FINISHED_BASH + Environment.get_variable ("PROMPT_COMMAND"), - - // ZSH callback command will be read from ZSH config file supplied by us, see data/ - - // TODO: support FISH, see https://github.com/fish-shell/fish-shell/issues/1382 + "PANTHEON_TERMINAL_ID=" + terminal_id }; /* We need opening uri to be available asap when constructing window with working directory -@@ -454,12 +440,49 @@ namespace Terminal { +@@ -436,12 +421,49 @@ namespace Terminal { return this.match_check_event (event, null); } + private string? extract_cwd (string data) { + string[] tokens; + string result = null; + + tokens = data.split (" "); + if (tokens.length > 0) { + result = tokens[(tokens.length - 1)]; + } + return result; + } + public string get_shell_location () { + string[] spawn_env = GLib.Environ.get (); -+ string[] procstat_cmd = {"/usr/bin/pwdx", "--libxo:T",}; ++ string[] procstat_cmd = { "/usr/bin/pwdx", "--libxo:T", }; + string standard_output = null; + bool res; + string cwd = null; + int pid = (!) (this.child_pid); -+ /* Update procstat(1) argument */ ++ // Update procstat(1) argument + procstat_cmd += pid.to_string (); + try { - return GLib.FileUtils.read_link ("/proc/%d/cwd".printf (pid)); - } catch (GLib.FileError error) { + res = GLib.Process.spawn_sync (null, procstat_cmd, + spawn_env, + GLib.SpawnFlags.STDERR_TO_DEV_NULL, + null, + out standard_output, + null, null); + if (res) { + cwd = extract_cwd (standard_output.strip ()); + if (cwd != null) { + return cwd; + } + else { + return GLib.Environment.get_current_dir (); + } + } + else { + return GLib.Environment.get_current_dir (); + } + } catch (GLib.SpawnError error) { /* Tab name disambiguation may call this before shell location available. */ /* No terminal warning needed */ return "";