ash: ducument where "no fds > 9 in redirects" limitation is.
authorDenis Vlasenko <vda.linux@googlemail.com>
Thu, 24 Jul 2008 13:41:37 +0000 (13:41 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Thu, 24 Jul 2008 13:41:37 +0000 (13:41 -0000)
 no code changes.

shell/ash.c

index 8f31436691f76435a5fe48c2fd18fa457805b07c..6de71f6d7634cfcf5477bbde31baecd7b999df5c 100644 (file)
@@ -8705,8 +8705,8 @@ evalcommand(union node *cmd, int flags)
                for (;;) {
                        find_command(argv[0], &cmdentry, cmd_flag, path);
                        if (cmdentry.cmdtype == CMDUNKNOWN) {
-                               status = 127;
                                flush_stderr();
+                               status = 127;
                                goto bail;
                        }
 
@@ -8812,12 +8812,13 @@ evalcommand(union node *cmd, int flags)
 
  out:
        popredir(cmd_is_exec);
-       if (lastarg)
+       if (lastarg) {
                /* dsl: I think this is intended to be used to support
                 * '_' in 'vi' command mode during line editing...
                 * However I implemented that within libedit itself.
                 */
                setvar("_", lastarg, 0);
+       }
        popstackmark(&smark);
 }
 
@@ -10649,7 +10650,7 @@ readtoken1(int firstc, int syntax, char *eofmark, int striptabs)
        if (eofmark == NULL) {
                if ((c == '>' || c == '<')
                 && quotef == 0
-                && len <= 2
+                && len <= 2 // THIS LIMITS fd to 1 char: N>file, but no NN>file!
                 && (*out == '\0' || isdigit(*out))
                ) {
                        PARSEREDIR();