diff options
-rw-r--r-- | config.c | 3 | ||||
-rw-r--r-- | pty-unix.c | 13 | ||||
-rw-r--r-- | term.h | 2 |
3 files changed, 13 insertions, 5 deletions
@@ -194,6 +194,9 @@ static void runes_config_set(RunesTerm *t, char *key, char *val) else if (!strcmp(key, "cols")) { t->default_cols = runes_config_parse_uint(val); } + else if (!strcmp(key, "command")) { + t->cmd = runes_config_parse_string(val); + } else { fprintf(stderr, "unknown option: '%s'\n", key); } @@ -24,7 +24,7 @@ void runes_pty_backend_spawn_subprocess(RunesTerm *t) pty->slave = -1; } else { - char *shell; + char *cmd; setsid(); ioctl(pty->slave, TIOCSCTTY, NULL); @@ -37,9 +37,12 @@ void runes_pty_backend_spawn_subprocess(RunesTerm *t) close(pty->slave); - shell = getenv("SHELL"); - if (!shell) { - shell = "/bin/sh"; + cmd = t->cmd; + if (!cmd) { + cmd = getenv("SHELL"); + } + if (!cmd) { + cmd = "/bin/sh"; } /* XXX should use a different TERM value eventually, but for right now @@ -48,7 +51,7 @@ void runes_pty_backend_spawn_subprocess(RunesTerm *t) unsetenv("LINES"); unsetenv("COLUMNS"); - execl(shell, shell, (char *)NULL); + execl(cmd, cmd, (char *)NULL); } } @@ -36,6 +36,8 @@ struct runes_term { int default_rows; int default_cols; + char *cmd; + char *font_name; PangoLayout *layout; |