summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorjilles <jilles@FreeBSD.org>2011-05-27 20:53:07 +0000
committerjilles <jilles@FreeBSD.org>2011-05-27 20:53:07 +0000
commitaa5140b7ec861ac2939b1db8b6aa22e74a58a1d7 (patch)
treeb0f51b2237bbd8a5722a21549a5e35788e411bd0 /bin
parent5c7c156d1e87d7f343acc5808137d89bd70c871b (diff)
downloadFreeBSD-src-aa5140b7ec861ac2939b1db8b6aa22e74a58a1d7.zip
FreeBSD-src-aa5140b7ec861ac2939b1db8b6aa22e74a58a1d7.tar.gz
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)
Diffstat (limited to 'bin')
-rw-r--r--bin/sh/arith_yacc.c2
-rw-r--r--bin/sh/builtins.def2
2 files changed, 2 insertions, 2 deletions
diff --git a/bin/sh/arith_yacc.c b/bin/sh/arith_yacc.c
index 63f236c..f1ac59e 100644
--- a/bin/sh/arith_yacc.c
+++ b/bin/sh/arith_yacc.c
@@ -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;
diff --git a/bin/sh/builtins.def b/bin/sh/builtins.def
index cfc6361..1cbeea9 100644
--- a/bin/sh/builtins.def
+++ b/bin/sh/builtins.def
@@ -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
OpenPOWER on IntegriCloud