svn commit: r222386 - head/bin/sh
Jilles Tjoelker
jilles at FreeBSD.org
Fri May 27 20:53:07 UTC 2011
Author: jilles
Date: Fri May 27 20:53:07 2011
New Revision: 222386
URL: http://svn.freebsd.org/changeset/base/222386
Log:
sh: Remove the "exp" builtin.
The "exp" builtin is undocumented, non-standard and not very useful.
If exp's return value is not used, something like
VAR=$(exp EXPRESSION)
is equivalent to
VAR=$((EXPRESSION))
except that errors in the expression are fatal and quoting special
characters is not needed in the latter case.
If exp's return value is used, something like
if exp EXPRESSION >/dev/null
can be replaced by
if [ $((EXPRESSION)) -ne 0 ]
with similar differences.
The exp-run showed that "let" is close enough to bash's and ksh's builtin
that removing it would break a few ports. Therefore, "let" remains in 9.x.
PR: bin/104432
Exp-run done by: pav (with some other sh(1) changes)
Modified:
head/bin/sh/arith_yacc.c
head/bin/sh/builtins.def
Modified: head/bin/sh/arith_yacc.c
==============================================================================
--- head/bin/sh/arith_yacc.c Fri May 27 20:34:23 2011 (r222385)
+++ head/bin/sh/arith_yacc.c Fri May 27 20:53:07 2011 (r222386)
@@ -344,7 +344,7 @@ arith_t arith(const char *s)
* The exp(1) builtin.
*/
int
-expcmd(int argc, char **argv)
+letcmd(int argc, char **argv)
{
const char *p;
char *concat;
Modified: head/bin/sh/builtins.def
==============================================================================
--- head/bin/sh/builtins.def Fri May 27 20:34:23 2011 (r222385)
+++ head/bin/sh/builtins.def Fri May 27 20:53:07 2011 (r222386)
@@ -60,7 +60,7 @@ echocmd echo
evalcmd -s eval
execcmd -s exec
exitcmd -s exit
-expcmd exp let
+letcmd let
exportcmd -s export -s readonly
#exprcmd expr
falsecmd false
More information about the svn-src-all
mailing list