Mercurial > minori
comparison dep/utf8proc/test/printproperty.c @ 343:1faa72660932
*: transfer back to cmake from autotools
autotools just made lots of things more complicated than
they should have and many things broke (i.e. translations)
| author | Paper <paper@paper.us.eu.org> |
|---|---|
| date | Thu, 20 Jun 2024 05:56:06 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 342:adb79bdde329 | 343:1faa72660932 |
|---|---|
| 1 /* simple test program to print out the utf8proc properties for a codepoint */ | |
| 2 | |
| 3 #include "tests.h" | |
| 4 | |
| 5 int main(int argc, char **argv) | |
| 6 { | |
| 7 int i; | |
| 8 | |
| 9 for (i = 1; i < argc; ++i) { | |
| 10 utf8proc_uint8_t cstr[16], *map; | |
| 11 utf8proc_uint32_t x; | |
| 12 utf8proc_int32_t c; | |
| 13 if (!strcmp(argv[i], "-V")) { | |
| 14 printf("utf8proc version %s\n", utf8proc_version()); | |
| 15 continue; | |
| 16 } | |
| 17 check(sscanf(argv[i],"%x", &x) == 1, "invalid hex input %s", argv[i]); | |
| 18 c = (utf8proc_int32_t)x; | |
| 19 const utf8proc_property_t *p = utf8proc_get_property(c); | |
| 20 | |
| 21 if (utf8proc_codepoint_valid(c)) | |
| 22 cstr[utf8proc_encode_char(c, cstr)] = 0; | |
| 23 else | |
| 24 strcat((char*)cstr, "N/A"); | |
| 25 utf8proc_map(cstr, 0, &map, UTF8PROC_NULLTERM | UTF8PROC_CASEFOLD); | |
| 26 | |
| 27 printf("U+%s: %s\n" | |
| 28 " category = %s\n" | |
| 29 " combining_class = %d\n" | |
| 30 " bidi_class = %d\n" | |
| 31 " decomp_type = %d\n" | |
| 32 " uppercase_mapping = %04x (seqindex %04x)%s\n" | |
| 33 " lowercase_mapping = %04x (seqindex %04x)%s\n" | |
| 34 " titlecase_mapping = %04x (seqindex %04x)\n" | |
| 35 " casefold = %s\n" | |
| 36 " comb_index = %d\n" | |
| 37 " bidi_mirrored = %d\n" | |
| 38 " comp_exclusion = %d\n" | |
| 39 " ignorable = %d\n" | |
| 40 " control_boundary = %d\n" | |
| 41 " boundclass = %d\n" | |
| 42 " indic_conjunct_break = %d\n" | |
| 43 " charwidth = %d\n", | |
| 44 argv[i], (char*) cstr, | |
| 45 utf8proc_category_string(c), | |
| 46 p->combining_class, | |
| 47 p->bidi_class, | |
| 48 p->decomp_type, | |
| 49 utf8proc_toupper(c), p->uppercase_seqindex, utf8proc_isupper(c) ? " (isupper)" : "", | |
| 50 utf8proc_tolower(c), p->lowercase_seqindex, utf8proc_islower(c) ? " (islower)" : "", | |
| 51 utf8proc_totitle(c), p->titlecase_seqindex, | |
| 52 (char *) map, | |
| 53 p->comb_index, | |
| 54 p->bidi_mirrored, | |
| 55 p->comp_exclusion, | |
| 56 p->ignorable, | |
| 57 p->control_boundary, | |
| 58 p->boundclass, | |
| 59 p->indic_conjunct_break, | |
| 60 utf8proc_charwidth(c)); | |
| 61 free(map); | |
| 62 } | |
| 63 return 0; | |
| 64 } |
