Browse Source

Use ucd_properties to implement ucd_isspace.

master
Reece H. Dunn 8 years ago
parent
commit
bc16887a79
1 changed files with 2 additions and 28 deletions
  1. 2
    28
      src/ctype.c

+ 2
- 28
src/ctype.c View File

@@ -437,34 +437,8 @@ int ucd_ispunct(codepoint_t c)

int ucd_isspace(codepoint_t c)
{
switch (ucd_lookup_category(c))
{
case UCD_CATEGORY_Zl:
case UCD_CATEGORY_Zp:
return 1;
case UCD_CATEGORY_Zs:
switch (c) // Exclude characters with the <noBreak> DispositionType
{
case 0x00A0: // U+00A0 : NO-BREAK SPACE
case 0x2007: // U+2007 : FIGURE SPACE
case 0x202F: // U+202F : NARROW NO-BREAK SPACE
return 0;
}
return 1;
case UCD_CATEGORY_Cc:
switch (c) // Include control characters marked as White_Space
{
case 0x09: // U+0009 : CHARACTER TABULATION
case 0x0A: // U+000A : LINE FEED
case 0x0B: // U+000B : LINE TABULATION
case 0x0C: // U+000C : FORM FEED
case 0x0D: // U+000D : CARRIAGE RETURN
case 0x85: // U+0085 : NEXT LINE
return 1;
}
default:
return 0;
}
ucd_property props = ucd_properties(c, ucd_lookup_category(c));
return (props & (UCD_PROPERTY_WHITE_SPACE | UCD_PROPERTY_NO_BREAK)) == UCD_PROPERTY_WHITE_SPACE;
}

int ucd_isupper(codepoint_t c)

Loading…
Cancel
Save