mcabber/src/screen.c
changeset 389 6e895f397474
parent 388 f211238d5812
child 393 f8f3c7493457
equal deleted inserted replaced
388:f211238d5812 389:6e895f397474
   200 void scr_InitCurses(void)
   200 void scr_InitCurses(void)
   201 {
   201 {
   202   initscr();
   202   initscr();
   203   raw();
   203   raw();
   204   noecho();
   204   noecho();
       
   205   nonl();
       
   206   intrflush(stdscr, FALSE);
   205   start_color();
   207   start_color();
   206   use_default_colors();
   208   use_default_colors();
   207   Curses = TRUE;
   209   Curses = TRUE;
   208 
   210 
   209   ParseColors();
   211   ParseColors();
  1430   wclrtoeol(inputWnd);
  1432   wclrtoeol(inputWnd);
  1431   if (*ptr_inputline)
  1433   if (*ptr_inputline)
  1432     wmove(inputWnd, 0, ptr_inputline - (char*)&inputLine - inputline_offset);
  1434     wmove(inputWnd, 0, ptr_inputline - (char*)&inputLine - inputline_offset);
  1433 }
  1435 }
  1434 
  1436 
  1435 void scr_handle_sigint(void)
  1437 void scr_handle_CtrlC(void)
  1436 {
  1438 {
  1437   if (!Curses) return;
  1439   if (!Curses) return;
  1438   // Leave multi-line mode
  1440   // Leave multi-line mode
  1439   process_command("/msay abort");
  1441   process_command("/msay abort");
  1440   // Same as Ctrl-g, now
  1442   // Same as Ctrl-g, now
  1501           break;
  1503           break;
  1502       case 9:     // Tab
  1504       case 9:     // Tab
  1503           scr_handle_tab();
  1505           scr_handle_tab();
  1504           check_offset(0);
  1506           check_offset(0);
  1505           break;
  1507           break;
  1506       case '\n':  // Enter
  1508       case 13:    // Enter
  1507       case 15:    // Ctrl-o ("accept-line-and-down-history")
  1509       case 15:    // Ctrl-o ("accept-line-and-down-history")
  1508           scr_CheckAutoAway(TRUE);
  1510           scr_CheckAutoAway(TRUE);
  1509           if (process_line(inputLine))
  1511           if (process_line(inputLine))
  1510             return 255;
  1512             return 255;
  1511           // Add line to history
  1513           // Add line to history
  1513           // Reset the line
  1515           // Reset the line
  1514           ptr_inputline = inputLine;
  1516           ptr_inputline = inputLine;
  1515           *ptr_inputline = 0;
  1517           *ptr_inputline = 0;
  1516           inputline_offset = 0;
  1518           inputline_offset = 0;
  1517 
  1519 
  1518           if (key == '\n')          // Enter
  1520           if (key == 13)            // Enter
  1519           {
  1521           {
  1520             // Reset history line pointer
  1522             // Reset history line pointer
  1521             cmdhisto_cur = NULL;
  1523             cmdhisto_cur = NULL;
  1522           } else {                  // down-history
  1524           } else {                  // down-history
  1523             // Use next history line instead of a blank line
  1525             // Use next history line instead of a blank line
  1556           break;
  1558           break;
  1557       case KEY_HOME:
  1559       case KEY_HOME:
  1558       case 1:
  1560       case 1:
  1559           ptr_inputline = inputLine;
  1561           ptr_inputline = inputLine;
  1560           inputline_offset = 0;
  1562           inputline_offset = 0;
       
  1563           break;
       
  1564       case 3:   // Ctrl-C
       
  1565           scr_handle_CtrlC();
  1561           break;
  1566           break;
  1562       case KEY_END:
  1567       case KEY_END:
  1563       case 5:
  1568       case 5:
  1564           for (; *ptr_inputline; ptr_inputline++) ;
  1569           for (; *ptr_inputline; ptr_inputline++) ;
  1565           check_offset(1);
  1570           check_offset(1);