[comp.bugs.sys5] MicroPort system5 1.38B3 terminfo error

plocher@hobbes.UUCP (02/07/87)

This bug applies to Microport System5/AT release 1.38 and above only.
Specifically, it does not affect those with the general 1.36 release.
(That release has it's own set of well known problems :-)


    Originator:	John Plocher
		216 Deerfield Rd   Box 288
		Marshall, WI     53559-0288
		rutgers!uwvax!uwmacc!hobbes!plocher

    Attachments:    None    Example    Listings    Diskette
		    		       ********
    Urgency:	Immediate    Next Release    Advisory
		*********

    OS Version:		MicroPort SV/AT 1.38B3
    Program Name:	/usr/lib/terminfo/a/ansi
	 Version:	1.38B3 upgrade with new console handlers

    Repeat by:		* extract the test program provided at the end
			  of this report, and place it into a file called
			  'test.c'.
			
			% cc -o test test.c -lcurses
			% setenv TERM ansi  ;# this should be the default...
			% test

			* Should draw 2 boxes on the screen, instead,
			  the right hand sides of the boxes are messed up
			
			* Also, the function key mappings for terminfo/a/ansi
			  are wrong.  As given, f1 through f10 all are 
			  specified as being \EOc but they should really
			  be \EOc \EOd ... \EOl.

    Fix by:		% untic ansi > ansi.src
			* untic is a public domain program - avaliable
			  from Microport, or I can mail the source to you...
			* in ansi.src, change the line
			    rep=%p1%c\E[%p2%{1}%-%db,
			  to
			    rep=%p1%c\E[%p2%db,
			  Also, fix the definitions for kf2 thru kf10
			  to be kf0=\EOc, kf1=\EOd, kf2=\EOe...
			% tic ansi.src
			% test

			* The boxes should now be correct
			  
			* Programs which use the function keys
			  (KEY_F(0)...) will now work as well. 


/* Test program for the 'rep' bug in curses: */
/* Stick this in test.c and compile with   cc -o test test.c -lcurses */

#include <curses.h>
WINDOW *Wpreview, *Wwork;
main()
{
	if (initscr() == NULL)   /* window manager */
	    exit( 1 );
	if ( !(Wpreview = newwin( 5, 50,  0, 29 )) )  exit(1);
        if ( !(Wwork =    newwin( 19, 79,  5,  0 )) )  exit(1);
	box(Wpreview, '|', '-');
	box(Wwork,    '|','-');
	wrefresh(Wpreview);
	wrefresh(Wwork);
	endwin();
}