Subject: lib/3648: clear()/erase() do not move to (0,0).
To: None <gnats-bugs@gnats.netbsd.org>
From: Peter Seebach <seebs@taniemarie.solon.com>
List: netbsd-bugs
Date: 05/18/1997 20:03:08
>Number:         3648
>Category:       lib
>Synopsis:       clear() and erase() should wmove(win, 0, 0);
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    lib-bug-people (Library Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun May 18 20:05:01 1997
>Last-Modified:
>Originator:     Peter Seebach
>Organization:
Peter Seebach - seebs@solon.com - Copyright 1996 Peter Seebach.
C/Unix wizard -- C/Unix questions? Send mail for help.  No, really!
Unsolicited email is not welcome, and will be billed for at consulting rates.
The *other* C FAQ - http://www.solon.com/~seebs/c/c-iaq.html
>Release:        -current, but as long as I can remember
>Environment:
System: NetBSD taniemarie 1.2E NetBSD 1.2E (SEEBS) #0: Sun May 18 11:39:42 CDT 1997 seebs@taniemarie:/usr/src/sys/arch/amiga/compile/SEEBS amiga


>Description:
	I submitted this once before, but was unable to find solid
	evidence that my belief is correct.  I don't recall the PR#
	of the previous report, so I'm doing a clean one.

	From doc/psd/19.curses/paper.asc:

          clear();

               Resets  the  entire  window  to  blanks.   If  win is a
               screen, this sets the clear flag, which  will  cause  a
               clear-screen  sequence to be sent on the next refresh()
               call.  This also moves the current (y, x)  co-ordinates
               to (0, 0).

	I consider this an sw-bug, not a doc-bug, because I have a
	fair collection of programs, games and otherwise, which depend
	on this behavior, and NetBSD is the only system I have access
	to on which they fail.

>How-To-Repeat:
	Write a curses program which fills a window, clears it, and
	tries to write to it.

>Fix:

This patch to erase.c seems to do it for me.

*** erase.orig	Sun May 18 21:59:14 1997
--- erase.c	Sun May 18 04:36:27 1997
***************
*** 68,72 ****
--- 68,73 ----
  			__touchline(win, y, minx, maxx - win->lines[y]->line,
  			   0);
  	}
+ 	wmove(win, 0, 0);
  	return (OK);
  }
>Audit-Trail:
>Unformatted: