[deserialize] One more fix
diff --git a/src/hb-buffer-deserialize-text-unicode.hh b/src/hb-buffer-deserialize-text-unicode.hh
index 1e3e427..05711ca 100644
--- a/src/hb-buffer-deserialize-text-unicode.hh
+++ b/src/hb-buffer-deserialize-text-unicode.hh
@@ -34,18 +34,18 @@
#line 33 "hb-buffer-deserialize-text-unicode.hh"
static const unsigned char _deserialize_text_unicode_trans_keys[] = {
- 0u, 0u, 9u, 117u, 43u, 102u, 48u, 102u, 9u, 124u, 9u, 124u, 48u, 57u, 9u, 124u,
- 9u, 124u, 0u, 0u, 9u, 117u, 0
+ 0u, 0u, 9u, 117u, 43u, 102u, 48u, 102u, 48u, 57u, 9u, 124u, 9u, 124u, 9u, 124u,
+ 9u, 124u, 0
};
static const char _deserialize_text_unicode_key_spans[] = {
- 0, 109, 60, 55, 116, 116, 10, 116,
- 116, 0, 109
+ 0, 109, 60, 55, 10, 116, 116, 116,
+ 116
};
static const short _deserialize_text_unicode_index_offsets[] = {
- 0, 0, 110, 171, 227, 344, 461, 472,
- 589, 706, 707
+ 0, 0, 110, 171, 227, 238, 355, 472,
+ 589
};
static const char _deserialize_text_unicode_indicies[] = {
@@ -77,28 +77,26 @@
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 4, 4, 4,
- 4, 4, 4, 1, 5, 5, 5, 5,
- 5, 1, 1, 1, 1, 1, 1, 1,
+ 4, 4, 4, 1, 5, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 1, 7,
+ 7, 7, 7, 7, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 5, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 7, 1,
1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 1, 1, 1,
- 7, 8, 1, 1, 6, 6, 6, 6,
- 6, 6, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8,
+ 1, 1, 1, 9, 1, 1, 1, 8,
+ 8, 8, 8, 8, 8, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 6, 6, 6, 6,
- 6, 6, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 9,
- 1, 10, 10, 10, 10, 10, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 8,
+ 8, 8, 8, 8, 8, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
- 10, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 10, 1, 11, 11, 11, 11,
+ 11, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 11, 1,
+ 1, 1, 1, 11, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
@@ -106,15 +104,14 @@
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 12, 1, 13, 14,
- 14, 14, 14, 14, 14, 14, 14, 14,
- 1, 15, 15, 15, 15, 15, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
- 15, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 0,
+ 1, 12, 12, 12, 12, 12, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 16, 1,
+ 12, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
@@ -122,14 +119,16 @@
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 17, 1, 15, 15,
- 15, 15, 15, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 15, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 1,
- 1, 1, 1, 16, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 13, 1, 12, 12,
+ 12, 12, 12, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 12, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
@@ -137,37 +136,27 @@
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
- 1, 17, 1, 1, 0, 0, 0, 0,
- 0, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 0, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 1, 0
+ 1, 13, 1, 0
};
static const char _deserialize_text_unicode_trans_targs[] = {
- 1, 0, 2, 3, 4, 5, 4, 6,
- 9, 10, 5, 9, 10, 7, 8, 5,
- 9, 10, 8
+ 1, 0, 2, 3, 5, 7, 8, 6,
+ 5, 4, 1, 6, 6, 1, 8
};
static const char _deserialize_text_unicode_trans_actions[] = {
- 0, 0, 1, 0, 2, 3, 0, 4,
- 3, 3, 0, 0, 0, 2, 2, 5,
- 5, 5, 0
+ 0, 0, 1, 0, 2, 2, 2, 3,
+ 0, 4, 3, 0, 5, 5, 0
+};
+
+static const char _deserialize_text_unicode_eof_actions[] = {
+ 0, 0, 0, 0, 0, 3, 0, 5,
+ 5
};
static const int deserialize_text_unicode_start = 1;
-static const int deserialize_text_unicode_first_final = 9;
+static const int deserialize_text_unicode_first_final = 5;
static const int deserialize_text_unicode_error = 0;
static const int deserialize_text_unicode_en_main = 1;
@@ -190,7 +179,7 @@
if (p < pe && *p == (buffer->len ? '|' : '<'))
*end_ptr = ++p;
- const char *end = strchr ((char *) p, ']');
+ const char *end = strchr ((char *) p, '>');
if (end)
pe = eof = end;
else
@@ -208,12 +197,12 @@
hb_glyph_info_t info = {0};
const hb_glyph_position_t pos = {0};
-#line 205 "hb-buffer-deserialize-text-unicode.hh"
+#line 194 "hb-buffer-deserialize-text-unicode.hh"
{
cs = deserialize_text_unicode_start;
}
-#line 208 "hb-buffer-deserialize-text-unicode.hh"
+#line 197 "hb-buffer-deserialize-text-unicode.hh"
{
int _slen;
int _trans;
@@ -280,7 +269,7 @@
*end_ptr = p;
}
break;
-#line 267 "hb-buffer-deserialize-text-unicode.hh"
+#line 256 "hb-buffer-deserialize-text-unicode.hh"
}
_again:
@@ -289,6 +278,39 @@
if ( ++p != pe )
goto _resume;
_test_eof: {}
+ if ( p == eof )
+ {
+ switch ( _deserialize_text_unicode_eof_actions[cs] ) {
+ case 3:
+#line 55 "hb-buffer-deserialize-text-unicode.rl"
+ {if (!parse_hex (tok, p, &info.codepoint )) return false; }
+#line 42 "hb-buffer-deserialize-text-unicode.rl"
+ {
+ buffer->add_info (info);
+ if (unlikely (!buffer->successful))
+ return false;
+ if (buffer->have_positions)
+ buffer->pos[buffer->len - 1] = pos;
+ *end_ptr = p;
+}
+ break;
+ case 5:
+#line 57 "hb-buffer-deserialize-text-unicode.rl"
+ { if (!parse_uint (tok, p, &info.cluster )) return false; }
+#line 42 "hb-buffer-deserialize-text-unicode.rl"
+ {
+ buffer->add_info (info);
+ if (unlikely (!buffer->successful))
+ return false;
+ if (buffer->have_positions)
+ buffer->pos[buffer->len - 1] = pos;
+ *end_ptr = p;
+}
+ break;
+#line 289 "hb-buffer-deserialize-text-unicode.hh"
+ }
+ }
+
_out: {}
}
diff --git a/src/hb-buffer-deserialize-text-unicode.rl b/src/hb-buffer-deserialize-text-unicode.rl
index 3d4d53c..d358adc 100644
--- a/src/hb-buffer-deserialize-text-unicode.rl
+++ b/src/hb-buffer-deserialize-text-unicode.rl
@@ -72,7 +72,7 @@
%add_item
;
-unicodes = unicode_item (space* '|' space* unicode_item)* space* ('|'|'>');
+unicodes = unicode_item (space* '|' space* unicode_item)* space*;
main := space* unicodes;
@@ -92,7 +92,7 @@
if (p < pe && *p == (buffer->len ? '|' : '<'))
*end_ptr = ++p;
- const char *end = strchr ((char *) p, ']');
+ const char *end = strchr ((char *) p, '>');
if (end)
pe = eof = end;
else