Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 May 2011 20:53:07 +0000 (UTC)
From:      Jilles Tjoelker <jilles@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r222386 - head/bin/sh
Message-ID:  <201105272053.p4RKr7Ls052579@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201105272053.p4RKr7Ls052579>