changeset 12186:f3ad15bb66b0

Document the alternative APIs for character classification.
author Bruno Haible <bruno@clisp.org>
date Sun, 18 Oct 2009 21:49:38 +0200
parents b66b97142d27
children 3f2f33c1c489
files ChangeLog doc/posix-functions/isalnum.texi doc/posix-functions/isalpha.texi doc/posix-functions/isascii.texi doc/posix-functions/isblank.texi doc/posix-functions/iscntrl.texi doc/posix-functions/isdigit.texi doc/posix-functions/isgraph.texi doc/posix-functions/islower.texi doc/posix-functions/isprint.texi doc/posix-functions/ispunct.texi doc/posix-functions/isspace.texi doc/posix-functions/isupper.texi doc/posix-functions/isxdigit.texi
diffstat 14 files changed, 332 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2009-10-18  Reuben Thomas  <rrt@sc3d.org>
+            Bruno Haible  <bruno@clisp.org>
+
+	* doc/posix-functions/isascii.texi: Document the 2 alternative APIs.
+	* doc/posix-functions/isalnum.texi: Document the 4 alternative APIs.
+	* doc/posix-functions/isalpha.texi: Likewise.
+	* doc/posix-functions/isblank.texi: Likewise.
+	* doc/posix-functions/iscntrl.texi: Likewise.
+	* doc/posix-functions/isdigit.texi: Likewise.
+	* doc/posix-functions/isgraph.texi: Likewise.
+	* doc/posix-functions/islower.texi: Likewise.
+	* doc/posix-functions/isprint.texi: Likewise.
+	* doc/posix-functions/ispunct.texi: Likewise.
+	* doc/posix-functions/isspace.texi: Likewise.
+	* doc/posix-functions/isupper.texi: Likewise.
+	* doc/posix-functions/isxdigit.texi: Likewise.
+
 2009-10-18  Bruno Haible  <bruno@clisp.org>
 
 	Tests for module 'isblank'.
--- a/doc/posix-functions/isalnum.texi
+++ b/doc/posix-functions/isalnum.texi
@@ -13,3 +13,28 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @end itemize
+
+Note: This function's behaviour depends on the locale, but does not support
+the multibyte characters that occur in strings in locales with
+@code{MB_CUR_MAX > 1} (this includes all the common UTF-8 locales).
+There are four alternative APIs:
+
+@table @code
+@item c_isalnum
+This function operates in a locale independent way and returns true only for
+ASCII characters.  It is provided by the Gnulib module @samp{c-ctype}.
+
+@item iswalnum
+This function operates in a locale dependent way, on wide characters.  In
+order to use it, you first have to convert from multibyte to wide characters,
+using the @code{mbrtowc} function.  It is provided by the Gnulib module
+@samp{wctype}.
+
+@item mb_isalnum
+This function operates in a locale dependent way, on multibyte characters.
+It is provided by the Gnulib module @samp{mbchar}.
+
+@item uc_is_alnum
+This function operates in a locale independent way, on Unicode characters.
+It is provided by the Gnulib module @samp{unictype/ctype-alnum}.
+@end table
--- a/doc/posix-functions/isalpha.texi
+++ b/doc/posix-functions/isalpha.texi
@@ -13,3 +13,28 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @end itemize
+
+Note: This function's behaviour depends on the locale, but does not support
+the multibyte characters that occur in strings in locales with
+@code{MB_CUR_MAX > 1} (this includes all the common UTF-8 locales).
+There are four alternative APIs:
+
+@table @code
+@item c_isalpha
+This function operates in a locale independent way and returns true only for
+ASCII characters.  It is provided by the Gnulib module @samp{c-ctype}.
+
+@item iswalpha
+This function operates in a locale dependent way, on wide characters.  In
+order to use it, you first have to convert from multibyte to wide characters,
+using the @code{mbrtowc} function.  It is provided by the Gnulib module
+@samp{wctype}.
+
+@item mb_isalpha
+This function operates in a locale dependent way, on multibyte characters.
+It is provided by the Gnulib module @samp{mbchar}.
+
+@item uc_is_alpha
+This function operates in a locale independent way, on Unicode characters.
+It is provided by the Gnulib module @samp{unictype/ctype-alpha}.
+@end table
--- a/doc/posix-functions/isascii.texi
+++ b/doc/posix-functions/isascii.texi
@@ -13,3 +13,18 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @end itemize
+
+Note: This function's behaviour depends on the locale, but requires special
+handling for the multibyte characters that occur in strings in locales with
+@code{MB_CUR_MAX > 1} (this includes all the common UTF-8 locales).
+There are two alternative APIs:
+
+@table @code
+@item c_isascii
+This function operates in a locale independent way and returns true only for
+ASCII characters.  It is provided by the Gnulib module @samp{c-ctype}.
+
+@item mb_isascii
+This function operates in a locale dependent way, on multibyte characters.
+It is provided by the Gnulib module @samp{mbchar}.
+@end table
--- a/doc/posix-functions/isblank.texi
+++ b/doc/posix-functions/isblank.texi
@@ -16,3 +16,28 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @end itemize
+
+Note: This function's behaviour depends on the locale, but does not support
+the multibyte characters that occur in strings in locales with
+@code{MB_CUR_MAX > 1} (this includes all the common UTF-8 locales).
+There are four alternative APIs:
+
+@table @code
+@item c_isblank
+This function operates in a locale independent way and returns true only for
+ASCII characters.  It is provided by the Gnulib module @samp{c-ctype}.
+
+@item iswblank
+This function operates in a locale dependent way, on wide characters.  In
+order to use it, you first have to convert from multibyte to wide characters,
+using the @code{mbrtowc} function.  It is provided by the Gnulib module
+@samp{wctype}.
+
+@item mb_isblank
+This function operates in a locale dependent way, on multibyte characters.
+It is provided by the Gnulib module @samp{mbchar}.
+
+@item uc_is_blank
+This function operates in a locale independent way, on Unicode characters.
+It is provided by the Gnulib module @samp{unictype/ctype-blank}.
+@end table
--- a/doc/posix-functions/iscntrl.texi
+++ b/doc/posix-functions/iscntrl.texi
@@ -13,3 +13,28 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @end itemize
+
+Note: This function's behaviour depends on the locale, but does not support
+the multibyte characters that occur in strings in locales with
+@code{MB_CUR_MAX > 1} (this includes all the common UTF-8 locales).
+There are four alternative APIs:
+
+@table @code
+@item c_iscntrl
+This function operates in a locale independent way and returns true only for
+ASCII characters.  It is provided by the Gnulib module @samp{c-ctype}.
+
+@item iswcntrl
+This function operates in a locale dependent way, on wide characters.  In
+order to use it, you first have to convert from multibyte to wide characters,
+using the @code{mbrtowc} function.  It is provided by the Gnulib module
+@samp{wctype}.
+
+@item mb_iscntrl
+This function operates in a locale dependent way, on multibyte characters.
+It is provided by the Gnulib module @samp{mbchar}.
+
+@item uc_is_cntrl
+This function operates in a locale independent way, on Unicode characters.
+It is provided by the Gnulib module @samp{unictype/ctype-cntrl}.
+@end table
--- a/doc/posix-functions/isdigit.texi
+++ b/doc/posix-functions/isdigit.texi
@@ -13,3 +13,28 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @end itemize
+
+Note: This function's behaviour depends on the locale, but does not support
+the multibyte characters that occur in strings in locales with
+@code{MB_CUR_MAX > 1} (this includes all the common UTF-8 locales).
+There are four alternative APIs:
+
+@table @code
+@item c_isdigit
+This function operates in a locale independent way and returns true only for
+ASCII characters.  It is provided by the Gnulib module @samp{c-ctype}.
+
+@item iswdigit
+This function operates in a locale dependent way, on wide characters.  In
+order to use it, you first have to convert from multibyte to wide characters,
+using the @code{mbrtowc} function.  It is provided by the Gnulib module
+@samp{wctype}.
+
+@item mb_isdigit
+This function operates in a locale dependent way, on multibyte characters.
+It is provided by the Gnulib module @samp{mbchar}.
+
+@item uc_is_digit
+This function operates in a locale independent way, on Unicode characters.
+It is provided by the Gnulib module @samp{unictype/ctype-digit}.
+@end table
--- a/doc/posix-functions/isgraph.texi
+++ b/doc/posix-functions/isgraph.texi
@@ -13,3 +13,28 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @end itemize
+
+Note: This function's behaviour depends on the locale, but does not support
+the multibyte characters that occur in strings in locales with
+@code{MB_CUR_MAX > 1} (this includes all the common UTF-8 locales).
+There are four alternative APIs:
+
+@table @code
+@item c_isgraph
+This function operates in a locale independent way and returns true only for
+ASCII characters.  It is provided by the Gnulib module @samp{c-ctype}.
+
+@item iswgraph
+This function operates in a locale dependent way, on wide characters.  In
+order to use it, you first have to convert from multibyte to wide characters,
+using the @code{mbrtowc} function.  It is provided by the Gnulib module
+@samp{wctype}.
+
+@item mb_isgraph
+This function operates in a locale dependent way, on multibyte characters.
+It is provided by the Gnulib module @samp{mbchar}.
+
+@item uc_is_graph
+This function operates in a locale independent way, on Unicode characters.
+It is provided by the Gnulib module @samp{unictype/ctype-graph}.
+@end table
--- a/doc/posix-functions/islower.texi
+++ b/doc/posix-functions/islower.texi
@@ -13,3 +13,28 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @end itemize
+
+Note: This function's behaviour depends on the locale, but does not support
+the multibyte characters that occur in strings in locales with
+@code{MB_CUR_MAX > 1} (this includes all the common UTF-8 locales).
+There are four alternative APIs:
+
+@table @code
+@item c_islower
+This function operates in a locale independent way and returns true only for
+ASCII characters.  It is provided by the Gnulib module @samp{c-ctype}.
+
+@item iswlower
+This function operates in a locale dependent way, on wide characters.  In
+order to use it, you first have to convert from multibyte to wide characters,
+using the @code{mbrtowc} function.  It is provided by the Gnulib module
+@samp{wctype}.
+
+@item mb_islower
+This function operates in a locale dependent way, on multibyte characters.
+It is provided by the Gnulib module @samp{mbchar}.
+
+@item uc_is_lower
+This function operates in a locale independent way, on Unicode characters.
+It is provided by the Gnulib module @samp{unictype/ctype-lower}.
+@end table
--- a/doc/posix-functions/isprint.texi
+++ b/doc/posix-functions/isprint.texi
@@ -13,3 +13,28 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @end itemize
+
+Note: This function's behaviour depends on the locale, but does not support
+the multibyte characters that occur in strings in locales with
+@code{MB_CUR_MAX > 1} (this includes all the common UTF-8 locales).
+There are four alternative APIs:
+
+@table @code
+@item c_isprint
+This function operates in a locale independent way and returns true only for
+ASCII characters.  It is provided by the Gnulib module @samp{c-ctype}.
+
+@item iswprint
+This function operates in a locale dependent way, on wide characters.  In
+order to use it, you first have to convert from multibyte to wide characters,
+using the @code{mbrtowc} function.  It is provided by the Gnulib module
+@samp{wctype}.
+
+@item mb_isprint
+This function operates in a locale dependent way, on multibyte characters.
+It is provided by the Gnulib module @samp{mbchar}.
+
+@item uc_is_print
+This function operates in a locale independent way, on Unicode characters.
+It is provided by the Gnulib module @samp{unictype/ctype-print}.
+@end table
--- a/doc/posix-functions/ispunct.texi
+++ b/doc/posix-functions/ispunct.texi
@@ -13,3 +13,28 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @end itemize
+
+Note: This function's behaviour depends on the locale, but does not support
+the multibyte characters that occur in strings in locales with
+@code{MB_CUR_MAX > 1} (this includes all the common UTF-8 locales).
+There are four alternative APIs:
+
+@table @code
+@item c_ispunct
+This function operates in a locale independent way and returns true only for
+ASCII characters.  It is provided by the Gnulib module @samp{c-ctype}.
+
+@item iswpunct
+This function operates in a locale dependent way, on wide characters.  In
+order to use it, you first have to convert from multibyte to wide characters,
+using the @code{mbrtowc} function.  It is provided by the Gnulib module
+@samp{wctype}.
+
+@item mb_ispunct
+This function operates in a locale dependent way, on multibyte characters.
+It is provided by the Gnulib module @samp{mbchar}.
+
+@item uc_is_punct
+This function operates in a locale independent way, on Unicode characters.
+It is provided by the Gnulib module @samp{unictype/ctype-punct}.
+@end table
--- a/doc/posix-functions/isspace.texi
+++ b/doc/posix-functions/isspace.texi
@@ -13,3 +13,28 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @end itemize
+
+Note: This function's behaviour depends on the locale, but does not support
+the multibyte characters that occur in strings in locales with
+@code{MB_CUR_MAX > 1} (this includes all the common UTF-8 locales).
+There are four alternative APIs:
+
+@table @code
+@item c_isspace
+This function operates in a locale independent way and returns true only for
+ASCII characters.  It is provided by the Gnulib module @samp{c-ctype}.
+
+@item iswspace
+This function operates in a locale dependent way, on wide characters.  In
+order to use it, you first have to convert from multibyte to wide characters,
+using the @code{mbrtowc} function.  It is provided by the Gnulib module
+@samp{wctype}.
+
+@item mb_isspace
+This function operates in a locale dependent way, on multibyte characters.
+It is provided by the Gnulib module @samp{mbchar}.
+
+@item uc_is_space
+This function operates in a locale independent way, on Unicode characters.
+It is provided by the Gnulib module @samp{unictype/ctype-space}.
+@end table
--- a/doc/posix-functions/isupper.texi
+++ b/doc/posix-functions/isupper.texi
@@ -13,3 +13,28 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @end itemize
+
+Note: This function's behaviour depends on the locale, but does not support
+the multibyte characters that occur in strings in locales with
+@code{MB_CUR_MAX > 1} (this includes all the common UTF-8 locales).
+There are four alternative APIs:
+
+@table @code
+@item c_isupper
+This function operates in a locale independent way and returns true only for
+ASCII characters.  It is provided by the Gnulib module @samp{c-ctype}.
+
+@item iswupper
+This function operates in a locale dependent way, on wide characters.  In
+order to use it, you first have to convert from multibyte to wide characters,
+using the @code{mbrtowc} function.  It is provided by the Gnulib module
+@samp{wctype}.
+
+@item mb_isupper
+This function operates in a locale dependent way, on multibyte characters.
+It is provided by the Gnulib module @samp{mbchar}.
+
+@item uc_is_upper
+This function operates in a locale independent way, on Unicode characters.
+It is provided by the Gnulib module @samp{unictype/ctype-upper}.
+@end table
--- a/doc/posix-functions/isxdigit.texi
+++ b/doc/posix-functions/isxdigit.texi
@@ -13,3 +13,28 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @end itemize
+
+Note: This function's behaviour depends on the locale, but does not support
+the multibyte characters that occur in strings in locales with
+@code{MB_CUR_MAX > 1} (this includes all the common UTF-8 locales).
+There are four alternative APIs:
+
+@table @code
+@item c_isxdigit
+This function operates in a locale independent way and returns true only for
+ASCII characters.  It is provided by the Gnulib module @samp{c-ctype}.
+
+@item iswxdigit
+This function operates in a locale dependent way, on wide characters.  In
+order to use it, you first have to convert from multibyte to wide characters,
+using the @code{mbrtowc} function.  It is provided by the Gnulib module
+@samp{wctype}.
+
+@item mb_isxdigit
+This function operates in a locale dependent way, on multibyte characters.
+It is provided by the Gnulib module @samp{mbchar}.
+
+@item uc_is_xdigit
+This function operates in a locale independent way, on Unicode characters.
+It is provided by the Gnulib module @samp{unictype/ctype-xdigit}.
+@end table