wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

commit d0e3417c07e64e57be94c7c99642c9e32203551f
parent fd181a0a7edbfc217fad31dd2a6ec7ce3b8dd971
Author: Kris Maglione <jg@suckless.org>
Date:   Thu, 15 Mar 2007 19:01:58 -0400

Set argv[0] to the - followed by the basename of the login shell.

Diffstat:
fs.c | 4+++-
main.c | 12+++++++-----
2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/fs.c b/fs.c @@ -239,13 +239,15 @@ message_root(char *message) else if(!strncmp(message, "exec ", 5)) { srv.running = 0; execstr = strdup(&message[5]); + message += strlen(message); } else if(!strncmp(message, "view ", 5)) select_view(&message[5]); else if(!strncmp(message, "selcolors ", 10)) { fprintf(stderr, "wmiiwm: warning: selcolors have been removed\n"); return Ebadcmd; - }else if(!strncmp(message, "focuscolors ", 12)) { + } + else if(!strncmp(message, "focuscolors ", 12)) { message += 12; n = strlen(message); return parse_colors(&message, (int *)&n, &def.focuscolor); diff --git a/main.c b/main.c @@ -387,10 +387,12 @@ main(int argc, char *argv[]) { /* Run through the user's shell as a login shell */ tmp = malloc(sizeof(char*) * (strlen(passwd->pw_shell) + 2)); - /* Can't overflow */ - sprintf(tmp, "-%s", passwd->pw_shell); - execl(passwd->pw_shell, tmp, "-c", wmiirc, nil); + if(passwd->pw_shell[0] == '/') + sprintf(tmp, "-%s", strrchr(passwd->pw_shell, '/') + 1); /* Can't overflow */ + else + fatal("wmiiwm: shell is not an absolute path: %s\n", passwd->pw_shell); + execl(passwd->pw_shell, tmp, "-c", wmiirc, nil); fatal("wmiiwm: can't exec \"%s\": %s\n", wmiirc, strerror(errno)); break; /* Not reached */ default: @@ -432,8 +434,8 @@ main(int argc, char *argv[]) { num_screens = 1; screens = emallocz(num_screens * sizeof(*screens)); - for(sock = 0; sock < num_screens; sock++) { - s = &screens[sock]; + for(i = 0; i < num_screens; i++) { + s = &screens[i]; s->lbar = nil; s->rbar = nil; s->sel = nil;