diff mcabber/src/screen.c @ 389:6e895f397474

Ncurses changes + Ctrl-C does not send a signal anylore * Use nonl() when initializing ncurses * Ctrl-C does not send a signal in raw mode, so we handle it as a normal key
author Mikael Berthe <mikael@lilotux.net>
date Sat, 30 Jul 2005 10:36:46 +0100
parents f211238d5812
children f8f3c7493457
line wrap: on
line diff
--- a/mcabber/src/screen.c	Fri Jul 29 20:28:06 2005 +0100
+++ b/mcabber/src/screen.c	Sat Jul 30 10:36:46 2005 +0100
@@ -202,6 +202,8 @@
   initscr();
   raw();
   noecho();
+  nonl();
+  intrflush(stdscr, FALSE);
   start_color();
   use_default_colors();
   Curses = TRUE;
@@ -1432,7 +1434,7 @@
     wmove(inputWnd, 0, ptr_inputline - (char*)&inputLine - inputline_offset);
 }
 
-void scr_handle_sigint(void)
+void scr_handle_CtrlC(void)
 {
   if (!Curses) return;
   // Leave multi-line mode
@@ -1503,7 +1505,7 @@
           scr_handle_tab();
           check_offset(0);
           break;
-      case '\n':  // Enter
+      case 13:    // Enter
       case 15:    // Ctrl-o ("accept-line-and-down-history")
           scr_CheckAutoAway(TRUE);
           if (process_line(inputLine))
@@ -1515,7 +1517,7 @@
           *ptr_inputline = 0;
           inputline_offset = 0;
 
-          if (key == '\n')          // Enter
+          if (key == 13)            // Enter
           {
             // Reset history line pointer
             cmdhisto_cur = NULL;
@@ -1559,6 +1561,9 @@
           ptr_inputline = inputLine;
           inputline_offset = 0;
           break;
+      case 3:   // Ctrl-C
+          scr_handle_CtrlC();
+          break;
       case KEY_END:
       case 5:
           for (; *ptr_inputline; ptr_inputline++) ;