summaryrefslogtreecommitdiff
path: root/oldresources/st/patch/rightclicktoplumb_x.c
blob: 1b9b2bc3e48ad9d3149ebf1f6a9a4cdfb6ced840 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <sys/wait.h>

void
plumb(char *sel) {
	if (sel == NULL)
		return;
	char cwd[PATH_MAX];
	pid_t child;
	if (subprocwd(cwd) != 0)
		return;

	switch(child = fork()) {
		case -1:
			return;
		case 0:
			if (chdir(cwd) != 0)
				exit(1);
			if (execvp(plumb_cmd, (char *const []){plumb_cmd, sel, 0}) == -1)
				exit(1);
			exit(0);
		default:
			waitpid(child, NULL, 0);
	}
}