ash: fix ". empty_file" exitcode. +5 bytes
authorDenys Vlasenko <vda.linux@googlemail.com>
Mon, 17 May 2010 15:10:46 +0000 (17:10 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Mon, 17 May 2010 15:10:46 +0000 (17:10 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
shell/ash.c
shell/ash_test/ash-misc/source2.tests

index 75bfbf1157e16eca0fa70fa4fa53da1a8654364d..ef5b2d4c15219ba1c7628d4bb313367e4e45d2b2 100644 (file)
@@ -12031,13 +12031,16 @@ dotcmd(int argc, char **argv)
 {
        struct strlist *sp;
        volatile struct shparam saveparam;
-       int status = 0;
 
        for (sp = cmdenviron; sp; sp = sp->next)
                setvareq(ckstrdup(sp->text), VSTRFIXED | VTEXTFIXED);
 
+       /* "false; . empty_file; echo $?" should print 0, not 1: */
+       exitstatus = 0;
+
        if (argv[1]) {        /* That's what SVR2 does */
                char *fullname = find_dot_file(argv[1]);
+
                argv += 2;
                argc -= 2;
                if (argc) { /* argc > 0, argv[0] != NULL */
@@ -12056,9 +12059,8 @@ dotcmd(int argc, char **argv)
                        freeparam(&shellparam);
                        shellparam = saveparam;
                };
-               status = exitstatus;
        }
-       return status;
+       return exitstatus;
 }
 
 static int FAST_FUNC
index ab63247ef2a848e92fc4bc2fa2d3bd2fd6f4ce38..1870cdf7e502a8ab82ea1cf8ecdccbee5796ca0d 100755 (executable)
@@ -1,4 +1,3 @@
-# Not fixed yet
 false
 . /dev/null
 echo Done: $?