| 8181 | } |
| 8182 | |
| 8183 | void buf_append(const char *data, size_t n) { |
| 8184 | auto remaining_size = buf_size(); |
| 8185 | if (remaining_size > 0 && buf_spos_ > 0) { |
| 8186 | for (size_t i = 0; i < remaining_size; i++) { |
| 8187 | buf_[i] = buf_[buf_spos_ + i]; |
| 8188 | } |
| 8189 | } |
| 8190 | buf_spos_ = 0; |
| 8191 | buf_epos_ = remaining_size; |
| 8192 | |
| 8193 | if (remaining_size + n > buf_.size()) { buf_.resize(remaining_size + n); } |
| 8194 | |
| 8195 | for (size_t i = 0; i < n; i++) { |
| 8196 | buf_[buf_epos_ + i] = data[i]; |
| 8197 | } |
| 8198 | buf_epos_ += n; |
| 8199 | } |
| 8200 | |
| 8201 | void buf_erase(size_t size) { buf_spos_ += size; } |
| 8202 | |