Max Brunsfeld
a1df9b785c
Use new tree-sitter highlight API in property sheets
2019-05-10 09:16:19 -07:00
Max Brunsfeld
95500a29f8
Merge pull request #9 from tree-sitter/signed-unsigned
...
Correctly cast `name_length`
2019-04-08 13:15:20 -07:00
Max Brunsfeld
4c7d5fe26c
Don't scan opening tag names during error recovery
2019-03-03 18:21:25 -08:00
Phil Turnbull
76f96c5979
Correctly cast `name_length`
...
`buffer[i++]` is a `signed char` so this cast does not correctly handle
negative values. If a custom tag has a length greater than 128 then
`buffer[i++]` is negative and so the `(uint16_t)` cast will cast it to a large
unsigned integer. This causes an out-of-bound read when reading the tag name.
We need to cast `name_length` to a `uint8_t` first, then widen to a `uint16_t`.
2019-02-26 12:05:01 -05:00
Max Brunsfeld
cc9971242f
Regenerate
2019-02-19 11:11:35 -08:00
Max Brunsfeld
30b7bf0f46
Make distinct nodes for style/script, set up injection
2018-12-14 17:43:41 -08:00
Max Brunsfeld
57b42ed645
Add property sheet for syntax highlighting
2018-12-13 17:23:56 -08:00
Benjamin Gray
4df104a855
Fix comment bug
2018-10-29 11:44:27 +11:00
Max Brunsfeld
2d69fcd54f
⬆️ tree-sitter-cli
2018-08-30 13:00:47 -07:00
Max Brunsfeld
50073cde62
⬆️ tree-sitter-cli for alias improvements
2018-08-30 11:28:22 -07:00
Max Brunsfeld
0f2d7e1083
Always serialize the full depth of the tag stack
2018-08-29 11:01:00 -07:00
Phil Turnbull
37b1bd4eef
Serialize as many tags as possible
2018-08-08 12:21:44 -04:00
Phil Turnbull
5877d9a30d
Prevent out-of-bounds read when deserializing
...
We first serialize the total number of tags, then serialize each individual
tag. If we don't have enough space to serialize a particular tag we stop
serializing any remaining tags.
However, this causes an out-of-bounds read when deserializing because there are
less tags than expected. Just bail when there are too many tags to serialize.
2018-08-07 14:40:33 -04:00
Phil Turnbull
e541c9b64b
Avoid integer cast issues when deserializing tags
...
`buffer` contains signed chars, so if a tag length is greater than 128 then it
is treated as a negative value when deserializing. The negative signed char is
then implicitly cast to a large unsigned integer. Explicitly cast the values to
signed chars
Co-authored-by: Rahul Zhade <zhade3@github.com>
2018-08-07 14:18:24 -04:00
Phil Turnbull
2eda6161d6
Avoid integer truncation when serializing tag lengths
...
A tag longer than 255 characters will be incorrectly serialized.
Co-authored-by: Rahul Zhade <zhade3@github.com>
2018-08-07 14:18:24 -04:00
Phil Turnbull
3e586b10fc
Fixed error where empty vector was being popped from
...
Co-authored-by: Rahul Zhade <zhade3@github.com>
2018-08-07 14:18:18 -04:00
Max Brunsfeld
083e6b9fbd
Fix off-by-one error in scanner buffer size limit
2018-07-18 13:19:03 -07:00
Max Brunsfeld
e74795bc0d
Use unsigned, not size_t, for serializing tag stack size
2018-07-18 11:32:04 -07:00
Max Brunsfeld
70533673a2
Use std::memcpy from <cstring>
2018-07-18 11:30:49 -07:00
Max Brunsfeld
b04bf7b507
⬆️ tree-sitter-cli (new ABI version)
2018-07-18 11:24:49 -07:00
Max Brunsfeld
c9b0de0410
Fix memory errors for deeply-nested HTML
2018-07-18 11:24:15 -07:00
Max Brunsfeld
5d8c68c137
Fix range of script tag content
2018-06-28 20:32:27 -07:00
Max Brunsfeld
6222cd9127
Use NULL instead of nullptr
2018-06-18 10:17:38 -07:00
Max Brunsfeld
3ba95dbf3e
Represent tag name map as a std::map
...
This doesn't seem to affect performance, and unordered_map requires
C++11.
2018-06-18 10:05:44 -07:00
Max Brunsfeld
331b0a4b00
Include tag stack size when serializing external scanner
2018-06-18 10:04:59 -07:00
Max Brunsfeld
2a3ef3b7b1
Build tag map with a static method instead of an initializer list
2018-06-15 16:09:46 -07:00
Max Brunsfeld
8e6d71bd54
Don't use fancy enum features
2018-06-15 16:09:46 -07:00
Max Brunsfeld
3fce691fae
Use a regular constructor instead of aggregate initialization
2018-06-15 16:09:46 -07:00
Max Brunsfeld
8afd99e35e
Use explicit types instead of auto
2018-06-15 16:09:45 -07:00
Max Brunsfeld
6923b13394
Remove one range-based for loop
2018-06-15 16:09:45 -07:00
Max Brunsfeld
5def8f2a86
Use string methods for copying bytes, not loops
2018-06-15 16:09:45 -07:00
Max Brunsfeld
43f84098b8
Fix crash on unexpected closing tag after error
2018-06-15 15:36:30 -07:00
Max Brunsfeld
95b8b772d5
Handle void tags at EOF
2018-06-12 14:06:16 -07:00
Max Brunsfeld
b4153cd431
Avoid designated initializer syntax for static array
...
Clang seems to allow this, but it's only for C, not C++
2018-06-12 13:49:54 -07:00
Max Brunsfeld
5f2a122de7
Parse tag names as separate tokens
2018-06-12 12:20:13 -07:00
Max Brunsfeld
7cfe147792
Handle elements with optional end tags (li, p, etc)
...
Co-Authored-By: Ashi Krishnan <queerviolet@github.com>
2018-06-12 10:51:03 -07:00
Max Brunsfeld
43e4826bb7
Use toupper, iswspace from cwctype header
2018-06-11 17:22:50 -07:00
Max Brunsfeld
21b5fad6f0
Add raw text elements and doctypes
...
Co-Authored-By: Ashi Krishnan <queerviolet@github.com>
2018-06-11 16:59:44 -07:00
Max Brunsfeld
e56df0fc7f
Add comments, allow slashes in unquoted attribute values
...
Co-Authored-By: Ashi Krishan <queerviolet@github.com>
2018-06-11 16:59:44 -07:00
Max Brunsfeld
6ee8f55084
Start tracking element nesting in external scanner
...
Co-Authored-By: Ashi Krishan <queerviolet@github.com>
2018-06-11 16:59:44 -07:00
Max Brunsfeld
e74d96c27b
Initial commit
...
Co-Authored-By: Ashi Krishan <queerviolet@github.com>
2018-06-11 16:59:22 -07:00