summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdio
Commit message (Collapse)AuthorAgeFilesLines
* Fixed disordering and inconsistent style in previous commit.bde1998-03-121-3/+2
|
* Added #include <string.h> to get prototypes.jb1998-03-092-1/+3
|
* Fixed a few ancient typos, added a little missing stuff, and updatedmckay1998-03-081-20/+23
| | | | | | references to abort() in light of POSIX mandated behaviour. I'm still not 100% happy with much of the wording, but it's better than it was.
* Fixed uninitialized pointer in previous commit. mktemp() was broken.bde1998-03-031-5/+6
| | | | | | I noticed cvs core dumps and uncleaned cvs temporary files in /tmp. Fixed ANSIisms.
* Many security improvements from OpenBSD:imp1998-02-133-35/+113
| | | | | | | | | | | implement mkdtemp improve man page for mk*temp use arc4random to seed extra XXX's randomly Optionally warn of unsafe mktemp uses From various commits by theo de raadt and Todd Miller. Obtained from: OpenBSD This should go into 2.2 after a testing period.
* size_t -> unsignedache1998-01-041-3/+3
| | | | | in arguments length INT_MAX overflow check Suggested-by: bde
* 1. EOF was returned when the buffer size was larger than INT_MAX. Thisache1998-01-012-10/+10
| | | | | | | | | | case has very little to do with the output size being larger than INT_MAX. 2. The new #include of <limits.h> was disordered. 3. The new declaration of `on' was disordered (integer types go together). 4. Testing an unsigned value for > 0 was fishy. Submitted by: bde
* Add overflow checks: if output size becomes bigger than INT_MAX,ache1997-12-251-2/+13
| | | | just return EOF
* Correct type of stored argument place (from previous fix)ache1997-12-242-4/+4
|
* 1) Restore back comment about snprintf()ache1997-12-241-7/+10
| | | | | 2) Optimize string buffer copy to call memcpy() and update pointers only for count > 0, it makes snprintf(NULL, 0, ...) more efficient
* Return back to BSD snprintf semantics which recent C9x standard adoptsache1997-12-243-21/+23
| | | | | | | | | | instead of Singe Unix, thanx Bruce for explaining, I am not realize standards war was there. But now, fix n == 0 case to not return error and fix check for too big n. Things left to do: check for overflow in arguments.
* 1) Oops! Insert again if (n == 0) return 0.ache1997-12-242-10/+10
| | | | | | | | | | | | | | | | | | | Final word is Bruce's quote: C9x specifies the BSD4.4-Lite behaviour: [#3] ... Thus, the null-terminated output has been completely written if and only if the returned value is less than n. It means that if we not have any null-terminated output as for n == 0 we can't return value less than n, so we forced to return value equal to n i.e. 0 The next good thing is glibc compatibility, of course. 2) Do check for too big n in machine-independent way. 3) Minor optimization assuming EOF is < 0
* Back out part related to "return 0 if n == 0" and return EOF as before.ache1997-12-242-6/+2
| | | | | | | | | | | The main argument is that it is impossible to determine if %n evaluated or not when snprintf return 0, because it can happens for both n == 0 and n == 1. Although EOF here is good indication of the end of process, if n is decreased in the loop... Since it is already supposed in many places that EOF *is* negative, f.e. from Single Unix specs for snprintf "return ... a negative value if an output error was encountered" this not makes situation worse.
* Fix snprintf(...%n...)ache1997-12-241-5/+9
| | | | | | to pass not more than buffer size to %n agrument, old variant always assume infinite buffer. %n is for actually transmitted characters, not for planned ones.
* Remove wrong comment about snprintf:ache1997-12-241-5/+4
| | | | | | | | | "return the number of bytes needed, rather the number used" According to Single Unix specs: Upon successful completion, these functions return the number of bytes transmitted excluding the terminating null
* snprintf return value fixes to conform Single Unix specs:ache1997-12-242-6/+16
| | | | | | | | | | | | | | | | | | | | 1) if buffer size is smaller than arguments size, return buffer size, not arguments size as before. 2) if buffer size is 0, return 0, not EOF as before. (now it is compatible with Linux and Apache implementations too). NOTE: Single Unix specs says: If the value of n {buffer size} is zero on a call to snprintf(), an unspecified value less than 1 is returned. It means we can't return EOF since EOF can take *any* value in general not especially < 1. Better variant will be return -1 (it is less then 1 and different with n == 1 case) but -1 value is already occuped by EOF in our implementation, so we can't distinguish true IO error in that case. So 0 here is only possible case still conforming to Single Unix specs.
* Comment that long double is poorly implemented, not that it is unimplemented.bde1997-12-191-2/+3
|
* Fixed long double formats. They were mostly not implemented exceptbde1997-11-231-4/+7
| | | | | | | | | | | on systems where long doubles are just doubles. FreeBSD hasn't been such a system since it started using gcc-2.5 many years ago. The fix is of low quality. It loses precision. scanf() of long doubles doesn't seem to be used much, but gdb-4.16 uses %Lg format in its expression parser if it thinks that the system supports printf'ing of long doubles. The symptom was that floating point literals were usually interpreted to be 0.0.
* Sorted lists.bde1997-10-211-3/+5
|
* Removed the subdirectory paths from the definitions of MAN[1-9]. Theybde1997-10-151-7/+4
| | | | | were a workaround for limitations in bsd.man.mk that were fixed about 2 years ago.
* Rework previous commit.. I was confused by the number of diffs in the PRpeter1997-07-061-8/+29
| | | | | | | | | | | | | | | | | and forgot what I was trying to do originally and accidently zapped a feature. :-] The problem is that we are converting a counted buffer in a malloc pool into a null terminated C-style string. I was calling realloc originally to shrink the buffer to the desired size. If realloc failed, we still returned the valid buffer - the only thing wrong was it was a tad too large. The previous commit disabled this. This commit now handles the three cases.. 1: the buffer is exactly right for the null byte to terminate the string (we don't call realloc). 2: it's got h.left = 0, so we must expand it to make room. If realloc fails here, it's fatal. 3: if there's too much room, we realloc to shrink it - a failed realloc is not fatal, we use the original buffer which is still valid.
* Fix off-by-one errorpeter1997-07-061-4/+6
| | | | | PR: 3451 Submitted by: Tim Vanderhoek <ac199@hwcn.org>
* Add 64 bit int support to scanf()jkh1997-07-012-14/+32
| | | | | PR: 2080 Submitted by: David Dawes <dawes@rf900.physics.usyd.edu.au>
* Changed all paths to be relative to src/lib instead of src/lib/libcjb1997-05-031-2/+5
| | | | | | | | | | so that all these makefiles can be used to build libc_r too. Added .if ${LIB} == "c" tests to restrict man page builds to libc to avoid needlessly building them with libc_r too. Split libc Makefile into Makefile and Makefile.inc to allow the libc_r Makefile to include Makefile.inc too.
* Fixed #include and/or prototype bugs in synopsis.bde1997-04-134-6/+6
|
* Fix raceguido1997-04-071-2/+2
| | | | Obtained from: Keith Bostic
* Eliminate yet one function call when locale not usedache1997-04-041-3/+4
|
* Speedup in case locale not usedache1997-04-041-7/+16
|
* The w+ entry description was misformatted.mpp1997-03-271-1/+1
| | | | Pointed out by: bde
* FIxed arg types (mostly missing consts) in synopsis.bde1997-03-191-1/+1
|
* Merge from Lite2peter1997-03-111-2/+2
|
* This commit was generated by cvs2svn to compensate for changes in r23658,peter1997-03-111-17/+17
|\ | | | | | | which included commits to RCS files with non-trunk default branches.
| * Import CSRG 4.4BSD-Lite2 lib/libc onto vendor branchpeter1997-03-112-19/+19
| |
* | Fixed handling of input failure by the scanf family.bde1997-03-031-3/+11
| | | | | | | | | | | | | | | | | | | | | | - 0 was returned instead of EOF when an input failure occured while skipping white-space after 0 assignments. This fixes PR2606. The diagnosis in PR2606 is wrong. - EOF was returned instead of 0 when an input failure occurred after zero assignments and nonzero suppressed assignments. - EOF was spelled -1. This should be in 2.2.
* | Revert $FreeBSD$ to $Id$peter1997-02-2258-58/+58
| |
* | Add XXX comment describing potential memset non-portable issueache1997-02-051-0/+3
| | | | | | | | Nitpicked-by: joerg
* | Sort cross references.wosch1997-01-207-12/+12
| |
* | Use collate for national [a-z]-like rangesache1997-01-161-8/+13
| | | | | | | | Should go in 2.2
* | The following patch to lib/libc/stdio implements positional arguments injkh1997-01-142-22/+414
| | | | | | | | | | | | | | | | | | 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>
* | Make the long-awaited change from $Id$ to $FreeBSD$jkh1997-01-1458-58/+58
| | | | | | | | | | | | | | | | This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
* | perror () does not prepend ": " for the non-NULL argument "". close PR 1492wosch1996-09-301-1/+1
| | | | | | | | | | | | | | Submitted by: Kent Vander Velden <graphix@iastate.edu> Reviewed by: Submitted by: Obtained from:
* | .DV -> .Dv (FOPEN_MAX was invisible).bde1996-09-281-1/+1
| |
* | fwopen() argument type mis-describedpst1996-09-131-1/+1
| | | | | | | | Obtained from: NetBSD lib/2751 (der Mouse)
* | Correctly use .Fn instead of .Nm to reference function namesmpp1996-08-222-2/+4
| | | | | | | | | | | | | | | | in a bunch of man pages. Use the correct .Bx (BSD UNIX) or .At (AT&T UNIX) macros instead of explicitly specifying the version in the text in a bunch of man pages.
* | Update some more man pages to use the .Fx macro.mpp1996-08-211-1/+1
| |
* | Fix nasty bracketing/precedence bug. Every time something read (andpeter1996-08-131-2/+2
| | | | | | | | | | | | | | | | | | refilled) a file that was either line- or un-buffered, all files were flushed. According to the code comment, the flush (according to ANSI) is supposed to happen on write + line buffered output files, not _all_ files. Obtained from: OpenBSD / Theo de Raadt, possibly from proven@cygnus.com
* | Correct the paramter type of the second argument to fgets.mpp1996-08-061-1/+1
| | | | | | | | Obtained from: NetBSD-bugs mailing list
* | Fix some of the problems that bde pointed out to me some time ago.peter1996-07-281-7/+16
| | | | | | | | | | | | - buffer expansions were not working right due to a return code botch. - signed types instead of size_t's meant somebody else went and put casts in, I've changed the types to what they should have been.
* | Suggested by: Bruce Evans, Jeffrey Hsu, Gary Palmerjraynard1996-06-2257-50/+317
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added $Id$'s to files that were lacking them (gpalmer), made some cosmetic changes to conform to style guidelines (bde) and checked against NetBSD and Lite2 to remove unnecessary divergences (hsu, bde) One last code cleanup:- Removed spurious casts in fseek.c and stdio.c. Added missing function argument in fwalk.c. Added missing header include in flags.c and rget.c. Put in casts where int's were being passed as size_t's. Put in missing prototypes for static functions. Changed second args of __sflags() inflags.c and writehook() in vasprintf.c from char * to const char * to conform to prototypes. This directory now compiles with no warnings with -Wall under gcc-2.6.3 and with considerably less warnings than before with the ultra-pedantic script I used for testing. (Most of the remaining ones are due to const poisoning).
* | Code cleanup:-jraynard1996-06-122-2/+3
| | | | | | | | | | The usual stuff, adding missing function prototypes, argument types, return values, etc.
OpenPOWER on IntegriCloud