From ce05175372a9ddca1a225db0765ace1127a39293 Mon Sep 17 00:00:00 2001 From: Nicholas Date: Fri, 12 Nov 2021 09:22:01 -0800 Subject: chore: simplified organizational structure --- sys/libutf/decodeprev.c | 60 ------------------------------------------------- 1 file changed, 60 deletions(-) delete mode 100644 sys/libutf/decodeprev.c (limited to 'sys/libutf/decodeprev.c') diff --git a/sys/libutf/decodeprev.c b/sys/libutf/decodeprev.c deleted file mode 100644 index 27dced6..0000000 --- a/sys/libutf/decodeprev.c +++ /dev/null @@ -1,60 +0,0 @@ -#include "internal.h" - -#define ACCEPT 0 -#define REJECT 12 - -static uint8 decode[] = { - /* - * the first part of the table maps bytes to character classes that - * to reduce the size of the transition table and create bitmasks. - */ - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, - 10,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3, 11,6,6,6,5,8,8,8,8,8,8,8,8,8,8,8, - /* - * The second part is a transition table that maps a combination - * of a state of the automaton and a character class to a state. - */ - // 0 1 2 3 4 5 6 7 8 9 10 11 - 0,24,12,12,12,12,12,24,12,24,12,12, - 0,24,12,12,12,12,12,24,12,24,12,12, - 12,36, 0,12,12,12,12,48,12,36,12,12, - 12,60,12, 0, 0,12,12,72,12,72,12,12, - 12,60,12, 0,12,12,12,72,12,72, 0,12, - 12,12,12,12,12, 0, 0,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12, 0 -}; - -int -utf8·decodeprev(byte *s, rune *r) -{ - int n; - rune v; - uint8 b, t, d, x=ACCEPT; - - v=0, n=0, d=0; -nextbyte: - b = ((uint8 *)s)[-n++]; - t = decode[b]; - x = decode[256+x+t]; - - if(x > REJECT && n < UTFmax){ - v = v | ((b & TMask) << d); - d += 6; - goto nextbyte; - } - - if(x != ACCEPT) - *r = RuneErr; - else{ - v |= (((0xFFu >> t) & b) << d); - *r = v; - } - - return n; -} -- cgit v1.2.1