aboutsummaryrefslogtreecommitdiff
path: root/core/encoding
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2023-07-31 11:37:14 +0100
committergingerBill <bill@gingerbill.org>2023-07-31 11:37:14 +0100
commit0de7df9eab9b256e0d1c8da7c9fc8c422c5ac1a7 (patch)
tree6f635a6fbc675797de0a47067165f7e54bd0abac /core/encoding
parent60e509b1e066da14461b3832307065726e651153 (diff)
Improve `//+vet`; remove `using` in many places; add `//+vet !using-stmt` where necessary
Diffstat (limited to 'core/encoding')
-rw-r--r--core/encoding/entity/entity.odin37
-rw-r--r--core/encoding/xml/debug_print.odin30
2 files changed, 30 insertions, 37 deletions
diff --git a/core/encoding/entity/entity.odin b/core/encoding/entity/entity.odin
index 694fcdffc..ec640c69f 100644
--- a/core/encoding/entity/entity.odin
+++ b/core/encoding/entity/entity.odin
@@ -184,28 +184,26 @@ decode_xml :: proc(input: string, options := XML_Decode_Options{}, allocator :=
advance :: proc(t: ^Tokenizer) -> (err: Error) {
if t == nil { return .Tokenizer_Is_Nil }
- using t
-
#no_bounds_check {
- if read_offset < len(src) {
- offset = read_offset
- r, w = rune(src[read_offset]), 1
+ if t.read_offset < len(t.src) {
+ t.offset = t.read_offset
+ t.r, t.w = rune(t.src[t.read_offset]), 1
switch {
- case r == 0:
+ case t.r == 0:
return .Illegal_NUL_Character
- case r >= utf8.RUNE_SELF:
- r, w = utf8.decode_rune_in_string(src[read_offset:])
- if r == utf8.RUNE_ERROR && w == 1 {
+ case t.r >= utf8.RUNE_SELF:
+ t.r, t.w = utf8.decode_rune_in_string(t.src[t.read_offset:])
+ if t.r == utf8.RUNE_ERROR && t.w == 1 {
return .Illegal_UTF_Encoding
- } else if r == utf8.RUNE_BOM && offset > 0 {
+ } else if t.r == utf8.RUNE_BOM && t.offset > 0 {
return .Illegal_BOM
}
}
- read_offset += w
+ t.read_offset += t.w
return .None
} else {
- offset = len(src)
- r = -1
+ t.offset = len(t.src)
+ t.r = -1
return
}
}
@@ -273,26 +271,25 @@ _extract_xml_entity :: proc(t: ^Tokenizer) -> (entity: string, err: Error) {
All of these would be in the ASCII range.
Even if one is not, it doesn't matter. All characters we need to compare to extract are.
*/
- using t
length := len(t.src)
found := false
#no_bounds_check {
- for read_offset < length {
- if src[read_offset] == ';' {
+ for t.read_offset < length {
+ if t.src[t.read_offset] == ';' {
+ t.read_offset += 1
found = true
- read_offset += 1
break
}
- read_offset += 1
+ t.read_offset += 1
}
}
if found {
- return string(src[offset + 1 : read_offset - 1]), .None
+ return string(t.src[t.offset + 1 : t.read_offset - 1]), .None
}
- return string(src[offset : read_offset]), .Invalid_Entity_Encoding
+ return string(t.src[t.offset : t.read_offset]), .Invalid_Entity_Encoding
}
/*
diff --git a/core/encoding/xml/debug_print.odin b/core/encoding/xml/debug_print.odin
index 0736e8893..b97617a8a 100644
--- a/core/encoding/xml/debug_print.odin
+++ b/core/encoding/xml/debug_print.odin
@@ -19,43 +19,39 @@ import "core:fmt"
*/
print :: proc(writer: io.Writer, doc: ^Document) -> (written: int, err: io.Error) {
if doc == nil { return }
- using fmt
-
- written += wprintf(writer, "[XML Prolog]\n")
+ written += fmt.wprintf(writer, "[XML Prolog]\n")
for attr in doc.prologue {
- written += wprintf(writer, "\t%v: %v\n", attr.key, attr.val)
+ written += fmt.wprintf(writer, "\t%v: %v\n", attr.key, attr.val)
}
- written += wprintf(writer, "[Encoding] %v\n", doc.encoding)
+ written += fmt.wprintf(writer, "[Encoding] %v\n", doc.encoding)
if len(doc.doctype.ident) > 0 {
- written += wprintf(writer, "[DOCTYPE] %v\n", doc.doctype.ident)
+ written += fmt.wprintf(writer, "[DOCTYPE] %v\n", doc.doctype.ident)
if len(doc.doctype.rest) > 0 {
- wprintf(writer, "\t%v\n", doc.doctype.rest)
+ fmt.wprintf(writer, "\t%v\n", doc.doctype.rest)
}
}
for comment in doc.comments {
- written += wprintf(writer, "[Pre-root comment] %v\n", comment)
+ written += fmt.wprintf(writer, "[Pre-root comment] %v\n", comment)
}
if len(doc.elements) > 0 {
- wprintln(writer, " --- ")
+ fmt.wprintln(writer, " --- ")
print_element(writer, doc, 0)
- wprintln(writer, " --- ")
+ fmt.wprintln(writer, " --- ")
}
return written, .None
}
print_element :: proc(writer: io.Writer, doc: ^Document, element_id: Element_ID, indent := 0) -> (written: int, err: io.Error) {
- using fmt
-
tab :: proc(writer: io.Writer, indent: int) {
for _ in 0..=indent {
- wprintf(writer, "\t")
+ fmt.wprintf(writer, "\t")
}
}
@@ -64,13 +60,13 @@ print_element :: proc(writer: io.Writer, doc: ^Document, element_id: Element_ID,
element := doc.elements[element_id]
if element.kind == .Element {
- wprintf(writer, "<%v>\n", element.ident)
+ fmt.wprintf(writer, "<%v>\n", element.ident)
for value in element.value {
switch v in value {
case string:
tab(writer, indent + 1)
- wprintf(writer, "[Value] %v\n", v)
+ fmt.wprintf(writer, "[Value] %v\n", v)
case Element_ID:
print_element(writer, doc, v, indent + 1)
}
@@ -78,10 +74,10 @@ print_element :: proc(writer: io.Writer, doc: ^Document, element_id: Element_ID,
for attr in element.attribs {
tab(writer, indent + 1)
- wprintf(writer, "[Attr] %v: %v\n", attr.key, attr.val)
+ fmt.wprintf(writer, "[Attr] %v: %v\n", attr.key, attr.val)
}
} else if element.kind == .Comment {
- wprintf(writer, "[COMMENT] %v\n", element.value)
+ fmt.wprintf(writer, "[COMMENT] %v\n", element.value)
}
return written, .None