diff options
| author | StudebakerGuy <> | 2025-12-23 09:35:09 -0500 |
|---|---|---|
| committer | StudebakerGuy <> | 2025-12-23 09:35:09 -0500 |
| commit | ab74b8283d48ca96ea800298ae0f227a9cc0eb99 (patch) | |
| tree | 15f3bb0457c5382588b56202fbe91450e9396f0f /core | |
| parent | 732a091eee1339958c0cc1fb5c5309a2e3eab3d9 (diff) | |
Address issue identifying of CDATA
The XML library wasn't identifying CDATA and skipping over it.
This was found when CDATA contained a <. This patch addresses
that issue.
Diffstat (limited to 'core')
| -rw-r--r-- | core/encoding/xml/xml_reader.odin | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/core/encoding/xml/xml_reader.odin b/core/encoding/xml/xml_reader.odin index 0e773fd8a..99d73670b 100644 --- a/core/encoding/xml/xml_reader.odin +++ b/core/encoding/xml/xml_reader.odin @@ -308,6 +308,7 @@ parse_bytes :: proc(data: []u8, options := DEFAULT_OPTIONS, path := "", error_ha case .Open_Bracket: // This could be a CDATA tag part of a tag's body. Unread the `<![` t.offset -= 3 + t.read_offset = t.offset // Instead of calling `parse_body` here, we could also `continue loop` // and fall through to the `case:` at the bottom of the outer loop. @@ -625,4 +626,4 @@ new_element :: proc(doc: ^Document) -> (id: Element_ID) { cur := doc.element_count doc.element_count += 1 return cur -}
\ No newline at end of file +} |