aboutsummaryrefslogtreecommitdiff
path: root/keep/manual-programs/suckless/st-flexipatch/patch/rightclicktoplumb_x.c
blob: 674b6025060bb351dc7173caebacf91aa7a14c7c (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
25
#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);
	}
}