move printUTF8 to utf.c
This commit is contained in:
parent
4be83c88b2
commit
17d3277d2b
16
src/h.h
16
src/h.h
@ -67,7 +67,7 @@ enum Type {
|
|||||||
};
|
};
|
||||||
|
|
||||||
enum PrimFns {
|
enum PrimFns {
|
||||||
pf_not,
|
pf_none,
|
||||||
pf_add, pf_sub, pf_mul, pf_div, pf_pow, pf_floor, pf_eq, pf_le, pf_log, // arith.c
|
pf_add, pf_sub, pf_mul, pf_div, pf_pow, pf_floor, pf_eq, pf_le, pf_log, // arith.c
|
||||||
pf_shape, pf_pick, pf_ud, pf_pair, pf_fne, pf_lt, pf_rt, // sfns.c
|
pf_shape, pf_pick, pf_ud, pf_pair, pf_fne, pf_lt, pf_rt, // sfns.c
|
||||||
pf_fork, pf_atop, pf_md1d, pf_md2d, // derv.c
|
pf_fork, pf_atop, pf_md1d, pf_md2d, // derv.c
|
||||||
@ -75,19 +75,19 @@ enum PrimFns {
|
|||||||
};
|
};
|
||||||
char* format_pf(u8 u) {
|
char* format_pf(u8 u) {
|
||||||
switch(u) {
|
switch(u) {
|
||||||
default: case pf_not: return"(unknown fn)";
|
default: case pf_none: return"(unknown fn)";
|
||||||
case pf_add:return"+"; case pf_sub:return"-"; case pf_mul:return"×"; case pf_div:return"÷"; case pf_pow:return"⋆"; case pf_floor:return"⌊"; case pf_eq:return"="; case pf_le:return"≤"; case pf_log:return"⋆⁼";
|
case pf_add:return"+"; case pf_sub:return"-"; case pf_mul:return"×"; case pf_div:return"÷"; case pf_pow:return"⋆"; case pf_floor:return"⌊"; case pf_eq:return"="; case pf_le:return"≤"; case pf_log:return"⋆⁼";
|
||||||
case pf_shape:return"⥊"; case pf_pick:return"⊑"; case pf_ud:return"↕"; case pf_pair:return"{𝕨‿𝕩}"; case pf_fne:return"≢"; case pf_lt:return"⊣"; case pf_rt:return"⊢";
|
case pf_shape:return"⥊"; case pf_pick:return"⊑"; case pf_ud:return"↕"; case pf_pair:return"{𝕨‿𝕩}"; case pf_fne:return"≢"; case pf_lt:return"⊣"; case pf_rt:return"⊢";
|
||||||
case pf_fork:return"(fork)"; case pf_atop:return"(atop)"; case pf_md1d:return"(derived 1-modifier)"; case pf_md2d:return"(derived 2-modifier)";
|
case pf_fork:return"(fork)"; case pf_atop:return"(atop)"; case pf_md1d:return"(derived 1-modifier)"; case pf_md2d:return"(derived 2-modifier)";
|
||||||
case pf_type:return"•Type"; case pf_decp:return"•Decompose"; case pf_primInd:return"•PrimInd"; case pf_glyph:return"•Glyph"; case pf_fill:return"•FillFn"; case pf_grLen:return"•GroupLen"; case pf_grOrd:return"•GroupOrd"; case pf_asrt:return"!"; }
|
case pf_type:return"•Type"; case pf_decp:return"•Decompose"; case pf_primInd:return"•PrimInd"; case pf_glyph:return"•Glyph"; case pf_fill:return"•FillFn"; case pf_grLen:return"•GroupLen"; case pf_grOrd:return"•GroupOrd"; case pf_asrt:return"!"; }
|
||||||
}
|
}
|
||||||
enum PrimMd1 {
|
enum PrimMd1 {
|
||||||
pm1_not,
|
pm1_none,
|
||||||
pm1_tbl, pm1_scan, // md1.c
|
pm1_tbl, pm1_scan, // md1.c
|
||||||
};
|
};
|
||||||
char* format_pm1(u8 u) {
|
char* format_pm1(u8 u) {
|
||||||
switch(u) {
|
switch(u) {
|
||||||
default: case pf_not: return"(unknown 1-modifier)";
|
default: case pf_none: return"(unknown 1-modifier)";
|
||||||
case pm1_tbl: return"⌜"; case pm1_scan: return"`";
|
case pm1_tbl: return"⌜"; case pm1_scan: return"`";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -298,12 +298,8 @@ void ptr_dec(void* x) { dec(tag(x, OBJ_TAG)); }
|
|||||||
void ptr_inc(void* x) { inc(tag(x, OBJ_TAG)); }
|
void ptr_inc(void* x) { inc(tag(x, OBJ_TAG)); }
|
||||||
bool reusable(B x) { return v(x)->refc==1; }
|
bool reusable(B x) { return v(x)->refc==1; }
|
||||||
|
|
||||||
void printUTF8(u32 c) {
|
|
||||||
if (c<128) printf("%c", c);
|
void printUTF8(u32 c);
|
||||||
else if (c<=0x07FF) printf("%c%c" , 0xC0| c>>6 , 0x80| (c &0x3F) );
|
|
||||||
else if (c<=0xFFFF) printf("%c%c%c" , 0xE0| c>>12, 0x80| (c>>6 &0x3F), 0x80| (c &0x3F) );
|
|
||||||
else printf("%c%c%c%c", 0xF0| c>>18, 0x80| (c>>12 &0x3F), 0x80| (c>>6 &0x3F), 0x80| (c&0x3F));
|
|
||||||
}
|
|
||||||
|
|
||||||
void print(B x) {
|
void print(B x) {
|
||||||
if (isF64(x)) {
|
if (isF64(x)) {
|
||||||
|
|||||||
@ -24,4 +24,11 @@ B fromUTF8(char* s, u64 len) {
|
|||||||
u64 p = 0;
|
u64 p = 0;
|
||||||
for (u64 i = 0; i < len; i+= utf8_len(s[i])) r.a[p++] = m_c32(utf8_p((u8*)s+i)); // may read after end, eh
|
for (u64 i = 0; i < len; i+= utf8_len(s[i])) r.a[p++] = m_c32(utf8_p((u8*)s+i)); // may read after end, eh
|
||||||
return r.b;
|
return r.b;
|
||||||
|
}
|
||||||
|
|
||||||
|
void printUTF8(u32 c) {
|
||||||
|
if (c<128) printf("%c", c);
|
||||||
|
else if (c<=0x07FF) printf("%c%c" , 0xC0| c>>6 , 0x80| (c &0x3F) );
|
||||||
|
else if (c<=0xFFFF) printf("%c%c%c" , 0xE0| c>>12, 0x80| (c>>6 &0x3F), 0x80| (c &0x3F) );
|
||||||
|
else printf("%c%c%c%c", 0xF0| c>>18, 0x80| (c>>12 &0x3F), 0x80| (c>>6 &0x3F), 0x80| (c&0x3F));
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user