- Implement remaining functions in rtl/i386/math_asm.S
[reactos.git] / reactos / lib / string / sscanf.c
1 /**/
2 #define WIN32_NO_STATUS
3 #include <windows.h>
4 #include <ndk/umtypes.h>
5 #include <ndk/rtlfuncs.h>
6 #include <stdlib.h>
7 #include <stdarg.h>
8 #include <stdio.h>
9
10 /* helper function for *scanf. Returns the value of character c in the
11 * given base, or -1 if the given character is not a digit of the base.
12 */
13 static int char2digit(char c, int base) {
14 if ((c>='0') && (c<='9') && (c<='0'+base-1)) return (c-'0');
15 if (base<=10) return -1;
16 if ((c>='A') && (c<='Z') && (c<='A'+base-11)) return (c-'A'+10);
17 if ((c>='a') && (c<='z') && (c<='a'+base-11)) return (c-'a'+10);
18 return -1;
19 }
20
21 /* vsscanf */
22 #undef WIDE_SCANF
23 #undef CONSOLE
24 #define STRING 1
25 #include "scanf.h"
26
27 int sscanf(const char *str, const char *format, ...)
28 {
29 va_list valist;
30 int res;
31
32 va_start(valist, format);
33 res = vsscanf(str, format, valist);
34 va_end(valist);
35 return res;
36 }
37
38 /*EOF */