diff options
Diffstat (limited to 'src/base/utf/canfit.c')
-rw-r--r-- | src/base/utf/canfit.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/base/utf/canfit.c b/src/base/utf/canfit.c new file mode 100644 index 0000000..4579ab3 --- /dev/null +++ b/src/base/utf/canfit.c @@ -0,0 +1,23 @@ +#include "internal.h" + +/* returns 1 if string of length n is long enough to be decoded */ +int +utf8·canfit(byte* s, int n) +{ + int i; + rune c; + + if(n <= 0) + return 0; + + c = *(ubyte*)s; + if(c < TByte1) + return 1; + + if(c < TByte3) + return n >= 2; + if(c < TByte4) + return n >= 3; + + return n >= UTFmax; +} |