iscrolling working on line mode - iomenu - interactive terminal-based selection menu Err bitreich.org 70 hgit clone git://bitreich.org/iomenu git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/iomenu URL:git://bitreich.org/iomenu git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/iomenu bitreich.org 70 1Log /scm/iomenu/log.gph bitreich.org 70 1Files /scm/iomenu/files.gph bitreich.org 70 1Refs /scm/iomenu/refs.gph bitreich.org 70 1Tags /scm/iomenu/tag bitreich.org 70 1README /scm/iomenu/file/README.gph bitreich.org 70 1LICENSE /scm/iomenu/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit a393b370908b21080348141ea591395502f4a36e /scm/iomenu/commit/a393b370908b21080348141ea591395502f4a36e.gph bitreich.org 70 1parent 63ce568f63eef334f256370d444e557d2ecceb68 /scm/iomenu/commit/63ce568f63eef334f256370d444e557d2ecceb68.gph bitreich.org 70 hAuthor: Josuah Demangeonā  ā µ URL:mailto:mail@josuah.net bitreich.org 70 iDate: Sat, 18 Mar 2017 19:42:46 +0100 Err bitreich.org 70 i Err bitreich.org 70 iscrolling working on line mode Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M iomenu.c | 10 ++++++---- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 6 insertions(+), 4 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/iomenu.c b/iomenu.c /scm/iomenu/file/iomenu.c.gph bitreich.org 70 i@@ -18,7 +18,8 @@ Err bitreich.org 70 i Err bitreich.org 70 i Err bitreich.org 70 i char input[BUFSIZ]; Err bitreich.org 70 i-size_t current = 0, matchc = 0, linec = 0, offset = 0; Err bitreich.org 70 i+size_t current = 0, offset = 0, last = 0; Err bitreich.org 70 i+size_t linec = 0, matchc = 0; Err bitreich.org 70 i char **linev = NULL, **matchv = NULL; Err bitreich.org 70 i char *opt_prompt = ""; Err bitreich.org 70 i int opt_lines = 0; Err bitreich.org 70 i@@ -166,14 +167,15 @@ print_string(char *str, size_t limit, int current) Err bitreich.org 70 i void Err bitreich.org 70 i print_lines(size_t count, size_t cols) Err bitreich.org 70 i { Err bitreich.org 70 i- size_t printed = 0, i = current / count * count; Err bitreich.org 70 i+ size_t p = 0; /* amount of lines printed */ Err bitreich.org 70 i+ offset = current / count * count; Err bitreich.org 70 i Err bitreich.org 70 i- for (; printed < count && i < matchc; printed++, i++) { Err bitreich.org 70 i+ for (size_t i = offset; p < count && i < matchc; p++, i++) { Err bitreich.org 70 i fputc('\n', stderr); Err bitreich.org 70 i print_string(matchv[i], cols, i == current); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i- while (printed++ <= count) Err bitreich.org 70 i+ while (p++ <= count) Err bitreich.org 70 i fputs("\n\033[K", stderr); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 .