re-applied Neale's spawn patch, credited Neale in LICENSE
This commit is contained in:
		
							parent
							
								
									0b5dcf229f
								
							
						
					
					
						commit
						62a491e36d
					
				
							
								
								
									
										1
									
								
								LICENSE
								
								
								
								
							
							
						
						
									
										1
									
								
								LICENSE
								
								
								
								
							| 
						 | 
				
			
			@ -9,6 +9,7 @@ MIT/X Consortium License
 | 
			
		|||
© 2007-2008 Enno Gottox Boland <gottox at s01 dot de>
 | 
			
		||||
© 2007-2008 Peter Hartlich <sgkkr at hartlich dot com>
 | 
			
		||||
© 2008 Martin Hurton <martin dot hurton at gmail dot com>
 | 
			
		||||
© 2008 Neale Pickett <neale dot woozle dot org>
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a
 | 
			
		||||
copy of this software and associated documentation files (the "Software"),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										3
									
								
								README
								
								
								
								
							
							
						
						
									
										3
									
								
								README
								
								
								
								
							| 
						 | 
				
			
			@ -38,11 +38,12 @@ the DISPLAY environment variable is set correctly, e.g.:
 | 
			
		|||
In order to display status info in the bar, you can do something
 | 
			
		||||
like this in your .xinitrc:
 | 
			
		||||
 | 
			
		||||
    dwm &
 | 
			
		||||
    while true
 | 
			
		||||
    do
 | 
			
		||||
        xsetroot -name "`date` `uptime | sed 's/.*,//'`"
 | 
			
		||||
        sleep 1
 | 
			
		||||
    done | dwm
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Configuration
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
# dwm version
 | 
			
		||||
VERSION = 5.3.1
 | 
			
		||||
VERSION = 5.4
 | 
			
		||||
 | 
			
		||||
# Customize below to fit your system
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										25
									
								
								dwm.c
								
								
								
								
							
							
						
						
									
										25
									
								
								dwm.c
								
								
								
								
							| 
						 | 
				
			
			@ -178,6 +178,7 @@ static void setlayout(const Arg *arg);
 | 
			
		|||
static void setmfact(const Arg *arg);
 | 
			
		||||
static void setup(void);
 | 
			
		||||
static void showhide(Client *c);
 | 
			
		||||
static void sigchld(int signal);
 | 
			
		||||
static void spawn(const Arg *arg);
 | 
			
		||||
static void tag(const Arg *arg);
 | 
			
		||||
static int textnw(const char *text, unsigned int len);
 | 
			
		||||
| 
						 | 
				
			
			@ -1340,22 +1341,24 @@ showhide(Client *c) {
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
sigchld(int signal) {
 | 
			
		||||
	while(0 < waitpid(-1, NULL, WNOHANG));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
spawn(const Arg *arg) {
 | 
			
		||||
	/* The double-fork construct avoids zombie processes and keeps the code
 | 
			
		||||
	 * clean from stupid signal handlers. */
 | 
			
		||||
	signal(SIGCHLD, sigchld);
 | 
			
		||||
	if(fork() == 0) {
 | 
			
		||||
		if(fork() == 0) {
 | 
			
		||||
			if(dpy)
 | 
			
		||||
				close(ConnectionNumber(dpy));
 | 
			
		||||
			setsid();
 | 
			
		||||
			execvp(((char **)arg->v)[0], (char **)arg->v);
 | 
			
		||||
			fprintf(stderr, "dwm: execvp %s", ((char **)arg->v)[0]);
 | 
			
		||||
			perror(" failed");
 | 
			
		||||
		}
 | 
			
		||||
		if(dpy)
 | 
			
		||||
			close(ConnectionNumber(dpy));
 | 
			
		||||
		setsid();
 | 
			
		||||
		execvp(((char **)arg->v)[0], (char **)arg->v);
 | 
			
		||||
		fprintf(stderr, "dwm: execvp %s", ((char **)arg->v)[0]);
 | 
			
		||||
		perror(" failed");
 | 
			
		||||
		exit(0);
 | 
			
		||||
	}
 | 
			
		||||
	wait(0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue