kmscon: add --reset-env option
authorDavid Herrmann <dh.herrmann@googlemail.com>
Wed, 12 Dec 2012 20:24:15 +0000 (21:24 +0100)
committerDavid Herrmann <dh.herrmann@googlemail.com>
Wed, 12 Dec 2012 20:24:15 +0000 (21:24 +0100)
This option controls whether we reset the environment before spawning the
PTY child.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
docs/man/kmscon.xml
src/kmscon_conf.c
src/kmscon_conf.h
src/kmscon_terminal.c

index bc8a207..b2d961b 100644 (file)
       </varlistentry>
 
       <varlistentry>
+        <term><option>--reset-env</option></term>
+        <listitem>
+          <para>Reset environment before spawning the child process.
+                (default: on)</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
         <term><option>--palette {name}</option></term>
         <listitem>
           <para>Change the default color-palette. This shouldn't be used
index 242a576..3cc7c0b 100644 (file)
@@ -92,6 +92,9 @@ static void print_help()
                "\t-t, --term <TERM>           [xterm-256color]\n"
                "\t                              Value of the TERM environment variable\n"
                "\t                              for the child process\n"
+               "\t    --reset-env             [on]\n"
+               "\t                              Reset environment before running child\n"
+               "\t                              process\n"
                "\t    --palette <name>        [default]\n"
                "\t                              Select the used color palette\n"
                "\t    --sb-size <num>         [1000]\n"
@@ -559,6 +562,7 @@ int kmscon_conf_new(struct conf_ctx **out)
                /* Terminal Options */
                CONF_OPTION(0, 'l', "login", &conf_login, aftercheck_login, NULL, file_login, &conf->login, false),
                CONF_OPTION_STRING('t', "term", &conf->term, "xterm-256color"),
+               CONF_OPTION_BOOL(0, "reset-env", &conf->reset_env, true),
                CONF_OPTION_STRING(0, "palette", &conf->palette, NULL),
                CONF_OPTION_UINT(0, "sb-size", &conf->sb_size, 1000),
 
index 71cc453..b18cc80 100644 (file)
@@ -88,6 +88,8 @@ struct kmscon_conf_t {
        char **argv;
        /* TERM value */
        char *term;
+       /* reset environment */
+       bool reset_env;
        /* color palette */
        char *palette;
        /* terminal scroll-back buffer size */
index d4652a9..7cf681e 100644 (file)
@@ -539,6 +539,8 @@ int kmscon_terminal_register(struct kmscon_session **out,
        if (ret)
                goto err_vte;
 
+       kmscon_pty_set_env_reset(term->pty, term->conf->reset_env);
+
        ret = kmscon_pty_set_term(term->pty, term->conf->term);
        if (ret)
                goto err_pty;