X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fmbswidth.c;h=0bc1a682c11a21c543dad5b2dc70fda41d0e4a2a;hb=2881adf0537d8691ba819514c7dc396d8b66eb5e;hp=ef8398a78674063d5c8b992c26287e07ca36e9b8;hpb=d0bcee4e6a778c34a4d3e4c922789219c16bfe4b;p=gnulib.git diff --git a/lib/mbswidth.c b/lib/mbswidth.c index ef8398a78..0bc1a682c 100644 --- a/lib/mbswidth.c +++ b/lib/mbswidth.c @@ -1,5 +1,5 @@ /* Determine the number of screen columns needed for a string. - Copyright (C) 2000-2006 Free Software Foundation, Inc. + Copyright (C) 2000-2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,9 +17,7 @@ /* Written by Bruno Haible . */ -#ifdef HAVE_CONFIG_H -# include -#endif +#include /* Specification. */ #include "mbswidth.h" @@ -33,26 +31,13 @@ #include /* Get mbstate_t, mbrtowc(), mbsinit(). */ -#if HAVE_WCHAR_H -/* Tru64 with Desktop Toolkit C has a bug: must be included before - . - BSD/OS 4.1 has a bug: and must be included before - . */ -# include -# include -# include -#endif +#include /* Get wcwidth(). */ #include "wcwidth.h" /* Get iswcntrl(). */ -#if HAVE_WCTYPE_H -# include -#endif -#if !defined iswcntrl && !HAVE_ISWCNTRL -# define iswcntrl(wc) 0 -#endif +#include #ifndef mbsinit # if !HAVE_MBSINIT @@ -60,18 +45,6 @@ # endif #endif -/* Get ISPRINT. */ -#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) -# define IN_CTYPE_DOMAIN(c) 1 -#else -# define IN_CTYPE_DOMAIN(c) isascii(c) -#endif -/* Undefine to protect against the definition in wctype.h of Solaris 2.6. */ -#undef ISPRINT -#define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (c)) -#undef ISCNTRL -#define ISCNTRL(c) (IN_CTYPE_DOMAIN (c) && iscntrl (c)) - /* Returns the number of columns needed to represent the multibyte character string pointed to by STRING. If a non-printable character occurs, and MBSW_REJECT_UNPRINTABLE is specified, -1 is returned. @@ -195,10 +168,10 @@ mbsnwidth (const char *string, size_t nbytes, int flags) { unsigned char c = (unsigned char) *p++; - if (ISPRINT (c)) + if (isprint (c)) width++; else if (!(flags & MBSW_REJECT_UNPRINTABLE)) - width += (ISCNTRL (c) ? 0 : 1); + width += (iscntrl (c) ? 0 : 1); else return -1; }