zsh-workers
 help / color / mirror / code / Atom feed
* "set -o foo" does not fail / does not abort the shell
@ 2007-12-11 12:54 Vincent Lefevre
  2007-12-11 13:56 ` Peter Stephenson
  0 siblings, 1 reply; 4+ messages in thread
From: Vincent Lefevre @ 2007-12-11 12:54 UTC (permalink / raw)
  To: zsh-workers

I've tried the following with zsh-4.3.4-dev-4:

$ Src/zsh -f -c 'emulate sh; set -o foo; echo "Didn''t abort ($?)"'
set: no such option: foo
Didn't abort (0)

This is incorrect. The shell should abort as 'set' is a special
builtin[*]:

$ ksh93 -c 'set -o foo; echo "Didn''t abort ($?)"'
ksh93[1]: set: foo: bad option(s)
Usage: set [-sabefhkmnprtuvxBCGH] [-A name] [-o[option]] [arg ...]
zsh: exit 2     ksh93 -c 'set -o foo; echo "Didn't abort ($?)"'

[*] http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_08_01
    http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_14

See also the discussion on:
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=452972

And in an interactive shell, "set -o foo" should return with a
non-zero exit status.

Please check the other special builtins:

  http://www.opengroup.org/onlinepubs/009695399/idx/sbi.html

-- 
Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: "set -o foo" does not fail / does not abort the shell
  2007-12-11 12:54 "set -o foo" does not fail / does not abort the shell Vincent Lefevre
@ 2007-12-11 13:56 ` Peter Stephenson
  2007-12-11 16:35   ` Bart Schaefer
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Stephenson @ 2007-12-11 13:56 UTC (permalink / raw)
  To: zsh-workers

Vincent Lefevre wrote:
> I've tried the following with zsh-4.3.4-dev-4:
> 
> $ Src/zsh -f -c 'emulate sh; set -o foo; echo "Didn''t abort ($?)"'
> set: no such option: foo
> Didn't abort (0)
> 
> This is incorrect. The shell should abort as 'set' is a special
> builtin[*]:

This is easy.

> Please check the other special builtins:
> 
>   http://www.opengroup.org/onlinepubs/009695399/idx/sbi.html

This is a big job.  Someone will have to volunteer for this.

Index: Src/builtin.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/builtin.c,v
retrieving revision 1.181
diff -u -r1.181 builtin.c
--- Src/builtin.c	6 Nov 2007 11:04:35 -0000	1.181
+++ Src/builtin.c	11 Dec 2007 13:08:10 -0000
@@ -567,9 +567,9 @@
 		    return 0;
 		}
 		if(!(optno = optlookup(*args)))
-		    zwarnnam(nam, "no such option: %s", *args);
+		    zerrnam(nam, "no such option: %s", *args);
 		else if(dosetopt(optno, action, 0))
-		    zwarnnam(nam, "can't change option: %s", *args);
+		    zerrnam(nam, "can't change option: %s", *args);
 		break;
 	    } else if(**args == 'A') {
 		if(!*++*args)
@@ -588,13 +588,15 @@
 		sort = action ? 1 : -1;
 	    else {
 	    	if (!(optno = optlookupc(**args)))
-		    zwarnnam(nam, "bad option: -%c", **args);
+		    zerrnam(nam, "bad option: -%c", **args);
 		else if(dosetopt(optno, action, 0))
-		    zwarnnam(nam, "can't change option: -%c", **args);
+		    zerrnam(nam, "can't change option: -%c", **args);
 	    }
 	}
 	args++;
     }
+    if (errflag)
+	return 1;
  doneoptions:
     inittyptab();
 

-- 
Peter Stephenson <pws@csr.com>                  Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK                          Tel: +44 (0)1223 692070


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: "set -o foo" does not fail / does not abort the shell
  2007-12-11 13:56 ` Peter Stephenson
@ 2007-12-11 16:35   ` Bart Schaefer
  2007-12-11 16:39     ` Peter Stephenson
  0 siblings, 1 reply; 4+ messages in thread
From: Bart Schaefer @ 2007-12-11 16:35 UTC (permalink / raw)
  To: zsh-workers

On Dec 11,  1:56pm, Peter Stephenson wrote:
}
} Vincent Lefevre wrote:
} > I've tried the following with zsh-4.3.4-dev-4:
} > 
} > $ Src/zsh -f -c 'emulate sh; set -o foo; echo "Didn''t abort ($?)"'
} > set: no such option: foo
} > Didn't abort (0)
} > 
} > This is incorrect. The shell should abort as 'set' is a special
} > builtin[*]:
} 
} This is easy.

I'm left wondering if this shouldn't be a POSIX-mode thing, i.e. whether
zsh in "native mode" should continue as it has.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: "set -o foo" does not fail / does not abort the shell
  2007-12-11 16:35   ` Bart Schaefer
@ 2007-12-11 16:39     ` Peter Stephenson
  0 siblings, 0 replies; 4+ messages in thread
From: Peter Stephenson @ 2007-12-11 16:39 UTC (permalink / raw)
  To: zsh-workers

Bart Schaefer wrote:
> On Dec 11,  1:56pm, Peter Stephenson wrote:
> }
> } Vincent Lefevre wrote:
> } > I've tried the following with zsh-4.3.4-dev-4:
> } > 
> } > $ Src/zsh -f -c 'emulate sh; set -o foo; echo "Didn''t abort ($?)"'
> } > set: no such option: foo
> } > Didn't abort (0)
> } > 
> } > This is incorrect. The shell should abort as 'set' is a special
> } > builtin[*]:
> } 
> } This is easy.
> 
> I'm left wondering if this shouldn't be a POSIX-mode thing, i.e. whether
> zsh in "native mode" should continue as it has.

I'd be more impressed with that if zsh as it was even returned a
non-zero status in this case, but it doesn't.  So some kind of change
definitely seems warranted.

-- 
Peter Stephenson <pws@csr.com>                  Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK                          Tel: +44 (0)1223 692070


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-12-11 16:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-12-11 12:54 "set -o foo" does not fail / does not abort the shell Vincent Lefevre
2007-12-11 13:56 ` Peter Stephenson
2007-12-11 16:35   ` Bart Schaefer
2007-12-11 16:39     ` Peter Stephenson

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).