21 #include "simpletext.h" 23 static const char* trim_ct(
const char* str);
24 static const char* _scanf_gets_ct(
const char *str,
char* dst,
unsigned width,
int gettingChars);
25 int _doscanf_ct(
const char* str,
const char *fmt, va_list args);
27 static const char* trim_ct(
const char* str)
30 while (!isprint(*str))
36 static const char* _scanf_gets_ct(
const char *str,
char* dst,
unsigned width,
int gettingChars)
39 while (width-- && *str && (gettingChars || isprint(*str)))
48 int _doscanf_ct(
const char* str,
const char *fmt, va_list args)
53 while (str && *str && (fch = *fmt++))
57 int isWhiteSpaceOK = 0;
64 else if (*str++ != fch)
72 fmt = _scanf_getl(fmt, &width, 10, 11, 0);
75 if (fch !=
'c' && fch !=
'%')
91 if (width == ULONG_MAX)
95 char* arg = va_arg(args,
char*);
96 if ((str = _scanf_gets_ct(str, arg, width, isWhiteSpaceOK)))
101 int* arg = va_arg(args,
int*);
102 if ((str = _scanf_getl(str, arg, 2, width, (fch ==
'b'))))
111 int* arg = va_arg(args,
int*);
112 if ((str = _scanf_getl(str, arg, base, width, (fch ==
'd'))))
120 float* arg = va_arg(args,
float*);
121 if ((str = _scanf_getf(str, arg)))
187 #include "simpletext.h" 189 int sscan_ct(
const char *str,
const char *fmt, ...)
194 int blocks = _doscanf_ct(str, fmt, args);