about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* added mouse-based resizalsAnselm R. Garbe2006-07-117-19/+181
|
* updated READMEAnselm R. Garbe2006-07-111-5/+15
|
* several changes, new stuffAnselm R. Garbe2006-07-117-19/+34
|
* removed unnecessary sel stuffAnselm R. Garbe2006-07-114-95/+2
|
* added bar event timerAnselm R. Garbe2006-07-119-51/+87
|
* added protocol killing stuffAnselm R. Garbe2006-07-116-36/+153
|
* new stuffAnselm R. Garbe2006-07-111-0/+20
|
* added gridsel to gridwmAnselm R. Garbe2006-07-117-13/+99
|
* changed how manage client worksAnselm R. Garbe2006-07-114-29/+44
|
* fixed several stuff (gridwm gets better and better)Anselm R. Garbe2006-07-1110-141/+59
|
* added key handlingAnselm R. Garbe2006-07-115-30/+44
|
* new stuffAnselm R. Garbe2006-07-115-32/+25
|
* implemented pipe_spawnAnselm R. Garbe2006-07-117-15/+70
|
* added several other stuffAnselm R. Garbe2006-07-1012-39/+476
|
* renamed gridmenu.c into menu.cAnselm R. Garbe2006-07-102-1/+1
|
* several new changes, made gridmenu workingAnselm R. Garbe2006-07-109-206/+256
|
* added new stuffAnselm R. Garbe2006-07-1011-36/+328
|
* added gridmenuAnselm R. Garbe2006-07-103-3/+617
|
* initial importAnselm R. Garbe2006-07-107-0/+450
tart(ap, errstr); vfprintf(stderr, errstr, ap); va_end(ap); exit(EXIT_FAILURE); } void * erealloc(void *ptr, unsigned int size) { void *res = realloc(ptr, size); if(!res) eprint("fatal: could not malloc() %u bytes\n", size); return res; } void spawn(Arg *arg) { static char *shell = NULL; if(!shell && !(shell = getenv("SHELL"))) shell = "/bin/sh"; if(!arg->cmd) return; /* The double-fork construct avoids zombie processes and keeps the code * clean from stupid signal handlers. */ if(fork() == 0) { if(fork() == 0) { if(dpy) close(ConnectionNumber(dpy)); setsid(); execl(shell, shell, "-c", arg->cmd, (char *)NULL); fprintf(stderr, "dwm: execl '%s -c %s'", shell, arg->cmd); perror(" failed"); } exit(0); } wait(0); }