Add tests for querying UCD properties; fix discovered issues.

This commit is contained in:
Reece H. Dunn
2012-12-22 12:18:49 +00:00
parent 9c3a87dbeb
commit ea09eb5c45
9 changed files with 7213 additions and 368 deletions
+3 -3
View File
@@ -2140,7 +2140,7 @@ ucd::codepoint_t ucd::toupper(codepoint_t c)
int pos = (begin + end) / 2;
const case_conversion_entry *item = (case_conversion_data + pos);
if (c == item->codepoint)
return item->uppercase;
return item->uppercase == 0 ? c : item->uppercase;
else if (c > item->codepoint)
begin = pos + 1;
else
@@ -2158,7 +2158,7 @@ ucd::codepoint_t ucd::tolower(codepoint_t c)
int pos = (begin + end) / 2;
const case_conversion_entry *item = (case_conversion_data + pos);
if (c == item->codepoint)
return item->lowercase;
return item->lowercase == 0 ? c : item->lowercase;
else if (c > item->codepoint)
begin = pos + 1;
else
@@ -2176,7 +2176,7 @@ ucd::codepoint_t ucd::totitle(codepoint_t c)
int pos = (begin + end) / 2;
const case_conversion_entry *item = (case_conversion_data + pos);
if (c == item->codepoint)
return item->titlecase;
return item->titlecase == 0 ? c : item->titlecase;
else if (c > item->codepoint)
begin = pos + 1;
else