mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-12-18 12:22:10 +03:00
Add validation functions for UTF8
This commit is contained in:
parent
3d93e9f527
commit
1472dadf4d
@ -4503,6 +4503,106 @@
|
||||
:: :: ++wish:de-json:html
|
||||
++ wish :: with whitespace
|
||||
|*(sef=rule ;~(pfix spac sef))
|
||||
:: XX: These gates should be moved to hoon.hoon
|
||||
:: :: ++sune:de-json:html
|
||||
++ sune :: cord UTF-8 sanity
|
||||
|= b=@t
|
||||
^- ?
|
||||
?: =(0 b) &
|
||||
?. (sung b) |
|
||||
$(b (rsh [3 (teff b)] b))
|
||||
:: :: ++sung:de-json:html
|
||||
++ sung :: char UTF-8 sanity
|
||||
|^ |= b=@t
|
||||
^- ?
|
||||
=+ len=(teff b)
|
||||
?: =(4 len) (quad b)
|
||||
?: =(3 len) (tres b)
|
||||
?: =(2 len) (dos b)
|
||||
(lte (end 3 b) 127)
|
||||
::
|
||||
++ dos
|
||||
|= b=@t
|
||||
^- ?
|
||||
=+ :- one=(cut 3 [0 1] b)
|
||||
two=(cut 3 [1 1] b)
|
||||
?& (rang one 194 223)
|
||||
(cont two)
|
||||
==
|
||||
::
|
||||
++ tres
|
||||
|= b=@t
|
||||
^- ?
|
||||
=+ :+ one=(cut 3 [0 1] b)
|
||||
two=(cut 3 [1 1] b)
|
||||
tre=(cut 3 [2 1] b)
|
||||
?&
|
||||
?|
|
||||
?& |((rang one 225 236) (rang one 238 239))
|
||||
(cont two)
|
||||
==
|
||||
::
|
||||
?& =(224 one)
|
||||
(rang two 160 191)
|
||||
==
|
||||
::
|
||||
?& =(237 one)
|
||||
(rang two 128 159)
|
||||
==
|
||||
==
|
||||
::
|
||||
(cont tre)
|
||||
==
|
||||
::
|
||||
++ quad
|
||||
|= b=@t
|
||||
^- ?
|
||||
=+ :^ one=(cut 3 [0 1] b)
|
||||
two=(cut 3 [1 1] b)
|
||||
tre=(cut 3 [2 1] b)
|
||||
for=(cut 3 [3 1] b)
|
||||
?&
|
||||
?|
|
||||
?& (rang one 241 243)
|
||||
(cont two)
|
||||
==
|
||||
::
|
||||
?& =(240 one)
|
||||
(rang two 144 191)
|
||||
==
|
||||
::
|
||||
?& =(244 one)
|
||||
(rang two 128 143)
|
||||
==
|
||||
==
|
||||
::
|
||||
(cont tre)
|
||||
(cont for)
|
||||
==
|
||||
::
|
||||
++ cont
|
||||
|= a=@
|
||||
^- ?
|
||||
(rang a 128 191)
|
||||
::
|
||||
++ rang
|
||||
|= [a=@ bot=@ top=@]
|
||||
^- ?
|
||||
?> (lte bot top)
|
||||
&((gte a bot) (lte a top))
|
||||
--
|
||||
:: XX: This +teff should overwrite the existing +teff
|
||||
:: :: ++teff:de-json:html
|
||||
++ teff :: UTF-8 length
|
||||
|= a=@t
|
||||
^- @
|
||||
=+ b=(end 3 a)
|
||||
?: =(0 b)
|
||||
?> =(`@`0 a) 0
|
||||
?: (lte b 127) 1
|
||||
?: (lte b 223) 2
|
||||
?: (lte b 239) 3
|
||||
4
|
||||
-- ::de-json
|
||||
:: :: ++en-xml:html
|
||||
++ en-xml :: xml printer
|
||||
|
Loading…
Reference in New Issue
Block a user