* grub-core/kern/misc.c (grub_vsnprintf_real): Handle %% properly.
* tests/printf_unit_test.c (printf_test): Add %% tests. Reported by: Paulo Flabiano Smorigo.
This commit is contained in:
parent
af3b06be14
commit
148f100768
3 changed files with 26 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2013-10-15 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
|
* grub-core/kern/misc.c (grub_vsnprintf_real): Handle %% properly.
|
||||||
|
* tests/printf_unit_test.c (printf_test): Add %% tests.
|
||||||
|
Reported by: Paulo Flabiano Smorigo.
|
||||||
|
|
||||||
2013-10-15 Vladimir Serbinenko <phcoder@gmail.com>
|
2013-10-15 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
* grub-core/osdep/windows/hostdisk.c (fsync) [__MINGW32__]: Really
|
* grub-core/osdep/windows/hostdisk.c (fsync) [__MINGW32__]: Really
|
||||||
|
|
|
@ -910,6 +910,12 @@ grub_vsnprintf_real (char *str, grub_size_t max_len, const char *fmt0, va_list a
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (c == '%')
|
||||||
|
{
|
||||||
|
write_char (c);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (curn >= count_args)
|
if (curn >= count_args)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
|
@ -21,13 +21,26 @@
|
||||||
#include <grub/test.h>
|
#include <grub/test.h>
|
||||||
#include <grub/misc.h>
|
#include <grub/misc.h>
|
||||||
|
|
||||||
#define MSG "printf test failed"
|
#define MSG "printf test failed: %s, %s", real, expected
|
||||||
|
|
||||||
static void
|
static void
|
||||||
printf_test (void)
|
printf_test (void)
|
||||||
{
|
{
|
||||||
char real[512];
|
char real[512];
|
||||||
char expected[512];
|
char expected[512];
|
||||||
|
|
||||||
|
grub_snprintf (real, sizeof (real), "%d%%", 10);
|
||||||
|
snprintf (expected, sizeof (expected), "%d%%", 10);
|
||||||
|
grub_test_assert (strcmp (real, expected) == 0, MSG);
|
||||||
|
|
||||||
|
grub_snprintf (real, sizeof (real), "%d %%", 10);
|
||||||
|
snprintf (expected, sizeof (expected), "%d %%", 10);
|
||||||
|
grub_test_assert (strcmp (real, expected) == 0, MSG);
|
||||||
|
|
||||||
|
grub_snprintf (real, sizeof (real), "%%");
|
||||||
|
snprintf (expected, sizeof (expected), "%%");
|
||||||
|
grub_test_assert (strcmp (real, expected) == 0, MSG);
|
||||||
|
|
||||||
grub_snprintf (real, sizeof (real), "%d %d %d", 1, 2, 3);
|
grub_snprintf (real, sizeof (real), "%d %d %d", 1, 2, 3);
|
||||||
snprintf (expected, sizeof (expected), "%d %d %d", 1, 2, 3);
|
snprintf (expected, sizeof (expected), "%d %d %d", 1, 2, 3);
|
||||||
grub_test_assert (strcmp (real, expected) == 0, MSG);
|
grub_test_assert (strcmp (real, expected) == 0, MSG);
|
||||||
|
|
Loading…
Reference in a new issue