| 2185 | } |
| 2186 | |
| 2187 | inline bool stream_line_reader::getline() { |
| 2188 | fixed_buffer_used_size_ = 0; |
| 2189 | glowable_buffer_.clear(); |
| 2190 | |
| 2191 | for (size_t i = 0;; i++) { |
| 2192 | char byte; |
| 2193 | auto n = strm_.read(&byte, 1); |
| 2194 | |
| 2195 | if (n < 0) { |
| 2196 | return false; |
| 2197 | } else if (n == 0) { |
| 2198 | if (i == 0) { |
| 2199 | return false; |
| 2200 | } else { |
| 2201 | break; |
| 2202 | } |
| 2203 | } |
| 2204 | |
| 2205 | append(byte); |
| 2206 | |
| 2207 | if (byte == '\n') { break; } |
| 2208 | } |
| 2209 | |
| 2210 | return true; |
| 2211 | } |
| 2212 | |
| 2213 | inline void stream_line_reader::append(char c) { |
| 2214 | if (fixed_buffer_used_size_ < fixed_buffer_size_ - 1) { |
no test coverage detected