src/console.c
changeset 212 ddc79529a1e0
parent 206 47837a6bbbea
child 217 7728d6ec3abf
equal deleted inserted replaced
211:b460d958a685 212:ddc79529a1e0
   113             console->waiting = true;
   113             console->waiting = true;
   114 
   114 
   115             break;
   115             break;
   116     }
   116     }
   117 }
   117 }
   118 
       
   119 static void on_sigint (int sig)
   118 static void on_sigint (int sig)
   120 {
   119 {
   121     struct console *console = &_console;
   120     struct console *console = &_console;
   122 
   121 
   123     (void) sig;
   122     (void) sig;
   124 
   123 
   125     // interrupt the input line
   124     if (console->waiting) {
   126     // XXX: is this the right function to call?
   125         // notify user
   127     rl_free_line_state();
   126         if (console->callbacks->on_interrupt)
   128 
   127             console->callbacks->on_interrupt(console->cb_arg);
   129     // redisplay on new line
   128 
   130     rl_crlf();
   129     } else {
   131     rl_callback_handler_install(console->config.prompt, console_line);
   130         // interrupt the input line
       
   131         // XXX: is this the right function to call?
       
   132         rl_free_line_state();
       
   133 
       
   134         // redisplay on new line
       
   135         rl_crlf();
       
   136         rl_callback_handler_install(console->config.prompt, console_line);
       
   137     }
   132 }
   138 }
   133 
   139 
   134 err_t console_init (struct console **console_ptr, struct event_base *ev_base, const struct console_config *config,
   140 err_t console_init (struct console **console_ptr, struct event_base *ev_base, const struct console_config *config,
   135         const struct console_callbacks *callbacks, void *cb_arg, struct error_info *err)
   141         const struct console_callbacks *callbacks, void *cb_arg, struct error_info *err)
   136 {
   142 {