move __stdio_exit_needed to stdio_impl.h
[musl] / src / ctype / iswalpha.c
index 0f031ea..00f9d81 100644 (file)
@@ -1,6 +1,22 @@
 #include <wctype.h>
+#include "libc.h"
+
+static const unsigned char table[] = {
+#include "alpha.h"
+};
 
 int iswalpha(wint_t wc)
 {
-       return (32U|wc)-'a'<26;
+       if (wc<0x20000U)
+               return (table[table[wc>>8]*32+((wc&255)>>3)]>>(wc&7))&1;
+       if (wc<0x2fffeU)
+               return 1;
+       return 0;
 }
+
+int __iswalpha_l(wint_t c, locale_t l)
+{
+       return iswalpha(c);
+}
+
+weak_alias(__iswalpha_l, iswalpha_l);