diff options
author | Yuki Izumi <kivikakk@github.com> | 2016-11-05 09:04:48 +1100 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2016-11-04 23:04:48 +0100 |
commit | 64e1394ae76409f02b00c254f119a64a2d1ce11e (patch) | |
tree | 4ad30178f0a166666dce869ea5efeb3537cbd61e /src | |
parent | 14fe768690b3948c7c1f67f463eb4620fc5746c9 (diff) |
Fix for non-matching entities (#161)
* Add test to illustrate issue
* Provide some test fixes
* Don't neglect CounterClockwiseContourIntegral
* Fix ~10% of cases not matching
strncmp returns 0 if the first 'len' bytes of cmark_entities[i].entity
match s; we check equal length in the first if by checking if
cmark_entities[i].entity[len] == 0, but we neglect the case where cmp ==
0 && cmark_entities[i].entity[len] != 0. This should be treated as the
same as cmp < 0, because strcmp("abc", "abcd") < 0.
* Don't depend on py3.3 in tests
Diffstat (limited to 'src')
-rw-r--r-- | src/entities.inc | 2 | ||||
-rw-r--r-- | src/houdini_html_u.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/entities.inc b/src/entities.inc index ec3d2a9..a7c36e2 100644 --- a/src/entities.inc +++ b/src/entities.inc @@ -6,7 +6,7 @@ struct cmark_entity_node { }; #define CMARK_ENTITY_MIN_LENGTH 2 -#define CMARK_ENTITY_MAX_LENGTH 31 +#define CMARK_ENTITY_MAX_LENGTH 32 #define CMARK_NUM_ENTITIES 2125 static const struct cmark_entity_node cmark_entities[] = { diff --git a/src/houdini_html_u.c b/src/houdini_html_u.c index 6e8d620..30d08aa 100644 --- a/src/houdini_html_u.c +++ b/src/houdini_html_u.c @@ -16,7 +16,7 @@ static const unsigned char *S_lookup(int i, int low, int hi, strncmp((const char *)s, (const char *)cmark_entities[i].entity, len); if (cmp == 0 && cmark_entities[i].entity[len] == 0) { return (const unsigned char *)cmark_entities[i].bytes; - } else if (cmp < 0 && i > low) { + } else if (cmp <= 0 && i > low) { j = i - ((i - low) / 2); if (j == i) j -= 1; |