diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2014-12-08 10:16:43 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2015-01-05 11:30:58 +0100 |
commit | 017da2273a1bfef0b2b24e50cc124bdc1845e0f3 (patch) | |
tree | 8aca84060e3e95fbbd0bbf40d127b36105236f54 /lib/vsprintf.c | |
parent | 8a7335f8b5117df144d26dddbd465a22f2273df8 (diff) | |
download | barebox-017da2273a1bfef0b2b24e50cc124bdc1845e0f3.tar.gz |
printf: use local isdigit/isalnum implementation
To be independent of the _ctype array. This makes it possible
to add printf support to the PBL without adding _ctype aswell.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'lib/vsprintf.c')
-rw-r--r-- | lib/vsprintf.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/vsprintf.c b/lib/vsprintf.c index b474202fc1..7f6b161a47 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -21,6 +21,8 @@ /* we use this so that we can do without the ctype library */ #define is_digit(c) ((c) >= '0' && (c) <= '9') +#define is_alpha(c) (((c) >= 'A' && (c) <= 'Z') || ((c) >= 'a' && (c) <= 'z')) +#define is_alnum(c) (is_digit(c) || is_alpha(c)) static int skip_atoi(const char **s) { @@ -351,7 +353,7 @@ int vsnprintf(char *buf, size_t size, const char *fmt, va_list args) /* get field width */ field_width = -1; - if (isdigit(*fmt)) + if (is_digit(*fmt)) field_width = skip_atoi(&fmt); else if (*fmt == '*') { ++fmt; @@ -367,7 +369,7 @@ int vsnprintf(char *buf, size_t size, const char *fmt, va_list args) precision = -1; if (*fmt == '.') { ++fmt; - if (isdigit(*fmt)) + if (is_digit(*fmt)) precision = skip_atoi(&fmt); else if (*fmt == '*') { ++fmt; @@ -422,7 +424,7 @@ int vsnprintf(char *buf, size_t size, const char *fmt, va_list args) va_arg(args, void *), field_width, precision, flags); /* Skip all alphanumeric pointer suffixes */ - while (isalnum(fmt[1])) + while (is_alnum(fmt[1])) fmt++; continue; |