Update the raw buffer.
(parser *yaml_parser_t)
| 76 | |
| 77 | // Update the raw buffer. |
| 78 | func yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool { |
| 79 | size_read := 0 |
| 80 | |
| 81 | // Return if the raw buffer is full. |
| 82 | if parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) { |
| 83 | return true |
| 84 | } |
| 85 | |
| 86 | // Return on EOF. |
| 87 | if parser.eof { |
| 88 | return true |
| 89 | } |
| 90 | |
| 91 | // Move the remaining bytes in the raw buffer to the beginning. |
| 92 | if parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) { |
| 93 | copy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:]) |
| 94 | } |
| 95 | parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos] |
| 96 | parser.raw_buffer_pos = 0 |
| 97 | |
| 98 | // Call the read handler to fill the buffer. |
| 99 | size_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)]) |
| 100 | parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read] |
| 101 | if err == io.EOF { |
| 102 | parser.eof = true |
| 103 | } else if err != nil { |
| 104 | return yaml_parser_set_reader_error(parser, "input error: "+err.Error(), parser.offset, -1) |
| 105 | } |
| 106 | return true |
| 107 | } |
| 108 | |
| 109 | // Ensure that the buffer contains at least `length` characters. |
| 110 | // Return true on success, false on failure. |
no test coverage detected