Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Esc to quit; Fixed re-use of 'line' bug; Better error message w/o default bang
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 630e1c27e3c26316a7ca699327bef45ec7e66859384a2ab8e4cb4a6a1395d93d
User & Date: jmcclure 2020-03-25 21:36:34
Context
2020-03-25
23:26
Added dependency comments to scripts check-in: 105c7b9165 user: jmcclure tags: trunk
21:36
Esc to quit; Fixed re-use of 'line' bug; Better error message w/o default bang check-in: 630e1c27e3 user: jmcclure tags: trunk
21:23
Fixed spacing: tab -> spaces check-in: edc0f9d268 user: jmcclure tags: trunk
Changes

Changes to config.h.

15
16
17
18
19
20
21

22
23
24
25
26
27
28
	/* 'h' is determined by font metrics */
	left = 4, // TODO, I hate this ... needs to come from font metrics
	bpx = 1;

static Key keys[] = {
/*   Modifiers             Keysym           Function     Args */
	{ ControlMask,          XK_q,            quit,        { 0 } },

	{ 0,                    XK_Tab,          complete,    { .v = "default" } },
	{ 0,                    XK_Return,       run,         { .v = "default" } },

	{ 0,                    XK_Left,         move,        { .i = -1 } },
	{ 0,                    XK_Right,        move,        { .i = +1 } },
	{ 0,                    XK_Home,         move,        { .i = -MAX } },
	{ 0,                    XK_End,          move,        { .i = +MAX } },







>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
	/* 'h' is determined by font metrics */
	left = 4, // TODO, I hate this ... needs to come from font metrics
	bpx = 1;

static Key keys[] = {
/*   Modifiers             Keysym           Function     Args */
	{ ControlMask,          XK_q,            quit,        { 0 } },
	{ 0,                    XK_Escape,       quit,        { 0 } },
	{ 0,                    XK_Tab,          complete,    { .v = "default" } },
	{ 0,                    XK_Return,       run,         { .v = "default" } },

	{ 0,                    XK_Left,         move,        { .i = -1 } },
	{ 0,                    XK_Right,        move,        { .i = +1 } },
	{ 0,                    XK_Home,         move,        { .i = -MAX } },
	{ 0,                    XK_End,          move,        { .i = +MAX } },

Changes to interrobang.c.

74
75
76
77
78
79
80

81
82
83
84
85
86
87
...
260
261
262
263
264
265
266
267


268
269
270
271
272
273
274
	}
	else if ((var=getenv("HOME"))) {
		snprintf(line, MAX, "%s/.local/share/interrobang/tab/", var);
		setenv(ENV_TAB, line, 1);
		snprintf(line, MAX, "%s/.local/share/interrobang/run/", var);
		setenv(ENV_RUN, line, 1);
	}

	return 0;
}

static int xlibInit(int argc, const char *argv[]) {
	int i;
	dpy = XOpenDisplay(0x0);
	scr = DefaultScreen(dpy);
................................................................................
	pipe(fd);
	pid = fork();
	if (pid == 0) {
		close(fd[0]);
		if (run) close(fd[1]);
		else dup2(fd[1], STDOUT_FILENO);
		execl(arg0, arg0, arg1, NULL);
		fprintf(stderr, "%s for '%s' not found\n", run ? "Runner": "Completer", getenv(ENV_BANG));


		_exit(1);
	}
	else {
		close(fd[1]);
		if (run) { close(fd[0]); cleanup(); exit(0); }
		in = fdopen(fd[0], "r");
		if (!fgets(line, MAX, in)) {







>







 







|
>
>







74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
...
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
	}
	else if ((var=getenv("HOME"))) {
		snprintf(line, MAX, "%s/.local/share/interrobang/tab/", var);
		setenv(ENV_TAB, line, 1);
		snprintf(line, MAX, "%s/.local/share/interrobang/run/", var);
		setenv(ENV_RUN, line, 1);
	}
	line[0] = '\0';
	return 0;
}

static int xlibInit(int argc, const char *argv[]) {
	int i;
	dpy = XOpenDisplay(0x0);
	scr = DefaultScreen(dpy);
................................................................................
	pipe(fd);
	pid = fork();
	if (pid == 0) {
		close(fd[0]);
		if (run) close(fd[1]);
		else dup2(fd[1], STDOUT_FILENO);
		execl(arg0, arg0, arg1, NULL);
		fprintf(stderr, "%s for '%s' not found\n",
				run ? "Runner": "Completer",
				line[0] == bang ? getenv(ENV_BANG) : arg->v);
		_exit(1);
	}
	else {
		close(fd[1]);
		if (run) { close(fd[0]); cleanup(); exit(0); }
		in = fdopen(fd[0], "r");
		if (!fgets(line, MAX, in)) {