iRemove insane *_FILENO and EXIT_* usage - st - Simple Terminal Err gopher.r-36.net 70 i Err gopher.r-36.net 70 1Log /scm/st//log.gph gopher.r-36.net 70 1Files /scm/st//files.gph gopher.r-36.net 70 1Refs /scm/st//refs.gph gopher.r-36.net 70 1README /scm/st//file/README.gph gopher.r-36.net 70 1LICENSE /scm/st//file/LICENSE.gph gopher.r-36.net 70 i--- Err gopher.r-36.net 70 1commit abfad4c4fc69ebb22febfe32677aadd112ce375a /scm/st//commit/abfad4c4fc69ebb22febfe32677aadd112ce375a.gph gopher.r-36.net 70 1parent 92e092efe6c6b2a6b6ec9da33170317d4426cab0 /scm/st//commit/92e092efe6c6b2a6b6ec9da33170317d4426cab0.gph gopher.r-36.net 70 hAuthor: FRIGN URL:mailto:dev@frign.de gopher.r-36.net 70 iDate: Wed, 8 Jul 2015 23:49:25 +0200 Err gopher.r-36.net 70 i Err gopher.r-36.net 70 iRemove insane *_FILENO and EXIT_* usage Err gopher.r-36.net 70 i Err gopher.r-36.net 70 iAny system having different assignments than the usual 0, 1, 2 for Err gopher.r-36.net 70 ithe standard file numbers and 0, 1 for the exit-statuses is broken Err gopher.r-36.net 70 ibeyond repair. Err gopher.r-36.net 70 iLet's keep it simple and just use the numbers, no reason to fall Err gopher.r-36.net 70 iout of the window here and bend down for POSIX. Err gopher.r-36.net 70 iIn one occasion, the ret-variable was not necessary. The check was Err gopher.r-36.net 70 irewritten. Err gopher.r-36.net 70 i Err gopher.r-36.net 70 iSigned-off-by: Christoph Lohmann <20h@r-36.net> Err gopher.r-36.net 70 i Err gopher.r-36.net 70 iDiffstat: Err gopher.r-36.net 70 i st.c | 26 ++++++++++++-------------- Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i1 file changed, 12 insertions(+), 14 deletions(-) Err gopher.r-36.net 70 i--- Err gopher.r-36.net 70 1diff --git a/st.c b/st.c /scm/st//file/st.c.gph gopher.r-36.net 70 i@@ -513,7 +513,7 @@ static STREscape strescseq; Err gopher.r-36.net 70 i static int cmdfd; Err gopher.r-36.net 70 i static pid_t pid; Err gopher.r-36.net 70 i static Selection sel; Err gopher.r-36.net 70 i-static int iofd = STDOUT_FILENO; Err gopher.r-36.net 70 i+static int iofd = 1; Err gopher.r-36.net 70 i static char **opt_cmd = NULL; Err gopher.r-36.net 70 i static char *opt_io = NULL; Err gopher.r-36.net 70 i static char *opt_title = NULL; Err gopher.r-36.net 70 i@@ -1207,7 +1207,7 @@ die(const char *errstr, ...) { Err gopher.r-36.net 70 i va_start(ap, errstr); Err gopher.r-36.net 70 i vfprintf(stderr, errstr, ap); Err gopher.r-36.net 70 i va_end(ap); Err gopher.r-36.net 70 i- exit(EXIT_FAILURE); Err gopher.r-36.net 70 i+ exit(1); Err gopher.r-36.net 70 i } Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i void Err gopher.r-36.net 70 i@@ -1256,12 +1256,12 @@ execsh(void) { Err gopher.r-36.net 70 i signal(SIGALRM, SIG_DFL); Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i execvp(prog, args); Err gopher.r-36.net 70 i- _exit(EXIT_FAILURE); Err gopher.r-36.net 70 i+ _exit(1); Err gopher.r-36.net 70 i } Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i void Err gopher.r-36.net 70 i sigchld(int a) { Err gopher.r-36.net 70 i- int stat, ret; Err gopher.r-36.net 70 i+ int stat; Err gopher.r-36.net 70 i pid_t p; Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i if((p = waitpid(pid, &stat, WNOHANG)) < 0) Err gopher.r-36.net 70 i@@ -1270,10 +1270,9 @@ sigchld(int a) { Err gopher.r-36.net 70 i if(pid != p) Err gopher.r-36.net 70 i return; Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i- ret = WIFEXITED(stat) ? WEXITSTATUS(stat) : EXIT_FAILURE; Err gopher.r-36.net 70 i- if (ret != EXIT_SUCCESS) Err gopher.r-36.net 70 i+ if (!WIFEXITED(stat) || WEXITSTATUS(stat)) Err gopher.r-36.net 70 i die("child finished with error '%d'\n", stat); Err gopher.r-36.net 70 i- exit(EXIT_SUCCESS); Err gopher.r-36.net 70 i+ exit(0); Err gopher.r-36.net 70 i } Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i@@ -1309,8 +1308,7 @@ ttynew(void) { Err gopher.r-36.net 70 i if(opt_io) { Err gopher.r-36.net 70 i term.mode |= MODE_PRINT; Err gopher.r-36.net 70 i iofd = (!strcmp(opt_io, "-")) ? Err gopher.r-36.net 70 i- STDOUT_FILENO : Err gopher.r-36.net 70 i- open(opt_io, O_WRONLY | O_CREAT, 0666); Err gopher.r-36.net 70 i+ 1 : open(opt_io, O_WRONLY | O_CREAT, 0666); Err gopher.r-36.net 70 i if(iofd < 0) { Err gopher.r-36.net 70 i fprintf(stderr, "Error opening %s:%s\n", Err gopher.r-36.net 70 i opt_io, strerror(errno)); Err gopher.r-36.net 70 i@@ -1320,7 +1318,7 @@ ttynew(void) { Err gopher.r-36.net 70 i if (opt_line) { Err gopher.r-36.net 70 i if((cmdfd = open(opt_line, O_RDWR)) < 0) Err gopher.r-36.net 70 i die("open line failed: %s\n", strerror(errno)); Err gopher.r-36.net 70 i- close(STDIN_FILENO); Err gopher.r-36.net 70 i+ close(0); Err gopher.r-36.net 70 i dup(cmdfd); Err gopher.r-36.net 70 i stty(); Err gopher.r-36.net 70 i return; Err gopher.r-36.net 70 i@@ -1337,9 +1335,9 @@ ttynew(void) { Err gopher.r-36.net 70 i case 0: Err gopher.r-36.net 70 i close(iofd); Err gopher.r-36.net 70 i setsid(); /* create a new process group */ Err gopher.r-36.net 70 i- dup2(s, STDIN_FILENO); Err gopher.r-36.net 70 i- dup2(s, STDOUT_FILENO); Err gopher.r-36.net 70 i- dup2(s, STDERR_FILENO); Err gopher.r-36.net 70 i+ dup2(s, 0); Err gopher.r-36.net 70 i+ dup2(s, 1); Err gopher.r-36.net 70 i+ dup2(s, 2); Err gopher.r-36.net 70 i if(ioctl(s, TIOCSCTTY, NULL) < 0) Err gopher.r-36.net 70 i die("ioctl TIOCSCTTY failed: %s\n", strerror(errno)); Err gopher.r-36.net 70 i close(s); Err gopher.r-36.net 70 i@@ -3871,7 +3869,7 @@ cmessage(XEvent *e) { Err gopher.r-36.net 70 i } else if(e->xclient.data.l[0] == xw.wmdeletewin) { Err gopher.r-36.net 70 i /* Send SIGHUP to shell */ Err gopher.r-36.net 70 i kill(pid, SIGHUP); Err gopher.r-36.net 70 i- exit(EXIT_SUCCESS); Err gopher.r-36.net 70 i+ exit(0); Err gopher.r-36.net 70 i } Err gopher.r-36.net 70 i } Err gopher.r-36.net 70 i Err gopher.r-36.net 70 .