kernel32/tests: Simplify dumpmem function.
Nicolas Le Cam
niko.lecam at gmail.com
Sun Dec 20 20:44:14 CST 2009
I was originally trying to fix the following warning :
../../../../wine-git/dlls/kernel32/tests/file.c: In function ‘dumpmem’:
../../../../wine-git/dlls/kernel32/tests/file.c:730: warning: format
not a string literal and no format arguments
It ended up being simplified a lot.
--
Nicolas Le Cam
-------------- next part --------------
From b400d5fe9875a66a4899d6e6ce13491d0225ae10 Mon Sep 17 00:00:00 2001
From: Nicolas Le Cam <niko.lecam at gmail.com>
Date: Wed, 2 Dec 2009 02:00:20 +0100
Subject: kernel32/tests: Simplify dumpmem function.
---
dlls/kernel32/tests/file.c | 43 ++++++++++++++++---------------------------
1 files changed, 16 insertions(+), 27 deletions(-)
diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c
index 3cc9022..90fdee2 100644
--- a/dlls/kernel32/tests/file.c
+++ b/dlls/kernel32/tests/file.c
@@ -702,33 +702,22 @@ static void test_CopyFileW(void)
/*
* Debugging routine to dump a buffer in a hexdump-like fashion.
*/
-static void dumpmem(unsigned char* mem, int len) {
- int x,y;
- char buf[200];
- int ln=0;
-
- for (x=0; x<len; x+=16) {
- ln += sprintf(buf+ln, "%04x: ",x);
- for (y=0; y<16; y++) {
- if ((x+y)>len) {
- ln += sprintf(buf+ln, " ");
- } else {
- ln += sprintf(buf+ln, "%02hhx ",mem[x+y]);
- }
- }
- ln += sprintf(buf+ln, "- ");
- for (y=0; y<16; y++) {
- if ((x+y)<=len) {
- if (mem[x+y]<32 || mem[x+y]>127) {
- ln += sprintf(buf+ln, ".");
- } else {
- ln += sprintf(buf+ln, "%c",mem[x+y]);
- }
- }
- }
- sprintf(buf+ln, "\n");
- trace(buf);
- ln = 0;
+static void dumpmem(unsigned char *mem, int len)
+{
+ int x = 0;
+ char hex[49], *p;
+ char txt[17], *c;
+
+ while (x < len)
+ {
+ p = hex;
+ c = txt;
+ do {
+ p += sprintf(p, "%02hhx ", mem[x]);
+ *c++ = (mem[x] >= 32 && mem[x] <= 127) ? mem[x] : '.';
+ } while (++x % 16 && x < len);
+ *c = '\0';
+ trace("%04x: %-48s- %s\n", x, hex, txt);
}
}
--
1.6.3.3
More information about the wine-patches
mailing list