diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2001-04-20 22:50:51 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2001-04-20 22:50:51 +0000 |
commit | 52cb9e6934c1417a03fe20f6be8f479b8f9fb3d5 (patch) | |
tree | a1446b632877f034bd4ff0892d7c89bcb099bb56 /newlib/libc/stdio/vscanf.c | |
parent | 3c8e92d9fc43e7b8c8e5ad4a0235599d7b285274 (diff) | |
download | cygnal-52cb9e6934c1417a03fe20f6be8f479b8f9fb3d5.tar.gz cygnal-52cb9e6934c1417a03fe20f6be8f479b8f9fb3d5.tar.bz2 cygnal-52cb9e6934c1417a03fe20f6be8f479b8f9fb3d5.zip |
2001-04-20 Jeff Johnston <jjohnstn@redhat.com>
* libc/include/stdio.h[!_REENT_ONLY]: Moved various functions together
into one list.
[!__STRICT_ANSI__]: Moved non-ANSI I/O functions in this list.
(vfscanf, vscanf, vsscanf, _vfscanf_r, _vscanf_r, _vsscanf_r): New
function prototypes.
(_fscanf_r, _sscanf_r): Ditto.
* libc/include/stdlib.h: Added _strtod_r prototype.
* libc/stdio/Makefile.am: Add new v*scanf functions.
* libc/stdio/Makefile.in: Regenerate.
* libc/stdio/fscanf.c: Reorganized so HAVE_STDC only affects prototype
and code is shared. Added reentrant _fscanf_r which calls __svfscanf_r. * libc/stdio/scanf.c: Changed to call __svfscanf_r.
* libc/stdio/sscanf.c: Changed documentation to add reentrant routines.
(sscanf): Changed to call __svfscanf_r with _REENT argument.
(_sscanf_r): New routine.
* libc/stdio/local.h: Removed __svfscanf prototype and replaced it
with __svfscanf_r prototype.
* libc/stdio/vfscanf.c (vfscanf, _vfscanf_r: New
routines.
(__svfscanf_r): Reentrant version of __svfscanf which takes reetrancy
structure as argument as calls reentrant versions of helper functions
(e.g. _strtol_r, _strtoul_r). Also replaced calls to atol and atof
to _strtol_r and _strtod_r respectively.
* libc/stdio/vfscanf.c: Also changed __svfscanf to call __svfscanf_r.
* libc/stdlib/strtod.c (strtod): Changed to call _strtod_r with
_REENT argument.
* libc/stdio/vscanf.c: New file.
* libc/stdio/vsscanf.c: Ditto.
Diffstat (limited to 'newlib/libc/stdio/vscanf.c')
-rw-r--r-- | newlib/libc/stdio/vscanf.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/newlib/libc/stdio/vscanf.c b/newlib/libc/stdio/vscanf.c new file mode 100644 index 000000000..59c63738a --- /dev/null +++ b/newlib/libc/stdio/vscanf.c @@ -0,0 +1,54 @@ +/*- + * Code created by modifying scanf.c which has following copyright. + * + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <_ansi.h> +#include <stdio.h> +#include "local.h" + +#ifdef _HAVE_STDC +#include <stdarg.h> +#else +#include <varargs.h> +#endif + +/* + * vscanf + */ + +#ifndef _REENT_ONLY + +int +_DEFUN (vscanf, (fmt, ap), + _CONST char *fmt _AND + va_list ap) +{ + return __svfscanf_r (_REENT, _stdin_r (_REENT), fmt, ap); +} + +#endif /* !_REENT_ONLY */ + +int +_DEFUN (_vscanf_r, (ptr, fmt, ap), + struct _reent *ptr _AND + _CONST char *fmt _AND + va_list ap) +{ + return __svfscanf_r (ptr, _stdin_r (ptr), fmt, ap); +} + |