* wcsmbs/wcswidth.c (wcswidth): Don't forget to decrement counter n.
This commit is contained in:
Ulrich Drepper 1999-11-18 02:59:57 +00:00
parent 404127bca0
commit 35946fb706
5 changed files with 10 additions and 6 deletions

View File

@ -1,5 +1,7 @@
1999-11-17 Ulrich Drepper <drepper@cygnus.com>
* wcsmbs/wcswidth.c (wcswidth): Don't forget to decrement counter n.
* sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Remove greg_t,
gregset_t, fpregset_t, and NGREG definitions.

View File

@ -1,5 +1,8 @@
1999-11-17 Ulrich Drepper <drepper@cygnus.com>
* charmaps/ISO-8859-1: Don't define values for non-printable
characters.
* charmaps/ISO-8859-1: Add width information.
1999-11-12 Ulrich Drepper <drepper@cygnus.com>

View File

@ -355,8 +355,6 @@ CHARMAP
END CHARMAP
WIDTH
<NU>...<US> 0
<SP>...<'?> 1
<DT>...<AC> 0
<NS>...<y:> 1
END WIDTH

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
@ -26,7 +26,7 @@ wcswidth (const wchar_t *s, size_t n)
{
int result = 0;
while (n > 0 && *s != L'\0')
while (n-- > 0 && *s != L'\0')
{
int now = internal_wcwidth (*s);
if (now == -1)

View File

@ -1,5 +1,5 @@
/* Internal header containing implementation of wcwidth() function.
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
@ -19,6 +19,7 @@
Boston, MA 02111-1307, USA. */
#include <wchar.h>
#include <wctype.h>
#include "../wctype/cname-lookup.h"
/* Array containing width information. */
@ -33,7 +34,7 @@ internal_wcwidth (wint_t ch)
return 0;
idx = cname_lookup (ch);
if (idx == ~((size_t) 0))
if (idx == ~((size_t) 0) || (__ctype32_b[idx] & _ISwprint) == 0)
return -1;
return (int) __ctype_width[idx];