History log of /freebsd-10.1-release/lib/libc/stdio/printf.3
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 272461 02-Oct-2014 gjb

Copy stable/10@r272459 to releng/10.1 as part of
the 10.1-RELEASE process.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


# 242738 08-Nov-2012 grog

Clarify that the ' flag is an apostrophe.

MFC after: 2 weeks


# 234530 21-Apr-2012 das

- Fix the claim that the output is always null-terminated. This isn't
true if the size is zero.
- Fix a claim that sprintf() is the same as snprintf() with an
infinite size. It's equivalent to snprintf() with a size of
INT_MAX + 1.
- Document the return values in the return values section.
- Document the possible errno value of EOVERFLOW.

MFC after: 2 weeks


# 212463 11-Sep-2010 brucec

Revert changes of 'assure' to 'ensure' made in r211936.

Approved by: rrs (mentor)


# 211936 28-Aug-2010 brucec

Fix incorrect usage of 'assure' and 'insure'.

Approved by: rrs (mentor)


# 208027 13-May-2010 uqs

mdoc: move CAVEATS, BUGS and SECURITY CONSIDERATIONS sections to the
bottom of the manpages and order them consistently.

GNU groff doesn't care about the ordering, and doesn't even mention
CAVEATS and SECURITY CONSIDERATIONS as common sections and where to put
them.

Found by: mdocml lint run
Reviewed by: ru


# 207940 11-May-2010 uqs

mdoc: use macro for +- that is understood by mdocml

Reviewed by: brueffer


# 206217 05-Apr-2010 obrien

I feel this wording of the history is more clear.
ANSIfy vasprintf() while I'm here.


# 203958 16-Feb-2010 ru

%U was macroized in mdoc(7), escape.


# 200019 02-Dec-2009 brueffer

Fix the dprintf() prototype.

PR: 141087
Submitted by: Jeremy Huddleston <jeremyhu@apple.com>
MFC after: 3 days


# 189356 04-Mar-2009 das

Add dprintf() and vdprintf() from POSIX.1-2008. Like getline(),
dprintf() is a simple wrapper around another function, so we may as
well implement it. But also like getline(), we can't prototype it by
default right now because it would break too many ports.


# 187809 28-Jan-2009 das

Update the manpage to reflect r145172.


# 178141 12-Apr-2008 das

Updates for changes in the way printf() handles hex floating point
numbers.


# 165903 08-Jan-2007 imp

Per Regents of the University of Calfornia letter, remove advertising
clause.

# If I've done so improperly on a file, please let me know.


# 149792 05-Sep-2005 tjr

Remove references to nonexistent "FreeBSD Security Architecture" document.


# 136592 16-Oct-2004 stefanf

Document that the length modifier l is ignored for floating point
conversion specifiers (a, A, e, E, f, F, g and G).


# 131365 30-Jun-2004 ru

Markup, grammar, and spelling fixes.


# 124710 19-Jan-2004 das

Bring the *printf(3) documentation up to date with the code:

- Update and improve the documentation for %[aA]
o Like %[eE], %[aA] may round the result if a precision is specified.
o Grammar police: Fix a split infinitive.
o The FreeBSD implementation does better than the minimum required
by C99 (literal translation of the mantissa). The digit before
the hexadecimal-point is never 0 unless the number itself is 0.
o Clarify that the exponent field represents a decimal exponent of 2.
o Discuss the fact that multiple valid representations are possible.
o Remove the entry in the BUGS section claiming that %[aA] is not
implemented.

- Remove the entry in the BUGS section claiming that the ' flag for
printing thousands separators is unimplemented for floating-point.

- Remove the entry in the BUGS section claiming that the L modifier
reduces the precision to "double" before conversion.


# 108775 06-Jan-2003 tjr

Note that the printf(3) and scanf(3) family of functions don't deal with
multibyte characters in the format string correctly.


# 108121 20-Dec-2002 tjr

Document the fact that the printf() family of functions return negative
values (EOF in our case) on error, and some of the possible errno values
in an Errors section.

PR: 39257


# 108037 18-Dec-2002 ru

mdoc(7) police: "The .Fn function".


# 107619 04-Dec-2002 ru

Consistently mark std(in|out|err) with .Dv, because that's how they
are marked up in stdio(3), and because they are defined expressions
of type "FILE *".

Approved by: re


# 105498 20-Oct-2002 tjr

Cross-reference fmtcheck(3).


# 105448 19-Oct-2002 tjr

Indent code example with one tab, not two, for consistency with the rest.


# 103891 24-Sep-2002 tjr

Add cross-references between wide character and single-byte character
versions of printf() and scanf().


# 103633 19-Sep-2002 tjr

Implement the %ls and %lc conversions for printing wide character strings
and wide characters. These were already documented in the manual page,
with an entry mentioning that they were not implemented yet. The XSI
%S and %C synoyms have not been added.


# 103012 06-Sep-2002 tjr

Style: One space between "restrict" qualifier and "*".


# 101914 15-Aug-2002 robert

- For compliance with IEEE Std 1003.1-2001, add the 'restrict'
qualifier to function prototypes and definitions where
appropriate using the '__restrict' macro.
- Update the manual page.


# 101913 15-Aug-2002 robert

- Introduce the 'restrict' qualifier to function prototypes and
definitions to comply with IEEE Std 1003.1-2001.
- Update the manual pages.


# 101677 11-Aug-2002 schweikh

Fix typos; each file has at least one s/seperat/separat/
(I skipped those in contrib/, gnu/ and crypto/)
While I was at it, fixed a lot more found by ispell that I
could identify with certainty to be errors. All of these
were in comments or text, not in actual code.

Suggested by: bde
MFC after: 3 days


# 101578 09-Aug-2002 ru

mdoc(7) police: punctuation.


# 100136 15-Jul-2002 wollman

Don't claim to fully implement C99 in the STANDARDS section and then disclaim
compliance in the BUGS section immediately below.


# 98392 18-Jun-2002 chris

Fix style and wording bugs introduced in my last commit.

Sponsored by: DARPA, NAI Labs


# 98241 15-Jun-2002 chris

o Move more information from BUGS into SECURITY CONSIDERATIONS and
condense the redundant bits.
o Provide an example for using snprintf over sprintf. This may be
supplemented with an asprintf() example soon.

Sponsored by: DARPA, NAI Labs


# 98194 13-Jun-2002 chris

Include information on the dangers of passing a user-supplied string as
a format string. This will later on be changed to a reference to the
FreeBSD Security Architecture after it has been committed.

PR: docs/39320
Sposnored by: DARPA, NAI Labs


# 89138 09-Jan-2002 ru

mdoc(7) police:

Stop abusing the .%J macro for where the .Pa macro should have been used.


# 88971 06-Jan-2002 chris

Add new "SECURITY CONSIDERATIONS" sections.

Obtained from: TrustedBSD Project
Sponsored by: DARPA, NAI Labs


# 87735 12-Dec-2001 ru

mdoc(7) police: Minor formatting nits and optimizations to rev. 1.34.


# 87478 07-Dec-2001 fenner

Remove blank line.


# 87113 30-Nov-2001 fenner

Implement several of the c99 updates to printf(3):
- New length modifiers: hh, j, t, z.
- New flag: '. Note that %'f is not yet implemented.
- Use "inf"/"nan" for efg formats, "INF"/"NAN" for EFG formats.
- Implemented %q in terms of %ll; if "quad_t" is not "long long"
%q will break.

Still to do:
- %C, %S, %lc, %ls (wide character support)
- %'f (thousands in integer portion of %f)
- %a/%A (exact hex representation of floating-point numbers)

Garrett Wollman wrote the first version of the vfprintf.c update;
Mike Barcroft wrote the first version of the printf.3 changes.


# 84306 01-Oct-2001 ru

mdoc(7) police: Use the new .In macro for #include statements.


# 79199 04-Jul-2001 ru

mdoc(7) police: fixed/simplified formatting.


# 78180 13-Jun-2001 schweikh

Add description for the 'll' modifier for long long. In essence a copy
from the 'l' description with s/long/long long/g.

PR: 27017
Submitted by: Guy Harris <guy@alum.mit.edu>
MFC after: 2 weeks


# 77794 05-Jun-2001 imp

Back out my changes describing how snprintf nul terminates. It
was from the iso standard. Keep the sentence that says it is always
NUL terminated to make sure that people understand that.

Requested by: bde


# 77744 05-Jun-2001 imp

Minor improvements:
o Explain snprintf's return value better.
o Document snprintf, et al, were defined in C-99
o Warn against %n.


# 77510 30-May-2001 gshapiro

Correct the documentation for snprintf() and vsprintf() which actually
return the number of characters that would have been in the new string.

Obtained from: OpenBSD
MFC after: 3 days


# 77200 25-May-2001 eric

Add warnings about trusting user-supplied data.

Reviewed by: ru
Approved by: murray
Obtained from: OpenBSD


# 75661 18-Apr-2001 ru

mdoc(7) police: fix markup.


# 73088 26-Feb-2001 ru

.St -ansiC -> .St -isoC


# 72313 10-Feb-2001 ru

mdoc(7) police: mark LC_NUMERIC with .Dv.


# 72297 10-Feb-2001 ache

Note that decimal point taken from locale (SUSv2)


# 71895 01-Feb-2001 ru

mdoc(7) police: split punctuation characters + misc fixes.


# 70553 01-Jan-2001 ben

Make it a bit clearer that asprintf doesn't actually "return" a pointer in
the normal sense of the word, but does it through one of its arguments which
is a pointer to a pointer.

PR: 23717
Submitted by: phk


# 70481 29-Dec-2000 ru

Prepare for mdoc(7)NG.


# 68575 10-Nov-2000 ru

Avoid use of direct troff requests in mdoc(7) manual pages.


# 59460 21-Apr-2000 phantom

Introduce ".Lb" macro to libc manpages.

More libraries manpages updates following.


# 57695 02-Mar-2000 sheldonh

Remove more single-space hard sentence breaks.


# 57686 02-Mar-2000 sheldonh

Remove single-space hard sentence breaks. These degrade the quality
of the typeset output, tend to make diffs harder to read and provide
bad examples for new-comers to mdoc.


# 56131 16-Jan-2000 kris

We no longer care about the VAX and Tahoe compilers :-)


# 50476 27-Aug-1999 peter

$Id$ -> $FreeBSD$


# 49518 08-Aug-1999 bde

Fixed missing "G" in the list item for the main description of %g and
%G formats.


# 49082 25-Jul-1999 hoek

asprintf() does use realloc() internally, but saying so in the manpage can be
misinterpreted to mean that the pointer passed to asprintf() must be suitable
for passing to realloc() as-is (ie. either a NULL pointer or a valid pointer).


# 48794 12-Jul-1999 nik

Add $Id$, to make it simpler for members of the translation teams to
track.

The $Id$ line is normally at the bottom of the main comment block in the
man page, separated from the rest of the manpage by an empty comment,
like so;

.\" $Id$
.\"

If the immediately preceding comment is a @(#) format ID marker than the
the $Id$ will line up underneath it with no intervening blank lines.
Otherwise, an additional blank line is inserted.

Approved by: bde


# 37487 07-Jul-1998 peter

Replace my original asprintf() and vasprintf() hacks with something
more cleanly integrated with stdio. This should be faster and cleaner
since it doesn't memcpy() the data into a seperate buffer. This lets
stdio allocate and manage the buffer and then hand it over to the user.

Obtained from: Todd Miller <Todd.Miller@courtesan.com> via OpenBSD


# 36692 06-Jun-1998 jkoshy

Spelling corrections.

PR: 6868
Submitted by: Josh Gilliam <josh@quick.net>


# 24008 18-Mar-1997 bde

FIxed arg types (mostly missing consts) in synopsis.


# 21674 14-Jan-1997 jkh

The following patch to lib/libc/stdio implements positional arguments in
a manner consistent with other implementations. Its done in a way that
adds only a tiny amount of overhead when positional arguments are not used.
I also have a test program to go with this, but don't know where it belongs
in the tree.

Submitted-By: Bill Fenner <fenner@FreeBSD.ORG>


# 17763 21-Aug-1996 mpp

Update some more man pages to use the .Fx macro.


# 16241 09-Jun-1996 joerg

Reword the sentence about the required space for the result string.

Closes PR # 1303.-


# 15931 27-May-1996 peter

Add an implementation of the gnu-ish asprintf() and vasprintf(). They are
not based on gpl'ed code, just prototype and usage. I'm not 100% certain
they behave the same while the system is in trouble (eg: malloc() failing)
but in those circumstances all bets would be off anyway.

These routines work like sprintf() and vsprintf(), except that instead of
using a fixed buffer, they allocate memory and return it to the user
and it's the user's responsibility to free() it. They have allocate as
much memory as they need (and can get), so the size of strings it can deal
with is limited only by the amount of memory it can malloc() on your
behalf.

There are a few gpl'ed programs starting to use this interface, and it's
becoming more common with the scares about security risks with sprintf().
I dont like the look of the code that the various programs (including
cvs, gdb, libg++, etc) provide if configure can't find it on the system.

It should be possible to modify the stdio core code to provide this
interface more efficiently, I was more worried about having something
that worked and was secure. :-) (I noticed that there was once intended
to be a smprintf() routine when our stdio was written for 4.4BSD, but it
looks pretty stillborn, and it's intended interface is not clear). Since
Linux and gnu libc have this interface, it seemed silly to bring yet
another one onto the scene.


# 15164 09-Apr-1996 mpp

Correct a minor typo. Fixes part of PR#1000.

Submitted by: Dave Glowacki <dglo@ssec.wisc.edu>


# 8534 15-May-1995 dg

Fixed typo.


# 1574 27-May-1994 rgrimes

This commit was generated by cvs2svn to compensate for changes in r1573,
which included commits to RCS files with non-trunk default branches.


# 1573 27-May-1994 rgrimes

BSD 4.4 Lite Lib Sources