On Sun, Nov 28, 2010 at 08:24:37PM +0800, Herbert Xu wrote: > On Sun, Nov 28, 2010 at 08:06:27PM +0800, Herbert Xu wrote: > > > > However, instead of adding an ad-hoc exception for EXFILE, I'm > > simply going to move the exit status setting for EXERROR out of > > main.c and into error.c which should let you get what you want. > > Something like this: And here is the final patch that I applied for this: commit 34f60a3781ea8f17f3d2a1a743a9aab9b31a296f Author: Gerrit Pape <pape@xxxxxxxxxxx> Date: Sun Nov 28 20:32:00 2010 +0800 [INPUT] Use exit status 127 when the script to run does not exist This commit makes dash exit with return code 127 instead of 2 if started as non-interactive shell with a non-existent command_file specified as argument (or a directory), as documented in http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html#tag_04_128_14 The wrong exit code was reported by Clint Adams and Jari Aalto through http://bugs.debian.org/548743 http://bugs.debian.org/548687 Signed-off-by: Gerrit Pape <pape@xxxxxxxxxxx> Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> diff --git a/ChangeLog b/ChangeLog index e5479a8..a18838c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2010-11-28 Gerrit Pape <pape@xxxxxxxxxxx> + + * Use exit status 127 when the script to run does not exist. + 2010-11-28 Philipp Weis <pweis@xxxxxxxxx> * Document optional open parenthesis for case patterns. diff --git a/src/input.c b/src/input.c index e57ad76..bd3a9a2 100644 --- a/src/input.c +++ b/src/input.c @@ -42,6 +42,7 @@ * This file implements the input routines used by the parser. */ +#include "eval.h" #include "shell.h" #include "redir.h" #include "syntax.h" @@ -408,7 +409,8 @@ setinputfile(const char *fname, int flags) if ((fd = open(fname, O_RDONLY)) < 0) { if (flags & INPUT_NOFILE_OK) goto out; - sh_error("Can't open %s", fname); + exitstatus = 127; + exerror(EXERROR, "Can't open %s", fname); } if (fd < 10) fd = savefd(fd, fd); Thanks, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- To unsubscribe from this list: send the line "unsubscribe dash" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html