From cd10dc40e4057d081caf7676a4fed31977f2d94d Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Mon, 17 May 2010 17:10:46 +0200 Subject: ash: fix ". empty_file" exitcode. +5 bytes Signed-off-by: Denys Vlasenko --- shell/ash.c | 8 +++++--- shell/ash_test/ash-misc/source2.tests | 1 - 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'shell') diff --git a/shell/ash.c b/shell/ash.c index 75bfbf115..ef5b2d4c1 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -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 diff --git a/shell/ash_test/ash-misc/source2.tests b/shell/ash_test/ash-misc/source2.tests index ab63247ef..1870cdf7e 100755 --- a/shell/ash_test/ash-misc/source2.tests +++ b/shell/ash_test/ash-misc/source2.tests @@ -1,4 +1,3 @@ -# Not fixed yet false . /dev/null echo Done: $? -- cgit v1.2.3