aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAurélien Aptel <aurelien.aptel@gmail.com>2010-11-28 13:17:20 +0100
committerAurélien Aptel <aurelien.aptel@gmail.com>2010-11-28 13:17:20 +0100
commit191e59e4389cc0d235c14be5a53554267a81c0a6 (patch)
tree26efc54b9d73954244e2e2fc06890b3beb13af12
parent0f3765593981821986c7586350d792e26c22f71e (diff)
downloadst-patched-191e59e4389cc0d235c14be5a53554267a81c0a6.tar.bz2
st-patched-191e59e4389cc0d235c14be5a53554267a81c0a6.tar.xz
st-patched-191e59e4389cc0d235c14be5a53554267a81c0a6.zip
-e flag handles arguments.
-rw-r--r--st.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/st.c b/st.c
index 4d04416..d43c30c 100644
--- a/st.c
+++ b/st.c
@@ -545,11 +545,15 @@ die(const char *errstr, ...) {
545 545
546void 546void
547execsh(void) { 547execsh(void) {
548 char *args[] = {getenv("SHELL"), "-i", NULL}; 548 char **args;
549 char *envshell = getenv("SHELL");
550 DEFAULT(envshell, "sh");
551
549 if(opt_cmd) 552 if(opt_cmd)
550 args[0] = opt_cmd, args[1] = NULL; 553 args = (char*[]){"sh", "-c", opt_cmd, NULL};
551 else 554 else
552 DEFAULT(args[0], SHELL); 555 args = (char*[]){envshell, "-i", NULL};
556
553 putenv("TERM="TNAME); 557 putenv("TERM="TNAME);
554 execvp(args[0], args); 558 execvp(args[0], args);
555} 559}