[8655] in Athena Bugs

home help back first fref pref prev next nref lref last post

Fixes for tty OLH on the RS/6000

daemon@ATHENA.MIT.EDU (lwvanels@Athena.MIT.EDU)
Fri Nov 22 11:22:30 1991

From: lwvanels@Athena.MIT.EDU
Date: Fri, 22 Nov 91 11:22:30 -0500
To: bugs@Athena.MIT.EDU
Cc: probe@Athena.MIT.EDU
Reply-To: lwvanels@mit.edu

These patches fix the problems with flickering, and a situation where the
tty could be left in an odd state.
Patches to files in /source/athena/athena.bin/olh/ascii

*** /tmp/,RCSt1Qr4Ac5	Fri Nov 22 11:19:45 1991
--- main.c	Fri Nov 22 11:14:14 1991
***************
*** 118,123 ****
--- 118,130 ----
      ++program;
    
    /*
+    * Set up signal handlers
+    */
+ 
+   signal(SIGINT, handle_interrupt_event);
+   signal(SIGWINCH, handle_resize_event);
+ 
+   /*
     *  First, try creating display.  If this fails, print a 'nice' error
     *  message and exit.
     */
***************
*** 146,151 ****
--- 153,159 ----
  #endif /* ATHENA */
      printf("The error was:\n");
      com_err(program,code,"in menu_init");
+     curses_shutdown();
      exit(1);
    }
    e = find_group("main");
***************
*** 152,157 ****
--- 160,166 ----
    code = menu_load(e, &m);
    if (code) {
      com_err(program, code, "loading main menu");
+     curses_shutdown();
      exit(1);
    }
    current_menu = 0;
***************
*** 164,176 ****
    paint_windows();
    show_message(COPYRIGHT);
    hist_on = FALSE;
-   
-   /*
-    * Set up signal handlers.
-    */
- 
-   signal(SIGINT, handle_interrupt_event);
-   signal(SIGWINCH, handle_resize_event);
    
    /*
     * Go into MainLoop.  This does not exit.  Rather, the user exits the
--- 173,178 ----
*** /tmp/,RCSt1QsQA9_	Fri Nov 22 11:19:58 1991
--- help.c	Fri Nov 22 11:16:27 1991
***************
*** 160,166 ****
  {
    int i;
    
-   wclear(win_instr);
    for (i = 0; i < NUM_INSTR_LINES; i++)
      {
        wmove(win_instr, i, 0);
--- 160,165 ----
*** /tmp/,RCSt1QskAc5	Fri Nov 22 11:20:05 1991
--- get_token.c	Fri Nov 22 11:17:18 1991
***************
*** 217,223 ****
  	}
      }
    
!   wclear(win_prompt);
    wrefresh(win_prompt);
    return token;
  }
--- 217,224 ----
  	}
      }
    
!   if (!((token == TOKEN_SEL_NEXT) || (token == TOKEN_SEL_PREV)))
!     wclear(win_prompt);
    wrefresh(win_prompt);
    return token;
  }
*** /tmp/,RCSt1Qs4BfD	Fri Nov 22 11:20:12 1991
--- curses.c	Fri Nov 22 11:18:04 1991
***************
*** 249,255 ****
    paint_prompt( )
  {
    wmove(win_prompt, 0, 0);
-   wclear(win_prompt);
    if (current_prompt != NULL)
      waddstr(win_prompt, current_prompt);
    if (current_input != NULL)
--- 249,254 ----
***************
*** 261,267 ****
    paint_message( )
  {
    wmove(win_message, 0, 0);
!   wclear(win_message);
    if (current_message != NULL)
      waddstr(win_message, current_message);
  }
--- 260,266 ----
    paint_message( )
  {
    wmove(win_message, 0, 0);
!   wclrtoeol(win_message);
    if (current_message != NULL)
      waddstr(win_message, current_message);
  }

home help back first fref pref prev next nref lref last post