diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2016-07-26 11:43:41 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2016-07-26 16:57:10 +0300 |
commit | 010d436f9743a1f023fb90d51408322096456387 (patch) | |
tree | 4b673b48ce034538dd76a31c3f88f080a47af6a7 /src/debug.c | |
parent | 7fb0d1cbbf7842f2632b7dca0451d6f3918dd7ab (diff) | |
download | gdbm-010d436f9743a1f023fb90d51408322096456387.tar.gz gdbm-010d436f9743a1f023fb90d51408322096456387.tar.bz2 |
Minor changes
* src/bucket.c (_gdbm_read_bucket_at): Remove unused variable.
* src/debug.c: Include ctype.h
(datbuf_format): Don't use sprintf; Precede each output line
with data offset.
Diffstat (limited to 'src/debug.c')
-rw-r--r-- | src/debug.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/debug.c b/src/debug.c index 5820d7a..d18616f 100644 --- a/src/debug.c +++ b/src/debug.c @@ -16,6 +16,7 @@ #include "autoconf.h" #include "gdbmdefs.h" +#include <ctype.h> gdbm_debug_printer_t gdbm_debug_printer; int gdbm_debug_flags; @@ -74,6 +75,7 @@ datbuf_format (char vbuf[DATBUFSIZE], const char *buf, size_t size) char *q = vbuf + 51; int i; size_t j = 0; + static char hexchar[] = "0123456789ABCDEF"; for (i = 0; i < 16; i++) { @@ -83,8 +85,10 @@ datbuf_format (char vbuf[DATBUFSIZE], const char *buf, size_t size) c = *(const unsigned char*)buf++; j++; - sprintf (p, "%02X ", c); - p += 3; + *p++ = hexchar[c >> 4]; + *p++ = hexchar[c & 0xf]; + *p++ = ' '; + *q++ = isprint (c) ? c : '.'; if (i == 7) { @@ -111,6 +115,7 @@ gdbm_debug_datum (datum dat, char const *pfx) { char const *buf = dat.dptr; size_t size = dat.dsize; + unsigned off; char vbuf[DATBUFSIZE]; if (!buf) @@ -120,12 +125,14 @@ gdbm_debug_datum (datum dat, char const *pfx) } gdbm_debug_printer ("size=%d\n", size); + off = 0; while (size) { size_t rd = datbuf_format (vbuf, buf, size); - gdbm_debug_printer ("%s%s\n", pfx, vbuf); + gdbm_debug_printer ("%s%04x: %s\n", pfx, off, vbuf); size -= rd; buf += rd; + off += rd; } } |