# Change Log | # Change Log | ||||
## (In Development) | |||||
* Make the ispunct ctype compatibility implementation conformant. | |||||
## 10.0.0 - 2017-06-25 | ## 10.0.0 - 2017-06-25 | ||||
* Add `iswblank` and `iswxdigit` compatibility. | * Add `iswblank` and `iswxdigit` compatibility. |
/* ctype-style APIs. | /* ctype-style APIs. | ||||
* | * | ||||
* Copyright (C) 2012-2017 Reece H. Dunn | |||||
* Copyright (C) 2012-2018 Reece H. Dunn | |||||
* | * | ||||
* This file is part of ucd-tools. | * This file is part of ucd-tools. | ||||
* | * | ||||
int ucd_ispunct(codepoint_t c) | int ucd_ispunct(codepoint_t c) | ||||
{ | { | ||||
switch (ucd_lookup_category(c)) | |||||
{ | |||||
case UCD_CATEGORY_Pc: | |||||
case UCD_CATEGORY_Pd: | |||||
case UCD_CATEGORY_Pe: | |||||
case UCD_CATEGORY_Pf: | |||||
case UCD_CATEGORY_Pi: | |||||
case UCD_CATEGORY_Po: | |||||
case UCD_CATEGORY_Ps: | |||||
return 1; | |||||
default: | |||||
return 0; | |||||
} | |||||
return ucd_isgraph(c) && !ucd_isalnum(c); | |||||
} | } | ||||
int ucd_isspace(codepoint_t c) | int ucd_isspace(codepoint_t c) |
return 0 | return 0 | ||||
def ispunct(data): | def ispunct(data): | ||||
if data.get('GeneralCategory', 'Cn')[0] in 'P': | |||||
return 1 | |||||
else: | |||||
return 0 | |||||
return 1 if isgraph(data) and not isalnum(data) else 0 | |||||
def isprint(data): | def isprint(data): | ||||
if data.get('GeneralCategory', 'Cn')[0] in 'LMNPSZ': # not in 'CI' | if data.get('GeneralCategory', 'Cn')[0] in 'LMNPSZ': # not in 'CI' |