freebsd-dev/bin/sh
Jilles Tjoelker 9897c45f31 sh: Add printf builtin.
This was removed in 2001 but I think it is appropriate to add it back:
* I do not want to encourage people to write fragile and non-portable echo
  commands by making printf much slower than echo.
* Recent versions of Autoconf use it a lot.
* Almost no software still wants to support systems that do not have
  printf(1) at all.
* In many other shells printf is already a builtin.

Side effect: printf is now always the builtin version (which behaves
identically to /usr/bin/printf) and cannot be overridden via PATH (except
via the undocumented %builtin mechanism).

Code size increases about 5K on i386. Embedded folks might want to replace
/usr/bin/printf with a hard link to /usr/bin/alias.
2010-11-19 12:56:13 +00:00
..
bltin sh: Add binary buffered output for use by the printf builtin. 2010-11-14 15:31:59 +00:00
funcs sh: Update the suspend example for the change of the job control flag 2010-11-13 22:20:46 +00:00
alias.c In the spirit of r90111, depend on c89 and remove the "STATIC" macro 2010-10-13 22:18:03 +00:00
alias.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
arith_lex.l sh: Use stalloc for arith variable names. 2010-04-25 20:43:19 +00:00
arith.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
arith.y sh: Use stalloc for arith variable names. 2010-04-25 20:43:19 +00:00
builtins.def sh: Add printf builtin. 2010-11-19 12:56:13 +00:00
cd.c In the spirit of r90111, depend on c89 and remove the "STATIC" macro 2010-10-13 22:18:03 +00:00
cd.h sh: On startup of the shell, use PWD from the environment if it is valid. 2010-04-17 14:35:46 +00:00
error.c In the spirit of r90111, depend on c89 and remove the "STATIC" macro 2010-10-13 22:18:03 +00:00
error.h sh: Add some __dead2 to indicate functions that do not return. 2009-12-24 20:55:14 +00:00
eval.c sh: Reindent evaltree(). 2010-10-31 12:08:16 +00:00
eval.h sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
exec.c In the spirit of r90111, depend on c89 and remove the "STATIC" macro 2010-10-13 22:18:03 +00:00
exec.h sh: Improve the command builtin: 2010-03-06 16:57:53 +00:00
expand.c sh: Fix some issues with CTL* bytes and ${var#pat}. 2010-10-29 19:34:57 +00:00
expand.h sh: Do IFS splitting on word in ${v+word} and ${v-word}. 2010-10-29 13:42:18 +00:00
histedit.c sh: Tweak some string constants to reduce code size. 2010-10-29 21:44:43 +00:00
init.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
input.c In the spirit of r90111, depend on c89 and remove the "STATIC" macro 2010-10-13 22:18:03 +00:00
input.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
jobs.c sh: Use <stddef.h> rather than <sys/stddef.h>. 2010-10-16 12:40:00 +00:00
jobs.h sh: Forget about terminated background processes sooner. 2010-06-29 22:37:45 +00:00
mail.c Consistently use "STATIC" for all functions in order to be able to set 2010-10-13 04:01:01 +00:00
mail.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
main.c In the spirit of r90111, depend on c89 and remove the "STATIC" macro 2010-10-13 22:18:03 +00:00
main.h sh: Do not run callers' exception handlers in subshells. 2009-12-25 20:21:35 +00:00
Makefile sh: Add printf builtin. 2010-11-19 12:56:13 +00:00
memalloc.c Do not assume in growstackstr() that a "precious" character will be 2010-10-13 23:29:09 +00:00
memalloc.h Do not assume in growstackstr() that a "precious" character will be 2010-10-13 23:29:09 +00:00
miscbltin.c sh: Fix 'read' if all chars before the first IFS char are backslash-escaped. 2010-09-08 20:35:43 +00:00
mkbuiltins sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
mkinit.c sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
mknodes.c sh: Fix crash with empty functions (f() { }) introduced in r196483 2009-08-28 22:41:25 +00:00
mksyntax.c sh: Do IFS splitting on word in ${v+word} and ${v-word}. 2010-10-29 13:42:18 +00:00
mktokens /*- or .\"- or #- to begin license clauses. 2005-01-10 08:39:26 +00:00
myhistedit.h sh: Pass TERM changes to libedit. 2010-06-02 19:16:58 +00:00
mystring.c sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
mystring.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
nodes.c.pat In the spirit of r90111, depend on c89 and remove the "STATIC" macro 2010-10-13 22:18:03 +00:00
nodetypes /*- or .\"- or #- to begin license clauses. 2005-01-10 08:39:26 +00:00
options.c In the spirit of r90111, depend on c89 and remove the "STATIC" macro 2010-10-13 22:18:03 +00:00
options.h sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
output.c sh: Add binary buffered output for use by the printf builtin. 2010-11-14 15:31:59 +00:00
output.h sh: Add binary buffered output for use by the printf builtin. 2010-11-14 15:31:59 +00:00
parser.c sh: Fix some issues with aliases and case, by importing dash checkkwd code. 2010-11-02 23:44:29 +00:00
parser.h sh: Do IFS splitting on word in ${v+word} and ${v-word}. 2010-10-29 13:42:18 +00:00
redir.c sh: Check whether dup2 was successful for >&FD and <&FD. 2010-10-24 20:09:49 +00:00
redir.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
sh.1 sh: Add printf builtin. 2010-11-19 12:56:13 +00:00
shell.h In the spirit of r90111, depend on c89 and remove the "STATIC" macro 2010-10-13 22:18:03 +00:00
show.c In the spirit of r90111, depend on c89 and remove the "STATIC" macro 2010-10-13 22:18:03 +00:00
show.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
TOUR Correct assorted grammos and typos. 2006-04-16 11:54:01 +00:00
trap.c In the spirit of r90111, depend on c89 and remove the "STATIC" macro 2010-10-13 22:18:03 +00:00
trap.h sh: Add some __dead2 to indicate functions that do not return. 2009-12-24 20:55:14 +00:00
var.c sh: Do the additional actions if 'local -' restore changes -i/-m/-E/-V. 2010-11-13 22:10:26 +00:00
var.h sh: Pass TERM changes to libedit. 2010-06-02 19:16:58 +00:00