joe-3.1jupp31.tgz (die zweite Klappeā€¦)
[alioth/jupp.git] / main.c
diff --git a/main.c b/main.c
index ae1914b..d195361 100644 (file)
--- a/main.c
+++ b/main.c
@@ -1,4 +1,4 @@
-/* $MirOS: contrib/code/jupp/main.c,v 1.28 2017/01/11 21:48:58 tg Exp $ */
+/* $MirOS: contrib/code/jupp/main.c,v 1.31 2017/08/08 21:39:28 tg Exp $ */
 
 #define JUPP_IS_COPYRIGHT_C_BY "2017 mirabilos"
 
@@ -39,6 +39,7 @@
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
+#include <unistd.h>
 
 #include "b.h"
 #include "help.h"
@@ -185,7 +186,8 @@ int edloop(int flg)
 
 unsigned char **mainenv;
 
-int main(int argc, char **argv, char **envp)
+static int
+main_init(int argc, char **argv, char **envp, SCRN **np)
 {
        CAP *cap;
        unsigned char *s;
@@ -313,6 +315,11 @@ int main(int argc, char **argv, char **envp)
                }
        }
 
+#if HAVE_ISATTY
+       if (idleout && (!isatty(0) || !isatty(1)))
+               idleout = 0;
+#endif
+
        if (!(n = nopen(cap)))
                return 1;
        maint = screate(n);
@@ -411,10 +418,24 @@ int main(int argc, char **argv, char **envp)
                msgnw(((BASE *)lastw(maint)->object)->parent, msgbuf);
        }
 
+       *np = n;
+       return 0;
+}
+
+int main_rv;
+
+int
+main(int argc, char **argv, char **envp)
+{
+       SCRN *n;
+
+       if ((main_rv = main_init(argc, argv, envp, &n)))
+               return (main_rv);
+
        edloop(0);
        vclose(vmem);
        nclose(n);
        if (exmsg)
                fprintf(stderr, "\n%s\n", exmsg);
-       return 0;
+       return (main_rv);
 }