diff options
author | bptato <nincsnevem662@gmail.com> | 2025-01-18 14:53:38 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2025-01-18 14:53:38 +0100 |
commit | 2bde1a2b91fa9a0cdbc853b47f773c7f7828bc0b (patch) | |
tree | cbac20fb97cf52b16457108657e249d3439d7cd4 /src | |
parent | 74f7ff805a5de7f1394f9a9ca5c3c3f0aa07caa3 (diff) | |
download | chawan-2bde1a2b91fa9a0cdbc853b47f773c7f7828bc0b.tar.gz |
pager: keep reading if term has chars buffered
Diffstat (limited to 'src')
-rw-r--r-- | src/local/pager.nim | 4 | ||||
-rw-r--r-- | src/local/term.nim | 3 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/local/pager.nim b/src/local/pager.nim index b61e02e9..0052e18f 100644 --- a/src/local/pager.nim +++ b/src/local/pager.nim @@ -804,6 +804,10 @@ proc input(pager: Pager): EmptyPromise = pager.inputBuffer = "" if p == nil: p = newResolvedPromise() + if pager.term.hasBuffer(): + return p.then(proc(): EmptyPromise = + return pager.input() + ) return p proc run*(pager: Pager; pages: openArray[string]; contentType: string; diff --git a/src/local/term.nim b/src/local/term.nim index 00c60e2b..5199fadb 100644 --- a/src/local/term.nim +++ b/src/local/term.nim @@ -274,6 +274,9 @@ proc resetInputBuffer*(term: Terminal) = term.ibufn = 0 term.ibufLen = 0 +proc hasBuffer*(term: Terminal): bool = + return term.ibufn < term.ibufLen + proc flush*(term: Terminal) = term.outfile.flushFile() |