aboutsummaryrefslogtreecommitdiff
path: root/readline/rlmbutil.h
diff options
context:
space:
mode:
authorMichael Chastain <mec@google.com>2003-12-17 20:13:54 +0000
committerMichael Chastain <mec@google.com>2003-12-17 20:13:54 +0000
commitf4daae620b393295187c8b710a00ade946ac8964 (patch)
tree873a8cfd64b6cd018de6824660e27df6b29fd45f /readline/rlmbutil.h
parentb145f546d404da31c1ae51e7462ee8ec75e61929 (diff)
downloadbinutils-f4daae620b393295187c8b710a00ade946ac8964.zip
binutils-f4daae620b393295187c8b710a00ade946ac8964.tar.gz
binutils-f4daae620b393295187c8b710a00ade946ac8964.tar.bz2
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.
Diffstat (limited to 'readline/rlmbutil.h')
-rw-r--r--readline/rlmbutil.h26
1 files changed, 13 insertions, 13 deletions
diff --git a/readline/rlmbutil.h b/readline/rlmbutil.h
index 9b8464a..dab954f 100644
--- a/readline/rlmbutil.h
+++ b/readline/rlmbutil.h
@@ -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.
@@ -30,27 +30,27 @@
/************************************************/
/* 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