summaryrefslogtreecommitdiff
path: root/lib/libc/stdio
Commit message (Collapse)AuthorAgeFilesLines
* mdoc(7) police:Ruslan Ermilov2002-01-093-3/+6
| | | | | | | Stop abusing the .%J macro for where the .Pa macro should have been used. Notes: svn path=/head/; revision=89138
* All information from the "BUGS" section not belonging in "SECURITYChris Costello2002-01-062-48/+34
| | | | | | | | | | CONSIDERATIONS" moved to "COMPATIBILITY". Obtained from: TrustedBSD Project Sponsored by: DARPA, NAI Labs Notes: svn path=/head/; revision=88973
* Add new "SECURITY CONSIDERATIONS" sections.Chris Costello2002-01-063-0/+48
| | | | | | | | Obtained from: TrustedBSD Project Sponsored by: DARPA, NAI Labs Notes: svn path=/head/; revision=88971
* Fix some style bugsAlexey Zelkin2001-12-171-15/+18
| | | | | | | Prompted by: mike Notes: svn path=/head/; revision=88057
* Also fix cases when thousands separator should be put before number. ForAlexey Zelkin2001-12-131-2/+4
| | | | | | | | example before for grouping sequence "\003\003" number 123456 was formated as ",123,456", now "123,456". Notes: svn path=/head/; revision=87818
* Respect locale while handling of \' flag.Alexey Zelkin2001-12-131-22/+63
| | | | | | | | | | | | | In original version grouping was hardcoded. It assumed that thousands separator should be inserted to separate each 3 numbers. I.e. grouping string "\003" was assumed for all cases. In correct case (per POSIX) vfprintf should respect locale defined non-monetary (LC_NUMERIC category) grouping sequence. Also simplify thousands_sep handling. Notes: svn path=/head/; revision=87815
* mdoc(7) police: Minor formatting nits and optimizations to rev. 1.34.Ruslan Ermilov2001-12-121-57/+67
| | | | Notes: svn path=/head/; revision=87735
* * localeconv() usage is not FLOATING_POINT specific anymore (due to "'" flagAlexey Zelkin2001-12-071-3/+3
| | | | | | | | addition) so move locale.h inclusion out of FLOATING_POINT ifdef's. * add more comments Notes: svn path=/head/; revision=87490
* Remove blank line.Bill Fenner2001-12-071-1/+0
| | | | Notes: svn path=/head/; revision=87478
* Implement several of the c99 updates to printf(3):Bill Fenner2001-11-302-211/+458
| | | | | | | | | | | | | | | | | | | - 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. Notes: svn path=/head/; revision=87113
* Back out national digits support, POSIX explicetely disallows it:Andrey A. Chernov2001-11-291-53/+55
| | | | | | | | | | | | | | The definition of character class digit requires that only ten characters -the ones defining digits- can be specified; alternate digits (for example, Hindi or Kanji) cannot be specified here. However, the encoding may vary if an implementation supports more than one encoding. The definition of character class xdigit requires that the characters included in character class digit are included here also and allows for different symbols for the hexadecimal digits 10 through 15. Notes: svn path=/head/; revision=87078
* Don't ever assume that isdigit() is always subset of isxdigit()Andrey A. Chernov2001-11-281-1/+1
| | | | Notes: svn path=/head/; revision=87042
* Allow national (non-ASCII) digitsAndrey A. Chernov2001-11-281-55/+53
| | | | Notes: svn path=/head/; revision=87037
* mdoc(7) police: sort xrefs.Ruslan Ermilov2001-11-201-2/+2
| | | | Notes: svn path=/head/; revision=86657
* Cross-reference the fdopen and fileno manpages.Murray Stokely2001-11-142-1/+3
| | | | | | | | PR: docs/31866 Submitted by: W. Campbell <wcampbel@botbay.net> Notes: svn path=/head/; revision=86352
* In > LONG_MAX test use sseek return value and not _offset which can be notAndrey A. Chernov2001-10-251-3/+4
| | | | | | | active. Notes: svn path=/head/; revision=85513
* Help to recover from bad seek (i.e. negative or too big) happens beyondAndrey A. Chernov2001-10-242-5/+12
| | | | | | | | our pre-check control. Do the same way as refill.c does when it set __SERR, i.e. clear read and ungetc buffers. Clear EOF flag too. Notes: svn path=/head/; revision=85418
* Back out read buffer invalidating via __SMOD.Andrey A. Chernov2001-10-232-7/+2
| | | | | | | | It was correct, but not needed because internal buffer cleared on each seek outside of it. Notes: svn path=/head/; revision=85396
* Change comment explaining another usage of __SMODAndrey A. Chernov2001-10-231-2/+2
| | | | Notes: svn path=/head/; revision=85394
* Disallow fseek() optimization in internal read buffer, if pointer is moved byAndrey A. Chernov2001-10-231-0/+5
| | | | | | | | seek. It means that beginning of read buffer becomes not the same as current file position. Notes: svn path=/head/; revision=85391
* Fixed style bugs in previous commit.Bruce Evans2001-10-151-15/+15
| | | | Notes: svn path=/head/; revision=84962
* Make this compile on ia64.Doug Rabson2001-10-141-25/+46
| | | | Notes: svn path=/head/; revision=84922
* mdoc(7) police: Use the new .In macro for #include statements.Ruslan Ermilov2001-10-0120-23/+23
| | | | Notes: svn path=/head/; revision=84306
* 1) If __SAPP stream is not seekable, remove __SAPP flag on first call insteadAndrey A. Chernov2001-09-071-3/+10
| | | | | | | | | | | | of repeating unsuccessful lseek call on each write (original stdio bug). 2) Save errno accross _sseek call in _swrite to not touch it in case write success (original stdio bug). 3) Add _sseek error checking back, but only for __SOPT mode now. Notes: svn path=/head/; revision=83211
* For now just back out seek error checking in __SAPP case, it cause problemsAndrey A. Chernov2001-09-071-2/+2
| | | | | | | | | with non-seekable streams. Now here is what here was originally, but it is ugly, producing unneded seek syscall on each non-seekable stream write. I'll think about proper solution later. Notes: svn path=/head/; revision=83177
* When __SOPT is cleared, clear __SOFF too.Andrey A. Chernov2001-09-031-1/+1
| | | | | | | NOTE: original stdio bug. Notes: svn path=/head/; revision=82839
* Re-arrange my funopen(3) fix to minimize differences with original stdio code,Andrey A. Chernov2001-09-036-83/+91
| | | | | | | | | no functional changes. Add fp->_offset optimization in _SAPP+_SOPT case Notes: svn path=/head/; revision=82838
* Internal seeks are overoptimized. They should remember fp->_offset only forAndrey A. Chernov2001-09-022-3/+1
| | | | | | | | | | plain regular files, i.e. files with __SOPT flag set. Fix it, so ftell(stdout) always returns the same as lseek(1, 0, 1) now. NOTE: this bug was in original stdio code Notes: svn path=/head/; revision=82827
* Fix bug in off_t overflow checking: if fp->_offset overflows, just removeAndrey A. Chernov2001-09-021-5/+3
| | | | | | | | __SOFF flag (i.e. we don't have offset) instead of returning EOVERFLOW. It allows again continious reading from non-stop stream. Notes: svn path=/head/; revision=82818
* Typo seek(2) -> lseek(2)Andrey A. Chernov2001-09-021-1/+1
| | | | Notes: svn path=/head/; revision=82810
* Move all stdio internal flags processing and setting out of __sread(),Andrey A. Chernov2001-09-029-55/+89
| | | | | | | | | | | | | __swrite() and __sseek() to higher level. According to funopen(3) they all are just wrappers to something like standard read(2), write(2) and lseek(2), i.e. must not touch stdio internals because they are replaceable with any other functions knows nothing about stdio internals. See example of funopen(3) usage in sendmail sources f.e. NOTE: this is original stdio bug, not result of my range checkin added. Notes: svn path=/head/; revision=82807
* Save errno before function call and restore it on success (because manyAndrey A. Chernov2001-09-012-2/+11
| | | | | | | | | internal functions there may fail and set (i.e. overwrite) errno in normal (not error) situation). In original variant errno testing after call (as POSIX suggest) is wrong when errno overwrite happens. Notes: svn path=/head/; revision=82743
* Remove even more unneded checks, original code can't overflows in that placeAndrey A. Chernov2001-09-011-5/+1
| | | | Notes: svn path=/head/; revision=82742
* Remove two checks unneeded now (can't happens)Andrey A. Chernov2001-09-011-4/+0
| | | | Notes: svn path=/head/; revision=82741
* Make fseek(... SEEK_CUR) fails if current file-position is unspecified.Andrey A. Chernov2001-09-012-8/+8
| | | | Notes: svn path=/head/; revision=82740
* Note that prev. commit addition is for ftell/ftelloAndrey A. Chernov2001-09-011-2/+6
| | | | Notes: svn path=/head/; revision=82739
* Describe ESPIPE as result of unspecified file-position indicator value.Andrey A. Chernov2001-09-011-2/+7
| | | | | | | Add more to SEE ALSO section. Notes: svn path=/head/; revision=82738
* Describe file-position behaviour from POSIXAndrey A. Chernov2001-09-011-0/+5
| | | | Notes: svn path=/head/; revision=82737
* Strict in the POSIX sence, if file position is unspecified after ungetc() atAndrey A. Chernov2001-09-011-6/+4
| | | | | | | | | | 0, return that we can't specify it, i.e. error with ESPIPE. (hint from: "Peter S. Housel" <housel@acm.org>) Back out sinit() addition, not needed after various code simplifications. Notes: svn path=/head/; revision=82736
* If lseek to wrong value sucessfully happens despite all pre-checks, set __SERRAndrey A. Chernov2001-09-012-1/+4
| | | | | | | to indicate that stream becomes inconsistent. Notes: svn path=/head/; revision=82735
* If position is underflowed, don't try to hide that fact by recovery, justAndrey A. Chernov2001-09-011-17/+7
| | | | | | | return EIO and set __SERR to mark stream as inconsistent. Notes: svn path=/head/; revision=82734
* Back out disabling ungetc() at 0, use different solution:Andrey A. Chernov2001-09-015-34/+48
| | | | | | | | keep negative offset internally, but return 0 externally in ftell*() I.e. use 0 now as 'unspecified value' per POSIX ungetc() description. Notes: svn path=/head/; revision=82709
* Add originally missing __sinit() call.Andrey A. Chernov2001-08-311-0/+4
| | | | Notes: svn path=/head/; revision=82684
* Simplify offset underflow checks even moreAndrey A. Chernov2001-08-311-12/+2
| | | | Notes: svn path=/head/; revision=82683
* Describe that we disallow ungetc at offset 0 now.Andrey A. Chernov2001-08-311-1/+4
| | | | Notes: svn path=/head/; revision=82679
* Disallow ungetc at offset 0 (to prevent negative offset happens), so simplifyAndrey A. Chernov2001-08-312-22/+15
| | | | | | | checks in ftell. Notes: svn path=/head/; revision=82673
* Drop buffer first, _then_ ask for real positionAndrey A. Chernov2001-08-311-4/+4
| | | | Notes: svn path=/head/; revision=82670
* The same big piece of ftell code repeated in 3 places. Simplify things movingAndrey A. Chernov2001-08-313-94/+30
| | | | | | | | it into one subfunction instead. Try to use real offset in strange cases. Notes: svn path=/head/; revision=82668
* If file offset is smaller than internal buffer character left count, just dropAndrey A. Chernov2001-08-312-16/+30
| | | | | | | internal buffer and trust offset, not return error. Notes: svn path=/head/; revision=82659
* Initialize _offset to 0 in fopen(), it helps to optimize fseek/ftellAndrey A. Chernov2001-08-311-0/+2
| | | | Notes: svn path=/head/; revision=82654