JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
added logo+description
[dwm.git] / util.c
diff --git a/util.c b/util.c
index 435069f..0a5bd96 100644 (file)
--- a/util.c
+++ b/util.c
 #include <sys/wait.h>
 #include <unistd.h>
 
-#include "util.h"
+#include "wm.h"
 
 void
-error(char *errstr, ...) {
+error(const char *errstr, ...) {
        va_list ap;
        va_start(ap, errstr);
        vfprintf(stderr, errstr, ap);
@@ -60,20 +60,13 @@ erealloc(void *ptr, unsigned int size)
 char *
 estrdup(const char *str)
 {
-       void *res = strdup(str);
+       char *res = strdup(str);
        if(!res)
                bad_malloc(strlen(str));
        return res;
 }
 
 void
-failed_assert(char *a, char *file, int line)
-{
-       fprintf(stderr, "Assertion \"%s\" failed at %s:%d\n", a, file, line);
-       abort();
-}
-
-void
 swap(void **p1, void **p2)
 {
        void *tmp = *p1;
@@ -82,16 +75,17 @@ swap(void **p1, void **p2)
 }
 
 void
-spawn(Display *dpy, const char *shell, const char *cmd)
+spawn(char *argv[])
 {
-       if(!cmd || !shell)
+       if(!argv || !argv[0])
                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);
+                       setsid();
+                       execvp(argv[0], argv);
+                       fprintf(stderr, "dwm: execvp %s", argv[0]);
                        perror(" failed");
                }
                exit (0);