/* FUNCTION <>, <>---punctuation character predicate INDEX ispunct INDEX ispunct_l SYNOPSIS #include int ispunct(int <[c]>); #include int ispunct_l(int <[c]>, locale_t <[locale]>); DESCRIPTION <> is a macro which classifies singlebyte charset values by table lookup. It is a predicate returning non-zero for printable punctuation characters, and 0 for other characters. It is defined only if <[c]> is representable as an unsigned char or if <[c]> is EOF. <> is like <> but performs the check based on the locale specified by the locale object locale. If <[locale]> is LC_GLOBAL_LOCALE or not a valid locale object, the behaviour is undefined. You can use a compiled subroutine instead of the macro definition by undefining the macro using `<<#undef ispunct>>' or `<<#undef ispunct_l>>'. RETURNS <>, <> return non-zero if <[c]> is a printable punctuation character. PORTABILITY <> is ANSI C. <> is POSIX-1.2008. No supporting OS subroutines are required. */ #include <_ansi.h> #include #undef ispunct int ispunct (int c) { return(__CTYPE_PTR[c+1] & _P); }