From ad1c0f578e0f441d5fa44bb5e2decc38e1ad50de Mon Sep 17 00:00:00 2001 From: John Reiser Date: Thu, 23 Aug 2012 07:31:30 -0700 Subject: [PATCH] fix DEBUG decimal() of negative number --- src/stub/src/amd64-darwin.macho-main.c | 2 +- src/stub/src/i386-bsd.elf-main.c | 2 +- src/stub/src/i386-linux.elf-main.c | 4 ++-- src/stub/src/i386-openbsd.elf-main.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/stub/src/amd64-darwin.macho-main.c b/src/stub/src/amd64-darwin.macho-main.c index 0050229a..edb9edd1 100644 --- a/src/stub/src/amd64-darwin.macho-main.c +++ b/src/stub/src/amd64-darwin.macho-main.c @@ -116,7 +116,7 @@ decimal(int x, char *ptr, int n) { if (x < 0) { x = -x; - *ptr++ = '-'; ++n; + *ptr = '-'; ++n; } return unsimal(x, ptr, n); } diff --git a/src/stub/src/i386-bsd.elf-main.c b/src/stub/src/i386-bsd.elf-main.c index 638036d5..86d09cf9 100644 --- a/src/stub/src/i386-bsd.elf-main.c +++ b/src/stub/src/i386-bsd.elf-main.c @@ -61,8 +61,8 @@ static int decimal(int x, char *ptr, int n) { if (x < 0) { - *ptr++ = '-'; ++n; x = -x; + *ptr = '-'; ++n; } return unsimal(x, ptr, n); } diff --git a/src/stub/src/i386-linux.elf-main.c b/src/stub/src/i386-linux.elf-main.c index 55be2a0a..0f6ac410 100644 --- a/src/stub/src/i386-linux.elf-main.c +++ b/src/stub/src/i386-linux.elf-main.c @@ -111,8 +111,8 @@ unsimal(unsigned x, char *ptr, int n) { if (10<=x) { unsigned const q = div10(x); - n = unsimal(q, ptr, n); x -= 10 * q; + n = unsimal(q, ptr, n); } ptr[n] = '0' + x; return 1+ n; @@ -122,8 +122,8 @@ static int decimal(int x, char *ptr, int n) { if (x < 0) { - *ptr++ = '-'; ++n; x = -x; + *ptr = '-'; ++n; } return unsimal(x, ptr, n); } diff --git a/src/stub/src/i386-openbsd.elf-main.c b/src/stub/src/i386-openbsd.elf-main.c index a7404a6a..49f12624 100644 --- a/src/stub/src/i386-openbsd.elf-main.c +++ b/src/stub/src/i386-openbsd.elf-main.c @@ -61,8 +61,8 @@ static int decimal(int x, char *ptr, int n) { if (x < 0) { - *ptr++ = '-'; ++n; x = -x; + *ptr = '-'; ++n; } return unsimal(x, ptr, n); }