| tRemove insane *_FILENO and EXIT_* usage - st - [fork] customized build of st, … | |
| git clone git://src.adamsgaard.dk/st | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| commit abfad4c4fc69ebb22febfe32677aadd112ce375a | |
| parent 92e092efe6c6b2a6b6ec9da33170317d4426cab0 | |
| Author: FRIGN <[email protected]> | |
| Date: Wed, 8 Jul 2015 23:49:25 +0200 | |
| Remove insane *_FILENO and EXIT_* usage | |
| Any system having different assignments than the usual 0, 1, 2 for | |
| tthe standard file numbers and 0, 1 for the exit-statuses is broken | |
| beyond repair. | |
| Let's keep it simple and just use the numbers, no reason to fall | |
| out of the window here and bend down for POSIX. | |
| In one occasion, the ret-variable was not necessary. The check was | |
| rewritten. | |
| Signed-off-by: Christoph Lohmann <[email protected]> | |
| Diffstat: | |
| M st.c | 26 ++++++++++++-------------- | |
| 1 file changed, 12 insertions(+), 14 deletions(-) | |
| --- | |
| diff --git a/st.c b/st.c | |
| t@@ -513,7 +513,7 @@ static STREscape strescseq; | |
| static int cmdfd; | |
| static pid_t pid; | |
| static Selection sel; | |
| -static int iofd = STDOUT_FILENO; | |
| +static int iofd = 1; | |
| static char **opt_cmd = NULL; | |
| static char *opt_io = NULL; | |
| static char *opt_title = NULL; | |
| t@@ -1207,7 +1207,7 @@ die(const char *errstr, ...) { | |
| va_start(ap, errstr); | |
| vfprintf(stderr, errstr, ap); | |
| va_end(ap); | |
| - exit(EXIT_FAILURE); | |
| + exit(1); | |
| } | |
| void | |
| t@@ -1256,12 +1256,12 @@ execsh(void) { | |
| signal(SIGALRM, SIG_DFL); | |
| execvp(prog, args); | |
| - _exit(EXIT_FAILURE); | |
| + _exit(1); | |
| } | |
| void | |
| sigchld(int a) { | |
| - int stat, ret; | |
| + int stat; | |
| pid_t p; | |
| if((p = waitpid(pid, &stat, WNOHANG)) < 0) | |
| t@@ -1270,10 +1270,9 @@ sigchld(int a) { | |
| if(pid != p) | |
| return; | |
| - ret = WIFEXITED(stat) ? WEXITSTATUS(stat) : EXIT_FAILURE; | |
| - if (ret != EXIT_SUCCESS) | |
| + if (!WIFEXITED(stat) || WEXITSTATUS(stat)) | |
| die("child finished with error '%d'\n", stat); | |
| - exit(EXIT_SUCCESS); | |
| + exit(0); | |
| } | |
| t@@ -1309,8 +1308,7 @@ ttynew(void) { | |
| if(opt_io) { | |
| term.mode |= MODE_PRINT; | |
| iofd = (!strcmp(opt_io, "-")) ? | |
| - STDOUT_FILENO : | |
| - open(opt_io, O_WRONLY | O_CREAT, 0666); | |
| + 1 : open(opt_io, O_WRONLY | O_CREAT, 0666); | |
| if(iofd < 0) { | |
| fprintf(stderr, "Error opening %s:%s\n", | |
| opt_io, strerror(errno)); | |
| t@@ -1320,7 +1318,7 @@ ttynew(void) { | |
| if (opt_line) { | |
| if((cmdfd = open(opt_line, O_RDWR)) < 0) | |
| die("open line failed: %s\n", strerror(errno)); | |
| - close(STDIN_FILENO); | |
| + close(0); | |
| dup(cmdfd); | |
| stty(); | |
| return; | |
| t@@ -1337,9 +1335,9 @@ ttynew(void) { | |
| case 0: | |
| close(iofd); | |
| setsid(); /* create a new process group */ | |
| - dup2(s, STDIN_FILENO); | |
| - dup2(s, STDOUT_FILENO); | |
| - dup2(s, STDERR_FILENO); | |
| + dup2(s, 0); | |
| + dup2(s, 1); | |
| + dup2(s, 2); | |
| if(ioctl(s, TIOCSCTTY, NULL) < 0) | |
| die("ioctl TIOCSCTTY failed: %s\n", strerror(errno)); | |
| close(s); | |
| t@@ -3871,7 +3869,7 @@ cmessage(XEvent *e) { | |
| } else if(e->xclient.data.l[0] == xw.wmdeletewin) { | |
| /* Send SIGHUP to shell */ | |
| kill(pid, SIGHUP); | |
| - exit(EXIT_SUCCESS); | |
| + exit(0); | |
| } | |
| } | |