]> git.ipfire.org Git - thirdparty/bash.git/blobdiff - include/shmbutil.h
minor readline fixes for isearch, insert-char,quoted-insert, and do-lowercase-version...
[thirdparty/bash.git] / include / shmbutil.h
index 0f711eab73f28944d92bfe350ddf5c8ab79a1829..86e77ad977e93bd8c0ded927d2de2d353c47f980 100644 (file)
@@ -1,6 +1,6 @@
 /* shmbutil.h -- utility functions for multibyte characters. */
 
-/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2022 Free Software Foundation, Inc.
 
    This file is part of GNU Bash, the Bourne Again SHell.
 
 #if defined (HANDLE_MULTIBYTE)
 #include "shmbchar.h"
 
-extern size_t xwcsrtombs PARAMS((char *, const wchar_t **, size_t, mbstate_t *));
-extern size_t xmbsrtowcs PARAMS((wchar_t *, const char **, size_t, mbstate_t *));
-extern size_t xdupmbstowcs PARAMS((wchar_t **, char ***, const char *));
+extern size_t xwcsrtombs (char *, const wchar_t **, size_t, mbstate_t *);
+extern size_t xmbsrtowcs (wchar_t *, const char **, size_t, mbstate_t *);
+extern size_t xdupmbstowcs (wchar_t **, char ***, const char *);
 
-extern size_t mbstrlen PARAMS((const char *));
+extern size_t mbstrlen (const char *);
 
-extern char *xstrchr PARAMS((const char *, int));
+extern char *xstrchr (const char *, int);
 
 extern int locale_mb_cur_max;  /* XXX */
 extern int locale_utf8locale;  /* XXX */
@@ -55,6 +55,9 @@ extern int locale_utf8locale; /* XXX */
 #define UTF8_MBFIRSTCHAR(c)    (((c) & 0xc0) == 0xc0)
 #define UTF8_MBCHAR(c)         (((c) & 0xc0) == 0x80)
 
+/* Is an eight-bit quantity a valid character in the current locale? */
+#define VALID_SINGLEBYTE_CHAR(c)  (locale_utf8locale == 0 || ((c) & 0x80) == 0)
+
 #else /* !HANDLE_MULTIBYTE */
 
 #undef MB_LEN_MAX
@@ -83,6 +86,8 @@ extern int locale_utf8locale; /* XXX */
 #define UTF8_SINGLEBYTE(c)     (1)
 #define UTF8_MBFIRSTCHAR(c)    (0)
 
+#defined VALID_SINGLEBYTE_CHAR(c)  (1)
+
 #endif /* !HANDLE_MULTIBYTE */
 
 /* Declare and initialize a multibyte state.  Call must be terminated