summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/smallprint.c
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2005-01-31 20:55:33 +0000
committerChristopher Faylor <me@cgf.cx>2005-01-31 20:55:33 +0000
commit4faae8d6e94dd15c94a515b85303c8b3086b8d97 (patch)
tree021a7231446ec194007f7ee20ea77366076f35c9 /winsup/cygwin/smallprint.c
parentc824aa4330e42ba7a68ffe1c20601203072307dd (diff)
downloadcygnal-4faae8d6e94dd15c94a515b85303c8b3086b8d97.tar.gz
cygnal-4faae8d6e94dd15c94a515b85303c8b3086b8d97.tar.bz2
cygnal-4faae8d6e94dd15c94a515b85303c8b3086b8d97.zip
* smallprint.c (rnarg): Use long rather than unsigned long so that we get
proper sign extension.
Diffstat (limited to 'winsup/cygwin/smallprint.c')
-rw-r--r--winsup/cygwin/smallprint.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/winsup/cygwin/smallprint.c b/winsup/cygwin/smallprint.c
index 43d0decd4..6ad95c6e4 100644
--- a/winsup/cygwin/smallprint.c
+++ b/winsup/cygwin/smallprint.c
@@ -21,7 +21,7 @@ int __small_vsprintf (char *dst, const char *fmt, va_list ap);
#define LLMASK (0xffffffffffffffffULL)
#define LMASK (0xffffffff)
-#define rnarg(dst, base, dosign, len, pad) __rn ((dst), (base), (dosign), va_arg (ap, unsigned), len, pad, LMASK)
+#define rnarg(dst, base, dosign, len, pad) __rn ((dst), (base), (dosign), va_arg (ap, long), len, pad, LMASK)
#define rnargLL(dst, base, dosign, len, pad) __rn ((dst), (base), (dosign), va_arg (ap, unsigned long long), len, pad, LLMASK)
static char * __rn (char *, int, int, long long, int, int,
@@ -59,13 +59,11 @@ __rn (char *dst, int base, int dosign, long long val, int len, int pad, unsigned
}
while (uval);
- while (len -- > l)
+ while (len-- > l)
*dst++ = pad;
while (l > 0)
- {
- *dst++ = res[--l];
- }
+ *dst++ = res[--l];
return dst;
}