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