From e8991abadb69f6edcf94cca316bcf48d77b1cd69 Mon Sep 17 00:00:00 2001 From: Ruben Ayrapetyan Date: Tue, 16 Sep 2014 20:53:02 +0400 Subject: [PATCH] Fixing __printf for format strings with '+' specifier like '%+5d'. --- src/libruntime/jerry-libc-printf.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/libruntime/jerry-libc-printf.c b/src/libruntime/jerry-libc-printf.c index cd6107bb1..668aa0a50 100644 --- a/src/libruntime/jerry-libc-printf.c +++ b/src/libruntime/jerry-libc-printf.c @@ -274,22 +274,17 @@ libc_printf_write_d_i (_FILE *stream, /**< stream pointer */ } char str_buffer[ 32 ]; - const char *string_p = libc_printf_uint_to_string (value, - str_buffer, - sizeof (str_buffer), - "0123456789", - 10); + char *string_p = libc_printf_uint_to_string (value, + str_buffer, + sizeof (str_buffer), + "0123456789", + 10); if (!sign || (flags & LIBC_PRINTF_ARG_FLAG_PRINT_SIGN)) { - /* printing sign */ - - libc_printf_putchar (stream, sign ? '+' : '-'); - if (width > 0) - { - width--; - } + JERRY_ASSERT (string_p > str_buffer); + *--string_p = (sign ? '+' : '-'); } else if (flags & LIBC_PRINTF_ARG_FLAG_SPACE) {