UNICODE_CATEGORY_LOO(3)

πŸ’– UNICODE_CATEGORY_LOO(3) πŸ’–

okay bestie, welcome to the UNICODE_CATEGORY_LOO(3) page from the Courier Unicode Library β€” yes the whole page is literally about figuring out what kind of character you're looking at, and honestly? iconic. let's get into it πŸ¦‹


✨ NAME ✨

unicode_category_lookup, unicode_isalnum, unicode_isalpha, unicode_isblank, unicode_isdigit, unicode_isgraph, unicode_islower, unicode_ispunct, unicode_isspace, unicode_isupper β€” unicode character categorization πŸ’…


🌸 SYNOPSIS 🌸

#include <courier-unicode.h>

uint32_t unicode_category_lookup(char32_t c);

int unicode_isalnum(char32_t c);

int unicode_isalpha(char32_t c);

int unicode_isblank(char32_t c);

int unicode_isdigit(char32_t c);

int unicode_isgraph(char32_t c);

int unicode_islower(char32_t c);

int unicode_ispunct(char32_t c);

int unicode_isspace(char32_t c);

int unicode_isupper(char32_t c);

πŸ‘‘ DESCRIPTION πŸ‘‘

so unicode_category_lookup() is the main character here: it looks up the unicode character's categorization[1]. and it hands you back a 32 bit value, no cap.

the way that value works: its UNICODE_CATEGORY_1 bits tell you the first level of the unicode character's category. then UNICODE_CATEGORY_2, UNICODE_CATEGORY_3, and UNICODE_CATEGORY_4 bits specify the 2nd, 3rd, and 4th level, if given. πŸ’«

if the bits for a level are all set to 0, that means no category is specified for this level, for this character. otherwise, the possible values live in <courier-unicode.h> πŸ“

πŸŽ€ the rest of the girlies πŸŽ€

these ones are the unicode glow-up of their non-unicode versions in the standard C library, fr fr:

  • unicode_isalnum() β€” returns non-0 for all unicode_isalpha() or unicode_isdigit(). basically "is it a letter OR a number" energy ✨
  • unicode_isalpha() β€” returns non-0 for all UNICODE_CATEGORY_1_LETTER. letters only, periodt πŸ”€
  • unicode_isblank() β€” returns non-0 for TAB, and all UNICODE_CATEGORY_2_SPACE 🫧
  • unicode_isdigit() β€” returns non-0 for all UNICODE_CATEGORY_1_NUMBER | UNICODE_CATEGORY_2_DIGIT, only β€” no third categories bestie, that's the whole vibe πŸ”’
  • unicode_isgraph() β€” returns non-0 for all codepoints above SPACE which are not unicode_isspace() πŸ’€
  • unicode_islower() β€” returns non-0 for all unicode_isalpha() for which the character is equal to unicode_lc(3) of itself. lowercase girlies rise πŸ₯°
  • unicode_ispunct() β€” returns non-0 for all UNICODE_CATEGORY_1_PUNCTUATION ❗❓‼️
  • unicode_isspace() β€” returns non-0 for unicode_isblank() or for unicode characters with linebreaking properties of BK, CR, LF, NL, and SP πŸŒ€
  • unicode_isupper() β€” returns non-0 for all unicode_isalpha() for which the character is equal to unicode_uc(3) of itself. uppercase icon behavior πŸ‘‘

πŸ”₯ SEE ALSO πŸ”₯


πŸ’œ AUTHOR πŸ’œ

Sam Varshavchik

  • Author 🫢

πŸ“ NOTES πŸ“

  1. unicode character's categorization https://unicode.org/notes/tn36/

okay that's the whole page, you ate that 🧚✨ and for the sign-off: this lovely lil manual page is from the Courier Unicode Library, dated 04/12/2026 β€” go forth and categorize ur characters responsibly bestie, mwah πŸ’–πŸŒˆπŸŒΈ

πŸ“¦ where this page comes from