tuc: read invalid utf-8 characters byte by byte - neatvi - [fork] simple vi-type editor with UTF-8 support
(HTM) git clone git://src.adamsgaard.dk/neatvi
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
---
(DIR) commit 20cc8817475554d8448632970ff7c8d84ed2f9e2
(DIR) parent 5eaaf403f7dc6a08f434aea8825e692102bf258a
(HTM) Author: Ali Gholami Rudi <ali@rudi.ir>
Date: Mon, 23 May 2016 21:22:12 +0430
uc: read invalid utf-8 characters byte by byte
Diffstat:
M regex.c | 4 +++-
M uc.c | 4 +++-
2 files changed, 6 insertions(+), 2 deletions(-)
---
(DIR) diff --git a/regex.c b/regex.c
t@@ -96,8 +96,10 @@ static void rnode_free(struct rnode *rnode)
static int uc_len(char *s)
{
int c = (unsigned char) s[0];
- if (~c & 0x80)
+ if (~c & 0x80) /* ASCII */
return c > 0;
+ if (~c & 0x40) /* invalid UTF-8 */
+ return 1;
if (~c & 0x20)
return 2;
if (~c & 0x10)
(DIR) diff --git a/uc.c b/uc.c
t@@ -10,8 +10,10 @@
int uc_len(char *s)
{
int c = (unsigned char) s[0];
- if (~c & 0x80)
+ if (~c & 0x80) /* ASCII */
return c > 0;
+ if (~c & 0x40) /* invalid UTF-8 */
+ return 1;
if (~c & 0x20)
return 2;
if (~c & 0x10)