libc+AxWin3 - RichText rendering, scanf
[tpg/acess2.git] / Usermode / Libraries / libc.so_src / scanf.c
1 /*
2  * Acess2 C Library
3  * - By John Hodge (thePowersGang)
4  *
5  * scanf.c
6  * - *scanf family of functions
7  */
8 #include <stdio.h>
9 #include <stdarg.h>
10
11 // === CODE ===
12 int _vcscanf(int (*__getc)(void *), void *h, const char *format, va_list ap)
13 {
14         // TODO: Impliment
15         return 0;
16 }
17
18 int _vsscanf_getc(void *h)
19 {
20         const char      **ibuf = h;
21         return *(*ibuf)++;      // Dereference, read, increment
22 }
23
24 int vscanf(const char *format, va_list ap)
25 {
26         return vfscanf(stdin, format, ap);
27 }
28
29 int vsscanf(const char *str, const char *format, va_list ap)
30 {
31         return _vcscanf(_vsscanf_getc, &str, format, ap);
32 }
33
34 int _vfscanf_getc(void *h)
35 {
36         return fgetc(h);        // TODO: Handle -1 -> 0
37 }
38
39 int vfscanf(FILE *stream, const char *format, va_list ap)
40 {
41         return _vcscanf(_vfscanf_getc, stream, format, ap);
42 }
43
44 int scanf(const char *format, ...)
45 {
46         va_list args;
47          int    rv;
48         va_start(args, format);
49         rv = vfscanf(stdin, format, args);
50         va_end(args);
51         return rv;
52 }
53 int fscanf(FILE *stream, const char *format, ...)
54 {
55         va_list args;
56          int    rv;
57         va_start(args, format);
58         rv = vfscanf(stream, format, args);
59         va_end(args);
60         return rv;
61 }
62 int sscanf(const char *str, const char *format, ...)
63 {
64         va_list args;
65          int    rv;
66         va_start(args, format);
67         rv = vsscanf(str, format, args);
68         va_end(args);
69         return rv;
70 }
71

UCC git Repository :: git.ucc.asn.au