diff options
| author | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2022-04-30 14:51:46 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-30 14:51:46 +0200 |
| commit | 41a18f078dc6044df484cc79f2ebcc25e81fddf4 (patch) | |
| tree | 1e3ef406e8dcd2b1127f2e46b964ec03da929447 | |
| parent | b758c696f2b07a1bcdd2d5a6bb723e286dcfca75 (diff) | |
| parent | 3978e7e1cac9305698e9270fec02d7cd9557cf35 (diff) | |
Merge pull request #1757 from Kelimion/xml
[xml] Add `parse_from_string` overload.
| -rw-r--r-- | core/encoding/xml/xml_reader.odin | 13 | ||||
| -rw-r--r-- | tests/core/encoding/xml/test_core_xml.odin | 2 |
2 files changed, 11 insertions, 4 deletions
diff --git a/core/encoding/xml/xml_reader.odin b/core/encoding/xml/xml_reader.odin index 6d0d4e1aa..151d44e2a 100644 --- a/core/encoding/xml/xml_reader.odin +++ b/core/encoding/xml/xml_reader.odin @@ -493,7 +493,16 @@ parse_from_slice :: proc(data: []u8, options := DEFAULT_Options, path := "", err return doc, .None } -parse_from_file :: proc(filename: string, options := DEFAULT_Options, error_handler := default_error_handler, allocator := context.allocator) -> (doc: ^Document, err: Error) { +parse_from_string :: proc(data: string, options := DEFAULT_Options, path := "", error_handler := default_error_handler, allocator := context.allocator) -> (doc: ^Document, err: Error) { + _data := transmute([]u8)data + + return parse_from_slice(_data, options, path, error_handler, allocator) +} + +parse :: proc { parse_from_string, parse_from_slice } + +// Load an XML file +load_from_file :: proc(filename: string, options := DEFAULT_Options, error_handler := default_error_handler, allocator := context.allocator) -> (doc: ^Document, err: Error) { context.allocator = allocator options := options @@ -505,8 +514,6 @@ parse_from_file :: proc(filename: string, options := DEFAULT_Options, error_hand return parse_from_slice(data, options, filename, error_handler, allocator) } -parse :: proc { parse_from_file, parse_from_slice } - destroy :: proc(doc: ^Document) { if doc == nil { return } diff --git a/tests/core/encoding/xml/test_core_xml.odin b/tests/core/encoding/xml/test_core_xml.odin index 07cbc1779..c8b02b635 100644 --- a/tests/core/encoding/xml/test_core_xml.odin +++ b/tests/core/encoding/xml/test_core_xml.odin @@ -295,7 +295,7 @@ run_tests :: proc(t: ^testing.T) { path := test_file_path(test.filename) log(t, fmt.tprintf("Trying to parse %v", path)) - doc, err := xml.parse(path, test.options, Silent) + doc, err := xml.load_from_file(path, test.options, Silent) defer xml.destroy(doc) tree_string := doc_to_string(doc) |