Mercurial > hg > octave-kai > gnulib-hg
changeset 6877:8a1cdc7197a8
* mbchar.h (wcwidth): Include wcwidth.h.
* mbswidth.c (wcwidth): Move from here...
* wcwidth.h: ...to this new file.
author | Eric Blake <ebb9@byu.net> |
---|---|
date | Wed, 28 Jun 2006 13:11:03 +0000 |
parents | edba9bd2b197 |
children | 9ae5979172e8 |
files | lib/ChangeLog lib/mbchar.h lib/mbswidth.c lib/wcwidth.h |
diffstat | 4 files changed, 66 insertions(+), 35 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,9 @@ +2006-06-28 Eric Blake <ebb9@byu.net> + + * mbchar.h (wcwidth): Include wcwidth.h. + * mbswidth.c (wcwidth): Move from here... + * wcwidth.h: ...to this new file. + 2006-06-28 Simon Josefsson <jas@extundo.com> * 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 <Ralf.Wildenhues@gmx.de> - Bruno Haible <bruno@clisp.org> + Bruno Haible <bruno@clisp.org> * strndup.c (strndup) [!_LIBC]: Don't undefine macro definition. @@ -478,7 +484,7 @@ (re_acquire_state_context): Likewise. 2006-03-29 Mark D. Baushke <mdb@gnu.org> - Bruno Haible <bruno@clisp.org> + Bruno Haible <bruno@clisp.org> * stdint_.h: On OpenBSD, don't redefine types already included in <sys/types.h> and <inttypes.h>.
--- 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 <wctype.h> +#include "wcwidth.h" + #define MBCHAR_BUF_SIZE 24 struct mbchar
--- 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 <ctype.h> /* Get mbstate_t, mbrtowc(), mbsinit(), wcwidth(). */ -#if HAVE_WCHAR_H -/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before - <wchar.h>. - BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before - <wchar.h>. */ -# include <stdio.h> -# include <time.h> -# include <wchar.h> -#endif +#include "wcwidth.h" -/* Get iswprint(), iswcntrl(). */ -#if HAVE_WCTYPE_H -# include <wctype.h> -#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
new file mode 100644 --- /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: <stdio.h> must be included before + <wchar.h>. + BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before + <wchar.h>. */ +# include <stdio.h> +# include <time.h> +# include <wchar.h> +#endif + +/* Get iswprint. */ +#if HAVE_WCTYPE_H +# include <wctype.h> +#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 */