From: Eric Blake Date: Wed, 28 Jun 2006 13:11:03 +0000 (+0000) Subject: * mbchar.h (wcwidth): Include wcwidth.h. X-Git-Tag: cvs-readonly~2309 X-Git-Url: http://erislabs.net/gitweb/?a=commitdiff_plain;h=72334d04f6b9cf71353d114686895dd1d042a973;p=gnulib.git * mbchar.h (wcwidth): Include wcwidth.h. * mbswidth.c (wcwidth): Move from here... * wcwidth.h: ...to this new file. --- diff --git a/lib/ChangeLog b/lib/ChangeLog index 94bf678f8..5f0a9d7f1 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,9 @@ +2006-06-28 Eric Blake + + * mbchar.h (wcwidth): Include wcwidth.h. + * mbswidth.c (wcwidth): Move from here... + * wcwidth.h: ...to this new file. + 2006-06-28 Simon Josefsson * getaddrinfo.c: Try to load ws2_32.dll on Windows, to find the @@ -122,7 +128,7 @@ reported by Andreas Schwab. 2006-05-30 Ralf Wildenhues - Bruno Haible + Bruno Haible * strndup.c (strndup) [!_LIBC]: Don't undefine macro definition. @@ -478,7 +484,7 @@ (re_acquire_state_context): Likewise. 2006-03-29 Mark D. Baushke - Bruno Haible + Bruno Haible * stdint_.h: On OpenBSD, don't redefine types already included in and . diff --git a/lib/mbchar.h b/lib/mbchar.h index 4472aa020..738efd948 100644 --- a/lib/mbchar.h +++ b/lib/mbchar.h @@ -1,5 +1,5 @@ /* Multibyte character data type. - Copyright (C) 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 2001, 2005-2006 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 @@ -158,6 +158,8 @@ #include +#include "wcwidth.h" + #define MBCHAR_BUF_SIZE 24 struct mbchar diff --git a/lib/mbswidth.c b/lib/mbswidth.c index c9e78d650..754d6df41 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-2005 Free Software Foundation, Inc. + Copyright (C) 2000-2006 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 @@ -33,23 +33,9 @@ #include /* Get mbstate_t, mbrtowc(), mbsinit(), wcwidth(). */ -#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 "wcwidth.h" -/* Get iswprint(), iswcntrl(). */ -#if HAVE_WCTYPE_H -# include -#endif -#if !defined iswprint && !HAVE_ISWPRINT -# define iswprint(wc) 1 -#endif +/* Get iswcntrl(). */ #if !defined iswcntrl && !HAVE_ISWCNTRL # define iswcntrl(wc) 0 #endif @@ -60,21 +46,6 @@ # endif #endif -#ifndef HAVE_DECL_WCWIDTH -"this configure-time declaration test was not run" -#endif -#if !HAVE_DECL_WCWIDTH -int wcwidth (); -#endif - -#ifndef wcwidth -# if !HAVE_WCWIDTH -/* wcwidth doesn't exist, so assume all printable characters have - width 1. */ -# define wcwidth(wc) ((wc) == 0 ? 0 : iswprint (wc) ? 1 : -1) -# endif -#endif - /* Get ISPRINT. */ #if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) # define IN_CTYPE_DOMAIN(c) 1 diff --git a/lib/wcwidth.h b/lib/wcwidth.h new file mode 100644 index 000000000..80c0d9cda --- /dev/null +++ b/lib/wcwidth.h @@ -0,0 +1,52 @@ +/* Determine the number of screen columns needed for a character. + Copyright (C) 2006 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 + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#ifndef _gl_WCWIDTH_H +#define _gl_WCWIDTH_H + +/* Get wcwidth if available, along with wchar_t. */ +#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 + +/* Get iswprint. */ +#if HAVE_WCTYPE_H +# include +#endif +#if !defined iswprint && !HAVE_ISWPRINT +# define iswprint(wc) 1 +#endif + +#if !defined wcwidth && !HAVE_WCWIDTH + +/* wcwidth doesn't exist, so assume all printable characters have + width 1. */ +static inline int +wcwidth (wchar_t wc) +{ + return wc == 0 ? 0 : iswprint (wc) ? 1 : -1; +} + +#endif + +#endif /* _gl_WCWIDTH_H */