| 1715 | } |
| 1716 | |
| 1717 | static int yaml_decode_plain(const char *data, size_t start, size_t end, yaml_buf_t *decoded) { |
| 1718 | const char *indicators = "-?:,[]{}#&*!|>@`"; |
| 1719 | if (strchr(indicators, data[start]) != NULL) { |
| 1720 | return YAML_ERROR; |
| 1721 | } |
| 1722 | for (size_t i = start; i < end; i++) { |
| 1723 | char c = data[i]; |
| 1724 | if ((c == ':' && i + YAML_UNIT < end && data[i + YAML_UNIT] == ' ') || |
| 1725 | (c == '#' && i > start && data[i - YAML_UNIT] == ' ')) { |
| 1726 | return YAML_ERROR; |
| 1727 | } |
| 1728 | } |
| 1729 | return yaml_buf_append(decoded, data + start, end - start); |
| 1730 | } |
| 1731 | |
| 1732 | static int yaml_decode_scalar(const char *data, size_t start, size_t end, char **out_value) { |
| 1733 | start = yaml_skip_spaces(data, start, end); |
no test coverage detected