From 5c1abf12b57bdad3902b74bb096bfd83f0585e29 Mon Sep 17 00:00:00 2001 From: leitner Date: Mon, 23 Apr 2001 13:08:25 +0000 Subject: [PATCH] hex conversion bug fix. --- fmt/fmt_xlong.c | 2 +- socket/fmt_ip6_flat.c | 9 ++------- t.c | 4 +++- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/fmt/fmt_xlong.c b/fmt/fmt_xlong.c index 77f2cda..2f71c3a 100644 --- a/fmt/fmt_xlong.c +++ b/fmt/fmt_xlong.c @@ -1,7 +1,7 @@ #include "fmt.h" static inline char tohex(char c) { - return c>10?c-10+'a':c+'0'; + return c>=10?c-10+'a':c+'0'; } unsigned int fmt_xlong(char *dest,unsigned long i) { diff --git a/socket/fmt_ip6_flat.c b/socket/fmt_ip6_flat.c index 7473666..d2a8e9b 100644 --- a/socket/fmt_ip6_flat.c +++ b/socket/fmt_ip6_flat.c @@ -1,12 +1,7 @@ #include "ip6.h" -static char tohex(char num) { - if (num<10) - return num+'0'; - else if (num<16) - return num-10+'a'; - else - return -1; +static inline char tohex(char c) { + return c>=10?c-10+'a':c+'0'; } unsigned int fmt_ip6_flat(char *s,const char ip[16]) diff --git a/t.c b/t.c index 0a38504..ce93d90 100644 --- a/t.c +++ b/t.c @@ -20,11 +20,13 @@ int main(int argc,char* argv[]) { buffer_flush(buffer_1small); #endif + buf[fmt_xlong(buf,0)]=0; + puts(buf); rdtscl(a); c=str_len(buf); rdtscl(b); /*byte_zero_djb(buf,j); */ - printf("\n%lu %d\n",b-a,c); +// printf("\n%lu %d\n",b-a,c); #if 0 buffer_puts(buffer_1small,"hello, world\n"); buffer_flush(buffer_1small);