mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-06-07 10:01:14 -03:00
Fix and add tests for format_long_safe with negative numbers
This commit is contained in:
@@ -806,10 +806,9 @@ void format_long_safe(wchar_t buff[64], long val)
|
|||||||
size_t idx = 0;
|
size_t idx = 0;
|
||||||
bool negative = (val < 0);
|
bool negative = (val < 0);
|
||||||
|
|
||||||
while (val > 0)
|
while (val != 0)
|
||||||
{
|
{
|
||||||
long rem = val % 10;
|
long rem = val % 10;
|
||||||
/* Here we're assuming that wide character digits are contiguous - is that a correct assumption? */
|
|
||||||
buff[idx++] = L'0' + (wchar_t)(rem < 0 ? -rem : rem);
|
buff[idx++] = L'0' + (wchar_t)(rem < 0 ? -rem : rem);
|
||||||
val /= 10;
|
val /= 10;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -296,6 +296,12 @@ static void test_format(void)
|
|||||||
format_long_safe(buff1, j);
|
format_long_safe(buff1, j);
|
||||||
sprintf(buff2, "%d", j);
|
sprintf(buff2, "%d", j);
|
||||||
do_test(! strcmp(buff1, buff2));
|
do_test(! strcmp(buff1, buff2));
|
||||||
|
|
||||||
|
wchar_t wbuf1[128], wbuf2[128];
|
||||||
|
format_long_safe(wbuf1, j);
|
||||||
|
swprintf(wbuf2, 128, L"%d", j);
|
||||||
|
do_test(! wcscmp(wbuf1, wbuf2));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
long q = LONG_MIN;
|
long q = LONG_MIN;
|
||||||
@@ -303,7 +309,6 @@ static void test_format(void)
|
|||||||
format_long_safe(buff1, q);
|
format_long_safe(buff1, q);
|
||||||
sprintf(buff2, "%ld", q);
|
sprintf(buff2, "%ld", q);
|
||||||
do_test(! strcmp(buff1, buff2));
|
do_test(! strcmp(buff1, buff2));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user