]> Sergey Matveev's repositories - st.git/commitdiff
Remove insane *_FILENO and EXIT_* usage
authorFRIGN <dev@frign.de>
Wed, 8 Jul 2015 21:49:25 +0000 (23:49 +0200)
committerChristoph Lohmann <20h@r-36.net>
Thu, 9 Jul 2015 16:34:41 +0000 (18:34 +0200)
Any system having different assignments than the usual 0, 1, 2 for
the 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 <20h@r-36.net>
st.c

diff --git a/st.c b/st.c
index b89d094dada5d60fe76307ca7fb6a41efa0bdc90..46c0b6ef554b7dea153824426ff01f148c202ba2 100644 (file)
--- a/st.c
+++ b/st.c
@@ -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;
@@ -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
@@ -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)
@@ -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);
 }
 
 
@@ -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));
@@ -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;
@@ -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);
@@ -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);
        }
 }