| 61 | } |
| 62 | |
| 63 | bool wait_for_pending_input(int checks, int delay_ms) { |
| 64 | for (int i = 0; i < checks; ++i) { |
| 65 | std::this_thread::sleep_for(std::chrono::milliseconds(delay_ms)); |
| 66 | if (stdin_has_pending_input(0)) { |
| 67 | return true; |
| 68 | } |
| 69 | } |
| 70 | return false; |
| 71 | } |
| 72 | |
| 73 | void trim_trailing_empty_lines(std::vector<std::string>& lines) { |
| 74 | while (lines.size() > 1 && lines.back().empty()) { |
no test coverage detected