X-Git-Url: https://jasonwoof.com/gitweb/?p=st.git;a=blobdiff_plain;f=st.c;h=ab3fa6e6ab2caf1ca8ce264870b5082275c02fcd;hp=dd3301b121083cfaeea2383d7912e31634f2b860;hb=5afb3862ba368de8888c0c570098baababc7bc19;hpb=0392d165d07143eec29c730364006bc0613e1198 diff --git a/st.c b/st.c index dd3301b..ab3fa6e 100644 --- a/st.c +++ b/st.c @@ -1153,16 +1153,22 @@ execsh(void) { else die("who are you?\n"); } - unsetenv("COLUMNS"); - unsetenv("LINES"); - unsetenv("TERMCAP"); - sh = (pw->pw_shell[0]) ? pw->pw_shell : shell; + if (utmp) + sh = utmp; + else if (pw->pw_shell[0]) + sh = pw->pw_shell; + else + sh = shell; + args = (opt_cmd) ? opt_cmd : (char *[]){sh, NULL}; snprintf(buf, sizeof(buf), "%lu", xw.win); + unsetenv("COLUMNS"); + unsetenv("LINES"); + unsetenv("TERMCAP"); setenv("LOGNAME", pw->pw_name, 1); setenv("USER", pw->pw_name, 1); - setenv("SHELL", sh, 1); + setenv("SHELL", args[0], 1); setenv("HOME", pw->pw_dir, 1); setenv("TERM", termname, 1); setenv("WINDOWID", buf, 1); @@ -1174,7 +1180,6 @@ execsh(void) { signal(SIGTERM, SIG_DFL); signal(SIGALRM, SIG_DFL); - args = opt_cmd ? opt_cmd : (char *[]){sh, "-i", NULL}; execvp(args[0], args); exit(EXIT_FAILURE); }