From ab74b8283d48ca96ea800298ae0f227a9cc0eb99 Mon Sep 17 00:00:00 2001 From: StudebakerGuy <> Date: Tue, 23 Dec 2025 09:35:09 -0500 Subject: 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. --- core/encoding/xml/xml_reader.odin | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'core/encoding/xml/xml_reader.odin') 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 ` (id: Element_ID) { cur := doc.element_count doc.element_count += 1 return cur -} \ No newline at end of file +} -- cgit v1.2.3 From dc37ff50368f30742f422ea15d6373df67bcb13e Mon Sep 17 00:00:00 2001 From: StudebakerGuy <> Date: Wed, 7 Jan 2026 18:44:30 -0500 Subject: Comments before first emlement not being captured The xml library was not correctly detect that a comment occured before the first element. This addresses the issue, but the comment incorrectly includes --. --- core/encoding/xml/xml_reader.odin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'core/encoding/xml/xml_reader.odin') diff --git a/core/encoding/xml/xml_reader.odin b/core/encoding/xml/xml_reader.odin index 99d73670b..5e056177e 100644 --- a/core/encoding/xml/xml_reader.odin +++ b/core/encoding/xml/xml_reader.odin @@ -294,7 +294,7 @@ parse_bytes :: proc(data: []u8, options := DEFAULT_OPTIONS, path := "", error_ha comment := scan_comment(t) or_return if .Intern_Comments in opts.flags { - if len(doc.elements) == 0 { + if doc.element_count == 0 { append(&doc.comments, comment) } else { el := new_element(doc) -- cgit v1.2.3 From 56445dff970d4fb2a8b4652f204d9930296937e5 Mon Sep 17 00:00:00 2001 From: Isabella Basso Date: Sun, 25 Jan 2026 21:33:05 -0300 Subject: encoding/xml: pass allocator on destroy --- core/encoding/xml/xml_reader.odin | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'core/encoding/xml/xml_reader.odin') diff --git a/core/encoding/xml/xml_reader.odin b/core/encoding/xml/xml_reader.odin index 5e056177e..8f8fffe14 100644 --- a/core/encoding/xml/xml_reader.odin +++ b/core/encoding/xml/xml_reader.odin @@ -386,7 +386,8 @@ load_from_file :: proc(filename: string, options := DEFAULT_OPTIONS, error_handl return parse_bytes(data, options, filename, error_handler, allocator) } -destroy :: proc(doc: ^Document) { +destroy :: proc(doc: ^Document, allocator := context.allocator) { + context.allocator = allocator if doc == nil { return } for el in doc.elements { -- cgit v1.2.3