-__BEGIN_DECLS
-int isalnum __P((int));
-int isalpha __P((int));
-int iscntrl __P((int));
-int isdigit __P((int));
-int isgraph __P((int));
-int islower __P((int));
-int isprint __P((int));
-int ispunct __P((int));
-int isspace __P((int));
-int isupper __P((int));
-int isxdigit __P((int));
-int tolower __P((int));
-int toupper __P((int));
-
-#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
-int digittoint __P((int));
-int isascii __P((int));
-int isblank __P((int));
-int ishexnumber __P((int));
-int isideogram __P((int));
-int isnumber __P((int));
-int isphonogram __P((int));
-int isrune __P((int));
-int isspecial __P((int));
-int toascii __P((int));
-#endif
-__END_DECLS
-
-
-#define isalnum(c) __istype((c), (_A|_D))
-#define isalpha(c) __istype((c), _A)
-#define iscntrl(c) __istype((c), _C)
-#define isdigit(c) __isctype((c), _D) /* ANSI -- locale independent */
-#define isgraph(c) __istype((c), _G)
-#define islower(c) __istype((c), _L)
-#define isprint(c) __istype((c), _R)
-#define ispunct(c) __istype((c), _P)
-#define isspace(c) __istype((c), _S)
-#define isupper(c) __istype((c), _U)
-#define isxdigit(c) __isctype((c), _X) /* ANSI -- locale independent */
-#define tolower(c) __tolower(c)
-#define toupper(c) __toupper(c)
-
-#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
-#define digittoint(c) __maskrune((c), 0xFF)
-#define isascii(c) ((c & ~0x7F) == 0)
-#define isblank(c) __istype((c), _B)
-#define ishexnumber(c) __istype((c), _X)
-#define isideogram(c) __istype((c), _I)
-#define isnumber(c) __istype((c), _D)
-#define isphonogram(c) __istype((c), _T)
-#define isrune(c) __istype((c), 0xFFFFFF00L)
-#define isspecial(c) __istype((c), _Q)
-#define toascii(c) ((c) & 0x7F)
-#endif
-
-/* See comments in <machine/ansi.h> about _BSD_RUNE_T_. */
-__BEGIN_DECLS
-unsigned long ___runetype __P((_BSD_CT_RUNE_T_));
-_BSD_CT_RUNE_T_ ___tolower __P((_BSD_CT_RUNE_T_));
-_BSD_CT_RUNE_T_ ___toupper __P((_BSD_CT_RUNE_T_));
-__END_DECLS
+#ifdef _NONSTD_SOURCE
+/*
+ * Backward compatibility
+ */
+#define _A _CTYPE_A /* Alpha */
+#define _C _CTYPE_C /* Control */
+#define _D _CTYPE_D /* Digit */
+#define _G _CTYPE_G /* Graph */
+#define _L _CTYPE_L /* Lower */
+#define _P _CTYPE_P /* Punct */
+#define _S _CTYPE_S /* Space */
+#define _U _CTYPE_U /* Upper */
+#define _X _CTYPE_X /* X digit */
+#define _B _CTYPE_B /* Blank */
+#define _R _CTYPE_R /* Print */
+#define _I _CTYPE_I /* Ideogram */
+#define _T _CTYPE_T /* Special */
+#define _Q _CTYPE_Q /* Phonogram */
+#define _SW0 _CTYPE_SW0 /* 0 width character */
+#define _SW1 _CTYPE_SW1 /* 1 width character */
+#define _SW2 _CTYPE_SW2 /* 2 width character */
+#define _SW3 _CTYPE_SW3 /* 3 width character */
+#endif /* _NONSTD_SOURCE */