// Copyright status: this file is in the public domain. #include "lx.h" #include "internal.h" static const LX_CHARINFO ciz = { 0 }; const LX_CHARINFO *lx_fontinfo_charinfo(const LX_FONTINFO *fi, unsigned int c) { int x; if (! fi->charinfos) return(0); x = ((FONTPRIV *)fi->lx_priv)->charindex[c&65535]; switch (x) { case FONTPRIV_ZERO: return(&ciz); break; case FONTPRIV_NIL: return(0); break; case FONTPRIV_SAME: return(&fi->minbounds); break; default: if (x >= fi->ncharinfo) { lx_abort(); return(0); } return(&fi->charinfos[x]); break; } }