| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
zero argument were supplied.
Add a regression test to catch this case as well.
PR: bin/174521
Submitted by: Daniel Shahaf <danielsh@elego.de> (pr)
Submitted by: Mark Johnston <markjdb@gmail.com> (initial patch)
Reviewed by: jilles
Approved by: cperciva (implicit)
MFC after: 3 weeks
|
|
|
|
|
|
|
|
|
| |
This reduces code duplication and code size.
/usr/bin/printf is not affected.
Side effect: different error messages when certain builtins are passed
invalid options.
|
|
|
|
|
|
|
| |
Disussed with: gavin
No objection from: doc
Approved by: joel
MFC after: 3 days
|
|
|
|
|
|
|
| |
PR: bin/152934
Approved by: jhb (mentor)
Obtained from: Illumos
MFC after: 2 weeks
|
|
|
|
|
|
|
| |
This means these features do not work as expected with multibyte characters.
This perhaps less than ideal behaviour matches printf(3) and is specified by
POSIX.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Examples:
LC_ALL=en_US.UTF-8 printf '%d\n' $(printf \'\\303\\244)
LC_ALL=en_US.ISO8859-1 printf '%d\n' $(printf \'\\344)
Both of these should print 228.
Like some other shells, incomplete or invalid multibyte characters yield the
value of the first byte without a warning.
Note that there is no general way to go back from the character code to the
character.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
These functions throw exceptions if they fail, possibly causing memory
leaks. The normal out-of-memory handling suffices. The INTOFF around almost
all of printf prevents memory leaks due to SIGINT.
|
|
|
|
|
|
|
|
| |
The #define for warnx now behaves much like the libc function (except that
it uses sh command name and output).
Also, it now uses C99 __VA_ARGS__ so there is no need for three different
macros for 0, 1 or 2 parameters.
|
|
|
|
|
|
|
| |
The new behavior prevents us from being able to bail out explicitly
on unknown options that we have not implemented. BASH for instance
have introduced a '-v' for printf(1) builtin and it seems to be bad
to pretend that we supported it and have a script break silently.
|
|
|
|
|
|
|
| |
exit(3) as pointed out by jilles@ so revert to using return(),
also change the return value back to 1 as requested by bde@.
This is logically a revert of revision 216422.
|
|
|
|
|
|
|
|
| |
LC_NUMERIC.
PR: bin/152934
Submitted by: Pedro F. Giffuni <giffunip tutopia.com>
Obtained from: Illumos
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that when the options section is listed as "None", utility shall
recognize "--" as a first argument to be discarded.
This implementation is largely based on OpenBSD implementation but
we do slightly differently:
a) We skip argv[0] as the first step;
b) We test whether the next argument is "--" and ignore it.
With this change one will get:
%printf
usage: printf format [arguments ...]
%printf -v
-v%printf -- -v
-v%
%printf --
usage: printf format [arguments ...]
Which matches the behavior observed on a Debian system but different
from the Illumos change.
|
| |
|
|
|
|
|
|
|
|
| |
match the definition.
PR: bin/152934
Submitted by: Pedro F. Giffuni <giffunip tutopia.com>
Obtained from: Illumos
|
|
|
|
|
|
| |
style(9)
Submitted by: Pedro F. Giffuni <giffunip tutopia.com>
|
|
|
|
|
|
|
|
|
| |
is in accordance with the information provided at
ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
Also add $FreeBSD$ to a few files to keep svn happy.
Discussed with: imp, rwatson
|
|
|
|
|
|
|
|
|
|
| |
The #define BUILTIN was for building as a csh (not tcsh) builtin.
Given that csh was replaced by tcsh years ago there is no point in keeping
this.
The #define SHELL is for building as an sh builtin and is in active use.
This commit does not change the /bin/sh and /usr/bin/printf binaries.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
| |
Octal escape sequences are expanded to bytes, not characters, and multiple
are required for a multibyte character.
The valid escape sequences in %b strings are slightly different from the
escape sequences in the format string.
|
|
|
|
| |
Also add some missing $FreeBSD$ to keep svn happy.
|
|
|
|
|
|
|
|
|
| |
but \0ddd in a %b argument, with a length restriction of 3 octal digits
in either case. This seems silly, but it needs to be right so it's possible
to write an octal escape followed by an ordinary digit. Solaris printf(1)
and GNU printf(1) also behave this way.
Example: "printf '\0752'" now produces "=2" instead of garbage.
|
| |
|
|
|
|
| |
Approved by: re (blanket)
|
| |
|
| |
|
|
|
|
| |
still results in trucation but this is be much harder to fix.
|
| |
|
| |
|
|
|
|
| |
- Rewrite the loop in main() to be more understandable.
|
|
|
|
| |
MFC after: 1 week
|
|
|
|
|
|
|
| |
'\0' (eg in the invocation 'printf %'), the for-loop would miss the terminating
null character.
MFC after: 1 week
|
|
|
|
|
|
| |
When L is omitted, double precision is used, so printf(1) gives
reproducable results. When L is specified, long double precision is
used, which may improve precision, depending on the machine.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
possible to print the thousands separator in the locale setups that
have one, by something like this:
$ env -i LC_NUMERIC=en_US.ISO8859-1 ./printf "%'0.2f\n" 12345
12,345.00
Reviewed by: das
|
|
|
|
| |
Noticed by: ru
|
|
|
|
| |
by POSIX.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
- Document the way infinity and NaN are printed.
- Un-document the non-existent %w specifier.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
being reported by /usr/bin/printf.
This bug has been around for 22 months... either nobody uses printf
with floating-point values, or people are forgetting to check their
return codes.
Approved by: rwatson (mentor)
|
|
|
|
|
|
|
|
|
| |
Add some constness to avoid some warnings.
Remove use register keyword.
Deal with missing/unneeded extern/prototypes.
Some minor type changes/casts to avoid warnings.
Reviewed by: md5
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
unspecified width/precision.
PR: 39116
Submitted by: Egil Brendsdal <egilb@ife.no>
MFC after: 1 week
|