diff options
Diffstat (limited to 'main/vte/term.patch')
-rw-r--r-- | main/vte/term.patch | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/main/vte/term.patch b/main/vte/term.patch deleted file mode 100644 index 811385d9f5..0000000000 --- a/main/vte/term.patch +++ /dev/null @@ -1,137 +0,0 @@ -From c5d31b87d7a377f5e6fe93fc1efb061f5c7e9db7 Mon Sep 17 00:00:00 2001 -From: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk> -Date: Thu, 07 Oct 2010 10:57:45 +0000 -Subject: Pass the correct TERM value inside envp when spawning - -So the codepaths that end up invoking execve still have the correct -TERM entry. Clarify the effect of vte_pty_set_term(). - -https://bugzilla.gnome.org/show_bug.cgi?id=631589 ---- -diff --git a/src/pty.c b/src/pty.c -index e3fb782..11dbe6a 100644 ---- a/src/pty.c -+++ b/src/pty.c -@@ -394,7 +394,7 @@ __vte_pty_get_argv (const char *command, - * Returns: a newly allocated string array. Free using g_strfreev() - */ - static gchar ** --__vte_pty_merge_environ (char **envp) -+__vte_pty_merge_environ (char **envp, const char *term_value) - { - GHashTable *table; - GHashTableIter iter; -@@ -425,6 +425,9 @@ __vte_pty_merge_environ (char **envp) - } - } - -+ if (term_value != NULL) -+ g_hash_table_replace (table, g_strdup ("TERM"), g_strdup (term_value)); -+ - array = g_ptr_array_sized_new (g_hash_table_size (table) + 1); - g_hash_table_iter_init(&iter, table); - while (g_hash_table_iter_next(&iter, (gpointer) &name, (gpointer) &value)) { -@@ -518,7 +521,7 @@ __vte_pty_spawn (VtePty *pty, - spawn_flags &= ~G_SPAWN_LEAVE_DESCRIPTORS_OPEN; - - /* add the given environment to the childs */ -- envp2 = __vte_pty_merge_environ (envv); -+ envp2 = __vte_pty_merge_environ (envv, pty->priv->term); - - _VTE_DEBUG_IF (VTE_DEBUG_MISC) { - g_printerr ("Spawing command:\n"); -@@ -1679,8 +1682,8 @@ vte_pty_class_init (VtePtyClass *klass) - /** - * VtePty:term: - * -- * The value to set for the TERM environment variable -- * in vte_pty_child_setup(). -+ * The value to set for the TERM environment variable just after -+ * forking. - * - * Since: 0.26 - */ -@@ -1816,13 +1819,7 @@ vte_pty_get_fd (VtePty *pty) - * @pty: a #VtePty - * @emulation: (allow-none): the name of a terminal description, or %NULL - * -- * Sets what value of the TERM environment variable to set -- * when using vte_pty_child_setup(). -- * -- * Note: When using fork() and execve(), or the g_spawn_async() family of -- * functions with vte_pty_child_setup(), -- * and the environment passed to them contains the <literal>TERM</literal> -- * environment variable, that value will override the one set here. -+ * Sets what value of the TERM environment variable to set just after forking. - * - * Since: 0.26 - */ -diff --git a/src/vte.c b/src/vte.c -index 5c2c1aa..72aa1a1 100644 ---- a/src/vte.c -+++ b/src/vte.c -@@ -3518,32 +3518,6 @@ _vte_terminal_get_argv (const char *command, - return argv2; - } - --/* -- * _vte_terminal_filter_envv: -- * @envv: the environment vector -- * -- * Filters out the TERM variable from @envv. -- * -- * Returns: (transfer container): the filtered environment vector -- */ --static char ** --_vte_terminal_filter_envv (char **envv) --{ -- GPtrArray *array; -- int i; -- -- if (envv == NULL) -- return NULL; -- -- array = g_ptr_array_sized_new (g_strv_length (envv)); -- for (i = 0; envv[i]; ++i) -- if (!g_str_has_prefix (envv[i], "TERM=")) -- g_ptr_array_add (array, envv[i]); -- g_ptr_array_add (array, NULL); -- -- return (char **) g_ptr_array_free (array, FALSE); --} -- - /** - * vte_terminal_fork_command: - * @terminal: a #VteTerminal -@@ -3580,7 +3554,7 @@ vte_terminal_fork_command(VteTerminal *terminal, - gboolean utmp, - gboolean wtmp) - { -- char **real_argv, **real_envv; -+ char **real_argv; - GSpawnFlags spawn_flags; - GPid child_pid; - gboolean ret; -@@ -3596,19 +3570,17 @@ vte_terminal_fork_command(VteTerminal *terminal, - spawn_flags = G_SPAWN_CHILD_INHERITS_STDIN | - G_SPAWN_SEARCH_PATH; - real_argv = _vte_terminal_get_argv (command, argv, &spawn_flags); -- real_envv = _vte_terminal_filter_envv (envv); - - ret = vte_terminal_fork_command_full(terminal, - __vte_pty_get_pty_flags(lastlog, utmp, wtmp), - working_directory, - real_argv, -- real_envv, -+ envv, - spawn_flags, - NULL, NULL, - &child_pid, - err); - g_strfreev (real_argv); -- g_free (real_envv); - - #ifdef VTE_DEBUG - if (error) { --- -cgit v0.8.3.1 |