2003-12-11 Michael Chastain <mec.gnu@mindspring.com>
authorMichael Chastain <mec@google.com>
Wed, 17 Dec 2003 20:13:54 +0000 (20:13 +0000)
committerMichael Chastain <mec@google.com>
Wed, 17 Dec 2003 20:13:54 +0000 (20:13 +0000)
* rlmbutil.h: Require HAVE_MBSTATE_T for HANDLE_MULTIBYTE.
Revert requirement of HAVE_MBRTOWC.  Delete macro definitions
that attempted to fake mbstate_t if HAVE_MBSRTOCWS is defined
and HAVE_MBSTATE_T is not defined.

readline/ChangeLog.gdb
readline/rlmbutil.h

index affba35f7c1e09d883cef8ace9307610e58f7b87..adc733ca0d379f64a5de55c7d644c1a98ef9de89 100644 (file)
@@ -1,3 +1,10 @@
+2003-12-11  Michael Chastain  <mec.gnu@mindspring.com>
+
+       * rlmbutil.h: Require HAVE_MBSTATE_T for HANDLE_MULTIBYTE.
+       Revert requirement of HAVE_MBRTOWC.  Delete macro definitions
+       that attempted to fake mbstate_t if HAVE_MBSRTOCWS is defined
+       and HAVE_MBSTATE_T is not defined.
+
 2003-06-14  H.J. Lu <hongjiu.lu@intel.com>
  
        * support/config.guess: Update to 2003-06-12 version.
index 9b8464a07f50257b6d699fedd57073abdcb8dc3e..dab954fad902e95934d0e3d28c30fe15e08b04f5 100644 (file)
@@ -1,6 +1,6 @@
 /* rlmbutil.h -- utility functions for multibyte characters. */
 
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2003 Free Software Foundation, Inc.
 
    This file is part of the GNU Readline Library, a library for
    reading lines of text with interactive input and history editing.
 /************************************************/
 
 /* For platforms which support the ISO C amendement 1 functionality we
-   support user defined character classes.  */
+   support user defined character classes.
+
+   Some platforms have the multibyte functions such as mbsrtowcs but
+   are lacking the multitype type mbstate_t.  BeOS (unknown version)
+   and HP/UX 11.23 without _XOPEN_SOURCE=500 are like this.
+
+   We really need mbstate_t type to operate properly.  For example, see
+   compute_lcd_of_matches, where two mbstate_t's are active at the same
+   time.  So we require both the functions and the mbstate_t type in
+   order to enable multibyte support.  */
+
    /* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>.  */
 #if defined (HAVE_WCTYPE_H) && defined (HAVE_WCHAR_H)
 #  include <wchar.h>
 #  include <wctype.h>
-#  if defined (HAVE_MBRTOWC) && defined (HAVE_MBSRTOWCS)
+#  if defined (HAVE_MBSTATE_T) && defined (HAVE_MBSRTOWCS)
      /* system is supposed to support XPG5 */
 #    define HANDLE_MULTIBYTE      1
 #  endif
 #endif
 
-/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t.  */
-#if HANDLE_MULTIBYTE && !defined (HAVE_MBSTATE_T)
-#  define wcsrtombs(dest, src, len, ps) (wcsrtombs) (dest, src, len, 0)
-#  define mbsrtowcs(dest, src, len, ps) (mbsrtowcs) (dest, src, len, 0)
-#  define wcrtomb(s, wc, ps) (wcrtomb) (s, wc, 0)
-#  define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
-#  define mbrlen(s, n, ps) (mbrlen) (s, n, 0)
-#  define mbstate_t int
-#endif
-
 /* Make sure MB_LEN_MAX is at least 16 on systems that claim to be able to
    handle multibyte chars (some systems define MB_LEN_MAX as 1) */
 #ifdef HANDLE_MULTIBYTE