Tim J. Robbins
72c9dabbb7
Bring the list of function-like macros up to date with reality.
2003-01-10 07:38:38 +00:00
Alfred Perlstein
d2b9b6b10c
spell multiple correctly.
2003-01-10 06:52:19 +00:00
Tim J. Robbins
4549f62011
Document clearerr_unlocked(), feof_unlocked(), ferror_unlocked()
...
and fileno_unlocked().
2003-01-10 06:22:28 +00:00
Tim J. Robbins
4d844c09ac
Add a manual page for flockfile(), ftrylockfile(), and funlockfile().
2003-01-10 05:34:11 +00:00
Tim J. Robbins
cbee408df1
Document getc_unlocked(), getchar_unlocked(), putc_unlocked(),
...
and putchar_unlocked().
2003-01-10 04:56:20 +00:00
Tim J. Robbins
a5b0089e65
Add function versions of getchar_unlocked(), getc_unlocked(),
...
putchar_unlocked(), putc_unlocked(), feof_unlocked(), ferror_unlocked(),
clearerr_unlocked(), and fileno_unlocked(). The first four are required
by POSIX. The rest are provided for consistency.
2003-01-10 04:35:08 +00:00
Tim J. Robbins
16fdde11b7
Remove an unused variable: mbresult.
2003-01-07 06:20:47 +00:00
Tim J. Robbins
0b4b7b65ed
#include <stdlib.h> for free()'s prototype.
2003-01-07 06:17:13 +00:00
Tim J. Robbins
e2b090f34f
Note that the printf(3) and scanf(3) family of functions don't deal with
...
multibyte characters in the format string correctly.
2003-01-06 06:19:19 +00:00
Tim J. Robbins
43a240930c
#include "local.h" to make __svfscanf()'s prototype visible.
2003-01-03 23:27:27 +00:00
Tim J. Robbins
276ba5b4fa
Reset the stream orientation to 0 (unoriented) in freopen(), as required
...
by the C standard.
2003-01-03 12:27:19 +00:00
Ruslan Ermilov
facc67676f
mdoc(7) police: Deal with self-xrefs.
2002-12-24 13:41:48 +00:00
Tim J. Robbins
4aca04ee5c
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
2002-12-20 08:28:10 +00:00
Tim J. Robbins
5a7405be50
C99 standardised the vscanf() family of functions, update Standards
...
section to reflect this.
2002-12-20 07:46:01 +00:00
Tim J. Robbins
37d2356335
Write the message to stderr, not file descriptor 2, so that perror()
...
writes to the correct stream if stderr has been redirected with freopen().
2002-12-19 09:53:26 +00:00
Tim J. Robbins
a207a8e3f1
Use strerror_r() to format the error message so that strerror()'s static
...
buffer does not get clobbered.
ISO/IEC 9899:1999 7.21.6.2 3:
"The implementation shall behave as if no library function calls the
strerror function."
2002-12-19 09:50:10 +00:00
Ruslan Ermilov
2efeeba554
mdoc(7) police: "The .Fa argument.".
2002-12-19 09:40:28 +00:00
Ruslan Ermilov
5c564bae0a
mdoc(7) police: Fixed abuses of the .Ar and .Em macros.
2002-12-18 13:33:04 +00:00
Ruslan Ermilov
1fae73b137
mdoc(7) police: "The .Fn function".
2002-12-18 12:45:11 +00:00
Ruslan Ermilov
a9a15f3ea4
mdoc(7) police: tiny nits.
...
Approved by: re
2002-12-09 14:11:37 +00:00
Ruslan Ermilov
ae82896268
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
2002-12-04 18:57:46 +00:00
Ruslan Ermilov
898f520da8
mdoc(7) police: markup overhaul.
...
Approved by: re
2002-12-04 17:49:15 +00:00
Ruslan Ermilov
1798791d24
mdoc(7) police: formatting nits.
...
Approved by: re
2002-11-29 15:57:50 +00:00
Ruslan Ermilov
c51d717f0c
libc_r wasn't so tied to libc for 22 months.
2002-11-18 09:50:57 +00:00
Warner Losh
cf04ed1bdf
bde points out that the LIBC_MAJOR macro doesn't exist and requests
...
that we not use it here. In its place I've put a comment about the
current state of play.
Submitted by: bde
2002-11-14 14:06:14 +00:00
Warner Losh
c906b66373
Restore Peter's version of static __sF. There's too much pain for it
...
to be static for 5.0. I may remove this for 5.1 or 5.2. No more
binaries or libarires will be generated with __sF starting as of
yesterday. Originally the plan had been to eliminate this for 5.0,
but we didn't get the __std{in,out,err}p changes merged into -stable
until yesterday (rather than in September 2001 like it should have
been). Given that didn't happen on time, we can't do the other part
of the scheme now.
# Please do not change this without talking to me first.
2002-11-10 08:44:38 +00:00
Alfred Perlstein
ac1cc6ee11
Backout "compatibility hack" for __sF.
...
Requested by: Steve Kargl <sgk@troutmask.apl.washington.edu> (submitter)
2002-11-04 03:23:56 +00:00
Alfred Perlstein
0fc25b925d
Provide a hook to make __sF visible outside of libc for commercial apps
...
if WANT_COMPAT4_STDIO is defined when compiling libc.
Submitted by: Steve Kargl <sgk@troutmask.apl.washington.edu>
2002-11-02 19:47:53 +00:00
Tim J. Robbins
14ffdae94d
No need to include floatio.h here: vfscanf() no longer uses anything
...
it defines.
2002-11-01 05:13:01 +00:00
Alfred Perlstein
c313cb2abf
Make __sF static. This can not be allowed to exist in 5.x.
2002-10-31 01:54:27 +00:00
Tim J. Robbins
ae95ea1a26
Cross-reference putc(3).
2002-10-28 10:35:18 +00:00
Tim J. Robbins
79db40061f
The ORIENTLOCK macro is no longer needed since all functions use
...
FLOCKFILE/FUNLOCKFILE explicitly.
2002-10-25 07:01:56 +00:00
Tim J. Robbins
9619813de9
Cross-reference fmtcheck(3).
2002-10-20 03:56:37 +00:00
Peter Wemm
d7dd6ae7ec
Give in on the __sF stuff. I have a better fix in mind that is future
...
proof, but this should buy me some time for now.
2002-10-19 22:28:07 +00:00
Tim J. Robbins
118bb75e02
Indent code example with one tab, not two, for consistency with the rest.
2002-10-19 13:48:45 +00:00
Tim J. Robbins
0145ba86d1
Fix off-by-one error when pushing back a multibyte sequence in
...
wide character class (%l[) and wide string (%ls) conversions.
2002-10-17 13:04:00 +00:00
Tim J. Robbins
63b01047f4
Make part of the previous change clearer; check flags for SUPPRESS directly
...
instead of checking whether we're using a temporary buffer.
2002-10-17 12:06:29 +00:00
Tim J. Robbins
bd25c6f476
The field width for single-byte string conversions (%c, %s, %[) is the
...
maximum number of bytes that may be stored in the array, not the maximum
number of wide characters to read. The wording of the standard unfortunately
does not make this clear.
2002-10-17 12:02:36 +00:00
Tim J. Robbins
35739e072b
Count field width correctly for suppressed multibyte fields (%*lc,
...
%*ls, %*l[).
2002-10-16 14:07:08 +00:00
Tim J. Robbins
6180233fd8
Set the error bit on the stream if an encoding error occurs. Improve
...
handling of multibyte sequences representing null wide characters.
2002-10-16 12:09:43 +00:00
Tim J. Robbins
927ecbf313
Add support for the XSI %C and %S formats, which are the same as %lc
...
and %ls.
2002-10-16 03:55:53 +00:00
Tim J. Robbins
af1c9c0e4d
Use a weak reference instead of a macro to make vfscanf an alias
...
for __vfscanf.
2002-10-14 11:18:21 +00:00
Kris Kennaway
61bdf123c3
Ignore TMPDIR if the application is setugid.
...
MFC after: 2 weeks
2002-10-13 11:22:16 +00:00
Mike Barcroft
54e4e385de
Add restrict type-qualifier.
2002-10-12 16:13:41 +00:00
Tim J. Robbins
419c442678
Describe the restrictions on seeking on wide character streams, and also
...
point out that fseek() clears the ungetwc() buffer.
2002-10-12 09:22:25 +00:00
Peter Wemm
74a4ba21f7
Zap the early-adopter transition aid before we get into serious
...
5.0-R territory, as threatened. This only affects antique 5.0
systems that have not had a 'make world' done for well over a year.
2002-10-11 22:38:17 +00:00
Tim J. Robbins
ce04c11001
Cross-reference between byte and wide-character stdio functions. Remove
...
references to fputwc() and fgetwc() being macros while I'm at it.
2002-10-10 04:12:40 +00:00
Tim J. Robbins
3619568a64
Remove masking macros for getwc(), putwc(), putwchar() and getwchar().
...
Although there was nothing wrong with getwc() and putwc(), getwchar()
and putwchar() assumed that <stdio.h> had been included before <wchar.h>,
which is not allowed by the standard.
2002-09-28 07:43:44 +00:00
Tim J. Robbins
27a29543f3
Back out previous, free the buffer when __vfprintf() fails and don't bother
...
trying to shrink the buffer with realloc() before returning it.
2002-09-26 13:11:24 +00:00
Tim J. Robbins
344141d1fd
Back out previous and solve the problems a different way: move va_start/
...
va_end closer to the __vfprintf() call, free the buffer when __vfprintf()
fails and don't bother trying to shrink the buffer with realloc() before
returning it.
Submitted by: bde
2002-09-26 13:09:48 +00:00
Tim J. Robbins
23b6f7902d
Correctly handle the case where __vfwprintf() fails because it runs out
...
of memory.
2002-09-26 08:26:16 +00:00
Tim J. Robbins
3383deca89
Sync with OpenBSD: avoid memory leak when __vfprintf() fails because it
...
runs out of memory, always call va_end.
2002-09-26 07:55:18 +00:00
Tim J. Robbins
38b5abad06
Add cross-references between wide character and single-byte character
...
versions of printf() and scanf().
2002-09-24 09:22:47 +00:00
Tim J. Robbins
89265cb899
Remove an unneeded call to _sfrefill() that was missed in the conversion
...
from vfscanf() to vfwscanf(). It doesn't hurt to have it there, but it's
redundant since __fgetwc() will refill the buffer if it needs to.
2002-09-24 09:18:32 +00:00
Tim J. Robbins
d07090a880
Use the new va_copy macro to copy variable argument lists instead of
...
assignment. This is needed on powerpc but is also more correct for the
other ports.
Submitted by: grehan
Tested on: alpha, i386, sparc64
2002-09-24 00:47:27 +00:00
Tim J. Robbins
1f4ff8506a
Add implementations of wscanf() and related functions: fwscanf(), swscanf(),
...
vfwscanf(), vswscanf(), vwscanf(). As the name suggests, these are wide-
character versions of the scanf() family of functions.
2002-09-23 12:40:06 +00:00
Tim J. Robbins
4712aa3b59
Implement the %lc, %ls and %[ conversions, which read sequences of wide
...
characters, non-whitespace wide character strings and wide character
strings in a scanset.
2002-09-23 11:35:50 +00:00
Tim J. Robbins
adc106840c
The character argument for __ungetwc() should be wint_t instead of wchar_t.
2002-09-23 11:31:18 +00:00
Tim J. Robbins
5f147b57ac
Add an unlocked version of ungetwc(), __ungetwc(), that __vfwscanf()
...
will need to use.
2002-09-22 05:59:00 +00:00
Tim J. Robbins
0e2e10070d
Delete stray reference to vsnprintf().
2002-09-21 14:25:58 +00:00
Tim J. Robbins
c5604d0a50
Add implementations of the wprintf() family of functions, which perform
...
formatted wide-character output.
2002-09-21 13:00:30 +00:00
Tim J. Robbins
7591ae56ae
Lock the file once per call and use the unlocked fgetwc()/fputwc() variants.
2002-09-20 13:25:40 +00:00
Tim J. Robbins
9260341650
Lock and unlock the file once per call and use the unlocked version of
...
ungetc() instead of having ungetc() recurse on the lock.
2002-09-20 13:23:26 +00:00
Tim J. Robbins
8f030a44b8
Introduce unlocked versions of fputwc() and fgetwc() called __fputwc()
...
and __fgetwc() which can be used when we know the file is locked.
2002-09-20 13:20:41 +00:00
Tim J. Robbins
b9aac30810
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.
2002-09-19 12:50:28 +00:00
Tim J. Robbins
0b7bc80226
Optimise the common case where no special encoding is in use (LC_CTYPE is "C"
...
or "POSIX", other European locales). Use __sgetc() and __sputc() where
possible to avoid a wasteful lock and unlock for each byte and to avoid
function call overhead.
2002-09-18 12:17:28 +00:00
Tim J. Robbins
bddc6280f2
Logic error in previous: don't exit the loop when an incomplete multibyte
...
sequence is detected.
2002-09-18 10:21:41 +00:00
Tim J. Robbins
24990dfad0
Reimplement the functionality of fgetrune(), fputrune(), and fungetrune()
...
here in terms of mbrtowc(), wcrtomb(), and the single-byte I/O functions.
The rune I/O functions are about to become deprecated in favour of the
ones provided by ISO C90 Amd. 1 and C99.
2002-09-18 05:58:11 +00:00
Maxim Konovalov
48eaac247f
Fix vsnprintf(3) memory leak for size == 0.
...
PR: bin/36175
Obtained from: OpenBSD
Reviewed by: silence on -audit
MFC after: 5 days
2002-09-17 11:28:24 +00:00
Tim J. Robbins
4d783ded07
Convert eight space indents to tabs in the "*" format handling code.
2002-09-16 12:07:13 +00:00
Tim J. Robbins
58d38e2520
Style: One space between "restrict" qualifier and "*".
2002-09-06 11:24:06 +00:00
Jens Schweikhardt
3dd657600a
Print a '-' sign for negative zero. Tested with
...
#include <stdio.h>
int main(void)
{
printf("%+f\n", -0.0);
printf("%+f\n", +0.0);
printf("%+f\n", 0.0);
return 0;
}
to output
-0.000000
+0.000000
+0.000000
PR: bin/41823
Submitted by: GOTO Kentaro <gotoken@notwork.org>
Liked by: bde
MFC after: 3 weeks
2002-08-27 20:11:08 +00:00
Mike Barcroft
abbd890233
o Merge <machine/ansi.h> and <machine/types.h> into a new header
...
called <machine/_types.h>.
o <machine/ansi.h> will continue to live so it can define MD clock
macros, which are only MD because of gratuitous differences between
architectures.
o Change all headers to make use of this. This mainly involves
changing:
#ifdef _BSD_FOO_T_
typedef _BSD_FOO_T_ foo_t;
#undef _BSD_FOO_T_
#endif
to:
#ifndef _FOO_T_DECLARED
typedef __foo_t foo_t;
#define _FOO_T_DECLARED
#endif
Concept by: bde
Reviewed by: jake, obrien
2002-08-21 16:20:02 +00:00
Juli Mallett
6879bea818
Leave room for a trailing NUL not a NULL, that's not an ASCII character.
2002-08-19 03:52:36 +00:00
Robert Drehmel
f8418db73e
- 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.
2002-08-15 10:28:52 +00:00
Robert Drehmel
71a00a449f
- Introduce the 'restrict' qualifier to function prototypes and
...
definitions to comply with IEEE Std 1003.1-2001.
- Update the manual pages.
2002-08-15 09:47:10 +00:00
Robert Drehmel
3248d0a517
- Add the 'restrict' qualifier to the function definitions and
...
public prototypes of setbuf(3) and setvbuf(3) using the
'__restrict' macro from <sys/cdefs.h> to be compliant with
IEEE Std 1003.1-2001.
- Replace the K&R with ANSI-C function definitions.
- Bring the manual page up-to-date.
2002-08-14 23:45:42 +00:00
Poul-Henning Kamp
209c34ba95
Unbreak one of the most confusing breaks of the tree I've seen.
...
The last commit cannot possibly have been tested.
2002-08-13 18:55:51 +00:00
Tim J. Robbins
439cb19e04
Tidy up SRCS and MAN assignments.
2002-08-13 11:56:02 +00:00
Tim J. Robbins
73ab4b2b33
Remove the Bugs section, which is not relevant to FreeBSD: there is no
...
one-character ungetwc(3) buffer limit.
2002-08-13 10:50:22 +00:00
Tim J. Robbins
46624699bd
FreeBSD-ify: use In macro for header files in Synopsis, St C-99 instead of
...
St C99 in Standards section.
2002-08-13 10:47:17 +00:00
Tim J. Robbins
e74101e4ef
Basic support for wide character I/O: getwc(), fgetwc(), getwchar(),
...
putwc(), fputwc(), putwchar(), ungetwc(), fwide().
2002-08-13 09:30:41 +00:00
Tim J. Robbins
01533af5a0
Manual pages for fwide(), getwc(), fgetwc(), getwchar(), putwc(), fputwc(),
...
putwchar(), ungetwc() from NetBSD and Citrus Project, unmodified except
for the addition of $FreeBSD$.
Obtained from: NetBSD, Citrus Project
2002-08-12 13:23:12 +00:00
Jens Schweikhardt
2b239dd118
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
2002-08-11 13:05:30 +00:00
Ruslan Ermilov
a8272f7106
mdoc(7) police: punctuation.
2002-08-09 11:24:21 +00:00
Garrett Wollman
c98a4bf3fb
Don't claim to fully implement C99 in the STANDARDS section and then disclaim
...
compliance in the BUGS section immediately below.
2002-07-15 19:46:06 +00:00
Garrett Wollman
647e4efd97
Note that fseeko() and ftello() are standard in 1003.1-2001.
...
(Prefer the more-encompassing POSIX standard to SUSv2.)
2002-07-15 19:42:25 +00:00
Chris Costello
1b5c321d3f
Fix style and wording bugs introduced in my last commit.
...
Sponsored by: DARPA, NAI Labs
2002-06-18 08:55:17 +00:00
Chris Costello
5f9c048ce7
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
2002-06-15 06:00:56 +00:00
Chris Costello
7bc7869122
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
2002-06-13 23:35:22 +00:00
Archie Cobbs
6accdce98b
Grammar fix: "contents" is plural.
...
MFC after: 1 day
2002-05-31 05:01:17 +00:00
Ruslan Ermilov
432e57ebfa
mdoc(7) police: markup nits.
2002-05-30 09:53:47 +00:00
Ruslan Ermilov
16fb684936
mdoc(7) police: fix markup for types.
2002-05-29 15:42:59 +00:00
Alfred Perlstein
a82bbc730e
Assume __STDC__, remove non-__STDC__ code.
...
Submitted by: keramida
2002-05-28 17:03:12 +00:00
Robert Drehmel
6e818f06aa
Correct a check for NUL.
...
Spotted by: bde
2002-05-27 19:27:43 +00:00
Robert Drehmel
fb08c0489d
- Move the loop conditional into the "for" header.
...
- Remove redundant "? :" construct.
style(9):
- Place a space after return statements.
- Compare pointers to NULL.
- Do not use ! to compare a character to nul.
2002-05-27 11:01:30 +00:00
Robert Drehmel
ccccc4e1c3
Avoid wandering over the beginning of the actual buffer
...
if the passed template string contains only 'X' characters.
Submitted by: Mark Andrews <marka@isc.org> (patch modified)
PR: 38402
2002-05-23 14:21:02 +00:00
Tony Finch
cfad593dbd
Clarify that the value of getc() etc. is an unsigned char converted
...
to an int (as per the C standard) i.e. it can be passed straight to
isalpha() etc.
Approved by: dwmalone (mentor)
MFC after: 3 days
2002-05-15 16:55:58 +00:00
Bill Fenner
946b2d0057
Implement several of the c99 updates to scanf(3):
...
- New length modifiers: hh, j, ll, t, z.
Still to do:
- %C, %S, %lc, %ls (wide character support)
- %a/%A (exact hex representation of floating-point numbers)
Removed old compatability equivalents:
- %D for %ld, %O for %lo, %X for %lx, %E and %F for %le & %lf (these
were buggy anyway, since they should have represented %Le & %Lf).
- %[unknown uppercase char] for %ld, %[unknown lowercase char] for %d
2002-04-20 17:00:56 +00:00
Tom Rhodes
7d358b9a2a
scanf.3 has an obsolete ``this release''.
...
PR: 35610
MFC after: 2 days
2002-04-10 20:52:49 +00:00