about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/generic/printf_fphex.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 1709af54c8..2de263836d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2000-07-31  H.J. Lu  <hjl@gnu.org>
+
+	* sysdeps/generic/printf_fphex.c (__printf_fphex): Correctly
+	handle the wchar_t array.
+
 2000-07-31  Ulrich Drepper  <drepper@redhat.com>
 
 	* iconvdata/gb18030.c: Don't map to and from positions in ISO
diff --git a/sysdeps/generic/printf_fphex.c b/sysdeps/generic/printf_fphex.c
index 2b10fa62ac..d4cba3f4e7 100644
--- a/sysdeps/generic/printf_fphex.c
+++ b/sysdeps/generic/printf_fphex.c
@@ -284,21 +284,21 @@ __printf_fphex (FILE *fp,
 
       if (sizeof (unsigned long int) > 6)
 	{
-	  wnumstr = _itowa_word (num, wnumbuf + sizeof wnumbuf, 16,
+	  wnumstr = _itowa_word (num, wnumbuf + (sizeof wnumbuf) / sizeof (wchar_t), 16,
 				 info->spec == 'A');
 	  numstr = _itoa_word (num, numbuf + sizeof numbuf, 16,
 			       info->spec == 'A');
 	}
       else
 	{
-	  wnumstr = _itowa (num, wnumbuf + sizeof wnumbuf, 16,
+	  wnumstr = _itowa (num, wnumbuf + sizeof wnumbuf / sizeof (wchar_t), 16,
 			    info->spec == 'A');
 	  numstr = _itoa (num, numbuf + sizeof numbuf, 16,
 			  info->spec == 'A');
 	}
 
       /* Fill with zeroes.  */
-      while (wnumstr > wnumbuf + (sizeof wnumbuf - 52 / 4))
+      while (wnumstr > wnumbuf + (sizeof wnumbuf - 52) / sizeof (wchar_t))
 	{
 	  *--wnumstr = L'0';
 	  *--numstr = '0';