summaryrefslogtreecommitdiff
path: root/lib/libc/stdio
Commit message (Collapse)AuthorAgeFilesLines
* Perform conversions straight from the stream buffer instead of scanningTim J. Robbins2004-05-221-18/+19
| | | | | | | | | | through byte by byte with mbrtowc(). In the usual case (buffer is big enough to contain the multibyte character, character does not straddle buffer boundary) this results in only one call to mbrtowc() for each wide character read. Notes: svn path=/head/; revision=129584
* Associate a multibyte conversion state object with each stream. Reset itTim J. Robbins2004-05-227-42/+24
| | | | | | | | | | | | to the initial state when a stream is opened or seeked upon. Use the stream's conversion state object instead of a freshly-zeroed one in fgetwc(), fputwc() and ungetwc(). This is only a performance improvement for now, but it would also be required in order to support state-dependent encodings. Notes: svn path=/head/; revision=129583
* Remove bogus FBSDID.David E. O'Brien2004-05-021-3/+1
| | | | Notes: svn path=/head/; revision=128844
* Fix damaged FBSDID.David E. O'Brien2004-05-021-3/+1
| | | | Notes: svn path=/head/; revision=128843
* Merge vfscanf.c, v1.37:David Schultz2004-05-021-8/+7
| | | | | | | - s/#ifdef FLOATING_POINT/#ifndef NO_FLOATING_POINT/ Notes: svn path=/head/; revision=128822
* Merge vfprintf.c, v1.65:David Schultz2004-05-021-24/+17
| | | | | | | | - s/#ifdef FLOATING_POINT/#ifndef NO_FLOATING_POINT/ - Remove HEXFLOAT Notes: svn path=/head/; revision=128821
* - To make it easier to compile *printf() and *scanf() withoutDavid Schultz2004-05-022-31/+21
| | | | | | | | | | | | floating-point support, remove default definition of FLOATING_POINT from the source, and change the compile-time option to NO_FLOATING_POINT. - Remove the HEXFLOAT option. It saves an insignificant amount of space (<0.1% of the size of libc on i386) and complicates vfprintf() and checkfmt(). Notes: svn path=/head/; revision=128819
* Use the correct size to allocate, copy and clear argument type tablesTim J. Robbins2004-04-222-12/+18
| | | | | | | | | | | | | after their change from an array of char to an array of enum. This fixes problems that occurred when using positional arguments in format strings, particularly with more than STATIC_ARG_TBL_SIZE (8) of them. PR: 65841 Submitted by: Steven Smith (mostly) Notes: svn path=/head/; revision=128550
* Prepare to handle trivial state-dependent encodings. Full support forTim J. Robbins2004-04-079-21/+61
| | | | | | | | state-dependent encodings with locking shifts will come later if there is demand for it. Notes: svn path=/head/; revision=128002
* Mention that funopen() uses fpos_t incorrectly in the BUGS section.Tim J. Robbins2004-03-201-1/+9
| | | | Notes: svn path=/head/; revision=127227
* Improve documentation for fgetpos() and fsetpos(), and discourageTim J. Robbins2004-03-201-13/+21
| | | | | | | users from assuming that fpos_t is an integral type. Notes: svn path=/head/; revision=127225
* Do not redundantly set the stream orientation in getc(), putc(), andTim J. Robbins2004-03-196-6/+12
| | | | | | | related functions - __sgetc() and __sputc() will set it when necessary. Notes: svn path=/head/; revision=127198
* Update list of macros defined in <stdio.h>.Tim J. Robbins2004-03-171-1/+17
| | | | Notes: svn path=/head/; revision=127121
* Re-add description of putc() macro (back out rev. 1.13.)Tim J. Robbins2004-03-171-2/+8
| | | | Notes: svn path=/head/; revision=127120
* Re-add text that says getc() is a macro (back out rev. 1.16.)Tim J. Robbins2004-03-171-1/+2
| | | | Notes: svn path=/head/; revision=127119
* Re-add macro versions of getc(), getchar(), putc(), putchar(), feof(),Tim J. Robbins2004-03-176-34/+12
| | | | | | | | | | ferror(), fileno() and clearerr(), using the value of __isthreaded to decide between the fast inline single-threaded code and the more general function equivalent. This gives most of the performance benefits of the old unsafe macros while preserving thread safety. Notes: svn path=/head/; revision=127100
* Refer to "wide characters" instead of "wide-characters".Tim J. Robbins2004-03-163-15/+15
| | | | Notes: svn path=/head/; revision=127073
* Set stream orientation in ungetc() instead of __ungetc(). This avoidsTim J. Robbins2004-03-101-2/+1
| | | | | | | | setting it redundantly when called from ungetwc(), vfscanf() etc., which already set the orientation. Notes: svn path=/head/; revision=126809
* Remove duplicate check for EOF from ungetc(); __ungetc() already checks.Tim J. Robbins2004-03-101-2/+0
| | | | Notes: svn path=/head/; revision=126808
* Call __sputc() directly in fputc() instead of taking an expensiveTim J. Robbins2004-03-101-1/+1
| | | | | | | detour through putc(). Notes: svn path=/head/; revision=126806
* Call __sgetc() directly in getchar() instead of taking an expensiveTim J. Robbins2004-03-101-1/+1
| | | | | | | detour through getc(). Notes: svn path=/head/; revision=126804
* Set the stream orientation explicitly in fgetln() instead of relying onTim J. Robbins2004-03-101-0/+1
| | | | | | | __srefill() to do it. Notes: svn path=/head/; revision=126802
* Set stream orientation in puts().Tim J. Robbins2004-03-101-0/+2
| | | | Notes: svn path=/head/; revision=126800
* Backout the previous revision due to objections.John Birrell2004-03-092-10/+4
| | | | Notes: svn path=/head/; revision=126765
* On 4.X it was possible for an application to initialise a local FILEJohn Birrell2004-03-092-4/+10
| | | | | | | | | | | | structure and call stdio functions. In 5.X this was broken when FILE locking was introduced into libc. This change makes most (relevant) stdio functions work again when the _extra file in FILE isn't initialised (and can't be without a libc function to do it since the __sFILEX structure is private to libc). Notes: svn path=/head/; revision=126760
* If handed a file pointer we can't write to, set errno properly to EBADFJordan K. Hubbard2004-03-021-1/+4
| | | | | | | | | | in order to get SUSv2 conformant behavior in higher level calls like fputs() and puts(). Reviewed by: bde Notes: svn path=/head/; revision=126506
* Document dependence of mktemp(3) on the non-reentrant arc4random(3).Brian Feldman2004-02-201-0/+7
| | | | Notes: svn path=/head/; revision=126034
* Merge vfscanf.c,v 1.35.David Schultz2004-01-311-4/+10
| | | | Notes: svn path=/head/; revision=125283
* Fix the handling of negative hexadecimal numbers in integer formats.David Schultz2004-01-311-3/+9
| | | | | | | | | | Note that this bug is unrelated to recent work in this area; it seems to have been present since revision 1.1. Obtained from: NetBSD Notes: svn path=/head/; revision=125282
* Merge vfprintf.c, v1.61 and 1.62. For compatibility with __hdtoa()David Schultz2004-01-231-19/+25
| | | | | | | | | | and to reduce diffs between vfprintf.c and vfwprintf.c, declare xdigs* to be char arrays rather than wchar_t arrays. In collaboration with: tjr Notes: svn path=/head/; revision=124887
* Bring the *printf(3) documentation up to date with the code:David Schultz2004-01-191-37/+24
| | | | | | | | | | | | | | | | | | | | | | - 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. Notes: svn path=/head/; revision=124710
* Implement __hdtoa() and __hldtoa() and enable printf() support for %aDavid Schultz2004-01-181-5/+2
| | | | | | | and %A, which print floating-point numbers in hexadecimal. Notes: svn path=/head/; revision=124667
* Prototype __hdtoa() and __hldtoa().David Schultz2004-01-181-0/+2
| | | | Notes: svn path=/head/; revision=124658
* Fix some bugs affecting the %a and %A format specifiers. SinceDavid Schultz2004-01-181-6/+16
| | | | | | | | | | | | | | | | these are not fully implemented and ifdef'd out, the bugs have never manifested themselves. Specifically: - Fix a memory leak in the case where %a follows another floating-point format. - Make the %a/%A code behave like %e/%E with respect to precision. - It is no longer valid to assume that '-' and '0x' are mutually exclusive. - Address other minor issues. Notes: svn path=/head/; revision=124657
* Make intentions explicit with additional parenthesis.Jacques Vidrine2004-01-062-8/+8
| | | | Notes: svn path=/head/; revision=124175
* Remove unused variables and function declarations. Add missing headers.Jacques Vidrine2004-01-061-2/+1
| | | | Notes: svn path=/head/; revision=124174
* Fix prototype for getchar_unlocked().Tim J. Robbins2003-12-071-1/+1
| | | | Notes: svn path=/head/; revision=123216
* Use __sfvwrite() instead of __sputc() via __fputwc() to write to fakeTim J. Robbins2003-11-121-1/+30
| | | | | | | | | | | string files (__SSTR flag set). This is necessary because __sputc() does not respect the __SALC flag, and crashes trying to flush the buffer instead of resizing it. PR: 59167 Notes: svn path=/head/; revision=122547
* Pass NULL instead of a pointer to a zeroed mbstate_t object.Tim J. Robbins2003-11-056-37/+17
| | | | Notes: svn path=/head/; revision=122105
* Pass mbrtowc() and wcrtomb() NULL instead of a pointer to a freshly zeroedTim J. Robbins2003-11-043-9/+3
| | | | | | | | | | mbstate_t object that they ignore. The zeroing is fairly expensive, and it will never be necessary in these functions; when we support state-dependent encodings, we will pass in a pointer to the file's mbstate_t object, and only zero it at the time the file gets opened. Notes: svn path=/head/; revision=122042
* Fix a typo that caused the optimized single-byte locale path not to be taken.Tim J. Robbins2003-11-011-1/+1
| | | | Notes: svn path=/head/; revision=121851
* mdoc(7): Use the new feature of the .In macro.Ruslan Ermilov2003-09-082-3/+3
| | | | Notes: svn path=/head/; revision=119893
* Add more useful cross-references to the SEE ALSO section.Tim J. Robbins2003-07-051-2/+7
| | | | Notes: svn path=/head/; revision=117253
* Catch up with recent FP-related changes to scanf.3 and vfwscanf.c.Tim J. Robbins2003-07-051-31/+16
| | | | Notes: svn path=/head/; revision=117252
* Fix two incorrect uses of sizeof: we need to divide the size of the bufferTim J. Robbins2003-07-051-11/+6
| | | | | | | | | by sizeof(wchar_t) to get the number of wide characters it contains. Remove the !hardway micro-optimisation from the CT_INT case to avoid having to fix it for wide characters. Notes: svn path=/head/; revision=117250
* Merge recent floating point conversion changes from vfscanf.c.Tim J. Robbins2003-07-051-93/+175
| | | | Notes: svn path=/head/; revision=117249
* When size is 1 should just null terminate the string. The dummy variableJordan K. Hubbard2003-07-021-3/+5
| | | | | | | | | | | | is made an array of two, to explicitly avoid stack corruption due to null-terminating (which is doesn't actually happen due to stack alignment padding). Submitted by: Ed Moy <emoy@apple.com> Obtained from: Apple Computer, Inc. Notes: svn path=/head/; revision=117147
* Update to reflect changes in vfscanf.c,v 1.32. Remove bogusDavid Schultz2003-06-281-35/+14
| | | | | | | | | | documentation for %a, and document it correctly instead. s/one of aefg/one of a, e, f, or g/ Reviewed by: standards@ Notes: svn path=/head/; revision=116968
* Revamp scanf's floating-point-parsing algorithm to supportDavid Schultz2003-06-281-94/+172
| | | | | | | | | | | [+|-]Inf, [+|-]NaN, nan(...), and hexidecimal FP constants. While here, add %a and %A, which are aliases for %e, and add support for long doubles. Reviewed by: standards@ Notes: svn path=/head/; revision=116967
* Add or correct section number in .Xr. Use .Vt or .FnPhilippe Charnier2003-06-081-1/+1
| | | | | | | instead of .Xr when needed Notes: svn path=/head/; revision=116021