Commit Graph

49 Commits

Author SHA1 Message Date
blymn 69b405aa23 Rename the old __waddbytes function to _cursesi_waddbytes and add a
parameter that controls whether or not certain characters in the
string are interpreted or not (things like tab being expanded).

Make __waddbytes a wrapper for _cursesi_waddbytes that passes all
parameters and sets the flag for character interpretation for backward
compatibility.

Fix an incipient bug in _cursesi_waddbytes where garbage would have
been written to the terminal if the terminal TABSIZE was set > 8 and
character interpretation is on.

Convert all internal __waddbytes calls to use _cursesi_waddbytes, fix
the function prototypes and add a new flag that will be used later.

Fix the addchstr family functions so that they call _cursesi_waddbytes
with character interpretation off as per SUSV2.
2013-11-09 11:16:59 +00:00
roy 2e2213ef89 Add TABSIZE, which is derived from terminfo init_tabs.
Use this when processing \t.
If TABSIZE is set in the environment, this takes precedence.
2013-10-16 19:59:29 +00:00
roy 64afaacce6 Move longname(3) from curses to terminfo, pre-cursor to fix PR/43386. 2011-10-04 11:01:13 +00:00
wiz 3d3c5d42cb Observe the following spelling:
- wide character (noun)
- wide-character (adjective)

Inspired by jmc@OpenBSD.
2010-12-16 17:42:25 +00:00
drochner 452834f264 misc fixes and improvements:
-call setlocale(LC_CTYPE, "") before nl_langinfo(CODESET) if the
 locale settings is (still) at "C" - otherwise the CODESET doesn't work
-fix the type of the WACS_* symbols -- this needs to be cchar_t*
-add safeguards where the return value of wcwidth() is used for
 loop counters or indexing -- it can be -1
-use more common code in the widechar support case -- in particular
 let the wchar functions do the work even if chtype ones were called
-implement wcursyncup/wsyncup/wsyncdown
-somewhat experimental: allow ACS_* variables to refer to WACS_*
 table entries -- this way, programs using the old chtype using API
 can use UTF8 line drawing on terminals which support UTF8 but not
 ACS switching
-fix some logics bugs in UTF8 recognition and ALTCHARSET handling
2010-02-23 19:48:26 +00:00
roy 98eb889579 Userland now builds and uses terminfo instead of termcap.
OK: core@, jdc@
2010-02-03 15:34:37 +00:00
roy 43d5eb454b Prepare curses for the possibility of changing from termcap to terminfo.
term.h #defines lines, pad_char and no_color_video macros which conflict
with existing curses code. We change lines to alines and nlines depending
on use, pad_char to padchar and no_color_video becomes no_color_attributes
but with a strong alias from no_color_video.
2009-07-22 16:57:14 +00:00
jdc 4dd5a997bc Add FILEIO ctrace definition.
Remove unneeded function.
2008-04-14 20:34:36 +00:00
jdc 7cc6075b0e Keep pushed-back characters locally. Fixes problems where KEY_* symbols
are pushed back.  Should fix the arrow keys part of PR pkg/37173.

While we are here, make getch() and get_wch() check for resize immediately,
instead of reading a key, checking for resize and then having to push-back
the just read key.
2007-12-08 18:38:11 +00:00
blymn e124de36d8 Merge in wide curses code done as a Summer of Code project by
Ruibiao Qiu.
2007-05-28 15:01:53 +00:00
jdc 1f221324cf Add debug "areas" that allow selective debugging by setting the
"CURSES_TRACE_MASK" environment variable.  Postive vales include
debug areas, negative values exclude them.
2007-01-21 13:25:36 +00:00
jdc 978ab4ad4e Background characters and attributes don't need to be kept per character
cell, as they are merged when characters are added.  Remove the per cell
storage and clarify the manual page.  Pointed out by ruibiao@.
2006-01-15 11:43:54 +00:00
dsl 67b39d4957 Change first arg of __hash_more to const void * to remove need for double casts 2005-02-18 22:16:27 +00:00
jdc a6a9a97d12 Changes to support *echochar().
Should fix PR lib/24927.
2004-03-28 08:58:37 +00:00
jdc 140349e83f Because we are changing the libcurses major number, remove can_change_colors()
and change the attribute definitions so that we can support more colour pairs.
2004-03-22 18:57:38 +00:00
dsl b176defcde Revert most of rev 1.27 of addbytes.c and associated changes.
Posix requires that adding '\n' does clrtoeol() and 'x = 0'.
(Making "\r\n" erase the text that has just been displayed.)
Remove __NONL test from addbytes, __NONL is a property of the output device.
2003-08-10 07:37:11 +00:00
dsl c841017dd9 Do something more sensible for waddbytes(..., "\r\n", ...);
I'm not sure about the clrtoeol() at all though - maybe it should
be done as part of scroll()?
Leave 'x' alone when __NONL set.
2003-07-31 10:36:00 +00:00
dsl 87e998f336 Remove __winlistp, add *screen to WINDOW and initialise in newwin().
Make delwin() remove window from list of windows on its screen.
Free win->lspace and win->lines for subwins (they only share text space).
Free things in the correct (and same) order if malloc() fails in __makenew().
Adjust delscreen() for delwin() removing itself from winlist.
Fixes potential massive corruptions if delwin() called on a main window.
NB: not responsible for the sysinst core dumps :-(
2003-07-30 11:19:00 +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 e6800497da Keep the cr->nl translation state in a separate variable, so that we can
do the translation ourselves (if the tty didn't do it for us).
Add debugging to track functions that change tty state.

Fixes PR 20834 by Stephen Borrill.
2003-04-05 10:06:59 +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 2d83114a86 ARemove (no longer used) __nca. 2003-01-27 21:09:20 +00:00
blymn a3c6a58ea6 Added halfdelay() function. 2003-01-09 12:48:04 +00:00
jdc c18be873d1 Changes for pad support - changed function signatures and _ISPAD flag. 2002-12-23 12:15:04 +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
blymn 8d2591041a * Added new function idcok - this closes PR 10802
* Added sentinels to the line structures when in debug mode to try
  to pick up data overwrite problems, if they occur.
2002-07-19 13:22:41 +00:00
itojun 240c598f70 minor KNF (prototype decls should carry no variable name, otherwise macro
expansion will get you weird problem) and #define pedant (have paren).
2002-06-26 18:37:28 +00:00
itojun 2f69e2e14d handle non-tty cases more gracefully. 2002-06-26 18:23:28 +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 51344953b1 * Remove termcap globals from public interface
* Clean up commented out code
2001-12-11 11:18:17 +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
wiz c03a48d64f withough -> without 2001-06-13 10:45:57 +00:00
jdc e0083771d7 Add missing prototypes.
Fixes PR lib/12714.
2001-04-21 16:19:37 +00:00
jdc 3f9388e3e3 Implement scrolling regions :
has_ic()
  has_il()
  setscrreg()
  wsetscrreg()
2001-04-20 12:56:08 +00:00
jdc f7d4b58f02 Libcurses-4.0
Removal of termcap capabilities requires major bump.  Pointed out by Itojun.
Capabilities are still available if `_CURSES_TERMCAP_COMPAT' is defined.
2000-12-31 12:33:02 +00:00
jdc c9e9551689 Revert the change to the `pc' capability from the previous change. Pointed
out in email by Thomas Dickey.
2000-12-22 17:07:12 +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
mycroft 94f8eb040a GC __FORCEPAINT. 2000-05-20 15:12:15 +00:00
blymn 2128c86b68 * Made erasechar and killchar into functions
* Modified __init_getch to use termcap handle that has been allocated
  (_cursesi_genbuf) instead of refetching it.
* Make wgetstr support erase - this is not a full blown SUSv2 version
  but it is a start.
2000-05-01 12:30:30 +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 3f832f5227 Add virtual screen for wnoutrefresh()/doupdate().
Add definition for __unsetattr().
2000-04-27 00:22:44 +00:00
blymn 66cab71c72 * Added rcs id line to files missing it.
* Added code to __restartwin to restore meta and cursor visibility states
* Added code to __stopwin to disable meta.
* Added the *line group of functions for drawing character lines.
2000-04-24 14:09:41 +00:00
jdc 836ef17ff0 Add __TERMATTR definition. This makes the code in refresh.c much easier to
follow.
Add background character and attributes to line data.
2000-04-18 22:43:25 +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 d4b4d9ed49 Add a list of windows (used when a colour pair changes). 2000-04-14 17:35:14 +00:00
jdc 2d80817573 Private functions/variables moved from curses.h
Move character/attribute definitions to curses.h
2000-04-12 21:46:27 +00:00
blymn 23464ee534 Made data structures opaque 2000-04-11 13:57:08 +00:00