|
@@ -134,9 +134,9 @@ func yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool {
|
|
|
first = false
|
|
first = false
|
|
|
|
|
|
|
|
// Decode the raw buffer.
|
|
// Decode the raw buffer.
|
|
|
|
|
+ inner:
|
|
|
for parser.raw_buffer_pos != len(parser.raw_buffer) {
|
|
for parser.raw_buffer_pos != len(parser.raw_buffer) {
|
|
|
- var value, value2 rune
|
|
|
|
|
- var incomplete bool
|
|
|
|
|
|
|
+ var value rune
|
|
|
var width int
|
|
var width int
|
|
|
|
|
|
|
|
raw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos
|
|
raw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos
|
|
@@ -187,8 +187,7 @@ func yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool {
|
|
|
"incomplete UTF-8 octet sequence",
|
|
"incomplete UTF-8 octet sequence",
|
|
|
parser.offset, -1)
|
|
parser.offset, -1)
|
|
|
}
|
|
}
|
|
|
- incomplete = true
|
|
|
|
|
- break
|
|
|
|
|
|
|
+ break inner
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Decode the leading octet.
|
|
// Decode the leading octet.
|
|
@@ -278,8 +277,7 @@ func yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool {
|
|
|
"incomplete UTF-16 character",
|
|
"incomplete UTF-16 character",
|
|
|
parser.offset, -1)
|
|
parser.offset, -1)
|
|
|
}
|
|
}
|
|
|
- incomplete = true
|
|
|
|
|
- break
|
|
|
|
|
|
|
+ break inner
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Get the character.
|
|
// Get the character.
|
|
@@ -304,12 +302,11 @@ func yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool {
|
|
|
"incomplete UTF-16 surrogate pair",
|
|
"incomplete UTF-16 surrogate pair",
|
|
|
parser.offset, -1)
|
|
parser.offset, -1)
|
|
|
}
|
|
}
|
|
|
- incomplete = true
|
|
|
|
|
- break
|
|
|
|
|
|
|
+ break inner
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Get the next character.
|
|
// Get the next character.
|
|
|
- value2 = rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) +
|
|
|
|
|
|
|
+ value2 := rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) +
|
|
|
(rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8)
|
|
(rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8)
|
|
|
|
|
|
|
|
// Check for a low surrogate area.
|
|
// Check for a low surrogate area.
|
|
@@ -329,11 +326,6 @@ func yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool {
|
|
|
panic("impossible")
|
|
panic("impossible")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // Check if the raw buffer contains enough bytes to form a character.
|
|
|
|
|
- if incomplete {
|
|
|
|
|
- break
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
// Check if the character is in the allowed range:
|
|
// Check if the character is in the allowed range:
|
|
|
// #x9 | #xA | #xD | [#x20-#x7E] (8 bit)
|
|
// #x9 | #xA | #xD | [#x20-#x7E] (8 bit)
|
|
|
// | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD] (16 bit)
|
|
// | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD] (16 bit)
|