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