Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6536 serge 1
/*-
2
 * Code created by modifying iscanf.c which has following copyright.
3
 *
4
 * Copyright (c) 1990 The Regents of the University of California.
5
 * All rights reserved.
6
 *
7
 * Redistribution and use in source and binary forms are permitted
8
 * provided that the above copyright notice and this paragraph are
9
 * duplicated in all such forms and that any documentation,
10
 * advertising materials, and other materials related to such
11
 * distribution and use acknowledge that the software was developed
12
 * by the University of California, Berkeley.  The name of the
13
 * University may not be used to endorse or promote products derived
14
 * from this software without specific prior written permission.
15
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
16
 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
17
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
18
 */
19
 
20
/*
21
FUNCTION
22
<>, <>, <>---format argument list
23
 
24
INDEX
25
	viscanf
26
INDEX
27
	_viscanf_r
28
INDEX
29
	vfiscanf
30
INDEX
31
	_vfiscanf_r
32
INDEX
33
	vsiscanf
34
INDEX
35
	_vsiscanf_r
36
 
37
ANSI_SYNOPSIS
38
	#include 
39
	#include 
40
	int viscanf(const char *<[fmt]>, va_list <[list]>);
41
	int vfiscanf(FILE *<[fp]>, const char *<[fmt]>, va_list <[list]>);
42
	int vsiscanf(const char *<[str]>, const char *<[fmt]>, va_list <[list]>);
43
 
44
	int _viscanf_r(struct _reent *<[reent]>, const char *<[fmt]>,
45
                       va_list <[list]>);
46
	int _vfiscanf_r(struct _reent *<[reent]>, FILE *<[fp]>, const char *<[fmt]>,
47
                       va_list <[list]>);
48
	int _vsiscanf_r(struct _reent *<[reent]>, const char *<[str]>,
49
                       const char *<[fmt]>, va_list <[list]>);
50
 
51
TRAD_SYNOPSIS
52
	#include 
53
	#include 
54
	int viscanf( <[fmt]>, <[ist]>)
55
	char *<[fmt]>;
56
	va_list <[list]>;
57
 
58
	int vfiscanf( <[fp]>, <[fmt]>, <[list]>)
59
	FILE *<[fp]>;
60
	char *<[fmt]>;
61
	va_list <[list]>;
62
 
63
	int vsiscanf( <[str]>, <[fmt]>, <[list]>)
64
	char *<[str]>;
65
	char *<[fmt]>;
66
	va_list <[list]>;
67
 
68
	int _viscanf_r( <[reent]>, <[fmt]>, <[ist]>)
69
	struct _reent *<[reent]>;
70
	char *<[fmt]>;
71
	va_list <[list]>;
72
 
73
	int _vfiscanf_r( <[reent]>, <[fp]>, <[fmt]>, <[list]>)
74
	struct _reent *<[reent]>;
75
	FILE *<[fp]>;
76
	char *<[fmt]>;
77
	va_list <[list]>;
78
 
79
	int _vsiscanf_r( <[reent]>, <[str]>, <[fmt]>, <[list]>)
80
	struct _reent *<[reent]>;
81
	char *<[str]>;
82
	char *<[fmt]>;
83
	va_list <[list]>;
84
 
85
DESCRIPTION
86
<>, <>, and <> are (respectively) variants
87
of <>, <>, and <>.  They differ only in
88
allowing their caller to pass the variable argument list as a
89
<> object (initialized by <>) rather than
90
directly accepting a variable number of arguments.
91
 
92
RETURNS
93
The return values are consistent with the corresponding functions:
94
<> returns the number of input fields successfully scanned,
95
converted, and stored; the return value does not include scanned
96
fields which were not stored.
97
 
98
If <> attempts to read at end-of-file, the return value
99
is <>.
100
 
101
If no fields were stored, the return value is <<0>>.
102
 
103
The routines <<_viscanf_r>>, <<_vfiscanf_f>>, and <<_vsiscanf_r>> are
104
reentrant versions which take an additional first parameter which points to the
105
reentrancy structure.
106
 
107
PORTABILITY
108
These are newlib extensions.
109
 
110
Supporting OS subroutines required:
111
*/
112
 
113
#include <_ansi.h>
114
#include 
115
#include 
116
#ifdef _HAVE_STDC
117
#include 
118
#else
119
#include 
120
#endif
121
#include "local.h"
122
 
123
#ifndef _REENT_ONLY
124
 
125
int
126
_DEFUN(viscanf, (fmt, ap),
127
       _CONST char *fmt _AND
128
       va_list ap)
129
{
130
  struct _reent *reent = _REENT;
131
 
132
  _REENT_SMALL_CHECK_INIT (reent);
133
  return __svfiscanf_r (reent, _stdin_r (reent), fmt, ap);
134
}
135
 
136
#endif /* !_REENT_ONLY */
137
 
138
int
139
_DEFUN(_viscanf_r, (ptr, fmt, ap),
140
       struct _reent *ptr _AND
141
       _CONST char *fmt   _AND
142
       va_list ap)
143
{
144
  _REENT_SMALL_CHECK_INIT (ptr);
145
  return __svfiscanf_r (ptr, _stdin_r (ptr), fmt, ap);
146
}
147