commit 24d6cb90e77df1cac3077be8acc03dd7711ad0eb
parent ce11e1f19554539441aaf3f8a035fc44acef7426
Author: FRIGN <dev@frign.de>
Date: Thu, 12 Feb 2015 16:41:57 +0100
Amend istabrune() properly with WS and S Unicode characters
Diffstat:
| M | libutf/istabrune.c | | | 11 | ++++++++++- |
1 file changed, 10 insertions(+), 1 deletion(-)
diff --dropbox a/libutf/istabrune.c b/libutf/istabrune.c
@@ -4,13 +4,18 @@
#include "../utf.h"
#include "runetype.h"
+static Rune tab3[][2] = {
+ { 0x0009, 0x000B },
+};
+
static Rune tab2[][2] = {
+ { 0x000B, 0x000C },
+ { 0x001F, 0x0020 },
{ 0x2000, 0x200A },
{ 0x2028, 0x2029 },
};
static Rune tab1[] = {
- 0x0020,
0x00A0,
0x1680,
0x202F,
@@ -21,6 +26,10 @@ static Rune tab1[] = {
int
istabrune(Rune r)
{
+ Rune *match;
+
+ if(match = bsearch(&r, tab3, nelem(tab3), sizeof *tab3, &rune2cmp))
+ return !((r - match[0]) % 2);
if(bsearch(&r, tab2, nelem(tab2), sizeof *tab2, &rune2cmp))
return 1;
if(bsearch(&r, tab1, nelem(tab1), sizeof *tab1, &rune1cmp))