freebsd-nq/lib/libc/stdio
Andrey A. Chernov e0b123f6d0 1) Oops! Insert again if (n == 0) return 0.
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
1997-12-24 20:24:08 +00:00
..
asprintf.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
clrerr.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
fclose.3
fclose.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
fdopen.c
feof.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
ferror.3
ferror.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
fflush.3 Sort cross references. 1997-01-20 23:23:22 +00:00
fflush.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
fgetc.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
fgetln.3 Correctly use .Fn instead of .Nm to reference function names 1996-08-22 23:31:07 +00:00
fgetln.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
fgetpos.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
fgets.3 Correct the paramter type of the second argument to fgets. 1996-08-06 22:34:44 +00:00
fgets.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
fileno.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
findfp.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
flags.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
floatio.h
fopen.3 Fixed #include and/or prototype bugs in synopsis. 1997-04-13 13:35:33 +00:00
fopen.c
fprintf.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
fpurge.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
fputc.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
fputs.3 Sort cross references. 1997-01-20 23:23:22 +00:00
fputs.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
fread.3 Fixed various problems: typos, grammer, missing include files 1996-05-23 01:05:25 +00:00
fread.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
freopen.c Remove trailing whitespace. 1995-05-30 05:51:47 +00:00
fscanf.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
fseek.3 Fixed #include and/or prototype bugs in synopsis. 1997-04-13 13:35:33 +00:00
fseek.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
fsetpos.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
ftell.c Merge from Lite2 1997-03-11 11:40:40 +00:00
funopen.3 Fixed #include and/or prototype bugs in synopsis. 1997-04-13 13:35:33 +00:00
funopen.c
fvwrite.c Remove wrong comment about snprintf: 1997-12-24 13:17:13 +00:00
fvwrite.h
fwalk.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
fwrite.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
getc.3 Sort cross references. 1997-01-20 23:23:22 +00:00
getc.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
getchar.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
gets.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
getw.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
glue.h
local.h Import CSRG 4.4BSD-Lite2 lib/libc onto vendor branch 1997-03-11 11:29:42 +00:00
makebuf.c
Makefile.inc Sorted lists. 1997-10-21 08:41:15 +00:00
mktemp.3 Fix a typo. 1996-05-01 22:49:36 +00:00
mktemp.c Fix race 1997-04-07 18:01:10 +00:00
perror.c perror () does not prepend ": " for the non-NULL argument "". close PR 1492 1996-09-30 15:39:18 +00:00
printf.3 FIxed arg types (mostly missing consts) in synopsis. 1997-03-19 00:52:58 +00:00
printf.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
putc.3
putc.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
putchar.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
puts.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
putw.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
refill.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
remove.3
remove.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
rewind.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
rget.c Suggested by: Bruce Evans, Jeffrey Hsu, Gary Palmer 1996-06-22 10:34:15 +00:00
scanf.3 Add 64 bit int support to scanf() 1997-07-01 17:46:39 +00:00
scanf.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
setbuf.3 Fixed #include and/or prototype bugs in synopsis. 1997-04-13 13:35:33 +00:00
setbuf.c
setbuffer.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
setvbuf.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
snprintf.c 1) Oops! Insert again if (n == 0) return 0. 1997-12-24 20:24:08 +00:00
sprintf.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
sscanf.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
stdio.3 Sort cross references. 1997-01-20 23:23:22 +00:00
stdio.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
tempnam.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
tmpfile.c
tmpnam.3 Added missing section numbers to a bunch of .Xr macros, or 1996-03-27 20:49:07 +00:00
tmpnam.c
ungetc.3 Sort cross references. 1997-01-20 23:23:22 +00:00
ungetc.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
vasprintf.c Rework previous commit.. I was confused by the number of diffs in the PR 1997-07-06 08:42:37 +00:00
vfprintf.c Fix snprintf(...%n...) 1997-12-24 13:47:13 +00:00
vfscanf.c Fixed long double formats. They were mostly not implemented except 1997-11-23 06:02:47 +00:00
vprintf.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
vscanf.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
vsnprintf.c 1) Oops! Insert again if (n == 0) return 0. 1997-12-24 20:24:08 +00:00
vsprintf.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
vsscanf.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
wbuf.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
wsetup.c Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00