'val' is unsigned so condition 'val < 0' is always false
fix it by adding signed long variable.
Signed-off-by: Maks Naumov <maksqwe1@ukr.net>
int c, i, n;
int width, prec, fillch;
int base, len, neg, quoted;
int c, i, n;
int width, prec, fillch;
int base, len, neg, quoted;
unsigned long val = 0;
char *str, *f, *buf0;
unsigned char *p;
unsigned long val = 0;
char *str, *f, *buf0;
unsigned char *p;
c = *fmt++;
switch (c) {
case 'd':
c = *fmt++;
switch (c) {
case 'd':
- val = va_arg(args, long);
- if (val < 0) {
+ lval = va_arg(args, long);
+ if (lval < 0) {
+ val = -lval;
+ } else
+ val = lval;
base = 10;
break;
case 'u':
base = 10;
break;
case 'u':