[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-gnulib] Re: Tru64 UNIX patches for gnulib mbswidth.h
From: |
Albert Chin-A-Young |
Subject: |
[Bug-gnulib] Re: Tru64 UNIX patches for gnulib mbswidth.h |
Date: |
Wed, 17 Mar 2004 19:03:32 -0600 |
User-agent: |
Mutt/1.4i |
On Wed, Mar 17, 2004 at 03:51:23PM -0800, Paul Eggert wrote:
> Albert Chin-A-Young <address@hidden> writes:
>
> > Tru64 UNIX with the Desktop Toolkit compiler (the commercial C
> > compiler, needs <stdio> before <wchar.h>).
>
> Thanks. Also, I noticed that the quotearg.c source code says BSD/OS
> 4.1 requires that <stdio.h> and <time.h> must both be included before
> <wchar.h> on that platform. What a pain.
>
> How about this gnulib patch instead? It avoids the <wchar.h> porting
> mess, at least for mbswidth.h.
Doesn't work. HAVE_INCOMPATIBLE_WCHAR_H_MBSWIDTH gets defined on Tru64
UNIX so we get the same failure in lib/mbswidth.h. Were you expecting
HAVE_INCOMPATIBLE_WCHAR_H_MBSWIDTH not to get defined on Tru64 UNIX?
> Index: lib/ChangeLog
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/lib/ChangeLog,v
> retrieving revision 1.643
> diff -p -u -r1.643 ChangeLog
> --- lib/ChangeLog 15 Mar 2004 23:44:51 -0000 1.643
> +++ lib/ChangeLog 17 Mar 2004 23:50:09 -0000
> @@ -1,3 +1,10 @@
> +2004-03-17 Paul Eggert <address@hidden>
> +
> + * mbswidth.h: Include <wchar.h> only if
> + HAVE_INCOMPATIBLE_WCHAR_H_MBSWIDTH.
> + (mbswidth): Define to gnu_mbswidth
> + only if HAVE_INCOMPATIBLE_WCHAR_H_MBSWIDTH.
> +
> 2004-03-09 Paul Eggert <address@hidden>
>
> * argp-parse.c, getopt.c, getopt.h, getopt1.c:
> Index: lib/mbswidth.h
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/lib/mbswidth.h,v
> retrieving revision 1.10
> diff -p -u -r1.10 mbswidth.h
> --- lib/mbswidth.h 3 Mar 2003 17:24:09 -0000 1.10
> +++ lib/mbswidth.h 17 Mar 2004 23:50:09 -0000
> @@ -1,5 +1,5 @@
> /* Determine the number of screen columns needed for a string.
> - Copyright (C) 2000-2003 Free Software Foundation, Inc.
> + Copyright (C) 2000-2004 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
> @@ -18,10 +18,10 @@
> #include <stddef.h>
>
> /* Avoid a clash of our mbswidth() with a function of the same name defined
> - in UnixWare 7.1.1 <wchar.h>. We need this #include before the #define
> - below. */
> -#if HAVE_WCHAR_H
> + in UnixWare 7.1.1 <wchar.h>. */
> +#if HAVE_INCOMPATIBLE_WCHAR_H_MBSWIDTH
> # include <wchar.h>
> +# define mbswidth gnu_mbswidth
> #endif
>
>
> @@ -38,7 +38,6 @@
>
>
> /* Returns the number of screen columns needed for STRING. */
> -#define mbswidth gnu_mbswidth /* avoid clash with UnixWare 7.1.1 function */
> extern int mbswidth (const char *string, int flags);
>
> /* Returns the number of screen columns needed for the NBYTES bytes
> Index: m4/ChangeLog
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/m4/ChangeLog,v
> retrieving revision 1.531
> diff -p -u -r1.531 ChangeLog
> --- m4/ChangeLog 7 Mar 2004 23:51:10 -0000 1.531
> +++ m4/ChangeLog 17 Mar 2004 23:50:10 -0000
> @@ -1,3 +1,7 @@
> +2004-03-17 Paul Eggert <address@hidden>
> +
> + * mbswidth.m4 (gl_MBSWIDTH): Define HAVE_INCOMPATIBLE_WCHAR_H_MBSWIDTH.
> +
> 2004-03-07 Paul Eggert <address@hidden>
>
> * c-stack.m4 (gl_PREREQ_C_STACK): Renamed from jm_PREREQ_C_STACK.
> Index: m4/mbswidth.m4
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/m4/mbswidth.m4,v
> retrieving revision 1.10
> diff -p -u -r1.10 mbswidth.m4
> --- m4/mbswidth.m4 31 Dec 2002 13:43:06 -0000 1.10
> +++ m4/mbswidth.m4 17 Mar 2004 23:50:11 -0000
> @@ -1,14 +1,31 @@
> -#serial 9
> +#serial 10
>
> dnl autoconf tests required for use of mbswidth.c
> dnl From Bruno Haible.
>
> AC_DEFUN([gl_MBSWIDTH],
> [
> + AC_REQUIRE([AC_C_CONST])
> AC_CHECK_HEADERS_ONCE(wchar.h wctype.h)
> AC_CHECK_FUNCS_ONCE(isascii iswprint mbsinit)
> AC_CHECK_FUNCS(iswcntrl wcwidth)
> jm_FUNC_MBRTOWC
> +
> + AC_CACHE_CHECK([whether wchar.h declares an incompatible wcwidth],
> + ac_cv_have_incompatible_wchar_h_mbswidth,
> + [AC_TRY_COMPILE([
> +#if HAVE_WCHAR_H
> +# include <wchar.h>
> +#endif
> +int mbswidth (const char *, int);
> +],
> + [],
> + ac_cv_have_incompatible_wchar_h_mbswidth=no,
> + ac_cv_have_incompatible_wchar_h_mbswidth=yes)])
> + if test $ac_cv_have_incompatible_wchar_h_mbswidth = yes; then
> + AC_DEFINE(HAVE_INCOMPATIBLE_WCHAR_H_MBSWIDTH, 1,
> + [Define to 1 if <wchar.h> defines an mbswidth incompatible with ours.])
> + fi
>
> AC_CACHE_CHECK([whether wcwidth is declared], ac_cv_have_decl_wcwidth,
> [AC_TRY_COMPILE([
--
albert chin (address@hidden)