From friesen@psivax.UUCP (Stanley Friesen) Fri Jan 18 13:17:31 1985
Relay-Version: version B 2.10.2 12/21/84; site seismo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site psivax.UUCP
Path: seismo!hao!hplabs!sdcrdcf!psivax!friesen
From: friesen@psivax.UUCP (Stanley Friesen)
Newsgroups: net.sources.bugs
Subject: Re: Terminfo bug and fix
Message-ID: <253@psivax.UUCP>
Date: 18 Jan 85 18:17:31 GMT
Date-Received: 20 Jan 85 12:55:13 GMT
References: <252@psivax.UUCP>
Reply-To: friesen@psivax.UUCP (Stanley friesen)
Organization: Pacesetter Systems Inc., Sylmar, CA
Lines: 37
Summary: BUG:	The routine wclrtobot() as distributed does nothing at all.
To Demonstrate:  Run the test program(mille) thru one hand, when
	asks "Another Hand? " answer 'y'.  The mileage portion of
	the screen will *not* clear as it should,  but the game
	will continue as if it had.
	The reason for this is that wclrtobot() fails to set
	the _numchngd field for each line cleared.

FIX: follows
----------------------------CUT HERE---------------------------------

*** olib_clrbot.c	Thu Jan 17 14:15:20 1985
--- lib_clrbot.c	Fri Jan 18 09:52:27 1985
***************
*** 76,81
  
  	    if (minx != _NOCHANGE)
  	    {
  		if (win->_firstchar[y] > minx
  					||  win->_firstchar[y] == _NOCHANGE)
  		    win->_firstchar[y] = minx;

--- 76,82 -----
  
  	    if (minx != _NOCHANGE)
  	    {
+ 		win->_numchngd[y] = (maxx - win->_line[y]) - minx;
  		if (win->_firstchar[y] > minx
  					||  win->_firstchar[y] == _NOCHANGE)
  		    win->_firstchar[y] = minx;
-- 
-- 

				Sarima (Stanley Friesen)

{trwrb|allegra|burdvax|cbosgd|hplabs|ihnp4|sdcsvax}!sdcrdcf!psivax!friesen


From urban@spp2.UUCP Wed Jan  9 18:44:25 1985
Relay-Version: version B 2.10.2 12/21/84; site seismo.UUCP
Posting-Version: version B 2.10.2 9/5/84; site spp2.UUCP
Path: seismo!hao!hplabs!sdcrdcf!trwrb!trwspp!spp2!urban
From: urban@spp2.UUCP
Newsgroups: net.sources.bugs
Subject: Public Domain Terminfo Stuff
Message-ID: <352@spp2.UUCP>
Date: 9 Jan 85 23:44:25 GMT
Date-Received: 12 Jan 85 02:48:16 GMT
Reply-To: urban@spp2.UUCP (Mike Urban)
Organization: TRW, Redondo Beach  CA
Lines: 31


Attempting to port the public domain curses/terminfo stuff to
the Pyramid 90x, I encountered the following problems:

The sense of the comparison in read_entry for
	if (must_swap())
		read(fd, ptr->Numbers, min(NUMCOUNT, header.num_count*2));
	etc.
appears to be backwards.  This is a real bug that should
be fixed in everyone's copy, since it will speed up the
read_entry routine on machines that don't swap.

In the same routine, the Pyramid C compiler seems to allocate
4-byte entries for the offset_buf array. I changed the
declaration to an array of "short"s and used the "swap"
definition in the relevant loop instead, which simplifies the
appearance of the code anyway.

The routines in lib_printw that attempt to pass a variable
number of arguments have to be modified for the Pyramid so as
to use the facilities in <varargs.h>

Now "mille" seems to be able to function almost right, but
something still seems to be wrong somewhere.  The cursor is
being left in the wrong place after the first ">>>Move:" prompt
is initially drawn and after a screen refresh.  The result is
that the command that first gets typed somehow stays on the
screen in that wrong place (about two spaces to the right of
where it should have been).  Can anyone enlighten me?

	Mike


