Commit Graph

58 Commits

Author SHA1 Message Date
agc eb7c1594f1 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22280, verified by myself.
2003-08-07 16:42:00 +00:00
jdc 256ce6a6f2 Rework the way window/wub-window refresh is done.
For each line that is marked dirty on each sub-window, we now mark the
relevant line on the parent as dirty and unmark it on the sub-window.
This avoids copying the same data multiple times and also leaves the
cursor in the correct position for the window refreshed.
2003-07-05 19:07:49 +00:00
jdc 5572bca927 Make the refresh complete in the presence of multiple sub-windows.
Match function names in the debug output.
2003-06-28 21:11:43 +00:00
dsl 14b491c2c5 Stop refresh(subwin) doing refresh on the other subwin's created before it.
(If nothing else the cursor would get left in the wrong place).
Fix some if (!flags & MASK) checks.
2003-06-26 17:17:10 +00:00
jdc 045c8e350f Now refresh() refreshes subwindows too.
Fixes PR lib/20544 by rtr.
2003-03-29 21:43:22 +00:00
dsl d75ec8181e Fix resize of windows with subwins.
Let window size be given as a -ver number => lines from bottom.
Fix trace calls of pointers
(approved by Brett Lumn)
2003-02-17 11:07:19 +00:00
jdc 8ca56fe956 Check for conflict between colour and other attributes. The previous
checks when adding attributes could be inadequate if background colours
were later added to a window.
2003-01-27 21:11:12 +00:00
jdc 3f8ad5302e Back out part of rev 1.50. We can't call werase() here.
Fixes PR lib/19739 by Matthias Scheler.
Problem also noted by Martin Husemann.
2003-01-12 12:53:51 +00:00
jdc f8b5b67351 Add pnoutrefresh() and prefresh().
Modify _cursesi_wnoutrefresh() to handle pads.
2002-12-23 12:17:55 +00:00
jdc ab39ef114a When copying a line from a window, only copy the changed part instead of
the whole line.
This fixes a bug when displaying displaying overlapping windows.
2002-12-05 17:22:13 +00:00
blymn d5dc62cbd8 Fix lint nits mainly with the len parameter type in hash_more. 2002-10-22 11:37:34 +00:00
jdc 4eb3ef3dac Set the curses default colours to white on black when using colour.
See the Single UNIX Specification, Version 2 :

  http://www.opengroup.org/onlinepubs/007908799/xcurses/can_change_color.html

Also, add the functions :

	use_default_colors();
	assume_default_colors(fore, back);

(from ncurses) that allow the terminal default colours or user-specified
default colours to be used.
2002-08-04 16:43:04 +00:00
christos ce1b68c92d PR/17352: David Laight: Curses core-dumps on windows > 1024 wide. 2002-06-26 18:13:59 +00:00
blymn ef5927835e Remove extraneous tabs from blank lines. 2002-01-02 10:38:27 +00:00
blymn 64df79afe7 fix __startwin() so it outputs the init strings to the correct device. 2001-12-31 14:23:11 +00:00
blymn c84d91aad5 * Major change to add support for the newterm/set_term functions.
* Added fix to getch.c suggested by Gabriel Rosenkoetter (thanks :-)
2001-12-02 09:14:20 +00:00
blymn 9fc0329619 Add code to allow resizing of windows and the underlying terminal. 2001-09-20 11:11:54 +00:00
jdc 606508da77 Rename variables refering to termcap capabilities from NN to __tc_nn. Case
adjusted to match termcap capability.  A few other variable names renamed too
(ones related to or derived from termcap variables).
2000-12-19 21:34:24 +00:00
itojun 2ee926643f on repaint, we must look at attributes present on curscr.
check __ISPASTEOL on curscr->lines, not on win->lines.  PR 10732.
2000-08-02 10:50:49 +00:00
itojun 67175858ec use __cputchar(), not putchar().
otherwise, __CTRACE() will not be useful for debugging curses internals.
2000-08-01 04:17:09 +00:00
matt 6ac8d1ec06 More include cleanup. Remvoe (p) from #undef in libipsec. 2000-07-03 03:56:20 +00:00
jdc 172e7c6926 Move setting of __endwin so that we also change it from the stop handler. 2000-06-15 21:20:16 +00:00
jdc 42414cd719 Copy all background attributes (not just colour) from win to __virtscr. 2000-06-12 20:51:39 +00:00
mycroft 94f8eb040a GC __FORCEPAINT. 2000-05-20 15:12:15 +00:00
mycroft 179e2ccef2 Fix a silly bug that caused blanks to always be redrawn on dirty lines in
curscr.  This usually manifested itself as a very slow redraw after suspend.
2000-05-19 16:00:52 +00:00
mycroft d766988531 More microoptimization, and explicitly skip lines that are not dirty. 2000-05-19 07:39:02 +00:00
mycroft c23ccd01a0 Two optimizations in quickch():
* Don't bother comparing lines that are not dirty when looking for the top
  and bottom regions.
* In the loop that searches for the largest equal region, do the totally
  half-assed hack of splitting the inner loop into two parts -- comparing
  only the hash values the first time, and doing memcmp()s the second time.
  This makes many of my test cases >100x as fast.
  XXX This code needs a lot more work.
2000-05-19 04:15:55 +00:00
mycroft 5e7069506f We already initialize UP and BC when we fire up Curses, so pass a null pointer
to t_goto() to avoid doing it again... and again... and...
2000-05-19 01:05:43 +00:00
mycroft 3a14289c85 Clear any cached __LEAVEOK flag in __virtscr when refreshing another window. 2000-05-18 20:37:42 +00:00
jdc aecd0ef1a8 Don't try and refresh those parts of windows that are outside our terminal. 2000-05-07 21:22:43 +00:00
mycroft 2228799172 As the comment suggests, move the __unsetattr() to the end of doupdate(), just
before the fflush().  This avoids needlessly resetting modes.
2000-04-29 02:51:16 +00:00
mycroft c7d40b65f9 Speed up refresh in the presence of attributes by precalculating a mask for
each `end' command to turn off other attributes in the case of conflicts.
2000-04-29 00:42:26 +00:00
jdc e074acd8a2 We can't assume colour won't be turned off if the escape sequences for
turning off attributes aren't the same as the one for colour, so decide
that we've turned off colour when we turn off any attributes.
2000-04-28 17:11:51 +00:00
jdc ff39cfe5f4 Remove test code inadvertently left in. 2000-04-28 06:51:36 +00:00
jdc bb8643a097 Don't change the cursor position if __LEAVEOK. 2000-04-27 22:12:36 +00:00
jdc 1e17d2d2ed Implement wnoutrefresh() and doupdate(). wrefresh() now calls these functions
and the previous wrefresh() code is split between them.  Background character
and attribute handling is now done in wnoutrefresh(), thus simplifying the code
in doupdate(), makech() and quickch().
Refine xterm workround and test for it earlier - this cuts down the number of
lines we test when looking for a scrolled region.
Rename unsetattr() to __unsetattr(), so it can be used by __stopwin().
2000-04-27 00:26:19 +00:00
jdc 9c98e25a34 Work round xterm bug which displays the wrong background colour when the
screen has just been scrolled.
Only use CL if all lines have the same background colour.
Fix debug output in quickch().
2000-04-21 15:56:35 +00:00
blymn 091faeb4c6 Converted all termcap library calls to the "new" interface, this fixes
a problem with curses crashing when the CM capability was larger than
64 bytes and eliminates some possible buffer overflow problems.
2000-04-19 13:52:39 +00:00
jdc 2aeea33d8c Add support for background characters and attributes.
Add extra colour/attributes debugging.
2000-04-18 22:47:01 +00:00
jdc 711853729d Really don't move with altcharset set.
Leave other attributes if MS is defined.
Move attribute unsetting into a new function.
2000-04-16 09:55:16 +00:00
jdc 82f0638210 Don't move with altcharset or colour set (if you try this on an xterm, you
won't actually move, but will think you have).
2000-04-15 23:01:15 +00:00
blymn aaf74682b9 Added functions to replace what were previously macros in curses.h
(this is a requirement of SUSv2) - the old macro behaviour can be
restored by defining _CURSES_USE_MACROS.
Changed function prototypes to use ANSI style.
All externally visible functions now have ANSI style declarations.
2000-04-15 13:17:02 +00:00
jdc 3b5538fc53 Add color manipulation.
Note that window background attributes are not handled yet.
2000-04-12 21:47:20 +00:00
blymn 23464ee534 Made data structures opaque 2000-04-11 13:57:08 +00:00
simonb ac71081c1a When dumping the attributes for a line, put a space between each attribute
so you can tell where each one starts and stops, and prefix these lines
with "attr: ".
1999-09-17 14:21:04 +00:00
simonb 4c8cdd6200 Remove the test for NOQCH, and print the line flags in the CTRACE in
the main loop wrefresh().
1999-06-28 13:27:24 +00:00
christos cbc12c53b7 - protect NULL attributes from de-referencing
- Silence pointer casts
1999-06-23 03:27:34 +00:00
mrg 586d4ce109 Upgrades the standard NetBSD curses library to provide some
of the SYSV curses facilities.  The added features are the collapsing
of arrow and function keysequences (as defined by termcap for the
terminal) into symbolic code returns thus relieving the application of
recognising multi-character key sequences.  Other features are the
capability to perform a timed wait for a key (good for when you are
not sure if there is a keypress ready or not) and the capability for
turning off the inter-key timeout when assembling multi-character
function keys.

this work was done by Julian Coleman <J.D.Coleman@newcastle.ac.uk>
and blymn@baea.com.au (Brett Lymn).  i'm just integrating it.  thanks
HEAPS guys!
1999-04-13 14:08:17 +00:00
perry 0b7831a37b remove obsolete register declarations 1998-02-03 19:12:13 +00:00
phil 1507e4ad2c Make endwin() save state so a subsequent call to wrefresh restores curses
and makes endwin()/wrefresh() act like a SIGTSTP.
1997-09-12 21:08:22 +00:00