URI: 
       midway from converting input.c - 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 60947ffd7f79328a77d58ca78da7ff46c602fd1f
   DIR parent 9786d2c290cdd4b3a37979155ced24f86f8358f5
  HTML Author: Josuah Demangeonā  ā µ <mail@josuah.net>
       Date:   Wed, 15 Mar 2017 23:13:08 +0100
       
       midway from converting input.c
       
       Diffstat:
         M input.c                             |      35 ++++++++++++++-----------------
       
       1 file changed, 16 insertions(+), 19 deletions(-)
       ---
   DIR diff --git a/input.c b/input.c
       @@ -19,7 +19,6 @@ input_get(int tty_fd)
                /* receive one character at a time from the terminal */
                struct termios termio_old = set_terminal(tty_fd);
        
       -        /* get input char by char from the keyboard. */
                while ((exit_code = input_key(tty_fp)) == CONTINUE)
                        draw_screen(tty_fd);
        
       @@ -38,6 +37,8 @@ input_get(int tty_fd)
        int
        input_key(FILE *tty_fp)
        {
       +        extern char *input;
       +
                char key = fgetc(tty_fp);
        
                if (key == '\n') {
       @@ -53,14 +54,14 @@ input_key(FILE *tty_fp)
        
                case CONTROL('U'):
                        input[0] = '\0';
       -                buffer[current] = first;
       +                current = 0;
                        filter_lines(0);
                        action_jump(1);
                        action_jump(-1);
                        break;
        
                case CONTROL('W'):
       -                action_remove_word_input(buffer);
       +                action_remove_word_input();
                        filter_lines(0);
                        break;
        
       @@ -73,7 +74,6 @@ input_key(FILE *tty_fp)
        
                case CONTROL('N'):
                        action_jump(1);
       -        extern char *input;
                        break;
        
                case CONTROL('P'):
       @@ -81,7 +81,7 @@ input_key(FILE *tty_fp)
                        break;
        
                case CONTROL('I'):  /* tab */
       -                strcpy(input, buffer[current]->content);
       +                strcpy(input, buffer[current]->text);
                        filter_lines(1);
                        break;
        
       @@ -148,9 +148,9 @@ action_jump(int direction)
                Line * line   = buffer[current];
                Line * result = line;
        
       -        if (direction == 0 && !buffer[current]->matches) {
       -                line   =               matching_next(buffer[current]);
       -                line   = line ? line : matching_prev(buffer[current]);
       +        if (direction == 0 && !buffer[current]->match) {
       +                line   =               matching_next(current);
       +                line   = line ? line : matching_prev(current);
                        result = line ? line : result;
                }
        
       @@ -174,14 +174,13 @@ action_jump(int direction)
        void
        action_remove_word_input()
        {
       -        size_t length = strlen(input) - 1;
       -        int i;
       +        size_t len = strlen(input) - 1;
        
       -        for (i = length; i >= 0 && isspace(input[i]); i--)
       +        for (int i = len; i >= 0 && isspace(input[i]); i--)
                        input[i] = '\0';
        
       -        length = strlen(input) - 1;
       -        for (i = length; i >= 0 && !isspace(input[i]); i--)
       +        len = strlen(input) - 1;
       +        for (int i = len; i >= 0 && !isspace(input[i]); i--)
                        input[i] = '\0';
        }
        
       @@ -192,11 +191,11 @@ action_remove_word_input()
        void
        action_add_character(char key)
        {
       -        size_t length = strlen(input);
       +        size_t len = strlen(input);
        
                if (isprint(key)) {
       -                input[length]     = key;
       -                input[length + 1] = '\0';
       +                input[len]     = key;
       +                input[len + 1] = '\0';
                }
        
                filter_lines(1);
       @@ -211,14 +210,12 @@ action_add_character(char key)
        void
        action_print_selection(int return_input)
        {
       -        Line *line = NULL;
       -
                fputs("\r\033[K", stderr);
        
                if (return_input || !matching) {
                        puts(input);
        
                } else if (matching > 0) {
       -                puts(buffer[current]->content);
       +                puts(buffer[current]->text);
                }
        }