[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
fix of lib/vasnprintf.c
From: |
Bruno Haible |
Subject: |
fix of lib/vasnprintf.c |
Date: |
Wed, 6 Feb 2008 23:58:04 +0100 |
User-agent: |
KMail/1.5.4 |
Hi,
The padding code of lib/vasnprintf.c "forgets" to do zero-padding in the
Unicode-enabled *printf variants and on mingw. This fixes it.
2008-02-06 Bruno Haible <address@hidden>
Fix bug introduced on 2007-06-10.
* lib/vasnprintf.c (VASNPRINTF): Perform zero-padding also if
!NEED_PRINTF_FLAG_ZERO.
*** lib/vasnprintf.c.orig 2008-02-06 23:52:15.000000000 +0100
--- lib/vasnprintf.c 2008-02-06 23:52:03.000000000 +0100
***************
*** 4535,4549 ****
# endif
DCHAR_T *p = rp + count;
DCHAR_T *end = p + pad;
- # if NEED_PRINTF_FLAG_ZERO
DCHAR_T *pad_ptr;
! # if !DCHAR_IS_TCHAR
if (dp->conversion == 'c'
|| dp->conversion == 's')
/* No zero-padding for string directives. */
pad_ptr = NULL;
else
! # endif
{
pad_ptr = (*rp == '-' ? rp + 1 : rp);
/* No zero-padding of "inf" and "nan". */
--- 4535,4548 ----
# endif
DCHAR_T *p = rp + count;
DCHAR_T *end = p + pad;
DCHAR_T *pad_ptr;
! # if !DCHAR_IS_TCHAR
if (dp->conversion == 'c'
|| dp->conversion == 's')
/* No zero-padding for string directives. */
pad_ptr = NULL;
else
! # endif
{
pad_ptr = (*rp == '-' ? rp + 1 : rp);
/* No zero-padding of "inf" and "nan". */
***************
*** 4551,4557 ****
|| (*pad_ptr >= 'a' && *pad_ptr <= 'z'))
pad_ptr = NULL;
}
- # endif
/* The generated string now extends from rp to p,
with the zero padding insertion point being at
pad_ptr. */
--- 4550,4555 ----
***************
*** 4564,4570 ****
for (; pad > 0; pad--)
*p++ = ' ';
}
- # if NEED_PRINTF_FLAG_ZERO
else if ((flags & FLAG_ZERO) && pad_ptr != NULL)
{
/* Pad with zeroes. */
--- 4562,4567 ----
***************
*** 4575,4581 ****
for (; pad > 0; pad--)
*p++ = '0';
}
- # endif
else
{
/* Pad with spaces on the left. */
--- 4572,4577 ----
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- fix of lib/vasnprintf.c,
Bruno Haible <=