Include "wchar-lookup.h".
authordrepper <drepper>
Tue, 25 Jul 2000 04:33:44 +0000 (04:33 +0000)
committerdrepper <drepper>
Tue, 25 Jul 2000 04:33:44 +0000 (04:33 +0000)
(iswblank): Support alternate locale
format with 3-level tables.

wctype/wcextra.c

index 44b72c8..581c680 100644 (file)
@@ -1,5 +1,5 @@
 /* Additional non standardized wide character classification functions.
-   Copyright (C) 1997, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
 #include <wctype.h>
 
 #include "cname-lookup.h"
+#include "wchar-lookup.h"
 
 /* If the program is compiled without optimization the following declaration
    is not visible in the header.   */
 extern unsigned int *__ctype32_b;
 
+/* This is not exported.  */
+extern const char *__ctype32_wctype[12];
+
 int
 (iswblank) (wint_t wc)
 {
-  size_t idx;
-
-  idx = cname_lookup (wc);
-  if (idx == ~((size_t) 0))
-    return 0;
-
-  return __ctype32_b[idx] & _ISwblank;
+  if (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_HASH_SIZE) != 0)
+    {
+      /* Old locale format.  */
+      size_t idx;
+
+      idx = cname_lookup (wc);
+      if (idx == ~((size_t) 0))
+       return 0;
+
+      return __ctype32_b[idx] & _ISwblank;
+    }
+  else
+    {
+      /* New locale format.  */
+      return wctype_table_lookup (__ctype32_wctype[__ISwblank], wc);
+    }
 }