From 3cce8a5496452285e1828984ad3945417205cfc3 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Fri, 21 Oct 2011 18:51:33 +0000 Subject: Move simple_itoa to vsprintf This function is generally useful and shouldn't hide away in hush. It has been moved as is. Signed-off-by: Simon Glass --- common/hush.c | 15 --------------- include/common.h | 1 + lib/vsprintf.c | 16 ++++++++++++++++ 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/common/hush.c b/common/hush.c index 940889b89..2495a6d59 100644 --- a/common/hush.c +++ b/common/hush.c @@ -17,7 +17,6 @@ * Erik W. Troan, which they placed in the public domain. I don't know * how much of the Johnson/Troan code has survived the repeated rewrites. * Other credits: - * simple_itoa() was lifted from boa-0.93.15 * b_addchr() derived from similar w_addchar function in glibc-2.2 * setup_redirect(), redirect_opt_num(), and big chunks of main() * and many builtins derived from contributions by Erik Andersen @@ -922,20 +921,6 @@ static int b_addqchr(o_string *o, int ch, int quote) return b_addchr(o, ch); } -/* belongs in utility.c */ -char *simple_itoa(unsigned int i) -{ - /* 21 digits plus null terminator, good for 64-bit or smaller ints */ - static char local[22]; - char *p = &local[21]; - *p-- = '\0'; - do { - *p-- = '0' + i % 10; - i /= 10; - } while (i > 0); - return p + 1; -} - #ifndef __U_BOOT__ static int b_adduint(o_string *o, unsigned int i) { diff --git a/include/common.h b/include/common.h index 13575272b..8b719eac9 100644 --- a/include/common.h +++ b/include/common.h @@ -723,6 +723,7 @@ void panic(const char *fmt, ...) int sprintf(char * buf, const char *fmt, ...) __attribute__ ((format (__printf__, 2, 3))); int vsprintf(char *buf, const char *fmt, va_list args); +char *simple_itoa(ulong i); /* lib/strmhz.c */ char * strmhz(char *buf, unsigned long hz); diff --git a/lib/vsprintf.c b/lib/vsprintf.c index 79dead399..e497a8686 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -7,6 +7,8 @@ /* vsprintf.c -- Lars Wirzenius & Linus Torvalds. */ /* * Wirzenius wrote this portably, Torvalds fucked it up :-) + * + * from hush: simple_itoa() was lifted from boa-0.93.15 */ #include @@ -738,3 +740,17 @@ void __assert_fail(const char *assertion, const char *file, unsigned line, panic("%s:%u: %s: Assertion `%s' failed.", file, line, function, assertion); } + +char *simple_itoa(ulong i) +{ + /* 21 digits plus null terminator, good for 64-bit or smaller ints */ + static char local[22]; + char *p = &local[21]; + + *p-- = '\0'; + do { + *p-- = '0' + i % 10; + i /= 10; + } while (i > 0); + return p + 1; +} -- cgit v1.2.3