summary refs log tree commit diff
diff options
context:
space:
mode:
authorJilles Tjoelker <jilles@stack.nl>2010-03-10 13:29:11 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2010-03-10 13:29:11 +0800
commitea2cf705d50024b09e00f8f5bf9c666429bccfa5 (patch)
tree77497594bf8a9b1ac6218e0f3e073cfbfa77bab6
parent[REDIR] Do not truncate file for FROMTO redirection (diff)
downloaddash-ea2cf705d50024b09e00f8f5bf9c666429bccfa5.tar.gz
dash-ea2cf705d50024b09e00f8f5bf9c666429bccfa5.zip
[ARITH] Fix logical or result value
Another change I'm making to the arith code is making || return 0 or 1
only, matching C, POSIX and other shells.

Apart from the compliance issue, it is also bad to expose implementation
details like the exact meaning of 'noeval' to scripts such that they may
come to depend on them.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to '')
-rw-r--r--ChangeLog4
-rw-r--r--src/arith_yacc.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index e6e82f1..0802048 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-03-10  Jilles Tjoelker <jilles@stack.nl>
+
+	* Fix logical or result value.
+
 2010-03-09  Herbert Xu <herbert@gondor.apana.org.au>
 
 	* Fix binary operator parsing.
diff --git a/src/arith_yacc.c b/src/arith_yacc.c
index 74b95f8..6c5a720 100644
--- a/src/arith_yacc.c
+++ b/src/arith_yacc.c
@@ -253,7 +253,7 @@ static intmax_t or(int token, union yystype *val, int op, int noeval)
 
 	b = or(token, val, yylex(), noeval | !!a);
 
-	return a | b;
+	return a || b;
 }
 
 static intmax_t cond(int token, union yystype *val, int op, int noeval)
McEnroe 2020-08-15Implement service statusJune McEnroe 2020-08-15Parse control commandsJune McEnroe 2020-08-15Read service pipesJune McEnroe 2020-08-15Implement non-blocking line-buffered readingJune McEnroe 2020-08-15Generate tags fileJune McEnroe 2020-08-15Just use CLOCK_MONOTONIC and clean up includesJune McEnroe 2020-08-15Reap childrenJune McEnroe 2020-08-14Implement serviceSignal, serviceStop, serviceRestartJune McEnroe 2020-08-14Reset restartInterval and restartDeadline on startJune McEnroe 2020-08-14Switch to timespec for timeoutsJune McEnroe 2020-08-14Implement serviceStartJune McEnroe 2020-08-14Flesh out Service structJune McEnroe 2020-08-14Build environment for servicesJune McEnroe 2020-08-14Implement spawntab parsingJune McEnroe 2020-08-14Open syslog, daemonize, write PIDJune McEnroe 2020-08-14Implement user and group lookupJune McEnroe 2020-08-14Add install targetJune McEnroe 2020-08-14Add spawnd skeletonJune McEnroe