aewl

diff util.c @ 5:e5018cae273f

added several other stuff
author Anselm R. Garbe <garbeam@wmii.de>
date Mon, 10 Jul 2006 22:16:48 +0200
parents e969f3575b7a
children e0cefb3981c8
line diff
     1.1 --- a/util.c	Mon Jul 10 19:47:35 2006 +0200
     1.2 +++ b/util.c	Mon Jul 10 22:16:48 2006 +0200
     1.3 @@ -7,6 +7,11 @@
     1.4  #include <stdio.h>
     1.5  #include <stdlib.h>
     1.6  #include <string.h>
     1.7 +#include <sys/types.h>
     1.8 +#include <sys/wait.h>
     1.9 +#include <unistd.h>
    1.10 +
    1.11 +#include "util.h"
    1.12  
    1.13  void
    1.14  error(char *errstr, ...) {
    1.15 @@ -75,3 +80,21 @@
    1.16  	*p1 = *p2;
    1.17  	*p2 = tmp;
    1.18  }
    1.19 +
    1.20 +void
    1.21 +spawn(Display *dpy, const char *shell, const char *cmd)
    1.22 +{
    1.23 +	if(!cmd || !shell)
    1.24 +		return;
    1.25 +	if(fork() == 0) {
    1.26 +		if(fork() == 0) {
    1.27 +			if(dpy)
    1.28 +				close(ConnectionNumber(dpy));
    1.29 +			execl(shell, shell, "-c", cmd, (const char *)0);
    1.30 +			fprintf(stderr, "gridwm: execl %s", shell);
    1.31 +			perror(" failed");
    1.32 +		}
    1.33 +		exit (0);
    1.34 +	}
    1.35 +	wait(0);
    1.36 +}