if (!parser->read_handler(parser->read_handler_data, parser->raw_buffer.last,
parser->raw_buffer.end - parser->raw_buffer.last, &size_read)) {
- return yaml_parser_set_reader_error(parser, "Input error",
+ return yaml_parser_set_reader_error(parser, "input error",
parser->offset, -1);
}
parser->raw_buffer.last += size_read;
while (parser->raw_buffer.pointer != parser->raw_buffer.last)
{
- unsigned int value, value2;
+ unsigned int value = 0, value2 = 0;
int incomplete = 0;
unsigned char octet;
- unsigned int width;
- int k, low, high;
- int raw_unread = parser->raw_buffer.last - parser->raw_buffer.pointer;
+ unsigned int width = 0;
+ int low, high;
+ size_t k;
+ size_t raw_unread = parser->raw_buffer.last - parser->raw_buffer.pointer;
/* Decode the next character. */
if (!width)
return yaml_parser_set_reader_error(parser,
- "Invalid leading UTF-8 octet",
+ "invalid leading UTF-8 octet",
parser->offset, octet);
/* Check if the raw buffer contains an incomplete character. */
if (width > raw_unread) {
if (parser->eof) {
return yaml_parser_set_reader_error(parser,
- "Incomplete UTF-8 octet sequence",
+ "incomplete UTF-8 octet sequence",
parser->offset, -1);
}
incomplete = 1;
if ((octet & 0xC0) != 0x80)
return yaml_parser_set_reader_error(parser,
- "Invalid trailing UTF-8 octet",
+ "invalid trailing UTF-8 octet",
parser->offset+k, octet);
/* Decode the octet. */
(width == 3 && value >= 0x800) ||
(width == 4 && value >= 0x10000)))
return yaml_parser_set_reader_error(parser,
- "Invalid length of a UTF-8 sequence",
+ "invalid length of a UTF-8 sequence",
parser->offset, -1);
/* Check the range of the value. */
if ((value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF)
return yaml_parser_set_reader_error(parser,
- "Invalid Unicode character",
+ "invalid Unicode character",
parser->offset, value);
break;
if (raw_unread < 2) {
if (parser->eof) {
return yaml_parser_set_reader_error(parser,
- "Incomplete UTF-16 character",
+ "incomplete UTF-16 character",
parser->offset, -1);
}
incomplete = 1;
if ((value & 0xFC00) == 0xDC00)
return yaml_parser_set_reader_error(parser,
- "Unexpected low surrogate area",
+ "unexpected low surrogate area",
parser->offset, value);
/* Check for a high surrogate area. */
if (raw_unread < 4) {
if (parser->eof) {
return yaml_parser_set_reader_error(parser,
- "Incomplete UTF-16 surrogate pair",
+ "incomplete UTF-16 surrogate pair",
parser->offset, -1);
}
incomplete = 1;
/* Get the next character. */
- unsigned int value2 = parser->raw_buffer.pointer[low+2]
+ value2 = parser->raw_buffer.pointer[low+2]
+ (parser->raw_buffer.pointer[high+2] << 8);
/* Check for a low surrogate area. */
if ((value2 & 0xFC00) != 0xDC00)
return yaml_parser_set_reader_error(parser,
- "Expected low surrogate area",
+ "expected low surrogate area",
parser->offset+2, value2);
/* Generate the value of the surrogate pair. */
}
break;
+
+ default:
+ assert(1); /* Impossible. */
}
/* Check if the raw buffer contains enough bytes to form a character. */
|| (value >= 0xE000 && value <= 0xFFFD)
|| (value >= 0x10000 && value <= 0x10FFFF)))
return yaml_parser_set_reader_error(parser,
- "Control characters are not allowed",
+ "control characters are not allowed",
parser->offset, value);
/* Move the raw pointers. */