Display correct length for the whole utf8 characters

This commit is contained in:
Devine Lu Linvega 2024-02-08 16:00:16 -08:00
parent 00ae6e3fec
commit c7cfb99841
2 changed files with 15 additions and 9 deletions

View File

@ -39,6 +39,7 @@
070f 0f0f 0f0f 0f0f 0f0f 0f0f 0f0f 0f07 ]
&end [
80c0 e0f0 f8fc feff fffe fcf8 f0e0 c080 ]
@rune-icns [
0000 0000 0010 6c82 9282 6c10 0000 0000
0000 0000 0010 7cfe eefe 7c10 0000 0000
@ -49,6 +50,9 @@
0000 0000 0010 18fc 7efc 1810 0000 0000
0000 0000 0010 18fc 02fc 1810 0000 0000 ]
@utf8-lengths [
04 04 04 04 04 04 04 04 05 05 05 05 06 06 01 01 ]
@font ( cream12 )
0707 0707 0707 0707 070e 0707 0707 0707 0707 0707 0707 0707 0707 0707 0707 0707
0403 0509 0606 0803 0505 0806 0306 0306 0703 0707 0707 0707 0707 0404 0406 0406

View File

@ -61,7 +61,7 @@
( name ) "Left 0a
( details ) "A 20 "Text 20 "Editor 0a
( author ) "By 20 "Hundred 20 "Rabbits 0a
( date ) "16 20 "Jan 20 "2024 $1
( date ) "8 20 "Feb 20 "2024 $1
01
( > ) 83 =appicon
@ -741,7 +741,7 @@
( a ) LITr 00 get-scroll-addr
&ver ( -- )
EQUkr STHr ?&ver-end
detect-state LDAk #0a NEQ ?{ INCr }
scan-state LDAk #0a NEQ ?{ INCr }
next-glyph LDAk ?&ver
&ver-end POP2r
( | goto x )
@ -749,7 +749,7 @@
( a ) LIT2r 0000
&hor ( -- )
LDAk #0a EQU ?&hor-end
detect-state get-glyph-width STH2
scan-state get-glyph-width STH2
ADD2r LTH2kr STHr ?&hor-end
next-glyph LDAk ?&hor
&hor-end POP2r POP2r #0000 .state STZ2
@ -759,7 +759,7 @@
<reset-state>
[ LIT2r 0000 ] get-scroll-addr !&
&l ( -- )
detect-state get-glyph-width STH2
scan-state get-glyph-width STH2
ADD2r LDAk #0a NEQ ?{ POP2r LIT2r 0000 }
next-glyph & GTH2k ?&l
POP2 POP2 STH2r JMP2r
@ -792,7 +792,7 @@
&skip ( addr* -- addr* match )
POP2 POP2 #00 JMP2r
@detect-state ( addr* -- addr* )
@scan-state ( addr* -- addr* )
( | parentesis match )
[ LIT2 00 -state/match ] STZ
LDAk [ LIT 28 ] NEQ ?{ match-parfwd .state/match STZ }
@ -894,9 +894,11 @@
LDAk #20 SUB #00 SWP #40 SFT2 ;font-mono/glyphs ADD2 JMP2r
@next-glyph ( addr* -- addr* )
LDAk #c0 LTH ?{
LDAk #04 SFT #03 AND INC #00 SWP ADD2 }
INC2 JMP2r
LDAk #c0 LTH ?&1
LDAk #e0 LTH ?&2
LDAk #f0 LTH ?&3
LDAk #f0 SUB #00 SWP ;utf8-lengths ADD2 LDA #00 SWP ADD2 JMP2r
&3 INC2 &2 INC2 &1 INC2 JMP2r
(
@|go )
@ -1178,7 +1180,7 @@
JMP2r
@<draw-character> ( addr* -- addr* )
detect-state get-glyph-addr .Screen/addr DEO2
scan-state get-glyph-addr .Screen/addr DEO2
get-color ,&c STR
[ LIT2r &anchor $2 ] LITr -Screen/x DEO2kr
( | draw normal )