Commit Graph

42 Commits

Author SHA1 Message Date
yamt 17f3654a64 - make FILE structure extensible without breaking binary-compatibility.
- add fputwc, fgetwc, fwide and related functions.
- add hooks needed to maintain the orientation of file stream.
2001-12-07 11:47:40 +00:00
kleink dcf4ce2588 C99:
* Recognize %F.
* Convert {Infinity,NaN} to {"inf","nan"} for %[efg], and to
  {"INF","NAN"} for %[EFG].
2001-12-02 20:12:03 +00:00
kleink 80f30d4de0 Since we're returned the sign of a floating-point number by __dtoa(),
use that to decide whether to include a minus sign in the result.
Fixes printing -0.0, and thus PR lib/3137.
2001-11-28 11:58:22 +00:00
augustss 0d3aa2aa07 Ugh, back out last commit. It makes vfprintf depend on -lm. 2001-11-27 18:05:30 +00:00
augustss a928006fbb Print sign of -0.0 correctly. Fixes PR 3137 (mine). 2001-11-27 18:00:55 +00:00
lukem 50f5afd52e fix WARNS=2 (-Wshadow) warnings 2001-11-04 13:57:29 +00:00
kleink fe3c9ceaf7 * Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
  explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
  macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
  intmax_t, pointer-type and size_t arguments.
2001-04-28 15:41:28 +00:00
itojun bb0bfe5b30 initialize mbstate_t properly. 2000-12-30 04:13:25 +00:00
itojun 1da6122f1e make printf-variant work with stateful encodings. 2000-12-23 13:19:31 +00:00
sommerfeld 007c516740 Attach __format__ attributes to local __sbprintf function 2000-07-08 14:57:57 +00:00
lukem d896261208 back out the #ifdef _DIAGNOSTIC argument checks; too many people complained.
_DIAGASSERT() is still retained.
1999-09-20 04:38:56 +00:00
lukem b48252f365 * use _DIAGASSERT() to check pointer arguments against NULL and file
descriptors against -1 (as appropriate).
* add actual checks which to detect stuff that would trigger_DIAGASSERT(),
  and attempt to return a sane error condition.
* knf some code
* remove some `register' decls.

the first two items result in the addition of code similar to the
following in various functions:

		_DIAGASSERT(path != NULL)
	#ifdef _DIAGNOSTIC
		if (path == NULL) {
			errno = EFAULT;
			return (-1);
		}
	#endif
1999-09-16 11:44:54 +00:00
christos d1d407360d This is ugly. There is a const castaway inside the print macro, so we cannot
use /* LINTED */ comments, since cpp will expand comments only at the macro
definition location, not at every expansion.
1998-11-15 17:19:05 +00:00
kleink d541ca6d80 Need internal names for isinf() and isnan(). 1998-10-13 14:43:36 +00:00
kleink 0cca1fcb27 Perform stdio stream locking as appropriate. 1998-09-09 12:08:05 +00:00
mycroft 1b5106953f Delint (partially). 1998-07-27 14:04:01 +00:00
mycroft c18a540460 Minor nit. 1998-07-26 13:55:44 +00:00
mycroft dae9fd960e const poisoning. 1998-07-26 12:35:24 +00:00
mycroft be9c427d60 const poisoning. 1998-07-26 12:29:33 +00:00
perry c8bafd6265 remove obsolete register declarations 1998-02-03 18:38:12 +00:00
kleink f47d490f87 Change several functions to return -1 instead of EOF, which was semantically
wrong.
1997-12-19 14:08:41 +00:00
phil a25ce426d4 Remove the flag test when seeing if _double is zero or not. We
are only testing for the cvt problem, not for alternate forms.
This change makes %#e and %e both correctly print 0.  It is just
a question of is it the proper number of zeros or not?
1997-08-29 05:31:11 +00:00
christos 0c339c443a Fix RCSID's
Fix gcc warnings.
Add prototypes for functions that were declared in more than one place
to local.h or extern.h and use that instead.
1997-07-13 20:15:17 +00:00
kleink 5a4d11e445 Upon an attempt to write to a stream that can't be written to, set errno
to EBADF.
1997-05-03 09:01:48 +00:00
kleink f87eccf5b4 RCSid police 1997-04-02 12:50:23 +00:00
jtc 615fb07b15 The C Standard says that printf's format string is a multi-byte
character string.  NA1 says that the 99 characters required by the
Standard have representations in the initial state which are one byte
long and do not alter the state.

Thus we can safely break apart the format string with mbtowc() until
we reach a '%' character, and the process format directive characters
one by one.

We really shouldn't be using mbtowc(), rather mbrtowc() (which takes a
mbstate-t argument) but we don't have the NA1 functions implemented
yet.  This is safe, because even when we do we're not likely to
support multi-byte character encodings that use shift states.
1995-05-02 19:52:41 +00:00
jtc 3b29974599 Added "long long" support %ll{d,x,o,i}. 1995-03-22 00:56:55 +00:00
cgd 708504beb1 when you have a pointer and want to assign to a quad, you must cast it
to long to quiet the compiler.
1995-02-25 07:06:38 +00:00
jtc a40e8f9215 Fixed bug with '+' or ' ' flags and precision.
for example, printf("% 6.4d\n", 77) output one two many padding chars.
1995-01-25 11:20:41 +00:00
jtc 14c8a82a15 Fix zero padding when using the # format modifier. 1994-10-20 03:56:56 +00:00
jtc c36fd69bc3 The decimal point character is locale specific. 1994-09-30 02:39:13 +00:00
mycroft e9d5734eb6 Move FLOATING_POINT definition into Makefile.inc. 1994-09-19 04:43:02 +00:00
cgd 26fc33ba8d _VA_LIST_ -> _BSD_VA_LIST_ 1994-05-22 23:14:07 +00:00
jtc 86f54a1e24 Corrected and simplified floating point formatting.
Now conforms to ANSI C --- passes the fairly rigorous TCL "format.test".
1993-11-04 02:26:10 +00:00
jtc 5be26afce6 Trailing zeros should be printed with all floating point formats
except %g && %G --- ANSI X3.159-1989, Sect 7.9.6.1.
1993-11-03 19:32:01 +00:00
jtc 9c20f740a3 Declare rcsid strings so they are stored in text segment. 1993-08-26 00:43:03 +00:00
mycroft e9d867ef50 Add RCS identifiers. 1993-08-01 17:54:45 +00:00
mycroft b7c7310653 Make declarations match prototypes. 1993-07-12 02:09:31 +00:00
cgd 49693da854 update for better FP routines, from AT&T & elsewhere 1993-07-09 09:40:07 +00:00
mycroft 78ff981673 Fix error in last patch. 1993-04-18 09:21:15 +00:00
mycroft f6eb9a54d8 Make arguments match prototypes. 1993-04-18 09:19:56 +00:00
cgd 61f282557f initial import of 386bsd-0.1 sources 1993-03-21 09:45:37 +00:00