diff -r 991bd8b0771e -r e5018cae273f util.c --- a/util.c Mon Jul 10 19:47:35 2006 +0200 +++ b/util.c Mon Jul 10 22:16:48 2006 +0200 @@ -7,6 +7,11 @@ #include #include #include +#include +#include +#include + +#include "util.h" void error(char *errstr, ...) { @@ -75,3 +80,21 @@ *p1 = *p2; *p2 = tmp; } + +void +spawn(Display *dpy, const char *shell, const char *cmd) +{ + if(!cmd || !shell) + return; + if(fork() == 0) { + if(fork() == 0) { + if(dpy) + close(ConnectionNumber(dpy)); + execl(shell, shell, "-c", cmd, (const char *)0); + fprintf(stderr, "gridwm: execl %s", shell); + perror(" failed"); + } + exit (0); + } + wait(0); +}