From 4b819fa20a8d007a10f2d3e8d6a5dedf7f18fc9a Mon Sep 17 00:00:00 2001 From: Xin LI Date: Fri, 28 Feb 2014 19:12:44 +0000 Subject: Undo two previous imports which was never done in preparation of doing a new import. --- ncurses/base/MKkeyname.awk | 21 +- ncurses/base/MKlib_gen.sh | 75 ++---- ncurses/base/MKunctrl.awk | 26 +- ncurses/base/define_key.c | 39 +-- ncurses/base/key_defined.c | 20 +- ncurses/base/keybound.c | 23 +- ncurses/base/keyok.c | 39 +-- ncurses/base/legacy_coding.c | 25 +- ncurses/base/lib_addch.c | 80 +++---- ncurses/base/lib_addstr.c | 19 +- ncurses/base/lib_beep.c | 27 +-- ncurses/base/lib_bkgd.c | 16 +- ncurses/base/lib_box.c | 9 +- ncurses/base/lib_chgat.c | 8 +- ncurses/base/lib_clear.c | 6 +- ncurses/base/lib_clearok.c | 6 +- ncurses/base/lib_clrbot.c | 6 +- ncurses/base/lib_clreol.c | 6 +- ncurses/base/lib_color.c | 544 +++++++++++------------------------------- ncurses/base/lib_colorset.c | 19 +- ncurses/base/lib_delch.c | 6 +- ncurses/base/lib_delwin.c | 21 +- ncurses/base/lib_dft_fgbg.c | 70 ++---- ncurses/base/lib_driver.c | 143 ----------- ncurses/base/lib_echo.c | 36 +-- ncurses/base/lib_endwin.c | 39 +-- ncurses/base/lib_erase.c | 6 +- ncurses/base/lib_flash.c | 30 +-- ncurses/base/lib_freeall.c | 62 ++--- ncurses/base/lib_getch.c | 181 +++++--------- ncurses/base/lib_getstr.c | 25 +- ncurses/base/lib_hline.c | 10 +- ncurses/base/lib_immedok.c | 6 +- ncurses/base/lib_inchstr.c | 11 +- ncurses/base/lib_initscr.c | 8 +- ncurses/base/lib_insch.c | 48 ++-- ncurses/base/lib_insdel.c | 6 +- ncurses/base/lib_insnstr.c | 10 +- ncurses/base/lib_instr.c | 30 +-- ncurses/base/lib_isendwin.c | 20 +- ncurses/base/lib_leaveok.c | 6 +- ncurses/base/lib_mouse.c | 277 ++++++--------------- ncurses/base/lib_move.c | 6 +- ncurses/base/lib_mvwin.c | 20 +- ncurses/base/lib_newterm.c | 234 +++++------------- ncurses/base/lib_newwin.c | 154 ++++-------- ncurses/base/lib_nl.c | 46 ++-- ncurses/base/lib_overlay.c | 16 +- ncurses/base/lib_pad.c | 82 +++---- ncurses/base/lib_printw.c | 16 +- ncurses/base/lib_redrawln.c | 27 +-- ncurses/base/lib_refresh.c | 69 +++--- ncurses/base/lib_restart.c | 78 +++--- ncurses/base/lib_scanw.c | 6 +- ncurses/base/lib_screen.c | 126 ++++------ ncurses/base/lib_scroll.c | 10 +- ncurses/base/lib_scrollok.c | 6 +- ncurses/base/lib_scrreg.c | 6 +- ncurses/base/lib_set_term.c | 472 ++++++++++++++---------------------- ncurses/base/lib_slk.c | 242 +++++++------------ ncurses/base/lib_slkatr_set.c | 48 ++-- ncurses/base/lib_slkatrof.c | 26 +- ncurses/base/lib_slkatron.c | 26 +- ncurses/base/lib_slkatrset.c | 20 +- ncurses/base/lib_slkattr.c | 24 +- ncurses/base/lib_slkclear.c | 30 +-- ncurses/base/lib_slkcolor.c | 40 ++-- ncurses/base/lib_slkinit.c | 39 +-- ncurses/base/lib_slklab.c | 22 +- ncurses/base/lib_slkrefr.c | 91 ++----- ncurses/base/lib_slkset.c | 28 +-- ncurses/base/lib_slktouch.c | 24 +- ncurses/base/lib_touch.c | 14 +- ncurses/base/lib_ungetch.c | 14 +- ncurses/base/lib_vline.c | 10 +- ncurses/base/lib_wattroff.c | 6 +- ncurses/base/lib_wattron.c | 8 +- ncurses/base/lib_winch.c | 12 +- ncurses/base/lib_window.c | 66 +++-- ncurses/base/nc_panel.c | 18 +- ncurses/base/resizeterm.c | 198 ++++++--------- ncurses/base/safe_sprintf.c | 37 +-- ncurses/base/tries.c | 12 +- ncurses/base/use_window.c | 6 +- ncurses/base/wresize.c | 33 +-- 85 files changed, 1463 insertions(+), 3070 deletions(-) delete mode 100644 ncurses/base/lib_driver.c (limited to 'ncurses/base') diff --git a/ncurses/base/MKkeyname.awk b/ncurses/base/MKkeyname.awk index bb2599acb558..b35ba2a98027 100644 --- a/ncurses/base/MKkeyname.awk +++ b/ncurses/base/MKkeyname.awk @@ -1,6 +1,6 @@ -# $Id: MKkeyname.awk,v 1.45 2010/12/19 01:36:14 tom Exp $ +# $Id: MKkeyname.awk,v 1.40 2008/07/12 18:40:00 tom Exp $ ############################################################################## -# Copyright (c) 1999-2009,2010 Free Software Foundation, Inc. # +# Copyright (c) 1999-2007,2008 Free Software Foundation, Inc. # # # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # @@ -31,6 +31,7 @@ BEGIN { print "" print "#include " print "#include " + print "#include " print "" first = 1; } @@ -66,8 +67,7 @@ END { print "#define SIZEOF_TABLE 256" print "#define MyTable _nc_globals.keyname_table" print "" - print "NCURSES_EXPORT(NCURSES_CONST char *)" - print "safe_keyname (SCREEN *sp, int c)" + print "NCURSES_EXPORT(NCURSES_CONST char *) _nc_keyname (SCREEN *sp, int c)" print "{" print " int i;" print " char name[20];" @@ -116,14 +116,14 @@ END { print " result = MyTable[c];" print " }" print "#if NCURSES_EXT_FUNCS && NCURSES_XNAMES" - print " } else if (result == 0 && HasTerminal(sp)) {" + print " } else if (result == 0 && cur_term != 0) {" print " int j, k;" print " char * bound;" - print " TERMTYPE *tp = &(TerminalOf(sp)->type);" - print " unsigned save_trace = _nc_tracing;" + print " TERMTYPE *tp = &(cur_term->type);" + print " int save_trace = _nc_tracing;" print "" print " _nc_tracing = 0; /* prevent recursion via keybound() */" - print " for (j = 0; (bound = NCURSES_SP_NAME(keybound)(NCURSES_SP_ARGx c, j)) != 0; ++j) {" + print " for (j = 0; (bound = keybound(c, j)) != 0; ++j) {" print " for(k = STRCOUNT; k < (int) NUM_STRINGS(tp); k++) {" print " if (tp->Strings[k] != 0 && !strcmp(bound, tp->Strings[k])) {" print " result = ExtStrname(tp, k, strnames);" @@ -141,10 +141,9 @@ END { print " return result;" print "}" print "" - print "NCURSES_EXPORT(NCURSES_CONST char *)" - print "keyname (int c)" + print "NCURSES_EXPORT(NCURSES_CONST char *) keyname (int c)" print "{" - print " return safe_keyname (CURRENT_SCREEN, c);" + print "\treturn _nc_keyname(SP, c);" print "}" print "" print "#if NO_LEAKS" diff --git a/ncurses/base/MKlib_gen.sh b/ncurses/base/MKlib_gen.sh index 66ae295c607c..a984e8545eff 100755 --- a/ncurses/base/MKlib_gen.sh +++ b/ncurses/base/MKlib_gen.sh @@ -2,10 +2,10 @@ # # MKlib_gen.sh -- generate sources from curses.h macro definitions # -# ($Id: MKlib_gen.sh,v 1.43 2011/01/22 19:47:29 tom Exp $) +# ($Id: MKlib_gen.sh,v 1.34 2008/08/30 19:20:50 tom Exp $) # ############################################################################## -# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. # +# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. # # # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # @@ -51,7 +51,7 @@ # them. # 5. cpp: macro-expand the file so the macro calls turn into C calls # 6. awk: strip the expansion junk off the front and add the new header -# 7. sed: squeeze spaces, strip off gen_ prefix. +# 7. sed: squeeze spaces, strip off gen_ prefix, create needed #undef # # keep the editing independent of locale: @@ -81,8 +81,6 @@ if test "$USE" = implemented ; then CALL="call_" cat >$ED1 <$ED3 <$ED4 <$ED4 <$ED4 <" - print "" - print "#undef NCURSES_NOMACROS /* _this_ file uses macros */" - print "" print "#include " print "" - print "#undef vw_scanw" - print "#undef vwscanw" - print "" - print "#undef vw_printw" - print "#undef vwprintw" } /^DECLARATIONS/ {start = 1; next;} {if (start) print \$0;} diff --git a/ncurses/base/MKunctrl.awk b/ncurses/base/MKunctrl.awk index 2140900e8c3b..36fbeecb2e76 100644 --- a/ncurses/base/MKunctrl.awk +++ b/ncurses/base/MKunctrl.awk @@ -1,6 +1,6 @@ -# $Id: MKunctrl.awk,v 1.26 2009/07/04 22:05:15 Clemens.Ladisch Exp $ +# $Id: MKunctrl.awk,v 1.23 2008/10/04 21:40:24 tom Exp $ ############################################################################## -# Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. # +# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. # # # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # @@ -36,12 +36,19 @@ BEGIN { print "#include " print "#include " print "" + print "#if USE_WIDEC_SUPPORT" + print "#if HAVE_WCTYPE_H" + print "#include " + print "#endif" + print "#endif" + print "" print "#undef unctrl" print "" } END { - print "NCURSES_EXPORT(NCURSES_CONST char *) safe_unctrl(SCREEN *sp, chtype ch)" + print "NCURSES_EXPORT(NCURSES_CONST char *) _nc_unctrl (SCREEN *sp, chtype ch)" print "{" + blob="" offset=0 if (bigstrings) { @@ -151,6 +158,16 @@ END { print "\t\t && (check < 160))" printf "\t\t\tresult = %s_c1[check - 128];\n", stringname; print "\t\telse" + print "#if USE_WIDEC_SUPPORT" + print "\t\tif ((check >= 160)" + print "\t\t && (check < 256)" + print "\t\t && ((sp != 0)" + print "\t\t && ((sp->_legacy_coding > 0)" + print "\t\t || (sp->_legacy_coding == 0" + print "\t\t && (isprint(check) || iswprint(check))))))" + printf "\t\t\tresult = %s_c1[check - 128];\n", stringname; + print "\t\telse" + print "#else" print "\t\tif ((check >= 160)" print "\t\t && (check < 256)" print "\t\t && ((sp != 0)" @@ -159,6 +176,7 @@ END { print "\t\t && isprint(check)))))" printf "\t\t\tresult = %s_c1[check - 128];\n", stringname; print "\t\telse" + print "#endif /* USE_WIDEC_SUPPORT */" print "#endif /* NCURSES_EXT_FUNCS */" printf "\t\t\tresult = %s_table[check];\n", stringname; print "\t} else {" @@ -169,6 +187,6 @@ END { print "" print "NCURSES_EXPORT(NCURSES_CONST char *) unctrl (chtype ch)" print "{" - print "\treturn safe_unctrl(CURRENT_SCREEN, ch);" + print "\treturn _nc_unctrl(SP, ch);" print "}" } diff --git a/ncurses/base/define_key.c b/ncurses/base/define_key.c index a49b094279c8..3d5815f906d6 100644 --- a/ncurses/base/define_key.c +++ b/ncurses/base/define_key.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -27,40 +27,33 @@ ****************************************************************************/ /**************************************************************************** - * Author: Thomas E. Dickey 1997-on * - * and: Juergen Pfeifer 2009 * + * Author: Thomas E. Dickey 1997-on * ****************************************************************************/ #include -MODULE_ID("$Id: define_key.c,v 1.20 2009/11/28 22:53:17 tom Exp $") +MODULE_ID("$Id: define_key.c,v 1.13 2006/12/30 23:23:31 tom Exp $") NCURSES_EXPORT(int) -NCURSES_SP_NAME(define_key) (NCURSES_SP_DCLx const char *str, int keycode) +define_key(const char *str, int keycode) { int code = ERR; - T((T_CALLED("define_key(%p, %s,%d)"), (void *) SP_PARM, _nc_visbuf(str), keycode)); - if (SP_PARM == 0 || !HasTInfoTerminal(SP_PARM)) { + T((T_CALLED("define_key(%s,%d)"), _nc_visbuf(str), keycode)); + if (SP == 0) { code = ERR; } else if (keycode > 0) { unsigned ukey = (unsigned) keycode; -#ifdef USE_TERM_DRIVER -#define CallHasKey(keycode) CallDriver_1(SP_PARM, kyExist, keycode) -#else -#define CallHasKey(keycode) NCURSES_SP_NAME(has_key)(NCURSES_SP_ARGx keycode) -#endif - if (str != 0) { - NCURSES_SP_NAME(define_key) (NCURSES_SP_ARGx str, 0); - } else if (CallHasKey(keycode)) { - while (_nc_remove_key(&(SP_PARM->_keytry), ukey)) + define_key(str, 0); + } else if (has_key(keycode)) { + while (_nc_remove_key(&(SP->_keytry), ukey)) code = OK; } if (str != 0) { - if (NCURSES_SP_NAME(key_defined) (NCURSES_SP_ARGx str) == 0) { - if (_nc_add_to_try(&(SP_PARM->_keytry), str, ukey) == OK) { + if (key_defined(str) == 0) { + if (_nc_add_to_try(&(SP->_keytry), str, ukey) == OK) { code = OK; } else { code = ERR; @@ -70,16 +63,8 @@ NCURSES_SP_NAME(define_key) (NCURSES_SP_DCLx const char *str, int keycode) } } } else { - while (_nc_remove_string(&(SP_PARM->_keytry), str)) + while (_nc_remove_string(&(SP->_keytry), str)) code = OK; } returnCode(code); } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -define_key(const char *str, int keycode) -{ - return NCURSES_SP_NAME(define_key) (CURRENT_SCREEN, str, keycode); -} -#endif diff --git a/ncurses/base/key_defined.c b/ncurses/base/key_defined.c index ef987a5484d5..759ad824318d 100644 --- a/ncurses/base/key_defined.c +++ b/ncurses/base/key_defined.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2003-2006,2009 Free Software Foundation, Inc. * + * Copyright (c) 2003,2006 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -32,7 +32,7 @@ #include -MODULE_ID("$Id: key_defined.c,v 1.9 2009/10/24 22:15:47 tom Exp $") +MODULE_ID("$Id: key_defined.c,v 1.6 2006/12/30 23:22:55 tom Exp $") static int find_definition(TRIES * tree, const char *str) @@ -65,22 +65,14 @@ find_definition(TRIES * tree, const char *str) * Otherwise, return the keycode's value (neither OK/ERR). */ NCURSES_EXPORT(int) -NCURSES_SP_NAME(key_defined) (NCURSES_SP_DCLx const char *str) +key_defined(const char *str) { int code = ERR; - T((T_CALLED("key_defined(%p, %s)"), (void *) SP_PARM, _nc_visbuf(str))); - if (SP_PARM != 0 && str != 0) { - code = find_definition(SP_PARM->_keytry, str); + T((T_CALLED("key_defined(%s)"), _nc_visbuf(str))); + if (SP != 0 && str != 0) { + code = find_definition(SP->_keytry, str); } returnCode(code); } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -key_defined(const char *str) -{ - return NCURSES_SP_NAME(key_defined) (CURRENT_SCREEN, str); -} -#endif diff --git a/ncurses/base/keybound.c b/ncurses/base/keybound.c index 65e6bfc63620..2995714ba936 100644 --- a/ncurses/base/keybound.c +++ b/ncurses/base/keybound.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1999-2006,2009 Free Software Foundation, Inc. * + * Copyright (c) 1999-2005,2006 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -27,34 +27,25 @@ ****************************************************************************/ /**************************************************************************** - * Author: Thomas E. Dickey 1999-on * - * and: Juergen Pfeifer 2009 * + * Author: Thomas E. Dickey 1999-on * ****************************************************************************/ #include -MODULE_ID("$Id: keybound.c,v 1.10 2009/10/24 22:15:47 tom Exp $") +MODULE_ID("$Id: keybound.c,v 1.7 2006/06/17 18:19:24 tom Exp $") /* * Returns the count'th string definition which is associated with the * given keycode. The result is malloc'd, must be freed by the caller. */ NCURSES_EXPORT(char *) -NCURSES_SP_NAME(keybound) (NCURSES_SP_DCLx int code, int count) +keybound(int code, int count) { char *result = 0; - T((T_CALLED("keybound(%p, %d,%d)"), (void *) SP_PARM, code, count)); - if (SP_PARM != 0 && code >= 0) { - result = _nc_expand_try(SP_PARM->_keytry, (unsigned) code, &count, 0); + T((T_CALLED("keybound(%d,%d)"), code, count)); + if (SP != 0 && code >= 0) { + result = _nc_expand_try(SP->_keytry, (unsigned) code, &count, 0); } returnPtr(result); } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(char *) -keybound(int code, int count) -{ - return NCURSES_SP_NAME(keybound) (CURRENT_SCREEN, code, count); -} -#endif diff --git a/ncurses/base/keyok.c b/ncurses/base/keyok.c index 0eacf4926300..ad8988cded3b 100644 --- a/ncurses/base/keyok.c +++ b/ncurses/base/keyok.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2000,2006 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -27,13 +27,12 @@ ****************************************************************************/ /**************************************************************************** - * Author: Thomas E. Dickey 1997-on * - * and: Juergen Pfeifer 2009 * + * Author: Thomas E. Dickey 1997-on * ****************************************************************************/ #include -MODULE_ID("$Id: keyok.c,v 1.10 2009/10/24 22:15:47 tom Exp $") +MODULE_ID("$Id: keyok.c,v 1.7 2006/12/30 16:22:33 tom Exp $") /* * Enable (or disable) ncurses' interpretation of a keycode by adding (or @@ -46,33 +45,28 @@ MODULE_ID("$Id: keyok.c,v 1.10 2009/10/24 22:15:47 tom Exp $") */ NCURSES_EXPORT(int) -NCURSES_SP_NAME(keyok) (NCURSES_SP_DCLx int c, bool flag) +keyok(int c, bool flag) { int code = ERR; + int count = 0; + char *s; - T((T_CALLED("keyok(%p, %d,%d)"), (void *) SP_PARM, c, flag)); -#ifdef USE_TERM_DRIVER - code = CallDriver_2(sp, kyOk, c, flag); -#else T((T_CALLED("keyok(%d,%d)"), c, flag)); if (c >= 0) { - int count = 0; - char *s; unsigned ch = (unsigned) c; - if (flag) { - while ((s = _nc_expand_try(SP_PARM->_key_ok, ch, &count, 0)) != 0 - && _nc_remove_key(&(SP_PARM->_key_ok), ch)) { - code = _nc_add_to_try(&(SP_PARM->_keytry), s, ch); + while ((s = _nc_expand_try(SP->_key_ok, ch, &count, 0)) != 0 + && _nc_remove_key(&(SP->_key_ok), ch)) { + code = _nc_add_to_try(&(SP->_keytry), s, ch); free(s); count = 0; if (code != OK) break; } } else { - while ((s = _nc_expand_try(SP_PARM->_keytry, ch, &count, 0)) != 0 - && _nc_remove_key(&(SP_PARM->_keytry), ch)) { - code = _nc_add_to_try(&(SP_PARM->_key_ok), s, ch); + while ((s = _nc_expand_try(SP->_keytry, ch, &count, 0)) != 0 + && _nc_remove_key(&(SP->_keytry), ch)) { + code = _nc_add_to_try(&(SP->_key_ok), s, ch); free(s); count = 0; if (code != OK) @@ -80,14 +74,5 @@ NCURSES_SP_NAME(keyok) (NCURSES_SP_DCLx int c, bool flag) } } } -#endif returnCode(code); } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -keyok(int c, bool flag) -{ - return NCURSES_SP_NAME(keyok) (CURRENT_SCREEN, c, flag); -} -#endif diff --git a/ncurses/base/legacy_coding.c b/ncurses/base/legacy_coding.c index d8c80208c6a9..1c2f160a605d 100644 --- a/ncurses/base/legacy_coding.c +++ b/ncurses/base/legacy_coding.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2005,2009 Free Software Foundation, Inc. * + * Copyright (c) 2005 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -27,31 +27,22 @@ ****************************************************************************/ /**************************************************************************** - * Author: Thomas E. Dickey 2005 * - * Juergen Pfeifer 2009 * + * Author: Thomas E. Dickey * ****************************************************************************/ #include -MODULE_ID("$Id: legacy_coding.c,v 1.5 2009/10/24 22:15:00 tom Exp $") +MODULE_ID("$Id: legacy_coding.c,v 1.2 2005/12/17 23:38:17 tom Exp $") NCURSES_EXPORT(int) -NCURSES_SP_NAME(use_legacy_coding) (NCURSES_SP_DCLx int level) +use_legacy_coding(int level) { int result = ERR; - T((T_CALLED("use_legacy_coding(%p,%d)"), (void *) SP_PARM, level)); - if (level >= 0 && level <= 2 && SP_PARM != 0) { - result = SP_PARM->_legacy_coding; - SP_PARM->_legacy_coding = level; + T((T_CALLED("use_legacy_coding(%d)"), level)); + if (level >= 0 && level <= 2 && SP != 0) { + result = SP->_legacy_coding; + SP->_legacy_coding = level; } returnCode(result); } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -use_legacy_coding(int level) -{ - return NCURSES_SP_NAME(use_legacy_coding) (CURRENT_SCREEN, level); -} -#endif diff --git a/ncurses/base/lib_addch.c b/ncurses/base/lib_addch.c index 515ebaf0b8fc..20a97a01a011 100644 --- a/ncurses/base/lib_addch.c +++ b/ncurses/base/lib_addch.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -36,7 +36,7 @@ #include #include -MODULE_ID("$Id: lib_addch.c,v 1.124 2010/04/24 22:41:05 tom Exp $") +MODULE_ID("$Id: lib_addch.c,v 1.113 2008/08/16 19:20:04 tom Exp $") static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT); @@ -77,6 +77,12 @@ render_char(WINDOW *win, NCURSES_CH_T ch) if ((pair = GET_WINDOW_PAIR(win)) == 0) pair = GetPair(win->_nc_bkgd); } +#if 0 + if (pair > 255) { + NCURSES_CH_T fixme = ch; + SetPair(fixme, pair); + } +#endif AddAttr(ch, (a & COLOR_MASK(AttrOf(ch)))); SetPair(ch, pair); } @@ -125,7 +131,7 @@ newline_forces_scroll(WINDOW *win, NCURSES_SIZE_T * ypos) *ypos = win->_regbottom; result = TRUE; } else { - *ypos = (NCURSES_SIZE_T) (*ypos + 1); + *ypos += 1; } return result; } @@ -170,8 +176,8 @@ fill_cells(WINDOW *win, int count) if (waddch_literal(win, blank) == ERR) break; } - win->_curx = (NCURSES_SIZE_T) save_x; - win->_cury = (NCURSES_SIZE_T) save_y; + win->_curx = save_x; + win->_cury = save_y; } #endif @@ -207,9 +213,9 @@ _nc_build_wch(WINDOW *win, ARG_CH_T ch) buffer[WINDOW_EXT(win, addch_used)] = (char) CharOf(CHDEREF(ch)); WINDOW_EXT(win, addch_used) += 1; buffer[WINDOW_EXT(win, addch_used)] = '\0'; - if ((len = (int) mbrtowc(&result, - buffer, - WINDOW_EXT(win, addch_used), &state)) > 0) { + if ((len = mbrtowc(&result, + buffer, + WINDOW_EXT(win, addch_used), &state)) > 0) { attr_t attrs = AttrOf(CHDEREF(ch)); if_EXT_COLORS(int pair = GetPair(CHDEREF(ch))); SetChar(CHDEREF(ch), result, attrs); @@ -254,37 +260,20 @@ waddch_literal(WINDOW *win, NCURSES_CH_T ch) /* * Build up multibyte characters until we have a wide-character. */ -#if NCURSES_SP_FUNCS -#define DeriveSP() SCREEN *sp = _nc_screen_of(win); -#else -#define DeriveSP() /*nothing */ -#endif if_WIDEC({ - DeriveSP(); if (WINDOW_EXT(win, addch_used) != 0 || !Charable(ch)) { int len = _nc_build_wch(win, CHREF(ch)); if (len >= -1) { - attr_t attr = AttrOf(ch); - - /* handle EILSEQ (i.e., when len >= -1) */ - if (len == -1 && is8bits(CharOf(ch))) { - int rc = OK; - const char *s = NCURSES_SP_NAME(unctrl) - (NCURSES_SP_ARGx (chtype) CharOf(ch)); - - if (s[1] != '\0') { - while (*s != '\0') { - rc = waddch(win, UChar(*s) | attr); - if (rc != OK) - break; - ++s; - } - return rc; + /* handle EILSEQ */ + if (is8bits(CharOf(ch))) { + const char *s = unctrl((chtype) CharOf(ch)); + if (s[1] != 0) { + return waddstr(win, s); } } if (len == -1) - return waddch(win, ' ' | attr); + return waddch(win, ' '); } else { return OK; } @@ -338,7 +327,6 @@ waddch_literal(WINDOW *win, NCURSES_CH_T ch) return ERR; x = win->_curx; y = win->_cury; - line = win->_line + y; } /* * Check for cells which are orphaned by adding this character, set @@ -396,7 +384,7 @@ waddch_literal(WINDOW *win, NCURSES_CH_T ch) if (x > win->_maxx) { return wrap_to_next_line(win); } - win->_curx = (NCURSES_SIZE_T) x; + win->_curx = x; return OK; } @@ -405,12 +393,9 @@ waddch_nosync(WINDOW *win, const NCURSES_CH_T ch) /* the workhorse function -- add a character to the given window */ { NCURSES_SIZE_T x, y; - chtype t = (chtype) CharOf(ch); -#if USE_WIDEC_SUPPORT || NCURSES_SP_FUNCS || USE_REENTRANT - SCREEN *sp = _nc_screen_of(win); -#endif - const char *s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx t); - int tabsize = 8; + chtype t = CharOf(ch); + const char *s = unctrl(t); + /* * If we are using the alternate character set, forget about locale. * Otherwise, if unctrl() returns a single-character or the locale @@ -419,14 +404,14 @@ waddch_nosync(WINDOW *win, const NCURSES_CH_T ch) if ((AttrOf(ch) & A_ALTCHARSET) || ( #if USE_WIDEC_SUPPORT - (sp != 0 && sp->_legacy_coding) && + (SP != 0 && SP->_legacy_coding) && #endif s[1] == 0 ) || ( isprint(t) #if USE_WIDEC_SUPPORT - || ((sp == 0 || !sp->_legacy_coding) && + || ((SP == 0 || !SP->_legacy_coding) && (WINDOW_EXT(win, addch_used) || !_nc_is_charable(CharOf(ch)))) #endif @@ -442,12 +427,8 @@ waddch_nosync(WINDOW *win, const NCURSES_CH_T ch) switch (t) { case '\t': -#if USE_REENTRANT - tabsize = *ptrTabsize(sp); -#else - tabsize = TABSIZE; -#endif - x = (NCURSES_SIZE_T) (x + (tabsize - (x % tabsize))); + x += (TABSIZE - (x % TABSIZE)); + /* * Space-fill the tab on the bottom line so that we'll get the * "correct" cursor position. @@ -533,7 +514,7 @@ waddch(WINDOW *win, const chtype ch) NCURSES_CH_T wch; SetChar2(wch, ch); - TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("waddch(%p, %s)"), (void *) win, + TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("waddch(%p, %s)"), win, _tracechtype(ch))); if (win && (waddch_nosync(win, wch) != ERR)) { @@ -552,8 +533,7 @@ wechochar(WINDOW *win, const chtype ch) NCURSES_CH_T wch; SetChar2(wch, ch); - TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wechochar(%p, %s)"), - (void *) win, + TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wechochar(%p, %s)"), win, _tracechtype(ch))); if (win && (waddch_nosync(win, wch) != ERR)) { diff --git a/ncurses/base/lib_addstr.c b/ncurses/base/lib_addstr.c index d73ce00a4519..4e3a040cf032 100644 --- a/ncurses/base/lib_addstr.c +++ b/ncurses/base/lib_addstr.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -44,7 +44,7 @@ #include -MODULE_ID("$Id: lib_addstr.c,v 1.51 2010/12/19 01:22:58 tom Exp $") +MODULE_ID("$Id: lib_addstr.c,v 1.48 2007/10/13 19:56:57 tom Exp $") NCURSES_EXPORT(int) waddnstr(WINDOW *win, const char *astr, int n) @@ -52,7 +52,7 @@ waddnstr(WINDOW *win, const char *astr, int n) const char *str = astr; int code = ERR; - T((T_CALLED("waddnstr(%p,%s,%d)"), (void *) win, _nc_visbufn(astr, n), n)); + T((T_CALLED("waddnstr(%p,%s,%d)"), win, _nc_visbufn(astr, n), n)); if (win && (str != 0)) { TR(TRACE_VIRTPUT | TRACE_ATTRS, @@ -85,7 +85,7 @@ waddchnstr(WINDOW *win, const chtype *astr, int n) int i; struct ldat *line; - T((T_CALLED("waddchnstr(%p,%p,%d)"), (void *) win, (const void *) astr, n)); + T((T_CALLED("waddchnstr(%p,%p,%d)"), win, astr, n)); if (!win) returnCode(ERR); @@ -107,7 +107,7 @@ waddchnstr(WINDOW *win, const chtype *astr, int n) for (i = 0; i < n && ChCharOf(astr[i]) != '\0'; ++i) { SetChar2(line->text[i + x], astr[i]); } - CHANGED_RANGE(line, x, (NCURSES_SIZE_T) (x + n - 1)); + CHANGED_RANGE(line, x, x + n - 1); _nc_synchook(win); returnCode(code); @@ -135,10 +135,7 @@ wadd_wchnstr(WINDOW *win, const cchar_t *astr, int n) struct ldat *line; int i, j, start, len, end; - T((T_CALLED("wadd_wchnstr(%p,%s,%d)"), - (void *) win, - _nc_viscbuf(astr, n), - n)); + T((T_CALLED("wadd_wchnstr(%p,%s,%d)"), win, _nc_viscbuf(astr, n), n)); if (!win) returnCode(ERR); @@ -193,7 +190,7 @@ wadd_wchnstr(WINDOW *win, const cchar_t *astr, int n) SetWidecExt(line->text[x + j], j); } } - x = (NCURSES_SIZE_T) (x + len); + x += len; end += len - 1; } else { break; @@ -220,7 +217,7 @@ waddnwstr(WINDOW *win, const wchar_t *str, int n) { int code = ERR; - T((T_CALLED("waddnwstr(%p,%s,%d)"), (void *) win, _nc_viswbufn(str, n), n)); + T((T_CALLED("waddnwstr(%p,%s,%d)"), win, _nc_viswbufn(str, n), n)); if (win && (str != 0)) { TR(TRACE_VIRTPUT | TRACE_ATTRS, diff --git a/ncurses/base/lib_beep.c b/ncurses/base/lib_beep.c index 9d7f7fd96f01..b478f251a1bb 100644 --- a/ncurses/base/lib_beep.c +++ b/ncurses/base/lib_beep.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -30,7 +30,6 @@ * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -41,12 +40,9 @@ */ #include +#include /* beep, flash */ -#ifndef CUR -#define CUR SP_TERMTYPE -#endif - -MODULE_ID("$Id: lib_beep.c,v 1.15 2009/10/24 22:02:14 tom Exp $") +MODULE_ID("$Id: lib_beep.c,v 1.10 2005/04/09 15:20:04 tom Exp $") /* * beep() @@ -57,16 +53,12 @@ MODULE_ID("$Id: lib_beep.c,v 1.15 2009/10/24 22:02:14 tom Exp $") */ NCURSES_EXPORT(int) -NCURSES_SP_NAME(beep) (NCURSES_SP_DCL0) +beep(void) { int res = ERR; - T((T_CALLED("beep(%p)"), (void *) SP_PARM)); + T((T_CALLED("beep()"))); -#ifdef USE_TERM_DRIVER - if (SP_PARM != 0) - res = CallDriver_1(SP_PARM, doBeepOrFlash, TRUE); -#else /* FIXME: should make sure that we are not in altchar mode */ if (cur_term == 0) { res = ERR; @@ -79,15 +71,6 @@ NCURSES_SP_NAME(beep) (NCURSES_SP_DCL0) res = putp(flash_screen); _nc_flush(); } -#endif returnCode(res); } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -beep(void) -{ - return NCURSES_SP_NAME(beep) (CURRENT_SCREEN); -} -#endif diff --git a/ncurses/base/lib_bkgd.c b/ncurses/base/lib_bkgd.c index 0396ba8f47a8..c99e0c5fc3a8 100644 --- a/ncurses/base/lib_bkgd.c +++ b/ncurses/base/lib_bkgd.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * + * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -36,7 +36,7 @@ #include -MODULE_ID("$Id: lib_bkgd.c,v 1.43 2011/01/22 19:47:37 tom Exp $") +MODULE_ID("$Id: lib_bkgd.c,v 1.36 2008/03/23 00:09:14 tom Exp $") /* * Set the window's background information. @@ -48,7 +48,7 @@ static NCURSES_INLINE void #endif wbkgrndset(WINDOW *win, const ARG_CH_T ch) { - T((T_CALLED("wbkgdset(%p,%s)"), (void *) win, _tracech_t(ch))); + T((T_CALLED("wbkgdset(%p,%s)"), win, _tracech_t(ch))); if (win) { attr_t off = AttrOf(win->_nc_bkgd); @@ -85,12 +85,12 @@ wbkgrndset(WINDOW *win, const ARG_CH_T ch) cchar_t wch; int tmp; - (void) wgetbkgrnd(win, &wch); + wgetbkgrnd(win, &wch); tmp = _nc_to_char((wint_t) CharOf(wch)); win->_bkgd = (((tmp == EOF) ? ' ' : (chtype) tmp) | (AttrOf(wch) & ALL_BUT_COLOR) - | (chtype) ColorPair(GET_WINDOW_PAIR(win))); + | COLOR_PAIR(GET_WINDOW_PAIR(win))); } #endif } @@ -120,14 +120,14 @@ wbkgrnd(WINDOW *win, const ARG_CH_T ch) int x, y; NCURSES_CH_T new_bkgd = CHDEREF(ch); - T((T_CALLED("wbkgd(%p,%s)"), (void *) win, _tracech_t(ch))); + T((T_CALLED("wbkgd(%p,%s)"), win, _tracech_t(ch))); if (win) { NCURSES_CH_T old_bkgrnd; wgetbkgrnd(win, &old_bkgrnd); - (void) wbkgrndset(win, CHREF(new_bkgd)); - (void) wattrset(win, AttrOf(win->_nc_bkgd)); + wbkgrndset(win, CHREF(new_bkgd)); + wattrset(win, AttrOf(win->_nc_bkgd)); for (y = 0; y <= win->_maxy; y++) { for (x = 0; x <= win->_maxx; x++) { diff --git a/ncurses/base/lib_box.c b/ncurses/base/lib_box.c index 6f17c97a5b07..d6cfc6cfe09c 100644 --- a/ncurses/base/lib_box.c +++ b/ncurses/base/lib_box.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2002,2005 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -42,7 +42,7 @@ #include -MODULE_ID("$Id: lib_box.c,v 1.24 2010/04/24 23:51:57 tom Exp $") +MODULE_ID("$Id: lib_box.c,v 1.22 2005/11/26 15:39:42 tom Exp $") #if USE_WIDEC_SUPPORT static NCURSES_INLINE chtype @@ -51,9 +51,8 @@ _my_render(WINDOW *win, chtype ch) NCURSES_CH_T wch; SetChar2(wch, ch); wch = _nc_render(win, wch); - return ((attr_t) CharOf(wch)) | AttrOf(wch); + return CharOf(wch) | AttrOf(wch); } - #define RENDER_WITH_DEFAULT(ch,def) w ## ch = _my_render(win, (ch == 0) ? def : ch) #else #define RENDER_WITH_DEFAULT(ch,def) w ## ch = _nc_render(win, (ch == 0) ? def : ch) @@ -71,7 +70,7 @@ wborder(WINDOW *win, chtype wls, wrs, wts, wbs, wtl, wtr, wbl, wbr; T((T_CALLED("wborder(%p,%s,%s,%s,%s,%s,%s,%s,%s)"), - (void *) win, + win, _tracechtype2(1, ls), _tracechtype2(2, rs), _tracechtype2(3, ts), diff --git a/ncurses/base/lib_chgat.c b/ncurses/base/lib_chgat.c index cdddaeae995c..89eefa7e82fe 100644 --- a/ncurses/base/lib_chgat.c +++ b/ncurses/base/lib_chgat.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -42,19 +42,19 @@ #include -MODULE_ID("$Id: lib_chgat.c,v 1.9 2010/03/31 23:38:02 tom Exp $") +MODULE_ID("$Id: lib_chgat.c,v 1.7 2006/07/15 22:07:11 tom Exp $") NCURSES_EXPORT(int) wchgat(WINDOW *win, int n, attr_t attr, short color, const void *opts GCC_UNUSED) { int i; - T((T_CALLED("wchgat(%p,%d,%s,%d)"), (void *) win, n, _traceattr(attr), color)); + T((T_CALLED("wchgat(%p,%d,%s,%d)"), win, n, _traceattr(attr), color)); if (win) { struct ldat *line = &(win->_line[win->_cury]); - toggle_attr_on(attr, ColorPair(color)); + toggle_attr_on(attr, COLOR_PAIR(color)); for (i = win->_curx; i <= win->_maxx && (n == -1 || (n-- > 0)); i++) { SetAttr(line->text[i], attr); diff --git a/ncurses/base/lib_clear.c b/ncurses/base/lib_clear.c index 008744ccbabb..e0b4edf9e224 100644 --- a/ncurses/base/lib_clear.c +++ b/ncurses/base/lib_clear.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2000,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -40,14 +40,14 @@ #include -MODULE_ID("$Id: lib_clear.c,v 1.8 2009/10/24 22:33:29 tom Exp $") +MODULE_ID("$Id: lib_clear.c,v 1.7 2000/12/10 02:43:26 tom Exp $") NCURSES_EXPORT(int) wclear(WINDOW *win) { int code = ERR; - T((T_CALLED("wclear(%p)"), (void *) win)); + T((T_CALLED("wclear(%p)"), win)); if ((code = werase(win)) != ERR) win->_clear = TRUE; diff --git a/ncurses/base/lib_clearok.c b/ncurses/base/lib_clearok.c index ffc7d02dc0ff..9b56bd1ec63a 100644 --- a/ncurses/base/lib_clearok.c +++ b/ncurses/base/lib_clearok.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2000,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -40,12 +40,12 @@ #include -MODULE_ID("$Id: lib_clearok.c,v 1.5 2009/10/24 22:34:53 tom Exp $") +MODULE_ID("$Id: lib_clearok.c,v 1.4 2000/12/10 02:43:26 tom Exp $") NCURSES_EXPORT(int) clearok(WINDOW *win, bool flag) { - T((T_CALLED("clearok(%p,%d)"), (void *) win, flag)); + T((T_CALLED("clearok(%p,%d)"), win, flag)); if (win) { win->_clear = flag; diff --git a/ncurses/base/lib_clrbot.c b/ncurses/base/lib_clrbot.c index cbf2206d5581..df196e815f82 100644 --- a/ncurses/base/lib_clrbot.c +++ b/ncurses/base/lib_clrbot.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -40,14 +40,14 @@ #include -MODULE_ID("$Id: lib_clrbot.c,v 1.21 2009/10/24 22:33:19 tom Exp $") +MODULE_ID("$Id: lib_clrbot.c,v 1.20 2006/10/14 20:43:31 tom Exp $") NCURSES_EXPORT(int) wclrtobot(WINDOW *win) { int code = ERR; - T((T_CALLED("wclrtobot(%p)"), (void *) win)); + T((T_CALLED("wclrtobot(%p)"), win)); if (win) { NCURSES_SIZE_T y; diff --git a/ncurses/base/lib_clreol.c b/ncurses/base/lib_clreol.c index 7aff84b35a42..c46ebd93a332 100644 --- a/ncurses/base/lib_clreol.c +++ b/ncurses/base/lib_clreol.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2001,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -40,14 +40,14 @@ #include -MODULE_ID("$Id: lib_clreol.c,v 1.22 2009/10/24 22:33:06 tom Exp $") +MODULE_ID("$Id: lib_clreol.c,v 1.21 2001/12/19 01:06:04 tom Exp $") NCURSES_EXPORT(int) wclrtoeol(WINDOW *win) { int code = ERR; - T((T_CALLED("wclrtoeol(%p)"), (void *) win)); + T((T_CALLED("wclrtoeol(%p)"), win)); if (win) { NCURSES_CH_T blank; diff --git a/ncurses/base/lib_color.c b/ncurses/base/lib_color.c index a5c181c8b4b1..9cae495436fe 100644 --- a/ncurses/base/lib_color.c +++ b/ncurses/base/lib_color.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -30,7 +30,6 @@ * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* lib_color.c @@ -39,33 +38,12 @@ */ #include -#include - -#ifndef CUR -#define CUR SP_TERMTYPE -#endif -MODULE_ID("$Id: lib_color.c,v 1.98 2010/04/24 22:57:53 tom Exp $") +#include +#include -#ifdef USE_TERM_DRIVER -#define CanChange InfoOf(SP_PARM).canchange -#define DefaultPalette InfoOf(SP_PARM).defaultPalette -#define HasColor InfoOf(SP_PARM).hascolor -#define InitColor InfoOf(SP_PARM).initcolor -#define MaxColors InfoOf(SP_PARM).maxcolors -#define MaxPairs InfoOf(SP_PARM).maxpairs -#define UseHlsPalette (DefaultPalette == _nc_hls_palette) -#else -#define CanChange can_change -#define DefaultPalette (hue_lightness_saturation ? hls_palette : cga_palette) -#define HasColor has_color -#define InitColor initialize_color -#define MaxColors max_colors -#define MaxPairs max_pairs -#define UseHlsPalette (hue_lightness_saturation) -#endif +MODULE_ID("$Id: lib_color.c,v 1.85 2007/04/07 17:07:28 tom Exp $") -#ifndef USE_TERM_DRIVER /* * These should be screen structure members. They need to be globals for * historical reasons. So we assign them in start_color() and also in @@ -86,7 +64,6 @@ NCURSES_PUBLIC_VAR(COLORS) (void) NCURSES_EXPORT_VAR(int) COLOR_PAIRS = 0; NCURSES_EXPORT_VAR(int) COLORS = 0; #endif -#endif /* !USE_TERM_DRIVER */ #define DATA(r,g,b) {r,g,b, 0,0,0, 0} @@ -94,7 +71,7 @@ NCURSES_EXPORT_VAR(int) COLORS = 0; #define MAX_PALETTE 8 -#define OkColorHi(n) (((n) < COLORS) && ((n) < maxcolors)) +#define OkColorHi(n) (((n) < COLORS) && ((n) < max_colors)) #define InPalette(n) ((n) >= 0 && (n) < MAX_PALETTE) /* @@ -129,43 +106,29 @@ static const color_t hls_palette[] = DATA( 300, 50, 100), /* COLOR_CYAN */ DATA( 0, 50, 100), /* COLOR_WHITE */ }; - -#ifdef USE_TERM_DRIVER -NCURSES_EXPORT_VAR(const color_t*) _nc_cga_palette = cga_palette; -NCURSES_EXPORT_VAR(const color_t*) _nc_hls_palette = hls_palette; -#endif - /* *INDENT-ON* */ -/* - * Ensure that we use color pairs only when colors have been started, and also - * that the index is within the limits of the table which we allocated. - */ -#define ValidPair(pair) \ - ((SP_PARM != 0) && (pair >= 0) && (pair < SP_PARM->_pair_limit) && SP_PARM->_coloron) - #if NCURSES_EXT_FUNCS /* * These are called from _nc_do_color(), which in turn is called from - * vidattr - so we have to assume that sp may be null. + * vidattr - so we have to assume that SP may be null. */ static int -default_fg(NCURSES_SP_DCL0) +default_fg(void) { - return (SP_PARM != 0) ? SP_PARM->_default_fg : COLOR_WHITE; + return (SP != 0) ? SP->_default_fg : COLOR_WHITE; } static int -default_bg(NCURSES_SP_DCL0) +default_bg(void) { - return SP_PARM != 0 ? SP_PARM->_default_bg : COLOR_BLACK; + return SP != 0 ? SP->_default_bg : COLOR_BLACK; } #else -#define default_fg(sp) COLOR_WHITE -#define default_bg(sp) COLOR_BLACK +#define default_fg() COLOR_WHITE +#define default_bg() COLOR_BLACK #endif -#ifndef USE_TERM_DRIVER /* * SVr4 curses is known to interchange color codes (1,4) and (3,6), possibly * to maintain compatibility with a pre-ANSI scheme. The same scheme is @@ -182,70 +145,52 @@ toggled_colors(int c) } return c; } -#endif static void -set_background_color(NCURSES_SP_DCLx int bg, NCURSES_SP_OUTC outc) +set_background_color(int bg, int (*outc) (int)) { -#ifdef USE_TERM_DRIVER - CallDriver_3(SP_PARM, color, FALSE, bg, outc); -#else if (set_a_background) { TPUTS_TRACE("set_a_background"); - NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx - TPARM_1(set_a_background, bg), - 1, outc); + tputs(TPARM_1(set_a_background, bg), 1, outc); } else { TPUTS_TRACE("set_background"); - NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx - TPARM_1(set_background, toggled_colors(bg)), - 1, outc); + tputs(TPARM_1(set_background, toggled_colors(bg)), 1, outc); } -#endif } static void -set_foreground_color(NCURSES_SP_DCLx int fg, NCURSES_SP_OUTC outc) +set_foreground_color(int fg, int (*outc) (int)) { -#ifdef USE_TERM_DRIVER - CallDriver_3(SP_PARM, color, TRUE, fg, outc); -#else if (set_a_foreground) { TPUTS_TRACE("set_a_foreground"); - NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx - TPARM_1(set_a_foreground, fg), - 1, outc); + tputs(TPARM_1(set_a_foreground, fg), 1, outc); } else { TPUTS_TRACE("set_foreground"); - NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx - TPARM_1(set_foreground, toggled_colors(fg)), - 1, outc); + tputs(TPARM_1(set_foreground, toggled_colors(fg)), 1, outc); } -#endif } static void -init_color_table(NCURSES_SP_DCL0) +init_color_table(void) { - const color_t *tp = DefaultPalette; + const color_t *tp; int n; - assert(tp != 0); - + tp = (hue_lightness_saturation) ? hls_palette : cga_palette; for (n = 0; n < COLORS; n++) { if (InPalette(n)) { - SP_PARM->_color_table[n] = tp[n]; + SP->_color_table[n] = tp[n]; } else { - SP_PARM->_color_table[n] = tp[n % MAX_PALETTE]; - if (UseHlsPalette) { - SP_PARM->_color_table[n].green = 100; + SP->_color_table[n] = tp[n % MAX_PALETTE]; + if (hue_lightness_saturation) { + SP->_color_table[n].green = 100; } else { - if (SP_PARM->_color_table[n].red) - SP_PARM->_color_table[n].red = 1000; - if (SP_PARM->_color_table[n].green) - SP_PARM->_color_table[n].green = 1000; - if (SP_PARM->_color_table[n].blue) - SP_PARM->_color_table[n].blue = 1000; + if (SP->_color_table[n].red) + SP->_color_table[n].red = 1000; + if (SP->_color_table[n].green) + SP->_color_table[n].green = 1000; + if (SP->_color_table[n].blue) + SP->_color_table[n].blue = 1000; } } } @@ -255,21 +200,16 @@ init_color_table(NCURSES_SP_DCL0) * Reset the color pair, e.g., to whatever color pair 0 is. */ static bool -reset_color_pair(NCURSES_SP_DCL0) +reset_color_pair(void) { -#ifdef USE_TERM_DRIVER - return CallDriver(SP_PARM, rescol); -#else bool result = FALSE; - (void) SP_PARM; if (orig_pair != 0) { TPUTS_TRACE("orig_pair"); putp(orig_pair); result = TRUE; } return result; -#endif } /* @@ -277,93 +217,65 @@ reset_color_pair(NCURSES_SP_DCL0) * badly-written terminal descriptions than for the relatively rare case where * someone has changed the color definitions. */ -NCURSES_EXPORT(bool) -NCURSES_SP_NAME(_nc_reset_colors) (NCURSES_SP_DCL0) +bool +_nc_reset_colors(void) { int result = FALSE; - T((T_CALLED("_nc_reset_colors(%p)"), (void *) SP_PARM)); - if (SP_PARM->_color_defs > 0) - SP_PARM->_color_defs = -(SP_PARM->_color_defs); - if (reset_color_pair(NCURSES_SP_ARG)) - result = TRUE; + T((T_CALLED("_nc_reset_colors()"))); + if (SP->_color_defs > 0) + SP->_color_defs = -(SP->_color_defs); -#ifdef USE_TERM_DRIVER - result = CallDriver(SP_PARM, rescolors); -#else + if (reset_color_pair()) + result = TRUE; if (orig_colors != 0) { TPUTS_TRACE("orig_colors"); putp(orig_colors); result = TRUE; } -#endif returnBool(result); } -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(bool) -_nc_reset_colors(void) -{ - return NCURSES_SP_NAME(_nc_reset_colors) (CURRENT_SCREEN); -} -#endif - NCURSES_EXPORT(int) -NCURSES_SP_NAME(start_color) (NCURSES_SP_DCL0) +start_color(void) { int result = ERR; - int maxpairs = 0, maxcolors = 0; - T((T_CALLED("start_color(%p)"), (void *) SP_PARM)); + T((T_CALLED("start_color()"))); - if (SP_PARM == 0) { + if (SP == 0) { result = ERR; - } else if (SP_PARM->_coloron) { + } else if (SP->_coloron) { result = OK; } else { - maxpairs = MaxPairs; - maxcolors = MaxColors; - if (reset_color_pair(NCURSES_SP_ARG) != TRUE) { - set_foreground_color(NCURSES_SP_ARGx - default_fg(NCURSES_SP_ARG), - NCURSES_SP_NAME(_nc_outch)); - set_background_color(NCURSES_SP_ARGx - default_bg(NCURSES_SP_ARG), - NCURSES_SP_NAME(_nc_outch)); - } - if (maxpairs > 0 && maxcolors > 0) { - SP_PARM->_pair_limit = maxpairs; + if (reset_color_pair() != TRUE) { + set_foreground_color(default_fg(), _nc_outch); + set_background_color(default_bg(), _nc_outch); + } -#if NCURSES_EXT_FUNCS - /* - * If using default colors, allocate extra space in table to - * allow for default-color as a component of a color-pair. - */ - SP_PARM->_pair_limit += (1 + (2 * maxcolors)); -#endif - SP_PARM->_pair_count = maxpairs; - SP_PARM->_color_count = maxcolors; + if (max_pairs > 0 && max_colors > 0) { + SP->_pair_count = max_pairs; + SP->_color_count = max_colors; #if !USE_REENTRANT - COLOR_PAIRS = maxpairs; - COLORS = maxcolors; + COLOR_PAIRS = max_pairs; + COLORS = max_colors; #endif - SP_PARM->_color_pairs = TYPE_CALLOC(colorpair_t, SP_PARM->_pair_limit); - if (SP_PARM->_color_pairs != 0) { - SP_PARM->_color_table = TYPE_CALLOC(color_t, maxcolors); - if (SP_PARM->_color_table != 0) { - SP_PARM->_color_pairs[0] = PAIR_OF(default_fg(NCURSES_SP_ARG), - default_bg(NCURSES_SP_ARG)); - init_color_table(NCURSES_SP_ARG); + if ((SP->_color_pairs = TYPE_CALLOC(colorpair_t, + max_pairs)) != 0) { + if ((SP->_color_table = TYPE_CALLOC(color_t, + max_colors)) != 0) { + SP->_color_pairs[0] = PAIR_OF(default_fg(), default_bg()); + init_color_table(); T(("started color: COLORS = %d, COLOR_PAIRS = %d", COLORS, COLOR_PAIRS)); - SP_PARM->_coloron = 1; + SP->_coloron = 1; result = OK; - } else if (SP_PARM->_color_pairs != 0) { - FreeAndNull(SP_PARM->_color_pairs); + } else if (SP->_color_pairs != 0) { + FreeAndNull(SP->_color_pairs); } } } else { @@ -373,14 +285,6 @@ NCURSES_SP_NAME(start_color) (NCURSES_SP_DCL0) returnCode(result); } -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -start_color(void) -{ - return NCURSES_SP_NAME(start_color) (CURRENT_SCREEN); -} -#endif - /* This function was originally written by Daniel Weaver */ static void rgb2hls(short r, short g, short b, short *h, short *l, short *s) @@ -394,7 +298,7 @@ rgb2hls(short r, short g, short b, short *h, short *l, short *s) max = b; /* calculate lightness */ - *l = (short) ((min + max) / 20); + *l = (min + max) / 20; if (min == max) { /* black, white and all shades of gray */ *h = 0; @@ -404,17 +308,17 @@ rgb2hls(short r, short g, short b, short *h, short *l, short *s) /* calculate saturation */ if (*l < 50) - *s = (short) (((max - min) * 100) / (max + min)); + *s = ((max - min) * 100) / (max + min); else - *s = (short) (((max - min) * 100) / (2000 - max - min)); + *s = ((max - min) * 100) / (2000 - max - min); /* calculate hue */ if (r == max) - t = (short) (120 + ((g - b) * 60) / (max - min)); + t = 120 + ((g - b) * 60) / (max - min); else if (g == max) - t = (short) (240 + ((b - r) * 60) / (max - min)); + t = 240 + ((b - r) * 60) / (max - min); else - t = (short) (360 + ((r - g) * 60) / (max - min)); + t = 360 + ((r - g) * 60) / (max - min); *h = t % 360; } @@ -424,75 +328,24 @@ rgb2hls(short r, short g, short b, short *h, short *l, short *s) * values. */ NCURSES_EXPORT(int) -NCURSES_SP_NAME(init_pair) (NCURSES_SP_DCLx short pair, short f, short b) +init_pair(short pair, short f, short b) { colorpair_t result; - colorpair_t previous; - int maxcolors; - T((T_CALLED("init_pair(%p,%d,%d,%d)"), (void *) SP_PARM, pair, f, b)); + T((T_CALLED("init_pair(%d,%d,%d)"), pair, f, b)); - if (!ValidPair(pair)) + if ((pair < 0) || (pair >= COLOR_PAIRS) || SP == 0 || !SP->_coloron) returnCode(ERR); - - maxcolors = MaxColors; - - previous = SP_PARM->_color_pairs[pair]; #if NCURSES_EXT_FUNCS - if (SP_PARM->_default_color) { - bool isDefault = FALSE; - bool wasDefault = FALSE; - int default_pairs = SP_PARM->_default_pairs; - - /* - * Map caller's color number, e.g., -1, 0, 1, .., 7, etc., into - * internal unsigned values which we will store in the _color_pairs[] - * table. - */ - if (isDefaultColor(f)) { + if (SP->_default_color) { + if (f < 0) f = COLOR_DEFAULT; - isDefault = TRUE; - } else if (!OkColorHi(f)) { - returnCode(ERR); - } - - if (isDefaultColor(b)) { + if (b < 0) b = COLOR_DEFAULT; - isDefault = TRUE; - } else if (!OkColorHi(b)) { + if (!OkColorHi(f) && !isDefaultColor(f)) returnCode(ERR); - } - - /* - * Check if the table entry that we are going to init/update used - * default colors. - */ - if ((FORE_OF(previous) == COLOR_DEFAULT) - || (BACK_OF(previous) == COLOR_DEFAULT)) - wasDefault = TRUE; - - /* - * Keep track of the number of entries in the color pair table which - * used a default color. - */ - if (isDefault && !wasDefault) { - ++default_pairs; - } else if (wasDefault && !isDefault) { - --default_pairs; - } - - /* - * As an extension, ncurses allows the pair number to exceed the - * terminal's color_pairs value for pairs using a default color. - * - * Note that updating a pair which used a default color with one - * that does not will decrement the count - and possibly interfere - * with sequentially adding new pairs. - */ - if (pair > (SP_PARM->_pair_count + default_pairs)) { + if (!OkColorHi(b) && !isDefaultColor(b)) returnCode(ERR); - } - SP_PARM->_default_pairs = default_pairs; } else #endif { @@ -508,14 +361,14 @@ NCURSES_SP_NAME(init_pair) (NCURSES_SP_DCLx short pair, short f, short b) * pair colors with the new ones). */ result = PAIR_OF(f, b); - if (previous != 0 - && previous != result) { + if (SP->_color_pairs[pair] != 0 + && SP->_color_pairs[pair] != result) { int y, x; - for (y = 0; y <= CurScreen(SP_PARM)->_maxy; y++) { - struct ldat *ptr = &(CurScreen(SP_PARM)->_line[y]); + for (y = 0; y <= curscr->_maxy; y++) { + struct ldat *ptr = &(curscr->_line[y]); bool changed = FALSE; - for (x = 0; x <= CurScreen(SP_PARM)->_maxx; x++) { + for (x = 0; x <= curscr->_maxx; x++) { if (GetPair(ptr->text[x]) == pair) { /* Set the old cell to zero to ensure it will be updated on the next doupdate() */ @@ -525,19 +378,15 @@ NCURSES_SP_NAME(init_pair) (NCURSES_SP_DCLx short pair, short f, short b) } } if (changed) - NCURSES_SP_NAME(_nc_make_oldhash) (NCURSES_SP_ARGx y); + _nc_make_oldhash(y); } } + SP->_color_pairs[pair] = result; + if (GET_SCREEN_PAIR(SP) == pair) + SET_SCREEN_PAIR(SP, (chtype) (~0)); /* force attribute update */ - SP_PARM->_color_pairs[pair] = result; - if (GET_SCREEN_PAIR(SP_PARM) == pair) - SET_SCREEN_PAIR(SP_PARM, (chtype) (~0)); /* force attribute update */ - -#ifdef USE_TERM_DRIVER - CallDriver_3(SP_PARM, initpair, pair, f, b); -#else if (initialize_pair && InPalette(f) && InPalette(b)) { - const color_t *tp = DefaultPalette; + const color_t *tp = hue_lightness_saturation ? hls_palette : cga_palette; TR(TRACE_ATTRS, ("initializing pair: pair = %d, fg=(%d,%d,%d), bg=(%d,%d,%d)", @@ -551,148 +400,80 @@ NCURSES_SP_NAME(init_pair) (NCURSES_SP_DCLx short pair, short f, short b) tp[f].red, tp[f].green, tp[f].blue, tp[b].red, tp[b].green, tp[b].blue)); } -#endif returnCode(OK); } -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -init_pair(short pair, short f, short b) -{ - return NCURSES_SP_NAME(init_pair) (CURRENT_SCREEN, pair, f, b); -} -#endif - #define okRGB(n) ((n) >= 0 && (n) <= 1000) NCURSES_EXPORT(int) -NCURSES_SP_NAME(init_color) (NCURSES_SP_DCLx - short color, short r, short g, short b) +init_color(short color, short r, short g, short b) { int result = ERR; - int maxcolors; - - T((T_CALLED("init_color(%p,%d,%d,%d,%d)"), - (void *) SP_PARM, - color, - r, g, b)); - if (SP_PARM == 0) - returnCode(result); + T((T_CALLED("init_color(%d,%d,%d,%d)"), color, r, g, b)); - maxcolors = MaxColors; - - if (InitColor - && SP_PARM->_coloron + if (initialize_color != NULL + && SP != 0 + && SP->_coloron && (color >= 0 && OkColorHi(color)) && (okRGB(r) && okRGB(g) && okRGB(b))) { - SP_PARM->_color_table[color].init = 1; - SP_PARM->_color_table[color].r = r; - SP_PARM->_color_table[color].g = g; - SP_PARM->_color_table[color].b = b; + SP->_color_table[color].init = 1; + SP->_color_table[color].r = r; + SP->_color_table[color].g = g; + SP->_color_table[color].b = b; - if (UseHlsPalette) { + if (hue_lightness_saturation) { rgb2hls(r, g, b, - &SP_PARM->_color_table[color].red, - &SP_PARM->_color_table[color].green, - &SP_PARM->_color_table[color].blue); + &SP->_color_table[color].red, + &SP->_color_table[color].green, + &SP->_color_table[color].blue); } else { - SP_PARM->_color_table[color].red = r; - SP_PARM->_color_table[color].green = g; - SP_PARM->_color_table[color].blue = b; + SP->_color_table[color].red = r; + SP->_color_table[color].green = g; + SP->_color_table[color].blue = b; } -#ifdef USE_TERM_DRIVER - CallDriver_4(SP_PARM, initcolor, color, r, g, b); -#else TPUTS_TRACE("initialize_color"); putp(TPARM_4(initialize_color, color, r, g, b)); -#endif - SP_PARM->_color_defs = max(color + 1, SP_PARM->_color_defs); - + SP->_color_defs = max(color + 1, SP->_color_defs); result = OK; } returnCode(result); } -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -init_color(short color, short r, short g, short b) -{ - return NCURSES_SP_NAME(init_color) (CURRENT_SCREEN, color, r, g, b); -} -#endif - -NCURSES_EXPORT(bool) -NCURSES_SP_NAME(can_change_color) (NCURSES_SP_DCL) -{ - T((T_CALLED("can_change_color(%p)"), (void *) SP_PARM)); - returnCode((CanChange != 0) ? TRUE : FALSE); -} - -#if NCURSES_SP_FUNCS NCURSES_EXPORT(bool) can_change_color(void) { - return NCURSES_SP_NAME(can_change_color) (CURRENT_SCREEN); + T((T_CALLED("can_change_color()"))); + returnCode((can_change != 0) ? TRUE : FALSE); } -#endif -NCURSES_EXPORT(bool) -NCURSES_SP_NAME(has_colors) (NCURSES_SP_DCL0) -{ - int code; - - (void) SP_PARM; - T((T_CALLED("has_colors()"))); -#ifdef USE_TERM_DRIVER - code = HasColor; -#else - code = ((VALID_NUMERIC(max_colors) && VALID_NUMERIC(max_pairs) - && (((set_foreground != NULL) - && (set_background != NULL)) - || ((set_a_foreground != NULL) - && (set_a_background != NULL)) - || set_color_pair)) ? TRUE : FALSE); -#endif - returnCode(code); -} - -#if NCURSES_SP_FUNCS NCURSES_EXPORT(bool) has_colors(void) { - return NCURSES_SP_NAME(has_colors) (CURRENT_SCREEN); + T((T_CALLED("has_colors()"))); + returnCode((VALID_NUMERIC(max_colors) && VALID_NUMERIC(max_pairs) + && (((set_foreground != NULL) + && (set_background != NULL)) + || ((set_a_foreground != NULL) + && (set_a_background != NULL)) + || set_color_pair)) ? TRUE : FALSE); } -#endif NCURSES_EXPORT(int) -NCURSES_SP_NAME(color_content) (NCURSES_SP_DCLx - short color, short *r, short *g, short *b) +color_content(short color, short *r, short *g, short *b) { - int result = ERR; - int maxcolors; - - T((T_CALLED("color_content(%p,%d,%p,%p,%p)"), - (void *) SP_PARM, - color, - (void *) r, - (void *) g, - (void *) b)); - - if (SP_PARM == 0) - returnCode(result); - - maxcolors = MaxColors; + int result; - if (color < 0 || !OkColorHi(color) || !SP_PARM->_coloron) { + T((T_CALLED("color_content(%d,%p,%p,%p)"), color, r, g, b)); + if (color < 0 || !OkColorHi(color) || SP == 0 || !SP->_coloron) { result = ERR; } else { - NCURSES_COLOR_T c_r = SP_PARM->_color_table[color].red; - NCURSES_COLOR_T c_g = SP_PARM->_color_table[color].green; - NCURSES_COLOR_T c_b = SP_PARM->_color_table[color].blue; + NCURSES_COLOR_T c_r = SP->_color_table[color].red; + NCURSES_COLOR_T c_g = SP->_color_table[color].green; + NCURSES_COLOR_T c_b = SP->_color_table[color].blue; if (r) *r = c_r; @@ -708,31 +489,18 @@ NCURSES_SP_NAME(color_content) (NCURSES_SP_DCLx returnCode(result); } -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -color_content(short color, short *r, short *g, short *b) -{ - return NCURSES_SP_NAME(color_content) (CURRENT_SCREEN, color, r, g, b); -} -#endif - NCURSES_EXPORT(int) -NCURSES_SP_NAME(pair_content) (NCURSES_SP_DCLx - short pair, short *f, short *b) +pair_content(short pair, short *f, short *b) { int result; - T((T_CALLED("pair_content(%p,%d,%p,%p)"), - (void *) SP_PARM, - pair, - (void *) f, - (void *) b)); + T((T_CALLED("pair_content(%d,%p,%p)"), pair, f, b)); - if (!ValidPair(pair)) { + if ((pair < 0) || (pair >= COLOR_PAIRS) || SP == 0 || !SP->_coloron) { result = ERR; } else { - NCURSES_COLOR_T fg = FORE_OF(SP_PARM->_color_pairs[pair]); - NCURSES_COLOR_T bg = BACK_OF(SP_PARM->_color_pairs[pair]); + NCURSES_COLOR_T fg = ((SP->_color_pairs[pair] >> C_SHIFT) & C_MASK); + NCURSES_COLOR_T bg = (SP->_color_pairs[pair] & C_MASK); #if NCURSES_EXT_FUNCS if (fg == COLOR_DEFAULT) @@ -746,53 +514,33 @@ NCURSES_SP_NAME(pair_content) (NCURSES_SP_DCLx if (b) *b = bg; - TR(TRACE_ATTRS, ("...pair_content(%p,%d,%d,%d)", - (void *) SP_PARM, - pair, - fg, bg)); + TR(TRACE_ATTRS, ("...pair_content(%d,%d,%d)", pair, fg, bg)); result = OK; } returnCode(result); } -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -pair_content(short pair, short *f, short *b) -{ - return NCURSES_SP_NAME(pair_content) (CURRENT_SCREEN, pair, f, b); -} -#endif - NCURSES_EXPORT(void) -NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_DCLx - short old_pair, - short pair, - bool reverse, - NCURSES_SP_OUTC outc) +_nc_do_color(short old_pair, short pair, bool reverse, int (*outc) (int)) { -#ifdef USE_TERM_DRIVER - CallDriver_4(SP_PARM, docolor, old_pair, pair, reverse, outc); -#else NCURSES_COLOR_T fg = COLOR_DEFAULT; NCURSES_COLOR_T bg = COLOR_DEFAULT; NCURSES_COLOR_T old_fg, old_bg; - if (!ValidPair(pair)) { + if (pair < 0 || pair >= COLOR_PAIRS) { return; } else if (pair != 0) { if (set_color_pair) { TPUTS_TRACE("set_color_pair"); - NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx - TPARM_1(set_color_pair, pair), - 1, outc); + tputs(TPARM_1(set_color_pair, pair), 1, outc); return; - } else if (SP_PARM != 0) { + } else if (SP != 0) { pair_content((short) pair, &fg, &bg); } } if (old_pair >= 0 - && SP_PARM != 0 + && SP != 0 && pair_content(old_pair, &old_fg, &old_bg) != ERR) { if ((isDefaultColor(fg) && !isDefaultColor(old_fg)) || (isDefaultColor(bg) && !isDefaultColor(old_bg))) { @@ -802,29 +550,29 @@ NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_DCLx * the terminal description, treat it as screen's indicator of ECMA * SGR 39 and SGR 49, and assume the two sequences are independent. */ - if (SP_PARM->_has_sgr_39_49 + if (SP->_has_sgr_39_49 && isDefaultColor(old_bg) && !isDefaultColor(old_fg)) { - NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx "\033[39m", 1, outc); - } else if (SP_PARM->_has_sgr_39_49 + tputs("\033[39m", 1, outc); + } else if (SP->_has_sgr_39_49 && isDefaultColor(old_fg) && !isDefaultColor(old_bg)) { - NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx "\033[49m", 1, outc); + tputs("\033[49m", 1, outc); } else #endif - reset_color_pair(NCURSES_SP_ARG); + reset_color_pair(); } } else { - reset_color_pair(NCURSES_SP_ARG); + reset_color_pair(); if (old_pair < 0) return; } #if NCURSES_EXT_FUNCS if (isDefaultColor(fg)) - fg = (short) default_fg(NCURSES_SP_ARG); + fg = default_fg(); if (isDefaultColor(bg)) - bg = (short) default_bg(NCURSES_SP_ARG); + bg = default_bg(); #endif if (reverse) { @@ -837,23 +585,9 @@ NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_DCLx fg, bg)); if (!isDefaultColor(fg)) { - set_foreground_color(NCURSES_SP_ARGx fg, outc); + set_foreground_color(fg, outc); } if (!isDefaultColor(bg)) { - set_background_color(NCURSES_SP_ARGx bg, outc); + set_background_color(bg, outc); } -#endif } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(void) -_nc_do_color(short old_pair, short pair, bool reverse, NCURSES_OUTC outc) -{ - SetSafeOutcWrapper(outc); - NCURSES_SP_NAME(_nc_do_color) (CURRENT_SCREEN, - old_pair, - pair, - reverse, - _nc_outc_wrapper); -} -#endif diff --git a/ncurses/base/lib_colorset.c b/ncurses/base/lib_colorset.c index 6210a0e8a8f9..a973c5350c8f 100644 --- a/ncurses/base/lib_colorset.c +++ b/ncurses/base/lib_colorset.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -28,7 +28,7 @@ /**************************************************************************** * Author: Juergen Pfeifer, 1998 * - * and: Thomas E. Dickey, 2005-on * + * and: Thomas E. Dickey, 2005 * ****************************************************************************/ /* @@ -41,23 +41,20 @@ #include #include -MODULE_ID("$Id: lib_colorset.c,v 1.13 2009/10/24 22:02:14 tom Exp $") +MODULE_ID("$Id: lib_colorset.c,v 1.11 2005/01/29 21:40:51 tom Exp $") NCURSES_EXPORT(int) wcolor_set(WINDOW *win, short color_pair_number, void *opts) { - int code = ERR; - - T((T_CALLED("wcolor_set(%p,%d)"), (void *) win, color_pair_number)); + T((T_CALLED("wcolor_set(%p,%d)"), win, color_pair_number)); if (win && !opts - && (SP != 0) && (color_pair_number >= 0) - && (color_pair_number < SP->_pair_limit)) { + && (color_pair_number < COLOR_PAIRS)) { TR(TRACE_ATTRS, ("... current %ld", (long) GET_WINDOW_PAIR(win))); SET_WINDOW_PAIR(win, color_pair_number); if_EXT_COLORS(win->_color = color_pair_number); - code = OK; - } - returnCode(code); + returnCode(OK); + } else + returnCode(ERR); } diff --git a/ncurses/base/lib_delch.c b/ncurses/base/lib_delch.c index 64c9da73edf8..0c30f2d93c1b 100644 --- a/ncurses/base/lib_delch.c +++ b/ncurses/base/lib_delch.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2001,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -40,14 +40,14 @@ #include -MODULE_ID("$Id: lib_delch.c,v 1.13 2009/10/24 22:32:47 tom Exp $") +MODULE_ID("$Id: lib_delch.c,v 1.12 2001/12/19 01:06:09 tom Exp $") NCURSES_EXPORT(int) wdelch(WINDOW *win) { int code = ERR; - T((T_CALLED("wdelch(%p)"), (void *) win)); + T((T_CALLED("wdelch(%p)"), win)); if (win) { NCURSES_CH_T blank = win->_nc_bkgd; diff --git a/ncurses/base/lib_delwin.c b/ncurses/base/lib_delwin.c index 4bb536ca86ad..b92c40335958 100644 --- a/ncurses/base/lib_delwin.c +++ b/ncurses/base/lib_delwin.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -29,8 +29,6 @@ /**************************************************************************** * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer 2008 * ****************************************************************************/ /* @@ -42,18 +40,15 @@ #include -MODULE_ID("$Id: lib_delwin.c,v 1.20 2009/10/24 22:02:14 tom Exp $") +MODULE_ID("$Id: lib_delwin.c,v 1.17 2008/06/07 14:10:56 tom Exp $") static bool cannot_delete(WINDOW *win) { WINDOWLIST *p; bool result = TRUE; -#ifdef USE_SP_WINDOWLIST - SCREEN *sp = _nc_screen_of(win); -#endif - for (each_window(SP_PARM, p)) { + for (each_window(p)) { if (&(p->win) == win) { result = FALSE; } else if ((p->win._flags & _SUBWIN) != 0 @@ -70,20 +65,18 @@ delwin(WINDOW *win) { int result = ERR; - T((T_CALLED("delwin(%p)"), (void *) win)); + T((T_CALLED("delwin(%p)"), win)); if (_nc_try_global(curses) == 0) { if (win == 0 || cannot_delete(win)) { result = ERR; } else { -#if NCURSES_SP_FUNCS - SCREEN *sp = _nc_screen_of(win); -#endif + if (win->_flags & _SUBWIN) touchwin(win->_parent); - else if (CurScreen(SP_PARM) != 0) - touchwin(CurScreen(SP_PARM)); + else if (curscr != 0) + touchwin(curscr); result = _nc_freewin(win); } diff --git a/ncurses/base/lib_dft_fgbg.c b/ncurses/base/lib_dft_fgbg.c index 4bb9fc2774a9..8953c148b09e 100644 --- a/ncurses/base/lib_dft_fgbg.c +++ b/ncurses/base/lib_dft_fgbg.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -27,73 +27,49 @@ ****************************************************************************/ /**************************************************************************** - * Author: Thomas E. Dickey 1998-on * - * Juergen Pfeifer 2009 * + * Author: Thomas E. Dickey * ****************************************************************************/ #include +#include -#ifndef CUR -#define CUR SP_TERMTYPE -#endif - -MODULE_ID("$Id: lib_dft_fgbg.c,v 1.25 2009/10/24 22:15:00 tom Exp $") +MODULE_ID("$Id: lib_dft_fgbg.c,v 1.18 2005/11/26 20:03:38 tom Exp $") /* * Modify the behavior of color-pair 0 so that the library doesn't assume that * it is white on black. This is an extension to XSI curses. */ NCURSES_EXPORT(int) -NCURSES_SP_NAME(use_default_colors) (NCURSES_SP_DCL0) -{ - T((T_CALLED("use_default_colors(%p)"), (void *) SP_PARM)); - returnCode(NCURSES_SP_NAME(assume_default_colors) (NCURSES_SP_ARGx -1, -1)); -} - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) use_default_colors(void) { - return NCURSES_SP_NAME(use_default_colors) (CURRENT_SCREEN); + T((T_CALLED("use_default_colors()"))); + returnCode(assume_default_colors(-1, -1)); } -#endif /* * Modify the behavior of color-pair 0 so that the library assumes that it * is something specific, possibly not white on black. */ NCURSES_EXPORT(int) -NCURSES_SP_NAME(assume_default_colors) (NCURSES_SP_DCLx int fg, int bg) +assume_default_colors(int fg, int bg) { - int code = ERR; + T((T_CALLED("assume_default_colors(%d,%d)"), fg, bg)); - T((T_CALLED("assume_default_colors(%p,%d,%d)"), (void *) SP_PARM, fg, bg)); -#ifdef USE_TERM_DRIVER - if (sp != 0) - code = CallDriver_2(sp, defaultcolors, fg, bg); -#else - if ((orig_pair || orig_colors) && !initialize_pair) { + if (!orig_pair && !orig_colors) + returnCode(ERR); - SP_PARM->_default_color = isDefaultColor(fg) || isDefaultColor(bg); - SP_PARM->_has_sgr_39_49 = (tigetflag("AX") == TRUE); - SP_PARM->_default_fg = isDefaultColor(fg) ? COLOR_DEFAULT : (fg & C_MASK); - SP_PARM->_default_bg = isDefaultColor(bg) ? COLOR_DEFAULT : (bg & C_MASK); - if (SP_PARM->_color_pairs != 0) { - bool save = SP_PARM->_default_color; - SP_PARM->_default_color = TRUE; - init_pair(0, (short) fg, (short) bg); - SP_PARM->_default_color = save; - } - code = OK; - } -#endif - returnCode(code); -} + if (initialize_pair) /* don't know how to handle this */ + returnCode(ERR); -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -assume_default_colors(int fg, int bg) -{ - return NCURSES_SP_NAME(assume_default_colors) (CURRENT_SCREEN, fg, bg); + SP->_default_color = isDefaultColor(fg) || isDefaultColor(bg); + SP->_has_sgr_39_49 = (tigetflag("AX") == TRUE); + SP->_default_fg = isDefaultColor(fg) ? COLOR_DEFAULT : (fg & C_MASK); + SP->_default_bg = isDefaultColor(bg) ? COLOR_DEFAULT : (bg & C_MASK); + if (SP->_color_pairs != 0) { + bool save = SP->_default_color; + SP->_default_color = TRUE; + init_pair(0, (short) fg, (short) bg); + SP->_default_color = save; + } + returnCode(OK); } -#endif diff --git a/ncurses/base/lib_driver.c b/ncurses/base/lib_driver.c deleted file mode 100644 index 40487609be4d..000000000000 --- a/ncurses/base/lib_driver.c +++ /dev/null @@ -1,143 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Juergen Pfeifer * - * * - ****************************************************************************/ - -#include - -MODULE_ID("$Id: lib_driver.c,v 1.3 2010/12/20 00:29:17 tom Exp $") - -typedef struct DriverEntry { - const char *name; - TERM_DRIVER *driver; -} DRIVER_ENTRY; - -static DRIVER_ENTRY DriverTable[] = -{ -#ifdef __MINGW32__ - {"win", &_nc_WIN_DRIVER}, -#endif - {"tinfo", &_nc_TINFO_DRIVER} -}; - -NCURSES_EXPORT(int) -_nc_get_driver(TERMINAL_CONTROL_BLOCK * TCB, const char *name, int *errret) -{ - int code = ERR; - size_t i; - TERM_DRIVER *res = (TERM_DRIVER *) 0; - TERM_DRIVER *use = 0; - - T((T_CALLED("_nc_get_driver(%p, %s, %p)"), - (void *) TCB, NonNull(name), (void *) errret)); - - assert(TCB != 0); - - for (i = 0; i < SIZEOF(DriverTable); i++) { - res = DriverTable[i].driver; - if (res->CanHandle(TCB, name, errret)) { - use = res; - break; - } - } - if (use != 0) { - TCB->drv = use; - code = OK; - } - returnCode(code); -} - -NCURSES_EXPORT(int) -NCURSES_SP_NAME(has_key) (SCREEN *sp, int keycode) -{ - T((T_CALLED("has_key(%p, %d)"), (void *) sp, keycode)); - returnCode(IsValidTIScreen(sp) ? CallDriver_1(sp, kyExist, keycode) : FALSE); -} - -NCURSES_EXPORT(int) -has_key(int keycode) -{ - return NCURSES_SP_NAME(has_key) (CURRENT_SCREEN, keycode); -} - -NCURSES_EXPORT(int) -NCURSES_SP_NAME(_nc_mcprint) (SCREEN *sp, char *data, int len) -{ - int code = ERR; - - if (0 != TerminalOf(sp)) - code = CallDriver_2(sp, print, data, len); - return (code); -} - -NCURSES_EXPORT(int) -mcprint(char *data, int len) -{ - return NCURSES_SP_NAME(_nc_mcprint) (CURRENT_SCREEN, data, len); -} - -NCURSES_EXPORT(int) -NCURSES_SP_NAME(doupdate) (SCREEN *sp) -{ - int code = ERR; - - T((T_CALLED("doupdate(%p)"), (void *) sp)); - - if (IsValidScreen(sp)) - code = CallDriver(sp, update); - - returnCode(code); -} - -NCURSES_EXPORT(int) -doupdate(void) -{ - return NCURSES_SP_NAME(doupdate) (CURRENT_SCREEN); -} - -NCURSES_EXPORT(int) -NCURSES_SP_NAME(mvcur) (SCREEN *sp, int yold, int xold, int ynew, int xnew) -{ - int code = ERR; - TR(TRACE_CALLS | TRACE_MOVE, (T_CALLED("mvcur(%p,%d,%d,%d,%d)"), - (void *) sp, yold, xold, ynew, xnew)); - if (HasTerminal(sp)) { - code = CallDriver_4(sp, hwcur, yold, xold, ynew, xnew); - } - returnCode(code); -} - -NCURSES_EXPORT(int) -mvcur(int yold, int xold, int ynew, int xnew) -/* optimized cursor move from (yold, xold) to (ynew, xnew) */ -{ - return NCURSES_SP_NAME(mvcur) (CURRENT_SCREEN, yold, xold, ynew, xnew); -} diff --git a/ncurses/base/lib_echo.c b/ncurses/base/lib_echo.c index 9e1d3c265741..df44713d1a11 100644 --- a/ncurses/base/lib_echo.c +++ b/ncurses/base/lib_echo.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -29,8 +29,6 @@ /**************************************************************************** * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -44,40 +42,20 @@ #include -MODULE_ID("$Id: lib_echo.c,v 1.8 2009/10/24 22:02:14 tom Exp $") +MODULE_ID("$Id: lib_echo.c,v 1.5 2000/12/10 02:43:27 tom Exp $") -NCURSES_EXPORT(int) -NCURSES_SP_NAME(echo) (NCURSES_SP_DCL0) -{ - T((T_CALLED("echo(%p)"), (void *) SP_PARM)); - if (0 == SP_PARM) - returnCode(ERR); - SP_PARM->_echo = TRUE; - returnCode(OK); -} - -#if NCURSES_SP_FUNCS NCURSES_EXPORT(int) echo(void) { - return NCURSES_SP_NAME(echo) (CURRENT_SCREEN); -} -#endif - -NCURSES_EXPORT(int) -NCURSES_SP_NAME(noecho) (NCURSES_SP_DCL0) -{ - T((T_CALLED("noecho(%p)"), (void *) SP_PARM)); - if (0 == SP_PARM) - returnCode(ERR); - SP_PARM->_echo = FALSE; + T((T_CALLED("echo()"))); + SP->_echo = TRUE; returnCode(OK); } -#if NCURSES_SP_FUNCS NCURSES_EXPORT(int) noecho(void) { - return NCURSES_SP_NAME(noecho) (CURRENT_SCREEN); + T((T_CALLED("noecho()"))); + SP->_echo = FALSE; + returnCode(OK); } -#endif diff --git a/ncurses/base/lib_endwin.c b/ncurses/base/lib_endwin.c index 4596d0749633..66662871962b 100644 --- a/ncurses/base/lib_endwin.c +++ b/ncurses/base/lib_endwin.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -29,8 +29,6 @@ /**************************************************************************** * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -41,39 +39,22 @@ */ #include +#include -MODULE_ID("$Id: lib_endwin.c,v 1.22 2009/10/24 22:02:14 tom Exp $") +MODULE_ID("$Id: lib_endwin.c,v 1.19 2000/12/10 02:43:27 tom Exp $") NCURSES_EXPORT(int) -NCURSES_SP_NAME(endwin) (NCURSES_SP_DCL0) +endwin(void) { - int code = ERR; - - T((T_CALLED("endwin(%p)"), (void *) SP_PARM)); + T((T_CALLED("endwin()"))); - if (SP_PARM) { -#ifdef USE_TERM_DRIVER - TERMINAL_CONTROL_BLOCK *TCB = TCBOf(SP_PARM); - - SP_PARM->_endwin = TRUE; - if (TCB && TCB->drv && TCB->drv->scexit) - TCB->drv->scexit(SP_PARM); -#else - SP_PARM->_endwin = TRUE; - SP_PARM->_mouse_wrap(SP_PARM); + if (SP) { + SP->_endwin = TRUE; + SP->_mouse_wrap(SP); _nc_screen_wrap(); _nc_mvcur_wrap(); /* wrap up cursor addressing */ -#endif - code = NCURSES_SP_NAME(reset_shell_mode) (NCURSES_SP_ARG); + returnCode(reset_shell_mode()); } - returnCode(code); -} - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -endwin(void) -{ - return NCURSES_SP_NAME(endwin) (CURRENT_SCREEN); + returnCode(ERR); } -#endif diff --git a/ncurses/base/lib_erase.c b/ncurses/base/lib_erase.c index bbf10ef81b92..2566e8b39820 100644 --- a/ncurses/base/lib_erase.c +++ b/ncurses/base/lib_erase.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -41,7 +41,7 @@ #include -MODULE_ID("$Id: lib_erase.c,v 1.17 2009/10/24 22:32:29 tom Exp $") +MODULE_ID("$Id: lib_erase.c,v 1.16 2005/10/30 00:36:36 tom Exp $") NCURSES_EXPORT(int) werase(WINDOW *win) @@ -51,7 +51,7 @@ werase(WINDOW *win) NCURSES_CH_T blank; NCURSES_CH_T *sp, *end, *start; - T((T_CALLED("werase(%p)"), (void *) win)); + T((T_CALLED("werase(%p)"), win)); if (win) { blank = win->_nc_bkgd; diff --git a/ncurses/base/lib_flash.c b/ncurses/base/lib_flash.c index 03f11d923b6d..a6b022a8e816 100644 --- a/ncurses/base/lib_flash.c +++ b/ncurses/base/lib_flash.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2000,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -29,8 +29,6 @@ /**************************************************************************** * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -41,12 +39,9 @@ */ #include +#include /* beep, flash */ -#ifndef CUR -#define CUR SP_TERMTYPE -#endif - -MODULE_ID("$Id: lib_flash.c,v 1.11 2009/10/24 22:02:14 tom Exp $") +MODULE_ID("$Id: lib_flash.c,v 1.6 2000/12/10 02:43:27 tom Exp $") /* * flash() @@ -57,15 +52,12 @@ MODULE_ID("$Id: lib_flash.c,v 1.11 2009/10/24 22:02:14 tom Exp $") */ NCURSES_EXPORT(int) -NCURSES_SP_NAME(flash) (NCURSES_SP_DCL0) +flash(void) { int res = ERR; - T((T_CALLED("flash(%p)"), (void *) SP_PARM)); -#ifdef USE_TERM_DRIVER - if (SP_PARM != 0) - res = CallDriver_1(SP_PARM, doBeepOrFlash, FALSE); -#else + T((T_CALLED("flash()"))); + /* FIXME: should make sure that we are not in altchar mode */ if (flash_screen) { TPUTS_TRACE("flash_screen"); @@ -76,14 +68,6 @@ NCURSES_SP_NAME(flash) (NCURSES_SP_DCL0) res = putp(bell); _nc_flush(); } -#endif - returnCode(res); -} -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -flash(void) -{ - return NCURSES_SP_NAME(flash) (CURRENT_SCREEN); + returnCode(res); } -#endif diff --git a/ncurses/base/lib_freeall.c b/ncurses/base/lib_freeall.c index 5bcc974bc257..564026582911 100644 --- a/ncurses/base/lib_freeall.c +++ b/ncurses/base/lib_freeall.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -31,6 +31,7 @@ ****************************************************************************/ #include +#include #include #if HAVE_NC_FREEALL @@ -39,40 +40,40 @@ extern int malloc_errfd; /* FIXME */ #endif -MODULE_ID("$Id: lib_freeall.c,v 1.59 2010/01/23 17:57:43 tom Exp $") +MODULE_ID("$Id: lib_freeall.c,v 1.54 2008/09/27 13:09:57 tom Exp $") /* * Free all ncurses data. This is used for testing only (there's no practical * use for it as an extension). */ NCURSES_EXPORT(void) -NCURSES_SP_NAME(_nc_freeall) (NCURSES_SP_DCL0) +_nc_freeall(void) { WINDOWLIST *p, *q; static va_list empty_va; T((T_CALLED("_nc_freeall()"))); #if NO_LEAKS - if (SP_PARM != 0) { - if (SP_PARM->_oldnum_list != 0) { - FreeAndNull(SP_PARM->_oldnum_list); + if (SP != 0) { + if (SP->_oldnum_list != 0) { + FreeAndNull(SP->_oldnum_list); } - if (SP_PARM->_panelHook.destroy != 0) { - SP_PARM->_panelHook.destroy(SP_PARM->_panelHook.stdscr_pseudo_panel); + if (SP->_panelHook.destroy != 0) { + SP->_panelHook.destroy(SP->_panelHook.stdscr_pseudo_panel); } } #endif - if (SP_PARM != 0) { + if (SP != 0) { _nc_lock_global(curses); - while (WindowList(SP_PARM) != 0) { + while (_nc_windows != 0) { bool deleted = FALSE; /* Delete only windows that're not a parent */ - for (each_window(SP_PARM, p)) { + for (each_window(p)) { bool found = FALSE; - for (each_window(SP_PARM, q)) { + for (each_window(q)) { if ((p != q) && (q->win._flags & _SUBWIN) && (&(p->win) == q->win._parent)) { @@ -94,9 +95,11 @@ NCURSES_SP_NAME(_nc_freeall) (NCURSES_SP_DCL0) if (!deleted) break; } - delscreen(SP_PARM); + delscreen(SP); _nc_unlock_global(curses); } + if (cur_term != 0) + del_curterm(cur_term); (void) _nc_printf_string(0, empty_va); #ifdef TRACE @@ -118,20 +121,12 @@ NCURSES_SP_NAME(_nc_freeall) (NCURSES_SP_DCL0) returnVoid; } -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(void) -_nc_freeall(void) -{ - NCURSES_SP_NAME(_nc_freeall) (CURRENT_SCREEN); -} -#endif - NCURSES_EXPORT(void) -NCURSES_SP_NAME(_nc_free_and_exit) (NCURSES_SP_DCLx int code) +_nc_free_and_exit(int code) { - char *last_setbuf = (SP_PARM != 0) ? SP_PARM->_setbuf : 0; + char *last_setbuf = (SP != 0) ? SP->_setbuf : 0; - NCURSES_SP_NAME(_nc_freeall) (NCURSES_SP_ARG); + _nc_freeall(); #ifdef TRACE trace(0); /* close trace file, freeing its setbuf */ { @@ -150,22 +145,13 @@ _nc_freeall(void) { } -NCURSES_EXPORT(void) -NCURSES_SP_NAME(_nc_free_and_exit) (NCURSES_SP_DCLx int code) -{ - if (SP_PARM) { - delscreen(SP_PARM); - if (SP_PARM->_term) - NCURSES_SP_NAME(del_curterm) (NCURSES_SP_ARGx SP_PARM->_term); - } - exit(code); -} -#endif - -#if NCURSES_SP_FUNCS NCURSES_EXPORT(void) _nc_free_and_exit(int code) { - NCURSES_SP_NAME(_nc_free_and_exit) (CURRENT_SCREEN, code); + if (SP) + delscreen(SP); + if (cur_term != 0) + del_curterm(cur_term); + exit(code); } #endif diff --git a/ncurses/base/lib_getch.c b/ncurses/base/lib_getch.c index 130c502431b3..e7ba0b210e34 100644 --- a/ncurses/base/lib_getch.c +++ b/ncurses/base/lib_getch.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -30,7 +30,6 @@ * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -42,80 +41,40 @@ #include -MODULE_ID("$Id: lib_getch.c,v 1.121 2010/12/25 23:24:04 tom Exp $") +MODULE_ID("$Id: lib_getch.c,v 1.99 2008/09/20 19:46:13 tom Exp $") #include #if USE_REENTRANT -#define GetEscdelay(sp) *_nc_ptr_Escdelay(sp) +#define GetEscdelay(sp) (sp)->_ESCDELAY NCURSES_EXPORT(int) NCURSES_PUBLIC_VAR(ESCDELAY) (void) { - return *(_nc_ptr_Escdelay(CURRENT_SCREEN)); -} - -NCURSES_EXPORT(int *) -_nc_ptr_Escdelay(SCREEN *sp) -{ - return ptrEscdelay(sp); + return SP ? GetEscdelay(SP) : 1000; } #else #define GetEscdelay(sp) ESCDELAY -NCURSES_EXPORT_VAR(int) ESCDELAY = 1000; +NCURSES_EXPORT_VAR(int) +ESCDELAY = 1000; /* max interval betw. chars in funkeys, in millisecs */ #endif #if NCURSES_EXT_FUNCS NCURSES_EXPORT(int) -NCURSES_SP_NAME(set_escdelay) (NCURSES_SP_DCLx int value) +set_escdelay(int value) { int code = OK; #if USE_REENTRANT - if (SP_PARM) { - SET_ESCDELAY(value); + if (SP) { + SP->_ESCDELAY = value; } else { code = ERR; } #else - (void) SP_PARM; ESCDELAY = value; #endif return code; } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -set_escdelay(int value) -{ - int code; -#if USE_REENTRANT - code = NCURSES_SP_NAME(set_escdelay) (CURRENT_SCREEN, value); -#else - ESCDELAY = value; - code = OK; -#endif - return code; -} -#endif -#endif /* NCURSES_EXT_FUNCS */ - -#if NCURSES_EXT_FUNCS -NCURSES_EXPORT(int) -NCURSES_SP_NAME(get_escdelay) (NCURSES_SP_DCL0) -{ -#if !USE_REENTRANT - (void) SP_PARM; -#endif - return GetEscdelay(SP_PARM); -} - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -get_escdelay(void) -{ - return NCURSES_SP_NAME(get_escdelay) (CURRENT_SCREEN); -} #endif -#endif /* NCURSES_EXT_FUNCS */ static int _nc_use_meta(WINDOW *win) @@ -124,6 +83,12 @@ _nc_use_meta(WINDOW *win) return (sp ? sp->_use_meta : 0); } +#ifdef NCURSES_WGETCH_EVENTS +#define TWAIT_MASK 7 +#else +#define TWAIT_MASK 3 +#endif + /* * Check for mouse activity, returning nonzero if we find any. */ @@ -132,29 +97,19 @@ check_mouse_activity(SCREEN *sp, int delay EVENTLIST_2nd(_nc_eventlist * evl)) { int rc; -#ifdef USE_TERM_DRIVER - rc = TCBOf(sp)->drv->testmouse(TCBOf(sp), delay); -#else #if USE_SYSMOUSE if ((sp->_mouse_type == M_SYSMOUSE) && (sp->_sysmouse_head < sp->_sysmouse_tail)) { - rc = TW_MOUSE; - } else + return 2; + } #endif - { - rc = _nc_timed_wait(sp, - TWAIT_MASK, - delay, - (int *) 0 - EVENTLIST_2nd(evl)); + rc = _nc_timed_wait(sp, TWAIT_MASK, delay, (int *) 0 EVENTLIST_2nd(evl)); #if USE_SYSMOUSE - if ((sp->_mouse_type == M_SYSMOUSE) - && (sp->_sysmouse_head < sp->_sysmouse_tail) - && (rc == 0) - && (errno == EINTR)) { - rc |= TW_MOUSE; - } -#endif + if ((sp->_mouse_type == M_SYSMOUSE) + && (sp->_sysmouse_head < sp->_sysmouse_tail) + && (rc == 0) + && (errno == EINTR)) { + rc |= 2; } #endif return rc; @@ -218,9 +173,9 @@ fifo_push(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl)) } else mask = 0; - if (mask & TW_EVENT) { + if (mask & 4) { T(("fifo_push: ungetch KEY_EVENT")); - safe_ungetch(sp, KEY_EVENT); + _nc_ungetch(sp, KEY_EVENT); return KEY_EVENT; } #elif USE_GPM_SUPPORT || USE_EMX_MOUSE || USE_SYSMOUSE @@ -230,7 +185,7 @@ fifo_push(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl)) #endif #if USE_GPM_SUPPORT || USE_EMX_MOUSE - if ((sp->_mouse_fd >= 0) && (mask & TW_MOUSE)) { + if ((sp->_mouse_fd >= 0) && (mask & 2)) { sp->_mouse_event(sp); ch = KEY_MOUSE; n = 1; @@ -248,34 +203,11 @@ fifo_push(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl)) ch = KEY_MOUSE; n = 1; } else -#endif -#ifdef USE_TERM_DRIVER - if ((sp->_mouse_type == M_TERM_DRIVER) - && (sp->_drv_mouse_head < sp->_drv_mouse_tail)) { - sp->_mouse_event(sp); - ch = KEY_MOUSE; - n = 1; - } else #endif { /* Can block... */ -#ifdef USE_TERM_DRIVER - int buf; - n = CallDriver_1(sp, read, &buf); - ch = buf; -#else unsigned char c2 = 0; -# if USE_PTHREADS_EINTR -# if USE_WEAK_SYMBOLS - if ((pthread_self) && (pthread_kill) && (pthread_equal)) -# endif - _nc_globals.read_thread = pthread_self(); -# endif - n = (int) read(sp->_ifd, &c2, 1); -#if USE_PTHREADS_EINTR - _nc_globals.read_thread = 0; -#endif + n = read(sp->_ifd, &c2, 1); ch = c2; -#endif } #ifdef HIDE_EINTR @@ -288,11 +220,7 @@ fifo_push(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl)) * We don't want this difference to show. This piece of code * tries to make it look like we always have restarting signals. */ - if (n <= 0 && errno == EINTR -# if USE_PTHREADS_EINTR - && (_nc_globals.have_sigwinch == 0) -# endif - ) + if (n <= 0 && errno == EINTR) goto again; #endif @@ -332,12 +260,12 @@ recur_wrefresh(WINDOW *win) { #ifdef USE_PTHREADS SCREEN *sp = _nc_screen_of(win); - if (_nc_use_pthreads && sp != CURRENT_SCREEN) { + if (_nc_use_pthreads && sp != SP) { SCREEN *save_SP; /* temporarily switch to the window's screen to check/refresh */ _nc_lock_global(curses); - save_SP = CURRENT_SCREEN; + save_SP = SP; _nc_set_screen(sp); recur_wrefresh(win); _nc_set_screen(save_SP); @@ -358,12 +286,12 @@ recur_wgetnstr(WINDOW *win, char *buf) if (sp != 0) { #ifdef USE_PTHREADS - if (_nc_use_pthreads && sp != CURRENT_SCREEN) { + if (_nc_use_pthreads && sp != SP) { SCREEN *save_SP; /* temporarily switch to the window's screen to get cooked input */ _nc_lock_global(curses); - save_SP = CURRENT_SCREEN; + save_SP = SP; _nc_set_screen(sp); rc = recur_wgetnstr(win, buf); _nc_set_screen(save_SP); @@ -383,18 +311,17 @@ recur_wgetnstr(WINDOW *win, char *buf) NCURSES_EXPORT(int) _nc_wgetch(WINDOW *win, - int *result, + unsigned long *result, int use_meta EVENTLIST_2nd(_nc_eventlist * evl)) { SCREEN *sp; int ch; - int rc = 0; #ifdef NCURSES_WGETCH_EVENTS long event_delay = -1; #endif - T((T_CALLED("_nc_wgetch(%p)"), (void *) win)); + T((T_CALLED("_nc_wgetch(%p)"), win)); *result = 0; @@ -425,20 +352,19 @@ _nc_wgetch(WINDOW *win, !sp->_cbreak && !sp->_called_wgetch) { char buf[MAXCOLUMNS], *bufp; + int rc; TR(TRACE_IEVENT, ("filling queue in cooked mode")); + rc = recur_wgetnstr(win, buf); + /* ungetch in reverse order */ #ifdef NCURSES_WGETCH_EVENTS - rc = recur_wgetnstr(win, buf); if (rc != KEY_EVENT) - safe_ungetch(sp, '\n'); -#else - (void) recur_wgetnstr(win, buf); - safe_ungetch(sp, '\n'); #endif + _nc_ungetch(sp, '\n'); for (bufp = buf + strlen(buf); bufp > buf; bufp--) - safe_ungetch(sp, bufp[-1]); + _nc_ungetch(sp, bufp[-1]); #ifdef NCURSES_WGETCH_EVENTS /* Return it first */ @@ -458,6 +384,7 @@ _nc_wgetch(WINDOW *win, if (win->_notimeout || (win->_delay >= 0) || (sp->_cbreak > 1)) { if (head == -1) { /* fifo is empty */ int delay; + int rc; TR(TRACE_IEVENT, ("timed delay in wgetch()")); if (sp->_cbreak > 1) @@ -475,13 +402,13 @@ _nc_wgetch(WINDOW *win, rc = check_mouse_activity(sp, delay EVENTLIST_2nd(evl)); #ifdef NCURSES_WGETCH_EVENTS - if (rc & TW_EVENT) { + if (rc & 4) { *result = KEY_EVENT; returnCode(KEY_CODE_YES); } #endif if (!rc) { - goto check_sigwinch; + returnCode(ERR); } } /* else go on to read data available */ @@ -500,6 +427,7 @@ _nc_wgetch(WINDOW *win, * increase the wait with mouseinterval(). */ int runcount = 0; + int rc; do { ch = kgetch(sp EVENTLIST_2nd(evl)); @@ -514,11 +442,11 @@ _nc_wgetch(WINDOW *win, (ch == KEY_MOUSE && (((rc = check_mouse_activity(sp, sp->_maxclick EVENTLIST_2nd(evl))) != 0 - && !(rc & TW_EVENT)) + && !(rc & 4)) || !sp->_mouse_parse(sp, runcount))); #ifdef NCURSES_WGETCH_EVENTS - if ((rc & TW_EVENT) && !(ch == KEY_EVENT)) { - safe_ungetch(sp, ch); + if ((rc & 4) && !ch == KEY_EVENT) { + _nc_ungetch(sp, ch); ch = KEY_EVENT; } #endif @@ -526,12 +454,12 @@ _nc_wgetch(WINDOW *win, #ifdef NCURSES_WGETCH_EVENTS /* mouse event sequence ended by an event, report event */ if (ch == KEY_EVENT) { - safe_ungetch(sp, KEY_MOUSE); /* FIXME This interrupts a gesture... */ + _nc_ungetch(sp, KEY_MOUSE); /* FIXME This interrupts a gesture... */ } else #endif { /* mouse event sequence ended by keystroke, store keystroke */ - safe_ungetch(sp, ch); + _nc_ungetch(sp, ch); ch = KEY_MOUSE; } } @@ -542,7 +470,6 @@ _nc_wgetch(WINDOW *win, } if (ch == ERR) { - check_sigwinch: #if USE_SIZECHANGE if (_nc_handle_sigwinch(sp)) { _nc_update_screensize(sp); @@ -581,7 +508,7 @@ _nc_wgetch(WINDOW *win, * cursor to the left. */ if (sp->_echo && !(win->_flags & _ISPAD)) { - chtype backup = (chtype) ((ch == KEY_BACKSPACE) ? '\b' : ch); + chtype backup = (ch == KEY_BACKSPACE) ? '\b' : ch; if (backup < KEY_MIN) wechochar(win, backup); } @@ -612,7 +539,7 @@ NCURSES_EXPORT(int) wgetch_events(WINDOW *win, _nc_eventlist * evl) { int code; - int value; + unsigned long value; T((T_CALLED("wgetch_events(%p,%p)"), win, evl)); code = _nc_wgetch(win, @@ -629,9 +556,9 @@ NCURSES_EXPORT(int) wgetch(WINDOW *win) { int code; - int value; + unsigned long value; - T((T_CALLED("wgetch(%p)"), (void *) win)); + T((T_CALLED("wgetch(%p)"), win)); code = _nc_wgetch(win, &value, _nc_use_meta(win) @@ -705,7 +632,7 @@ kgetch(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl)) break; } TR(TRACE_IEVENT, ("ptr=%p, ch=%d, value=%d", - (void *) ptr, ptr->ch, ptr->value)); + ptr, ptr->ch, ptr->value)); if (ptr->value != 0) { /* sequence terminated */ TR(TRACE_IEVENT, ("end of sequence")); @@ -724,7 +651,7 @@ kgetch(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl)) TR(TRACE_IEVENT, ("waiting for rest of sequence")); rc = check_mouse_activity(sp, timeleft EVENTLIST_2nd(evl)); #ifdef NCURSES_WGETCH_EVENTS - if (rc & TW_EVENT) { + if (rc & 4) { TR(TRACE_IEVENT, ("interrupted by a user event")); /* FIXME Should have preserved remainder timeleft for reuse... */ peek = head; /* Restart interpreting later */ diff --git a/ncurses/base/lib_getstr.c b/ncurses/base/lib_getstr.c index 21d8baa05c8b..b17df03d2a41 100644 --- a/ncurses/base/lib_getstr.c +++ b/ncurses/base/lib_getstr.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -39,8 +39,9 @@ */ #include +#include -MODULE_ID("$Id: lib_getstr.c,v 1.29 2009/10/24 21:59:02 tom Exp $") +MODULE_ID("$Id: lib_getstr.c,v 1.27 2008/08/16 19:20:04 tom Exp $") /* * This wipes out the last character, no matter whether it was a tab, control @@ -83,24 +84,24 @@ wgetnstr_events(WINDOW *win, int ch; int y, x; - T((T_CALLED("wgetnstr(%p,%p,%d)"), (void *) win, (void *) str, maxlen)); + T((T_CALLED("wgetnstr(%p,%p, %d)"), win, str, maxlen)); if (!win) returnCode(ERR); - NCURSES_SP_NAME(_nc_get_tty_mode) (NCURSES_SP_ARGx &buf); + _nc_get_tty_mode(&buf); oldnl = sp->_nl; oldecho = sp->_echo; oldraw = sp->_raw; oldcbreak = sp->_cbreak; - NCURSES_SP_NAME(nl) (NCURSES_SP_ARG); - NCURSES_SP_NAME(noecho) (NCURSES_SP_ARG); - NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG); - NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG); + nl(); + noecho(); + noraw(); + cbreak(); - erasec = NCURSES_SP_NAME(erasechar) (NCURSES_SP_ARG); - killc = NCURSES_SP_NAME(killchar) (NCURSES_SP_ARG); + erasec = erasechar(); + killc = killchar(); oldstr = str; getyx(win, y, x); @@ -143,7 +144,7 @@ wgetnstr_events(WINDOW *win, } } else if (ch >= KEY_MIN || (maxlen >= 0 && str - oldstr >= maxlen)) { - NCURSES_SP_NAME(beep) (NCURSES_SP_ARG); + beep(); } else { *str++ = (char) ch; if (oldecho == TRUE) { @@ -192,7 +193,7 @@ wgetnstr_events(WINDOW *win, sp->_raw = oldraw; sp->_cbreak = oldcbreak; - NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); + _nc_set_tty_mode(&buf); *str = '\0'; if (ch == ERR) diff --git a/ncurses/base/lib_hline.c b/ncurses/base/lib_hline.c index 1f0380830ddc..2ef2cc585e10 100644 --- a/ncurses/base/lib_hline.c +++ b/ncurses/base/lib_hline.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -40,16 +40,16 @@ #include -MODULE_ID("$Id: lib_hline.c,v 1.13 2010/12/19 01:48:39 tom Exp $") +MODULE_ID("$Id: lib_hline.c,v 1.11 2006/03/11 21:52:27 tom Exp $") NCURSES_EXPORT(int) whline(WINDOW *win, chtype ch, int n) { int code = ERR; - int start; - int end; + NCURSES_SIZE_T start; + NCURSES_SIZE_T end; - T((T_CALLED("whline(%p,%s,%d)"), (void *) win, _tracechtype(ch), n)); + T((T_CALLED("whline(%p,%s,%d)"), win, _tracechtype(ch), n)); if (win) { struct ldat *line = &(win->_line[win->_cury]); diff --git a/ncurses/base/lib_immedok.c b/ncurses/base/lib_immedok.c index d51b60a30857..87988b66f1a3 100644 --- a/ncurses/base/lib_immedok.c +++ b/ncurses/base/lib_immedok.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2000,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -40,12 +40,12 @@ #include -MODULE_ID("$Id: lib_immedok.c,v 1.5 2009/10/24 22:32:11 tom Exp $") +MODULE_ID("$Id: lib_immedok.c,v 1.4 2000/12/10 02:43:27 tom Exp $") NCURSES_EXPORT(void) immedok(WINDOW *win, bool flag) { - T((T_CALLED("immedok(%p,%d)"), (void *) win, flag)); + T((T_CALLED("immedok(%p,%d)"), win, flag)); if (win) win->_immed = flag; diff --git a/ncurses/base/lib_inchstr.c b/ncurses/base/lib_inchstr.c index aebb6d625d5c..6ff01687826e 100644 --- a/ncurses/base/lib_inchstr.c +++ b/ncurses/base/lib_inchstr.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -29,7 +29,6 @@ /**************************************************************************** * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * ****************************************************************************/ /* @@ -41,14 +40,14 @@ #include -MODULE_ID("$Id: lib_inchstr.c,v 1.12 2010/12/20 01:37:41 tom Exp $") +MODULE_ID("$Id: lib_inchstr.c,v 1.10 2001/06/02 23:37:58 skimo Exp $") NCURSES_EXPORT(int) -winchnstr(WINDOW *win, chtype *str, int n) +winchnstr(WINDOW *win, chtype * str, int n) { int i = 0; - T((T_CALLED("winchnstr(%p,%p,%d)"), (void *) win, (void *) str, n)); + T((T_CALLED("winchnstr(%p,%p,%d)"), win, str, n)); if (!str) returnCode(0); @@ -56,7 +55,7 @@ winchnstr(WINDOW *win, chtype *str, int n) if (win) { for (; (n < 0 || (i < n)) && (win->_curx + i <= win->_maxx); i++) str[i] = - (chtype) CharOf(win->_line[win->_cury].text[win->_curx + i]) | + CharOf(win->_line[win->_cury].text[win->_curx + i]) | AttrOf(win->_line[win->_cury].text[win->_curx + i]); } str[i] = (chtype) 0; diff --git a/ncurses/base/lib_initscr.c b/ncurses/base/lib_initscr.c index 334682fab71d..b2fef0c1d085 100644 --- a/ncurses/base/lib_initscr.c +++ b/ncurses/base/lib_initscr.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -45,7 +45,7 @@ #include /* needed for ISC */ #endif -MODULE_ID("$Id: lib_initscr.c,v 1.39 2009/02/14 20:55:49 tom Exp $") +MODULE_ID("$Id: lib_initscr.c,v 1.38 2008/08/16 21:20:48 Werner.Fink Exp $") NCURSES_EXPORT(WINDOW *) initscr(void) @@ -90,11 +90,7 @@ initscr(void) } /* def_shell_mode - done in newterm/_nc_setupscreen */ -#if NCURSES_SP_FUNCS - NCURSES_SP_NAME(def_prog_mode) (CURRENT_SCREEN); -#else def_prog_mode(); -#endif } result = stdscr; _nc_unlock_global(curses); diff --git a/ncurses/base/lib_insch.c b/ncurses/base/lib_insch.c index e21ec02bc84f..9166ea5240e7 100644 --- a/ncurses/base/lib_insch.c +++ b/ncurses/base/lib_insch.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2005,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -43,31 +43,24 @@ #include #include -MODULE_ID("$Id: lib_insch.c,v 1.32 2009/10/24 22:04:35 tom Exp $") +MODULE_ID("$Id: lib_insch.c,v 1.25 2008/02/03 00:14:37 tom Exp $") /* * Insert the given character, updating the current location to simplify * inserting a string. */ NCURSES_EXPORT(int) -_nc_insert_ch(SCREEN *sp, WINDOW *win, chtype ch) +_nc_insert_ch(WINDOW *win, chtype ch) { int code = OK; NCURSES_CH_T wch; int count; NCURSES_CONST char *s; - int tabsize = ( -#if USE_REENTRANT - sp->_TABSIZE -#else - TABSIZE -#endif - ); switch (ch) { case '\t': - for (count = (tabsize - (win->_curx % tabsize)); count > 0; count--) { - if ((code = _nc_insert_ch(sp, win, ' ')) != OK) + for (count = (TABSIZE - (win->_curx % TABSIZE)); count > 0; count--) { + if ((code = _nc_insert_ch(win, ' ')) != OK) break; } break; @@ -83,9 +76,7 @@ _nc_insert_ch(SCREEN *sp, WINDOW *win, chtype ch) WINDOW_EXT(win, addch_used) == 0 && #endif is8bits(ChCharOf(ch)) && - (isprint(ChCharOf(ch)) || - (ChAttrOf(ch) & A_ALTCHARSET) || - (sp != 0 && sp->_legacy_coding && !iscntrl(ChCharOf(ch))))) { + isprint(ChCharOf(ch))) { if (win->_curx <= win->_maxx) { struct ldat *line = &(win->_line[win->_cury]); NCURSES_CH_T *end = &(line->text[win->_curx]); @@ -102,9 +93,9 @@ _nc_insert_ch(SCREEN *sp, WINDOW *win, chtype ch) win->_curx++; } } else if (is8bits(ChCharOf(ch)) && iscntrl(ChCharOf(ch))) { - s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx ChCharOf(ch)); + s = unctrl(ChCharOf(ch)); while (*s != '\0') { - code = _nc_insert_ch(sp, win, ChAttrOf(ch) | UChar(*s)); + code = _nc_insert_ch(win, ChAttrOf(ch) | UChar(*s)); if (code != OK) break; ++s; @@ -119,21 +110,16 @@ _nc_insert_ch(SCREEN *sp, WINDOW *win, chtype ch) wch = _nc_render(win, wch); count = _nc_build_wch(win, &wch); if (count > 0) { - code = _nc_insert_wch(win, &wch); + code = wins_wch(win, &wch); } else if (count == -1) { /* handle EILSEQ */ if (is8bits(ch)) { - s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx ChCharOf(ch)); - if (strlen(s) > 1) { - while (*s != '\0') { - code = _nc_insert_ch(sp, win, - ChAttrOf(ch) | UChar(*s)); - if (code != OK) - break; - ++s; - } - } else { - code = ERR; + s = unctrl(ChCharOf(ch)); + while (*s != '\0') { + code = _nc_insert_ch(win, ChAttrOf(ch) | UChar(*s)); + if (code != OK) + break; + ++s; } } else { code = ERR; @@ -153,13 +139,13 @@ winsch(WINDOW *win, chtype c) NCURSES_SIZE_T ox; int code = ERR; - T((T_CALLED("winsch(%p, %s)"), (void *) win, _tracechtype(c))); + T((T_CALLED("winsch(%p, %s)"), win, _tracechtype(c))); if (win != 0) { oy = win->_cury; ox = win->_curx; - code = _nc_insert_ch(_nc_screen_of(win), win, c); + code = _nc_insert_ch(win, c); win->_curx = ox; win->_cury = oy; diff --git a/ncurses/base/lib_insdel.c b/ncurses/base/lib_insdel.c index 8f51bbed4844..342c6541f95f 100644 --- a/ncurses/base/lib_insdel.c +++ b/ncurses/base/lib_insdel.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -42,14 +42,14 @@ #include -MODULE_ID("$Id: lib_insdel.c,v 1.13 2009/10/24 22:34:41 tom Exp $") +MODULE_ID("$Id: lib_insdel.c,v 1.12 2003/07/26 22:40:06 tom Exp $") NCURSES_EXPORT(int) winsdelln(WINDOW *win, int n) { int code = ERR; - T((T_CALLED("winsdelln(%p,%d)"), (void *) win, n)); + T((T_CALLED("winsdelln(%p,%d)"), win, n)); if (win) { if (n != 0) { diff --git a/ncurses/base/lib_insnstr.c b/ncurses/base/lib_insnstr.c index ce03e64be002..b6ddfde3c52b 100644 --- a/ncurses/base/lib_insnstr.c +++ b/ncurses/base/lib_insnstr.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2004,2009 Free Software Foundation, Inc. * + * Copyright (c) 2004 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -40,7 +40,7 @@ #include #include -MODULE_ID("$Id: lib_insnstr.c,v 1.3 2009/10/24 22:04:35 tom Exp $") +MODULE_ID("$Id: lib_insnstr.c,v 1.1 2004/02/28 23:44:56 tom Exp $") NCURSES_EXPORT(int) winsnstr(WINDOW *win, const char *s, int n) @@ -51,15 +51,13 @@ winsnstr(WINDOW *win, const char *s, int n) const unsigned char *str = (const unsigned char *) s; const unsigned char *cp; - T((T_CALLED("winsnstr(%p,%s,%d)"), (void *) win, _nc_visbufn(s, n), n)); + T((T_CALLED("winsnstr(%p,%s,%d)"), win, _nc_visbufn(s, n), n)); if (win != 0 && str != 0) { - SCREEN *sp = _nc_screen_of(win); - oy = win->_cury; ox = win->_curx; for (cp = str; *cp && (n <= 0 || (cp - str) < n); cp++) { - _nc_insert_ch(sp, win, (chtype) UChar(*cp)); + _nc_insert_ch(win, (chtype) UChar(*cp)); } win->_curx = ox; win->_cury = oy; diff --git a/ncurses/base/lib_instr.c b/ncurses/base/lib_instr.c index e6d1a739c94f..3fb29490ad06 100644 --- a/ncurses/base/lib_instr.c +++ b/ncurses/base/lib_instr.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2007,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -41,14 +41,14 @@ #include -MODULE_ID("$Id: lib_instr.c,v 1.17 2009/10/24 22:55:45 tom Exp $") +MODULE_ID("$Id: lib_instr.c,v 1.16 2007/07/21 20:18:10 tom Exp $") NCURSES_EXPORT(int) winnstr(WINDOW *win, char *str, int n) { int i = 0, row, col; - T((T_CALLED("winnstr(%p,%p,%d)"), (void *) win, str, n)); + T((T_CALLED("winnstr(%p,%p,%d)"), win, str, n)); if (!str) returnCode(0); @@ -79,18 +79,18 @@ winnstr(WINDOW *win, char *str, int n) init_mb(state); n3 = wcstombs(0, wch, 0); - if (!isEILSEQ(n3) && (n3 != 0)) { - if (((int) n3 + i) > n) { - done = TRUE; - } else if ((tmp = typeCalloc(char, n3 + 10)) == 0) { - done = TRUE; - } else { - init_mb(state); - wcstombs(tmp, wch, n3); - for (i3 = 0; i3 < n3; ++i3) - str[i++] = tmp[i3]; - free(tmp); - } + if (isEILSEQ(n3) || (n3 == 0)) { + ; + } else if ((int) (n3 + i) > n) { + done = TRUE; + } else if ((tmp = typeCalloc(char, n3 + 10)) == 0) { + done = TRUE; + } else { + init_mb(state); + wcstombs(tmp, wch, n3); + for (i3 = 0; i3 < n3; ++i3) + str[i++] = tmp[i3]; + free(tmp); } } free(wch); diff --git a/ncurses/base/lib_isendwin.c b/ncurses/base/lib_isendwin.c index 923e35bf122f..b337d97a94c3 100644 --- a/ncurses/base/lib_isendwin.c +++ b/ncurses/base/lib_isendwin.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2000,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -29,8 +29,6 @@ /**************************************************************************** * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -42,20 +40,12 @@ #include -MODULE_ID("$Id: lib_isendwin.c,v 1.7 2009/02/15 00:36:24 tom Exp $") +MODULE_ID("$Id: lib_isendwin.c,v 1.6 2000/12/10 02:43:27 tom Exp $") -NCURSES_EXPORT(bool) -NCURSES_SP_NAME(isendwin) (NCURSES_SP_DCL0) -{ - if (SP_PARM == NULL) - return FALSE; - return SP_PARM->_endwin; -} - -#if NCURSES_SP_FUNCS NCURSES_EXPORT(bool) isendwin(void) { - return NCURSES_SP_NAME(isendwin) (CURRENT_SCREEN); + if (SP == NULL) + return FALSE; + return SP->_endwin; } -#endif diff --git a/ncurses/base/lib_leaveok.c b/ncurses/base/lib_leaveok.c index e6995f85cb4d..17d095d0f8c8 100644 --- a/ncurses/base/lib_leaveok.c +++ b/ncurses/base/lib_leaveok.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2000,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -40,12 +40,12 @@ #include -MODULE_ID("$Id: lib_leaveok.c,v 1.6 2009/10/24 22:34:23 tom Exp $") +MODULE_ID("$Id: lib_leaveok.c,v 1.5 2000/12/10 02:43:27 tom Exp $") NCURSES_EXPORT(int) leaveok(WINDOW *win, bool flag) { - T((T_CALLED("leaveok(%p,%d)"), (void *) win, flag)); + T((T_CALLED("leaveok(%p,%d)"), win, flag)); if (win) { win->_leaveok = flag; diff --git a/ncurses/base/lib_mouse.c b/ncurses/base/lib_mouse.c index dac039551165..95f29aa69111 100644 --- a/ncurses/base/lib_mouse.c +++ b/ncurses/base/lib_mouse.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -30,7 +30,6 @@ * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer 2008 * ****************************************************************************/ /* @@ -80,12 +79,9 @@ #include -#ifndef CUR -#define CUR SP_TERMTYPE -#endif - -MODULE_ID("$Id: lib_mouse.c,v 1.121 2011/01/22 19:47:47 tom Exp $") +MODULE_ID("$Id: lib_mouse.c,v 1.102 2008/10/18 21:48:55 tom Exp $") +#include #include #if USE_GPM_SUPPORT @@ -122,12 +118,12 @@ make an error #define MY_TRACE TRACE_ICALLS|TRACE_IEVENT -#define MASK_RELEASE(x) (mmask_t) NCURSES_MOUSE_MASK(x, 001) -#define MASK_PRESS(x) (mmask_t) NCURSES_MOUSE_MASK(x, 002) -#define MASK_CLICK(x) (mmask_t) NCURSES_MOUSE_MASK(x, 004) -#define MASK_DOUBLE_CLICK(x) (mmask_t) NCURSES_MOUSE_MASK(x, 010) -#define MASK_TRIPLE_CLICK(x) (mmask_t) NCURSES_MOUSE_MASK(x, 020) -#define MASK_RESERVED_EVENT(x) (mmask_t) NCURSES_MOUSE_MASK(x, 040) +#define MASK_RELEASE(x) NCURSES_MOUSE_MASK(x, 001) +#define MASK_PRESS(x) NCURSES_MOUSE_MASK(x, 002) +#define MASK_CLICK(x) NCURSES_MOUSE_MASK(x, 004) +#define MASK_DOUBLE_CLICK(x) NCURSES_MOUSE_MASK(x, 010) +#define MASK_TRIPLE_CLICK(x) NCURSES_MOUSE_MASK(x, 020) +#define MASK_RESERVED_EVENT(x) NCURSES_MOUSE_MASK(x, 040) #if NCURSES_MOUSE_VERSION == 1 #define BUTTON_CLICKED (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED | BUTTON4_CLICKED) @@ -154,7 +150,7 @@ make an error #define LIBGPM_SONAME "libgpm.so" #endif -#define GET_DLSYM(name) (my_##name = (TYPE_##name) dlsym(sp->_dlopen_gpm, #name)) +#define GET_DLSYM(name) (my_##name = (TYPE_##name) dlsym(SP->_dlopen_gpm, #name)) #endif /* USE_GPM_SUPPORT */ @@ -168,13 +164,13 @@ static void _nc_mouse_wrap(SCREEN *); #define LastEV(sp) ((sp)->_mouse_events + EV_MAX - 1) #undef NEXT -#define NEXT(ep) ((ep >= LastEV(SP_PARM)) \ - ? FirstEV(SP_PARM) \ +#define NEXT(ep) ((ep >= LastEV(sp)) \ + ? FirstEV(sp) \ : ep + 1) #undef PREV -#define PREV(ep) ((ep <= FirstEV(SP_PARM)) \ - ? LastEV(SP_PARM) \ +#define PREV(ep) ((ep <= FirstEV(sp)) \ + ? LastEV(sp) \ : ep - 1) #define IndexEV(sp, ep) (ep - FirstEV(sp)) @@ -189,7 +185,7 @@ _trace_slot(SCREEN *sp, const char *tag) { MEVENT *ep; - _tracef("%s", tag); + _tracef(tag); for (ep = FirstEV(sp); ep <= LastEV(sp); ep++) _tracef("mouse event queue slot %ld = %s", @@ -344,13 +340,10 @@ sysmouse_server(SCREEN *sp) static void handle_sysmouse(int sig GCC_UNUSED) { - sysmouse_server(CURRENT_SCREEN); + sysmouse_server(SP); } #endif /* USE_SYSMOUSE */ -#ifndef USE_TERM_DRIVER -#define xterm_kmous "\033[M" - static void init_xterm_mouse(SCREEN *sp) { @@ -359,7 +352,6 @@ init_xterm_mouse(SCREEN *sp) if (!VALID_STRING(sp->_mouse_xtermcap)) sp->_mouse_xtermcap = "\033[?1000%?%p1%{1}%=%th%el%;"; } -#endif static void enable_xterm_mouse(SCREEN *sp, int enable) @@ -367,9 +359,7 @@ enable_xterm_mouse(SCREEN *sp, int enable) #if USE_EMX_MOUSE sp->_emxmouse_activated = enable; #else - NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx - "xterm-mouse", - TPARM_1(sp->_mouse_xtermcap, enable)); + putp(TPARM_1(sp->_mouse_xtermcap, enable)); #endif sp->_mouse_active = enable; } @@ -408,7 +398,7 @@ allow_gpm_mouse(void) static void unload_gpm_library(SCREEN *sp) { - if (sp->_dlopen_gpm != 0) { + if (SP->_dlopen_gpm != 0) { T(("unload GPM library")); sp->_mouse_gpm_loaded = FALSE; sp->_mouse_fd = -1; @@ -450,8 +440,6 @@ enable_gpm_mouse(SCREEN *sp, bool enable) } #endif if (sp->_mouse_gpm_loaded) { - int code; - /* GPM: initialize connection to gpm server */ sp->_mouse_gpm_connect.eventMask = GPM_DOWN | GPM_UP; sp->_mouse_gpm_connect.defaultMask = @@ -466,16 +454,7 @@ enable_gpm_mouse(SCREEN *sp, bool enable) * The former is recognized by wscons (SunOS), and the latter by * xterm. Those will not show up in ncurses' traces. */ - code = my_Gpm_Open(&sp->_mouse_gpm_connect, 0); - result = (code >= 0); - - /* - * GPM can return a -2 if it is trying to do something with xterm. - * Ignore that, since it conflicts with our use of stdin. - */ - if (code == -2) { - my_Gpm_Close(); - } + result = (my_Gpm_Open(&sp->_mouse_gpm_connect, 0) >= 0); } else { result = FALSE; } @@ -499,6 +478,8 @@ enable_gpm_mouse(SCREEN *sp, bool enable) } #endif /* USE_GPM_SUPPORT */ +#define xterm_kmous "\033[M" + static void initialize_mousetype(SCREEN *sp) { @@ -533,7 +514,7 @@ initialize_mousetype(SCREEN *sp) /* OS/2 VIO */ #if USE_EMX_MOUSE if (!sp->_emxmouse_thread - && strstr(TerminalOf(sp)->type.term_names, "xterm") == 0 + && strstr(cur_term->type.term_names, "xterm") == 0 && key_mouse) { int handles[2]; @@ -640,21 +621,16 @@ initialize_mousetype(SCREEN *sp) } #endif /* USE_SYSMOUSE */ -#ifdef USE_TERM_DRIVER - CallDriver(sp, initmouse); -#else /* we know how to recognize mouse events under "xterm" */ if (key_mouse != 0) { if (!strcmp(key_mouse, xterm_kmous) - || strstr(TerminalOf(sp)->type.term_names, "xterm") != 0) { + || strstr(cur_term->type.term_names, "xterm") != 0) { init_xterm_mouse(sp); } - } else if (strstr(TerminalOf(sp)->type.term_names, "xterm") != 0) { + } else if (strstr(cur_term->type.term_names, "xterm") != 0) { if (_nc_add_to_try(&(sp->_keytry), xterm_kmous, KEY_MOUSE) == OK) init_xterm_mouse(sp); } -#endif - returnVoid; } @@ -689,7 +665,7 @@ _nc_mouse_init(SCREEN *sp) * fifo_push() in lib_getch.c */ static bool -_nc_mouse_event(SCREEN *sp) +_nc_mouse_event(SCREEN *sp GCC_UNUSED) { MEVENT *eventp = sp->_mouse_eventp; bool result = FALSE; @@ -718,16 +694,11 @@ _nc_mouse_event(SCREEN *sp) #if USE_GPM_SUPPORT case M_GPM: - if (sp->_mouse_fd >= 0) { + { /* query server for event, return TRUE if we find one */ Gpm_Event ev; - switch (my_Gpm_GetEvent(&ev)) { - case 0: - /* Connection closed, drop the mouse. */ - sp->_mouse_fd = -1; - break; - case 1: + if (my_Gpm_GetEvent(&ev) == 1) { /* there's only one mouse... */ eventp->id = NORMAL_EVENT; @@ -758,9 +729,8 @@ _nc_mouse_event(SCREEN *sp) eventp->z = 0; /* bump the next-free pointer into the circular list */ - sp->_mouse_eventp = NEXT(eventp); + sp->_mouse_eventp = eventp = NEXT(eventp); result = TRUE; - break; } } break; @@ -789,28 +759,6 @@ _nc_mouse_event(SCREEN *sp) break; #endif /* USE_SYSMOUSE */ -#ifdef USE_TERM_DRIVER - case M_TERM_DRIVER: - while (sp->_drv_mouse_head < sp->_drv_mouse_tail) { - *eventp = sp->_drv_mouse_fifo[sp->_drv_mouse_head]; - - /* - * Point the fifo-head to the next possible location. If there - * are none, reset the indices. - */ - sp->_drv_mouse_head += 1; - if (sp->_drv_mouse_head == sp->_drv_mouse_tail) { - sp->_drv_mouse_tail = 0; - sp->_drv_mouse_head = 0; - } - - /* bump the next-free pointer into the circular list */ - sp->_mouse_eventp = eventp = NEXT(eventp); - result = TRUE; - } - break; -#endif - case M_NONE: break; } @@ -866,26 +814,17 @@ _nc_mouse_inline(SCREEN *sp) * Wheel mice may return buttons 4 and 5 when the wheel is turned. * We encode those as button presses. */ -# if USE_PTHREADS_EINTR -# if USE_WEAK_SYMBOLS - if ((pthread_self) && (pthread_kill) && (pthread_equal)) -# endif - _nc_globals.read_thread = pthread_self(); -# endif for (grabbed = 0; grabbed < 3; grabbed += (size_t) res) { /* For VIO mouse we add extra bit 64 to disambiguate button-up. */ #if USE_EMX_MOUSE - res = (int) read(M_FD(sp) >= 0 ? M_FD(sp) : sp->_ifd, &kbuf, 3); + res = read(M_FD(sp) >= 0 ? M_FD(sp) : sp->_ifd, &kbuf, 3); #else - res = (int) read(sp->_ifd, kbuf + grabbed, 3 - grabbed); + res = read(sp->_ifd, kbuf + grabbed, 3 - grabbed); #endif if (res == -1) break; } -#if USE_PTHREADS_EINTR - _nc_globals.read_thread = 0; -#endif kbuf[3] = '\0'; TR(TRACE_IEVENT, @@ -998,7 +937,7 @@ mouse_activate(SCREEN *sp, bool on) switch (sp->_mouse_type) { case M_XTERM: #if NCURSES_EXT_FUNCS - NCURSES_SP_NAME(keyok) (NCURSES_SP_ARGx KEY_MOUSE, on); + keyok(KEY_MOUSE, on); #endif TPUTS_TRACE("xterm mouse initialization"); enable_xterm_mouse(sp, 1); @@ -1016,11 +955,6 @@ mouse_activate(SCREEN *sp, bool on) signal(SIGUSR2, handle_sysmouse); sp->_mouse_active = TRUE; break; -#endif -#ifdef USE_TERM_DRIVER - case M_TERM_DRIVER: - sp->_mouse_active = TRUE; - break; #endif case M_NONE: return; @@ -1050,17 +984,12 @@ mouse_activate(SCREEN *sp, bool on) signal(SIGUSR2, SIG_IGN); sp->_mouse_active = FALSE; break; -#endif -#ifdef USE_TERM_DRIVER - case M_TERM_DRIVER: - sp->_mouse_active = FALSE; - break; #endif case M_NONE: return; } } - NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); + _nc_flush(); } /************************************************************************** @@ -1292,11 +1221,6 @@ _nc_mouse_wrap(SCREEN *sp) case M_SYSMOUSE: mouse_activate(sp, FALSE); break; -#endif -#ifdef USE_TERM_DRIVER - case M_TERM_DRIVER: - mouse_activate(sp, FALSE); - break; #endif case M_NONE: break; @@ -1329,13 +1253,6 @@ _nc_mouse_resume(SCREEN *sp) mouse_activate(sp, TRUE); break; #endif - -#ifdef USE_TERM_DRIVER - case M_TERM_DRIVER: - mouse_activate(sp, TRUE); - break; -#endif - case M_NONE: break; } @@ -1347,92 +1264,80 @@ _nc_mouse_resume(SCREEN *sp) * **************************************************************************/ -NCURSES_EXPORT(int) -NCURSES_SP_NAME(getmouse) (NCURSES_SP_DCLx MEVENT * aevent) +static int +_nc_getmouse(SCREEN *sp, MEVENT * aevent) { - int result = ERR; + T((T_CALLED("getmouse(%p)"), aevent)); - T((T_CALLED("getmouse(%p,%p)"), (void *) SP_PARM, (void *) aevent)); - - if ((aevent != 0) && (SP_PARM != 0) && (SP_PARM->_mouse_type != M_NONE)) { - MEVENT *eventp = SP_PARM->_mouse_eventp; + if ((aevent != 0) && (sp != 0) && (sp->_mouse_type != M_NONE)) { + MEVENT *eventp = sp->_mouse_eventp; /* compute the current-event pointer */ MEVENT *prev = PREV(eventp); - if (prev->id != INVALID_EVENT) { - /* copy the event we find there */ - *aevent = *prev; + /* copy the event we find there */ + *aevent = *prev; - TR(TRACE_IEVENT, ("getmouse: returning event %s from slot %ld", - _nc_tracemouse(SP_PARM, prev), - (long) IndexEV(SP_PARM, prev))); + TR(TRACE_IEVENT, ("getmouse: returning event %s from slot %ld", + _nc_tracemouse(sp, prev), + (long) IndexEV(sp, prev))); - prev->id = INVALID_EVENT; /* so the queue slot becomes free */ - SP_PARM->_mouse_eventp = PREV(prev); - result = OK; - } + prev->id = INVALID_EVENT; /* so the queue slot becomes free */ + returnCode(OK); } - returnCode(result); + returnCode(ERR); } -#if NCURSES_SP_FUNCS /* grab a copy of the current mouse event */ NCURSES_EXPORT(int) getmouse(MEVENT * aevent) { - return NCURSES_SP_NAME(getmouse) (CURRENT_SCREEN, aevent); + return _nc_getmouse(SP, aevent); } -#endif -NCURSES_EXPORT(int) -NCURSES_SP_NAME(ungetmouse) (NCURSES_SP_DCLx MEVENT * aevent) +static int +_nc_ungetmouse(SCREEN *sp, MEVENT * aevent) { int result = ERR; - T((T_CALLED("ungetmouse(%p,%p)"), (void *) SP_PARM, (void *) aevent)); + T((T_CALLED("ungetmouse(%p)"), aevent)); - if (aevent != 0 && SP_PARM != 0) { - MEVENT *eventp = SP_PARM->_mouse_eventp; + if (aevent != 0 && sp != 0) { + MEVENT *eventp = sp->_mouse_eventp; /* stick the given event in the next-free slot */ *eventp = *aevent; /* bump the next-free pointer into the circular list */ - SP_PARM->_mouse_eventp = NEXT(eventp); + sp->_mouse_eventp = NEXT(eventp); /* push back the notification event on the keyboard queue */ - result = NCURSES_SP_NAME(ungetch) (NCURSES_SP_ARGx KEY_MOUSE); + result = _nc_ungetch(sp, KEY_MOUSE); } returnCode(result); } -#if NCURSES_SP_FUNCS /* enqueue a synthesized mouse event to be seen by the next wgetch() */ NCURSES_EXPORT(int) ungetmouse(MEVENT * aevent) { - return NCURSES_SP_NAME(ungetmouse) (CURRENT_SCREEN, aevent); + return _nc_ungetmouse(SP, aevent); } -#endif NCURSES_EXPORT(mmask_t) -NCURSES_SP_NAME(mousemask) (NCURSES_SP_DCLx mmask_t newmask, mmask_t * oldmask) +mousemask(mmask_t newmask, mmask_t * oldmask) /* set the mouse event mask */ { mmask_t result = 0; - T((T_CALLED("mousemask(%p,%#lx,%p)"), - (void *) SP_PARM, - (unsigned long) newmask, - (void *) oldmask)); + T((T_CALLED("mousemask(%#lx,%p)"), (unsigned long) newmask, oldmask)); - if (SP_PARM != 0) { + if (SP != 0) { if (oldmask) - *oldmask = SP_PARM->_mouse_mask; + *oldmask = SP->_mouse_mask; - if (newmask || SP_PARM->_mouse_initialized) { - _nc_mouse_init(SP_PARM); - if (SP_PARM->_mouse_type != M_NONE) { + if (newmask || SP->_mouse_initialized) { + _nc_mouse_init(SP); + if (SP->_mouse_type != M_NONE) { result = newmask & (REPORT_MOUSE_POSITION | BUTTON_ALT @@ -1444,22 +1349,14 @@ NCURSES_SP_NAME(mousemask) (NCURSES_SP_DCLx mmask_t newmask, mmask_t * oldmask) | BUTTON_DOUBLE_CLICKED | BUTTON_TRIPLE_CLICKED); - mouse_activate(SP_PARM, (bool) (result != 0)); + mouse_activate(SP, (bool) (result != 0)); - SP_PARM->_mouse_mask = result; + SP->_mouse_mask = result; } } } - returnMMask(result); -} - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(mmask_t) -mousemask(mmask_t newmask, mmask_t * oldmask) -{ - return NCURSES_SP_NAME(mousemask) (CURRENT_SCREEN, newmask, oldmask); + returnBits(result); } -#endif NCURSES_EXPORT(bool) wenclose(const WINDOW *win, int y, int x) @@ -1467,7 +1364,7 @@ wenclose(const WINDOW *win, int y, int x) { bool result = FALSE; - T((T_CALLED("wenclose(%p,%d,%d)"), (const void *) win, y, x)); + T((T_CALLED("wenclose(%p,%d,%d)"), win, y, x)); if (win != 0) { y -= win->_yoffset; @@ -1480,17 +1377,17 @@ wenclose(const WINDOW *win, int y, int x) } NCURSES_EXPORT(int) -NCURSES_SP_NAME(mouseinterval) (NCURSES_SP_DCLx int maxclick) +mouseinterval(int maxclick) /* set the maximum mouse interval within which to recognize a click */ { int oldval; - T((T_CALLED("mouseinterval(%p,%d)"), (void *) SP_PARM, maxclick)); + T((T_CALLED("mouseinterval(%d)"), maxclick)); - if (SP_PARM != 0) { - oldval = SP_PARM->_maxclick; + if (SP != 0) { + oldval = SP->_maxclick; if (maxclick >= 0) - SP_PARM->_maxclick = maxclick; + SP->_maxclick = maxclick; } else { oldval = DEFAULT_MAXCLICK; } @@ -1498,46 +1395,20 @@ NCURSES_SP_NAME(mouseinterval) (NCURSES_SP_DCLx int maxclick) returnCode(oldval); } -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -mouseinterval(int maxclick) -{ - return NCURSES_SP_NAME(mouseinterval) (CURRENT_SCREEN, maxclick); -} -#endif - /* This may be used by other routines to ask for the existence of mouse support */ -NCURSES_EXPORT(bool) -_nc_has_mouse(SCREEN *sp) -{ - return (((0 == sp) || (sp->_mouse_type == M_NONE)) ? FALSE : TRUE); -} - -NCURSES_EXPORT(bool) -NCURSES_SP_NAME(has_mouse) (NCURSES_SP_DCL0) -{ - return _nc_has_mouse(SP_PARM); -} - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(bool) -has_mouse(void) +NCURSES_EXPORT(int) +_nc_has_mouse(void) { - return _nc_has_mouse(CURRENT_SCREEN); + return (SP->_mouse_type == M_NONE ? 0 : 1); } -#endif NCURSES_EXPORT(bool) wmouse_trafo(const WINDOW *win, int *pY, int *pX, bool to_screen) { bool result = FALSE; - T((T_CALLED("wmouse_trafo(%p,%p,%p,%d)"), - (const void *) win, - (void *) pY, - (void *) pX, - to_screen)); + T((T_CALLED("wmouse_trafo(%p,%p,%p,%d)"), win, pY, pX, to_screen)); if (win && pY && pX) { int y = *pY; diff --git a/ncurses/base/lib_move.c b/ncurses/base/lib_move.c index 488b195d15a3..652c44d7b718 100644 --- a/ncurses/base/lib_move.c +++ b/ncurses/base/lib_move.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2004,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2000,2004 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -41,12 +41,12 @@ #include -MODULE_ID("$Id: lib_move.c,v 1.13 2009/10/24 22:34:07 tom Exp $") +MODULE_ID("$Id: lib_move.c,v 1.12 2004/12/04 21:50:07 tom Exp $") NCURSES_EXPORT(int) wmove(WINDOW *win, int y, int x) { - T((T_CALLED("wmove(%p,%d,%d)"), (void *) win, y, x)); + T((T_CALLED("wmove(%p,%d,%d)"), win, y, x)); if (LEGALYX(win, y, x)) { win->_curx = (NCURSES_SIZE_T) x; diff --git a/ncurses/base/lib_mvwin.c b/ncurses/base/lib_mvwin.c index 18d31c13319b..e4dad4a746f0 100644 --- a/ncurses/base/lib_mvwin.c +++ b/ncurses/base/lib_mvwin.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -29,8 +29,6 @@ /**************************************************************************** * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer * ****************************************************************************/ /* @@ -42,16 +40,12 @@ #include -MODULE_ID("$Id: lib_mvwin.c,v 1.18 2010/12/19 01:22:58 tom Exp $") +MODULE_ID("$Id: lib_mvwin.c,v 1.14 2006/02/25 22:53:46 tom Exp $") NCURSES_EXPORT(int) mvwin(WINDOW *win, int by, int bx) { -#if NCURSES_SP_FUNCS - SCREEN *sp = _nc_screen_of(win); -#endif - - T((T_CALLED("mvwin(%p,%d,%d)"), (void *) win, by, bx)); + T((T_CALLED("mvwin(%p,%d,%d)"), win, by, bx)); if (!win || (win->_flags & _ISPAD)) returnCode(ERR); @@ -102,8 +96,8 @@ mvwin(WINDOW *win, int by, int bx) } #endif - if (by + win->_maxy > screen_lines(SP_PARM) - 1 - || bx + win->_maxx > screen_columns(SP_PARM) - 1 + if (by + win->_maxy > screen_lines - 1 + || bx + win->_maxx > screen_columns - 1 || by < 0 || bx < 0) returnCode(ERR); @@ -114,7 +108,7 @@ mvwin(WINDOW *win, int by, int bx) * new location. This ensures that if the caller has refreshed another * window at the same location, that this one will be displayed. */ - win->_begy = (NCURSES_SIZE_T) by; - win->_begx = (NCURSES_SIZE_T) bx; + win->_begy = by; + win->_begx = bx; returnCode(touchwin(win)); } diff --git a/ncurses/base/lib_newterm.c b/ncurses/base/lib_newterm.c index e12208b7d02d..05982b84cee4 100644 --- a/ncurses/base/lib_newterm.c +++ b/ncurses/base/lib_newterm.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -30,7 +30,6 @@ * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -46,19 +45,10 @@ #define _POSIX_SOURCE #endif -#ifndef CUR -#define CUR SP_TERMTYPE -#endif - +#include /* clear_screen, cup & friends, cur_term */ #include -MODULE_ID("$Id: lib_newterm.c,v 1.86 2010/05/20 23:25:18 tom Exp $") - -#ifdef USE_TERM_DRIVER -#define NumLabels InfoOf(SP_PARM).numlabels -#else -#define NumLabels num_labels -#endif +MODULE_ID("$Id: lib_newterm.c,v 1.73 2008/08/16 21:20:48 Werner.Fink Exp $") #ifndef ONLCR /* Allows compilation under the QNX 4.2 OS */ #define ONLCR 0 @@ -73,29 +63,27 @@ MODULE_ID("$Id: lib_newterm.c,v 1.86 2010/05/20 23:25:18 tom Exp $") * is supposed to behave as if it calls newterm, we do it here. */ static NCURSES_INLINE int -_nc_initscr(NCURSES_SP_DCL0) +_nc_initscr(void) { int result = ERR; - TERMINAL *term = TerminalOf(SP_PARM); /* for extended XPG4 conformance requires cbreak() at this point */ /* (SVr4 curses does this anyway) */ - if (NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG) == OK) { + if (cbreak() == OK) { TTY buf; - buf = term->Nttyb; + buf = cur_term->Nttyb; #ifdef TERMIOS - buf.c_lflag &= (unsigned) ~(ECHO | ECHONL); - buf.c_iflag &= (unsigned) ~(ICRNL | INLCR | IGNCR); - buf.c_oflag &= (unsigned) ~(ONLCR); + buf.c_lflag &= ~(ECHO | ECHONL); + buf.c_iflag &= ~(ICRNL | INLCR | IGNCR); + buf.c_oflag &= ~(ONLCR); #elif HAVE_SGTTY_H buf.sg_flags &= ~(ECHO | CRMOD); #else memset(&buf, 0, sizeof(buf)); #endif - result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); - if (result == OK) - term->Nttyb = buf; + if ((result = _nc_set_tty_mode(&buf)) == OK) + cur_term->Nttyb = buf; } return result; } @@ -107,30 +95,13 @@ _nc_initscr(NCURSES_SP_DCL0) * initialized. */ NCURSES_EXPORT(void) -NCURSES_SP_NAME(filter) (NCURSES_SP_DCL0) -{ - START_TRACE(); - T((T_CALLED("filter(%p)"), (void *) SP_PARM)); -#if NCURSES_SP_FUNCS - if (IsPreScreen(SP_PARM)) { - SP_PARM->_filtered = TRUE; - } -#else - _nc_prescreen.filter_mode = TRUE; -#endif - returnVoid; -} - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(void) filter(void) { START_TRACE(); - T((T_CALLED("filter()"))); + T((T_CALLED("filter"))); _nc_prescreen.filter_mode = TRUE; returnVoid; } -#endif #if NCURSES_EXT_FUNCS /* @@ -138,125 +109,62 @@ filter(void) * requiring it to also be filtered. */ NCURSES_EXPORT(void) -NCURSES_SP_NAME(nofilter) (NCURSES_SP_DCL0) -{ - START_TRACE(); - T((T_CALLED("nofilter(%p)"), (void *) SP_PARM)); -#if NCURSES_SP_FUNCS - if (IsPreScreen(SP_PARM)) { - SP_PARM->_filtered = FALSE; - } -#else - _nc_prescreen.filter_mode = FALSE; -#endif - returnVoid; -} - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(void) nofilter(void) { START_TRACE(); - T((T_CALLED("nofilter()"))); + T((T_CALLED("nofilter"))); _nc_prescreen.filter_mode = FALSE; returnVoid; } #endif -#endif /* NCURSES_EXT_FUNCS */ NCURSES_EXPORT(SCREEN *) -NCURSES_SP_NAME(newterm) (NCURSES_SP_DCLx - NCURSES_CONST char *name, - FILE *ofp, - FILE *ifp) +newterm(NCURSES_CONST char *name, FILE *ofp, FILE *ifp) { int value; int errret; - SCREEN *result = 0; SCREEN *current; + SCREEN *result = 0; TERMINAL *its_term; - FILE *_ofp = ofp ? ofp : stdout; - FILE *_ifp = ifp ? ifp : stdin; - int cols; - int slk_format; - int filter_mode; - TERMINAL *new_term = 0; START_TRACE(); - T((T_CALLED("newterm(%p, \"%s\", %p,%p)"), - (void *) SP_PARM, - name, - (void *) ofp, - (void *) ifp)); - -#if NCURSES_SP_FUNCS - assert(SP_PARM != 0); - if (SP_PARM == 0) - returnSP(SP_PARM); -#endif + T((T_CALLED("newterm(\"%s\",%p,%p)"), name, ofp, ifp)); _nc_init_pthreads(); _nc_lock_global(curses); - current = CURRENT_SCREEN; - its_term = (current ? current->_term : 0); + current = SP; + its_term = (SP ? SP->_term : 0); - INIT_TERM_DRIVER(); /* this loads the capability entry, then sets LINES and COLS */ - if ( -#if NCURSES_SP_FUNCS - SP_PARM->_prescreen && -#endif - TINFO_SETUP_TERM(&new_term, name, - fileno(_ofp), &errret, FALSE) != ERR) { - - _nc_set_screen(0); -#ifdef USE_TERM_DRIVER - assert(new_term != 0); -#endif - -#if NCURSES_SP_FUNCS - slk_format = SP_PARM->slk_format; - filter_mode = SP_PARM->_filtered; -#else - slk_format = _nc_globals.slk_format; - filter_mode = _nc_prescreen.filter_mode; -#endif + if (setupterm(name, fileno(ofp), &errret) != ERR) { + int slk_format = _nc_globals.slk_format; /* * This actually allocates the screen structure, and saves the original * terminal settings. */ - if (NCURSES_SP_NAME(_nc_setupscreen) ( -#if NCURSES_SP_FUNCS - &SP_PARM, -#endif - *(ptrLines(SP_PARM)), - *(ptrCols(SP_PARM)), - _ofp, - filter_mode, - slk_format) == ERR) { + _nc_set_screen(0); + + /* allow user to set maximum escape delay from the environment */ + if ((value = _nc_getenv_num("ESCDELAY")) >= 0) { + set_escdelay(value); + } + + if (_nc_setupscreen(LINES, + COLS, + ofp, + _nc_prescreen.filter_mode, + slk_format) == ERR) { _nc_set_screen(current); result = 0; } else { -#ifdef USE_TERM_DRIVER - TERMINAL_CONTROL_BLOCK *TCB; -#elif !NCURSES_SP_FUNCS - _nc_set_screen(CURRENT_SCREEN); -#endif - assert(SP_PARM != 0); - cols = *(ptrCols(SP_PARM)); -#ifdef USE_TERM_DRIVER - _nc_set_screen(SP_PARM); - TCB = (TERMINAL_CONTROL_BLOCK *) new_term; - TCB->csp = SP_PARM; -#endif + assert(SP != 0); /* * In setupterm() we did a set_curterm(), but it was before we set - * CURRENT_SCREEN. So the "current" screen's terminal pointer was - * overwritten with a different terminal. Later, in - * _nc_setupscreen(), we set CURRENT_SCREEN and the terminal - * pointer in the new screen. + * SP. So the "current" screen's terminal pointer was overwritten + * with a different terminal. Later, in _nc_setupscreen(), we set + * SP and the terminal pointer in the new screen. * * Restore the terminal-pointer for the pre-existing screen, if * any. @@ -264,53 +172,37 @@ NCURSES_SP_NAME(newterm) (NCURSES_SP_DCLx if (current) current->_term = its_term; -#ifdef USE_TERM_DRIVER - SP_PARM->_term = new_term; -#else - new_term = SP_PARM->_term; -#endif - - /* allow user to set maximum escape delay from the environment */ - if ((value = _nc_getenv_num("ESCDELAY")) >= 0) { - NCURSES_SP_NAME(set_escdelay) (NCURSES_SP_ARGx value); - } - /* if the terminal type has real soft labels, set those up */ - if (slk_format && NumLabels > 0 && SLK_STDFMT(slk_format)) - _nc_slk_initialize(StdScreen(SP_PARM), cols); + if (slk_format && num_labels > 0 && SLK_STDFMT(slk_format)) + _nc_slk_initialize(stdscr, COLS); - SP_PARM->_ifd = fileno(_ifp); - NCURSES_SP_NAME(typeahead) (NCURSES_SP_ARGx fileno(_ifp)); + SP->_ifd = fileno(ifp); + typeahead(fileno(ifp)); #ifdef TERMIOS - SP_PARM->_use_meta = ((new_term->Ottyb.c_cflag & CSIZE) == CS8 && - !(new_term->Ottyb.c_iflag & ISTRIP)); + SP->_use_meta = ((cur_term->Ottyb.c_cflag & CSIZE) == CS8 && + !(cur_term->Ottyb.c_iflag & ISTRIP)); #else - SP_PARM->_use_meta = FALSE; + SP->_use_meta = FALSE; #endif - SP_PARM->_endwin = FALSE; -#ifndef USE_TERM_DRIVER + SP->_endwin = FALSE; + /* * Check whether we can optimize scrolling under dumb terminals in * case we do not have any of these capabilities, scrolling * optimization will be useless. */ - SP_PARM->_scrolling = ((scroll_forward && scroll_reverse) || - ((parm_rindex || - parm_insert_line || - insert_line) && - (parm_index || - parm_delete_line || - delete_line))); -#endif + SP->_scrolling = ((scroll_forward && scroll_reverse) || + ((parm_rindex || + parm_insert_line || + insert_line) && + (parm_index || + parm_delete_line || + delete_line))); - NCURSES_SP_NAME(baudrate) (NCURSES_SP_ARG); /* sets a field in the screen structure */ + baudrate(); /* sets a field in the SP structure */ - SP_PARM->_keytry = 0; + SP->_keytry = 0; - /* compute movement costs so we can do better move optimization */ -#ifdef USE_TERM_DRIVER - TCBOf(SP_PARM)->drv->scinit(SP_PARM); -#else /* * Check for mismatched graphic-rendition capabilities. Most SVr4 * terminfo trees contain entries that have rmul or rmso equated to @@ -321,31 +213,23 @@ NCURSES_SP_NAME(newterm) (NCURSES_SP_DCLx * shouldn't be looking at this detail. */ #define SGR0_TEST(mode) (mode != 0) && (exit_attribute_mode == 0 || strcmp(mode, exit_attribute_mode)) - SP_PARM->_use_rmso = SGR0_TEST(exit_standout_mode); - SP_PARM->_use_rmul = SGR0_TEST(exit_underline_mode); + SP->_use_rmso = SGR0_TEST(exit_standout_mode); + SP->_use_rmul = SGR0_TEST(exit_underline_mode); /* compute movement costs so we can do better move optimization */ _nc_mvcur_init(); /* initialize terminal to a sane state */ _nc_screen_init(); -#endif /* Initialize the terminal line settings. */ - _nc_initscr(NCURSES_SP_ARG); + _nc_initscr(); _nc_signal_handler(TRUE); - result = SP_PARM; + + result = SP; } } _nc_unlock_global(curses); returnSP(result); } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(SCREEN *) -newterm(NCURSES_CONST char *name, FILE *ofp, FILE *ifp) -{ - return NCURSES_SP_NAME(newterm) (CURRENT_SCREEN_PRE, name, ofp, ifp); -} -#endif diff --git a/ncurses/base/lib_newwin.c b/ncurses/base/lib_newwin.c index 72d8af84b703..587e83a92009 100644 --- a/ncurses/base/lib_newwin.c +++ b/ncurses/base/lib_newwin.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -30,7 +30,6 @@ * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -43,7 +42,7 @@ #include #include -MODULE_ID("$Id: lib_newwin.c,v 1.69 2011/03/07 21:58:17 tom Exp $") +MODULE_ID("$Id: lib_newwin.c,v 1.52 2008/06/07 13:58:09 tom Exp $") #define window_is(name) ((sp)->_##name == win) @@ -62,17 +61,6 @@ remove_window_from_screen(WINDOW *win) { SCREEN *sp; -#ifdef USE_SP_WINDOWLIST - if ((sp = _nc_screen_of(win)) != 0) { - if (window_is(curscr)) { - remove_window(curscr); - } else if (window_is(stdscr)) { - remove_window(stdscr); - } else if (window_is(newscr)) { - remove_window(newscr); - } - } -#else for (each_screen(sp)) { if (window_is(curscr)) { remove_window(curscr); @@ -85,7 +73,6 @@ remove_window_from_screen(WINDOW *win) break; } } -#endif } NCURSES_EXPORT(int) @@ -94,20 +81,17 @@ _nc_freewin(WINDOW *win) WINDOWLIST *p, *q; int i; int result = ERR; -#ifdef USE_SP_WINDOWLIST - SCREEN *sp = _nc_screen_of(win); /* pretend this is parameter */ -#endif - T((T_CALLED("_nc_freewin(%p)"), (void *) win)); + T((T_CALLED("_nc_freewin(%p)"), win)); if (win != 0) { - if (_nc_nonsp_try_global(curses) == 0) { + if (_nc_try_global(curses) == 0) { q = 0; - for (each_window(SP_PARM, p)) { + for (each_window(p)) { if (&(p->win) == win) { remove_window_from_screen(win); if (q == 0) - WindowList(SP_PARM) = p->next; + _nc_windows = p->next; else q->next = p->next; @@ -119,39 +103,35 @@ _nc_freewin(WINDOW *win) free(p); result = OK; - T(("...deleted win=%p", (void *) win)); + T(("...deleted win=%p", win)); break; } q = p; } - _nc_nonsp_unlock_global(curses); + _nc_unlock_global(curses); } } returnCode(result); } NCURSES_EXPORT(WINDOW *) -NCURSES_SP_NAME(newwin) (NCURSES_SP_DCLx - int num_lines, int num_columns, int begy, int begx) +newwin(int num_lines, int num_columns, int begy, int begx) { WINDOW *win; NCURSES_CH_T *ptr; int i; - T((T_CALLED("newwin(%p, %d,%d,%d,%d)"), (void *) SP_PARM, num_lines, num_columns, - begy, begx)); + T((T_CALLED("newwin(%d,%d,%d,%d)"), num_lines, num_columns, begy, begx)); if (begy < 0 || begx < 0 || num_lines < 0 || num_columns < 0) returnWin(0); if (num_lines == 0) - num_lines = SP_PARM->_lines_avail - begy; + num_lines = SP->_lines_avail - begy; if (num_columns == 0) - num_columns = screen_columns(SP_PARM) - begx; + num_columns = screen_columns - begx; - win = NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_ARGx - num_lines, num_columns, begy, begx, 0); - if (win == 0) + if ((win = _nc_makenew(num_lines, num_columns, begy, begx, 0)) == 0) returnWin(0); for (i = 0; i < num_lines; i++) { @@ -169,30 +149,14 @@ NCURSES_SP_NAME(newwin) (NCURSES_SP_DCLx returnWin(win); } -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(WINDOW *) -newwin(int num_lines, int num_columns, int begy, int begx) -{ - WINDOW *win; - _nc_sp_lock_global(curses); - win = NCURSES_SP_NAME(newwin) (CURRENT_SCREEN, - num_lines, num_columns, begy, begx); - _nc_sp_unlock_global(curses); - return (win); -} -#endif - NCURSES_EXPORT(WINDOW *) derwin(WINDOW *orig, int num_lines, int num_columns, int begy, int begx) { WINDOW *win; int i; int flags = _SUBWIN; -#if NCURSES_SP_FUNCS - SCREEN *sp = _nc_screen_of(orig); -#endif - T((T_CALLED("derwin(%p,%d,%d,%d,%d)"), (void *) orig, num_lines, num_columns, + T((T_CALLED("derwin(%p,%d,%d,%d,%d)"), orig, num_lines, num_columns, begy, begx)); /* @@ -213,10 +177,8 @@ derwin(WINDOW *orig, int num_lines, int num_columns, int begy, int begx) if (orig->_flags & _ISPAD) flags |= _ISPAD; - win = NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_ARGx num_lines, num_columns, - orig->_begy + begy, - orig->_begx + begx, flags); - if (win == 0) + if ((win = _nc_makenew(num_lines, num_columns, orig->_begy + begy, + orig->_begx + begx, flags)) == 0) returnWin(0); win->_pary = begy; @@ -235,7 +197,7 @@ derwin(WINDOW *orig, int num_lines, int num_columns, int begy, int begx) NCURSES_EXPORT(WINDOW *) subwin(WINDOW *w, int l, int c, int y, int x) { - T((T_CALLED("subwin(%p, %d, %d, %d, %d)"), (void *) w, l, c, y, x)); + T((T_CALLED("subwin(%p, %d, %d, %d, %d)"), w, l, c, y, x)); T(("parent has begy = %ld, begx = %ld", (long) w->_begy, (long) w->_begx)); returnWin(derwin(w, l, c, y - w->_begy, x - w->_begx)); @@ -244,27 +206,21 @@ subwin(WINDOW *w, int l, int c, int y, int x) static bool dimension_limit(int value) { - NCURSES_SIZE_T test = (NCURSES_SIZE_T) value; + NCURSES_SIZE_T test = value; return (test == value && value > 0); } NCURSES_EXPORT(WINDOW *) -NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_DCLx - int num_lines, - int num_columns, - int begy, - int begx, - int flags) +_nc_makenew(int num_lines, int num_columns, int begy, int begx, int flags) { int i; WINDOWLIST *wp; WINDOW *win; - bool is_padwin = (flags & _ISPAD); + bool is_pad = (flags & _ISPAD); - T((T_CALLED("_nc_makenew(%p,%d,%d,%d,%d)"), - (void *) SP_PARM, num_lines, num_columns, begy, begx)); + T((T_CALLED("_nc_makenew(%d,%d,%d,%d)"), num_lines, num_columns, begy, begx)); - if (SP_PARM == 0) + if (SP == 0) returnWin(0); if (!dimension_limit(num_lines) || !dimension_limit(num_columns)) @@ -276,28 +232,26 @@ NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_DCLx win = &(wp->win); if ((win->_line = typeCalloc(struct ldat, ((unsigned) num_lines))) == 0) { - free(wp); + free(win); returnWin(0); } - _nc_nonsp_lock_global(curses); + _nc_lock_global(curses); win->_curx = 0; win->_cury = 0; - win->_maxy = (NCURSES_SIZE_T) (num_lines - 1); - win->_maxx = (NCURSES_SIZE_T) (num_columns - 1); - win->_begy = (NCURSES_SIZE_T) begy; - win->_begx = (NCURSES_SIZE_T) begx; - win->_yoffset = SP_PARM->_topstolen; + win->_maxy = num_lines - 1; + win->_maxx = num_columns - 1; + win->_begy = begy; + win->_begx = begx; + win->_yoffset = SP->_topstolen; - win->_flags = (short) flags; + win->_flags = flags; WINDOW_ATTRS(win) = A_NORMAL; SetChar(win->_nc_bkgd, BLANK_TEXT, BLANK_ATTR); - win->_clear = (is_padwin - ? FALSE - : (num_lines == screen_lines(SP_PARM) - && num_columns == screen_columns(SP_PARM))); + win->_clear = is_pad ? FALSE : (num_lines == screen_lines + && num_columns == screen_columns); win->_idlok = FALSE; win->_idcok = TRUE; win->_scroll = FALSE; @@ -311,7 +265,7 @@ NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_DCLx win->_parent = 0; win->_regtop = 0; - win->_regbottom = (NCURSES_SIZE_T) (num_lines - 1); + win->_regbottom = num_lines - 1; win->_pad._pad_y = -1; win->_pad._pad_x = -1; @@ -341,28 +295,28 @@ NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_DCLx * So that's how we want ncurses to behave. */ win->_line[i].firstchar = 0; - win->_line[i].lastchar = (NCURSES_SIZE_T) (num_columns - 1); + win->_line[i].lastchar = num_columns - 1; if_USE_SCROLL_HINTS(win->_line[i].oldindex = i); } - if (!is_padwin && (begx + num_columns == screen_columns(SP_PARM))) { + if (!is_pad && (begx + num_columns == screen_columns)) { win->_flags |= _ENDLINE; - if (begx == 0 && num_lines == screen_lines(SP_PARM) && begy == 0) + if (begx == 0 && num_lines == screen_lines && begy == 0) win->_flags |= _FULLWIN; - if (begy + num_lines == screen_lines(SP_PARM)) + if (begy + num_lines == screen_lines) win->_flags |= _SCROLLWIN; } - wp->next = WindowList(SP_PARM); - wp->screen = SP_PARM; - WindowList(SP_PARM) = wp; + wp->next = _nc_windows; + wp->screen = SP; + _nc_windows = wp; - T((T_CREATE("window %p"), (void *) win)); + T((T_CREATE("window %p"), win)); - _nc_nonsp_unlock_global(curses); + _nc_unlock_global(curses); returnWin(win); } @@ -371,22 +325,14 @@ NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_DCLx * internally, and it is useful to allow those to be invoked without switching * SCREEN's, e.g., for multi-threaded applications. */ -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(WINDOW *) -_nc_curscr_of(SCREEN *sp) -{ - return sp == 0 ? 0 : CurScreen(sp); -} - -NCURSES_EXPORT(WINDOW *) -_nc_newscr_of(SCREEN *sp) +NCURSES_EXPORT(SCREEN *) +_nc_screen_of(WINDOW *win) { - return sp == 0 ? 0 : NewScreen(sp); -} + SCREEN *sp = 0; -NCURSES_EXPORT(WINDOW *) -_nc_stdscr_of(SCREEN *sp) -{ - return sp == 0 ? 0 : StdScreen(sp); + if (win != 0) { + WINDOWLIST *wp = (WINDOWLIST *) win; + sp = wp->screen; + } + return (sp); } -#endif diff --git a/ncurses/base/lib_nl.c b/ncurses/base/lib_nl.c index 34254871c985..32515da0be81 100644 --- a/ncurses/base/lib_nl.c +++ b/ncurses/base/lib_nl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -29,8 +29,6 @@ /**************************************************************************** * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -44,52 +42,38 @@ #include -MODULE_ID("$Id: lib_nl.c,v 1.12 2009/10/24 22:05:55 tom Exp $") +MODULE_ID("$Id: lib_nl.c,v 1.8 2000/12/10 02:43:27 tom Exp $") #ifdef __EMX__ #include #endif NCURSES_EXPORT(int) -NCURSES_SP_NAME(nl) (NCURSES_SP_DCL0) +nl(void) { - T((T_CALLED("nl(%p)"), (void *) SP_PARM)); - if (0 == SP_PARM) - returnCode(ERR); - SP_PARM->_nl = TRUE; + T((T_CALLED("nl()"))); + + SP->_nl = TRUE; + #ifdef __EMX__ _nc_flush(); - _fsetmode(NC_OUTPUT(SP_PARM), "t"); + _fsetmode(NC_OUTPUT, "t"); #endif + returnCode(OK); } -#if NCURSES_SP_FUNCS NCURSES_EXPORT(int) -nl(void) +nonl(void) { - return NCURSES_SP_NAME(nl) (CURRENT_SCREEN); -} -#endif + T((T_CALLED("nonl()"))); + + SP->_nl = FALSE; -NCURSES_EXPORT(int) -NCURSES_SP_NAME(nonl) (NCURSES_SP_DCL0) -{ - T((T_CALLED("nonl(%p)"), (void *) SP_PARM)); - if (0 == SP_PARM) - returnCode(ERR); - SP_PARM->_nl = FALSE; #ifdef __EMX__ _nc_flush(); - _fsetmode(NC_OUTPUT(SP_PARM), "b"); + _fsetmode(NC_OUTPUT, "b"); #endif - returnCode(OK); -} -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -nonl(void) -{ - return NCURSES_SP_NAME(nonl) (CURRENT_SCREEN); + returnCode(OK); } -#endif diff --git a/ncurses/base/lib_overlay.c b/ncurses/base/lib_overlay.c index bfb817bc3108..669e8e72c07f 100644 --- a/ncurses/base/lib_overlay.c +++ b/ncurses/base/lib_overlay.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -40,7 +40,7 @@ #include -MODULE_ID("$Id: lib_overlay.c,v 1.29 2009/10/24 23:21:31 tom Exp $") +MODULE_ID("$Id: lib_overlay.c,v 1.27 2008/06/07 23:30:34 tom Exp $") static int overlap(const WINDOW *const src, WINDOW *const dst, int const flag) @@ -52,7 +52,7 @@ overlap(const WINDOW *const src, WINDOW *const dst, int const flag) int dminrow, dmincol; int dmaxrow, dmaxcol; - T((T_CALLED("overlap(%p,%p,%d)"), (const void *) src, (void *) dst, flag)); + T((T_CALLED("overlap(%p,%p,%d)"), src, dst, flag)); if (src != 0 && dst != 0) { _nc_lock_global(curses); @@ -110,7 +110,7 @@ overlap(const WINDOW *const src, WINDOW *const dst, int const flag) NCURSES_EXPORT(int) overlay(const WINDOW *win1, WINDOW *win2) { - T((T_CALLED("overlay(%p,%p)"), (const void *) win1, (void *) win2)); + T((T_CALLED("overlay(%p,%p)"), win1, win2)); returnCode(overlap(win1, win2, TRUE)); } @@ -127,7 +127,7 @@ overlay(const WINDOW *win1, WINDOW *win2) NCURSES_EXPORT(int) overwrite(const WINDOW *win1, WINDOW *win2) { - T((T_CALLED("overwrite(%p,%p)"), (const void *) win1, (void *) win2)); + T((T_CALLED("overwrite(%p,%p)"), win1, win2)); returnCode(overlap(win1, win2, FALSE)); } @@ -145,11 +145,7 @@ copywin(const WINDOW *src, WINDOW *dst, attr_t mask; T((T_CALLED("copywin(%p, %p, %d, %d, %d, %d, %d, %d, %d)"), - (const void *) src, - (void *) dst, - sminrow, smincol, - dminrow, dmincol, - dmaxrow, dmaxcol, over)); + src, dst, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol, over)); if (src && dst) { _nc_lock_global(curses); diff --git a/ncurses/base/lib_pad.c b/ncurses/base/lib_pad.c index b87498b500cd..6cad9c54b064 100644 --- a/ncurses/base/lib_pad.c +++ b/ncurses/base/lib_pad.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -29,8 +29,6 @@ /**************************************************************************** * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -42,22 +40,21 @@ #include -MODULE_ID("$Id: lib_pad.c,v 1.46 2010/04/24 23:50:45 tom Exp $") +MODULE_ID("$Id: lib_pad.c,v 1.41 2006/10/14 20:47:13 tom Exp $") NCURSES_EXPORT(WINDOW *) -NCURSES_SP_NAME(newpad) (NCURSES_SP_DCLx int l, int c) +newpad(int l, int c) { WINDOW *win; NCURSES_CH_T *ptr; int i; - T((T_CALLED("newpad(%p,%d, %d)"), (void *) SP_PARM, l, c)); + T((T_CALLED("newpad(%d, %d)"), l, c)); if (l <= 0 || c <= 0) returnWin(0); - win = NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_ARGx l, c, 0, 0, _ISPAD); - if (win == NULL) + if ((win = _nc_makenew(l, c, 0, 0, _ISPAD)) == NULL) returnWin(0); for (i = 0; i < l; i++) { @@ -73,14 +70,6 @@ NCURSES_SP_NAME(newpad) (NCURSES_SP_DCLx int l, int c) returnWin(win); } -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(WINDOW *) -newpad(int l, int c) -{ - return NCURSES_SP_NAME(newpad) (CURRENT_SCREEN, l, c); -} -#endif - NCURSES_EXPORT(WINDOW *) subpad(WINDOW *orig, int l, int c, int begy, int begx) { @@ -105,14 +94,10 @@ prefresh(WINDOW *win, int smaxrow, int smaxcol) { -#if NCURSES_SP_FUNCS - SCREEN *sp = _nc_screen_of(win); -#endif - T((T_CALLED("prefresh()"))); if (pnoutrefresh(win, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol) != ERR - && NCURSES_SP_NAME(doupdate) (NCURSES_SP_ARG) != ERR) { + && doupdate() != ERR) { returnCode(OK); } returnCode(ERR); @@ -127,11 +112,10 @@ pnoutrefresh(WINDOW *win, int smaxrow, int smaxcol) { - int i, j; - int m, n; - int pmaxrow; - int pmaxcol; - SCREEN *sp; + NCURSES_SIZE_T i, j; + NCURSES_SIZE_T m, n; + NCURSES_SIZE_T pmaxrow; + NCURSES_SIZE_T pmaxcol; #if USE_SCROLL_HINTS const int my_len = 2; /* parameterize the threshold for hardscroll */ @@ -140,7 +124,7 @@ pnoutrefresh(WINDOW *win, #endif T((T_CALLED("pnoutrefresh(%p, %d, %d, %d, %d, %d, %d)"), - (void *) win, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol)); + win, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol)); if (win == 0) returnCode(ERR); @@ -148,8 +132,6 @@ pnoutrefresh(WINDOW *win, if (!(win->_flags & _ISPAD)) returnCode(ERR); - sp = _nc_screen_of(win); - /* negative values are interpreted as zero */ if (pminrow < 0) pminrow = 0; @@ -180,8 +162,8 @@ pnoutrefresh(WINDOW *win, pmaxcol = pmincol + smaxcol - smincol; } - if (smaxrow >= screen_lines(sp) - || smaxcol >= screen_columns(sp) + if (smaxrow >= screen_lines + || smaxcol >= screen_columns || sminrow > smaxrow || smincol > smaxcol) returnCode(ERR); @@ -212,13 +194,13 @@ pnoutrefresh(WINDOW *win, * merely change the costs of various update cases. */ #if USE_SCROLL_HINTS - wide = (smincol < my_len && smaxcol > (NewScreen(sp)->_maxx - my_len)); + wide = (smincol < my_len && smaxcol > (newscr->_maxx - my_len)); #endif for (i = pminrow, m = sminrow + win->_yoffset; - i <= pmaxrow && m <= NewScreen(sp)->_maxy; + i <= pmaxrow && m <= newscr->_maxy; i++, m++) { - register struct ldat *nline = &NewScreen(sp)->_line[m]; + register struct ldat *nline = &newscr->_line[m]; register struct ldat *oline = &win->_line[i]; for (j = pmincol, n = smincol; j <= pmaxcol; j++, n++) { NCURSES_CH_T ch = oline->text[j]; @@ -247,9 +229,9 @@ pnoutrefresh(WINDOW *win, || nind > smaxrow) { nind = _NEWINDEX; } else if (displaced) { - register struct ldat *pline = &CurScreen(sp)->_line[nind]; + register struct ldat *pline = &curscr->_line[nind]; for (j = 0; j <= my_len; j++) { - int k = NewScreen(sp)->_maxx - j; + int k = newscr->_maxx - j; if (pline->text[j] != nline->text[j] || pline->text[k] != nline->text[k]) { nind = _NEWINDEX; @@ -279,12 +261,12 @@ pnoutrefresh(WINDOW *win, win->_line[i].oldindex = _NEWINDEX; #endif - win->_begx = (NCURSES_SIZE_T) smincol; - win->_begy = (NCURSES_SIZE_T) sminrow; + win->_begx = smincol; + win->_begy = sminrow; if (win->_clear) { win->_clear = FALSE; - NewScreen(sp)->_clear = TRUE; + newscr->_clear = TRUE; } /* @@ -296,12 +278,10 @@ pnoutrefresh(WINDOW *win, && win->_curx >= pmincol && win->_cury <= pmaxrow && win->_curx <= pmaxcol) { - NewScreen(sp)->_cury = (NCURSES_SIZE_T) (win->_cury - pminrow - + win->_begy + win->_yoffset); - NewScreen(sp)->_curx = (NCURSES_SIZE_T) (win->_curx - pmincol - + win->_begx); + newscr->_cury = win->_cury - pminrow + win->_begy + win->_yoffset; + newscr->_curx = win->_curx - pmincol + win->_begx; } - NewScreen(sp)->_leaveok = win->_leaveok; + newscr->_leaveok = win->_leaveok; win->_flags &= ~_HASMOVED; /* @@ -309,12 +289,12 @@ pnoutrefresh(WINDOW *win, * We will use this on subsequent calls to this function to derive * values to stuff into 'oldindex[]' -- for scrolling optimization. */ - win->_pad._pad_y = (NCURSES_SIZE_T) pminrow; - win->_pad._pad_x = (NCURSES_SIZE_T) pmincol; - win->_pad._pad_top = (NCURSES_SIZE_T) sminrow; - win->_pad._pad_left = (NCURSES_SIZE_T) smincol; - win->_pad._pad_bottom = (NCURSES_SIZE_T) smaxrow; - win->_pad._pad_right = (NCURSES_SIZE_T) smaxcol; + win->_pad._pad_y = pminrow; + win->_pad._pad_x = pmincol; + win->_pad._pad_top = sminrow; + win->_pad._pad_left = smincol; + win->_pad._pad_bottom = smaxrow; + win->_pad._pad_right = smaxcol; returnCode(OK); } @@ -322,7 +302,7 @@ pnoutrefresh(WINDOW *win, NCURSES_EXPORT(int) pechochar(WINDOW *pad, const chtype ch) { - T((T_CALLED("pechochar(%p, %s)"), (void *) pad, _tracechtype(ch))); + T((T_CALLED("pechochar(%p, %s)"), pad, _tracechtype(ch))); if (pad == 0) returnCode(ERR); diff --git a/ncurses/base/lib_printw.c b/ncurses/base/lib_printw.c index 963181d9a494..62ae921e650d 100644 --- a/ncurses/base/lib_printw.c +++ b/ncurses/base/lib_printw.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -39,7 +39,7 @@ #include -MODULE_ID("$Id: lib_printw.c,v 1.20 2009/10/24 22:07:03 tom Exp $") +MODULE_ID("$Id: lib_printw.c,v 1.18 2006/12/17 19:21:39 tom Exp $") NCURSES_EXPORT(int) printw(const char *fmt,...) @@ -70,7 +70,7 @@ wprintw(WINDOW *win, const char *fmt,...) #ifdef TRACE va_start(argp, fmt); T((T_CALLED("wprintw(%p,%s%s)"), - (void *) win, _nc_visbuf(fmt), _nc_varargs(fmt, argp))); + win, _nc_visbuf(fmt), _nc_varargs(fmt, argp))); va_end(argp); #endif @@ -111,7 +111,7 @@ mvwprintw(WINDOW *win, int y, int x, const char *fmt,...) #ifdef TRACE va_start(argp, fmt); T((T_CALLED("mvwprintw(%d,%d,%p,%s%s)"), - y, x, (void *) win, _nc_visbuf(fmt), _nc_varargs(fmt, argp))); + y, x, win, _nc_visbuf(fmt), _nc_varargs(fmt, argp))); va_end(argp); #endif @@ -128,14 +128,10 @@ vwprintw(WINDOW *win, const char *fmt, va_list argp) { char *buf; int code = ERR; -#if NCURSES_SP_FUNCS - SCREEN *sp = _nc_screen_of(win); -#endif - T((T_CALLED("vwprintw(%p,%s,va_list)"), (void *) win, _nc_visbuf(fmt))); + T((T_CALLED("vwprintw(%p,%s,va_list)"), win, _nc_visbuf(fmt))); - buf = NCURSES_SP_NAME(_nc_printf_string) (NCURSES_SP_ARGx fmt, argp); - if (buf != 0) { + if ((buf = _nc_printf_string(fmt, argp)) != 0) { code = waddstr(win, buf); } returnCode(code); diff --git a/ncurses/base/lib_redrawln.c b/ncurses/base/lib_redrawln.c index 72905f84d656..6b0905f07d67 100644 --- a/ncurses/base/lib_redrawln.c +++ b/ncurses/base/lib_redrawln.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -39,7 +39,7 @@ #include -MODULE_ID("$Id: lib_redrawln.c,v 1.17 2010/12/19 00:03:23 tom Exp $") +MODULE_ID("$Id: lib_redrawln.c,v 1.12 2007/10/13 20:08:56 tom Exp $") NCURSES_EXPORT(int) wredrawln(WINDOW *win, int beg, int num) @@ -47,40 +47,37 @@ wredrawln(WINDOW *win, int beg, int num) int i; int end; size_t len; - SCREEN *sp; - T((T_CALLED("wredrawln(%p,%d,%d)"), (void *) win, beg, num)); + T((T_CALLED("wredrawln(%p,%d,%d)"), win, beg, num)); if (win == 0) returnCode(ERR); - sp = _nc_screen_of(win); - if (beg < 0) beg = 0; if (touchline(win, beg, num) == ERR) returnCode(ERR); - if (touchline(CurScreen(sp), beg + win->_begy, num) == ERR) + if (touchline(curscr, beg + win->_begy, num) == ERR) returnCode(ERR); end = beg + num; - if (end > CurScreen(sp)->_maxy + 1 - win->_begy) - end = CurScreen(sp)->_maxy + 1 - win->_begy; + if (end > curscr->_maxy + 1) + end = curscr->_maxy + 1; if (end > win->_maxy + 1) end = win->_maxy + 1; - len = (size_t) (win->_maxx + 1); - if (len > (size_t) (CurScreen(sp)->_maxx + 1 - win->_begx)) - len = (size_t) (CurScreen(sp)->_maxx + 1 - win->_begx); - len *= sizeof(CurScreen(sp)->_line[0].text[0]); + len = (win->_maxx + 1); + if (len > (size_t) (curscr->_maxx + 1)) + len = (size_t) (curscr->_maxx + 1); + len *= sizeof(curscr->_line[0].text[0]); for (i = beg; i < end; i++) { int crow = i + win->_begy; - memset(CurScreen(sp)->_line[crow].text + win->_begx, 0, len); - NCURSES_SP_NAME(_nc_make_oldhash) (NCURSES_SP_ARGx crow); + memset(curscr->_line[crow].text + win->_begx, 0, len); + _nc_make_oldhash(crow); } returnCode(OK); diff --git a/ncurses/base/lib_refresh.c b/ncurses/base/lib_refresh.c index 8c02086a707d..2a9cafb7b0ad 100644 --- a/ncurses/base/lib_refresh.c +++ b/ncurses/base/lib_refresh.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -30,7 +30,6 @@ * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer * ****************************************************************************/ /* @@ -42,27 +41,24 @@ #include -MODULE_ID("$Id: lib_refresh.c,v 1.44 2010/12/19 01:22:58 tom Exp $") +MODULE_ID("$Id: lib_refresh.c,v 1.41 2007/09/29 20:39:34 tom Exp $") NCURSES_EXPORT(int) wrefresh(WINDOW *win) { int code; -#if NCURSES_SP_FUNCS - SCREEN *SP_PARM = _nc_screen_of(win); -#endif - T((T_CALLED("wrefresh(%p)"), (void *) win)); + T((T_CALLED("wrefresh(%p)"), win)); if (win == 0) { code = ERR; - } else if (win == CurScreen(SP_PARM)) { - CurScreen(SP_PARM)->_clear = TRUE; - code = NCURSES_SP_NAME(doupdate) (NCURSES_SP_ARG); + } else if (win == curscr) { + curscr->_clear = TRUE; + code = doupdate(); } else if ((code = wnoutrefresh(win)) == OK) { if (win->_clear) - NewScreen(SP_PARM)->_clear = TRUE; - code = NCURSES_SP_NAME(doupdate) (NCURSES_SP_ARG); + newscr->_clear = TRUE; + code = doupdate(); /* * Reset the clearok() flag in case it was set for the special * case in hardscroll.c (if we don't reset it here, we'll get 2 @@ -77,19 +73,16 @@ wrefresh(WINDOW *win) NCURSES_EXPORT(int) wnoutrefresh(WINDOW *win) { - int limit_x; - int src_row, src_col; - int begx; - int begy; - int dst_row, dst_col; + NCURSES_SIZE_T limit_x; + NCURSES_SIZE_T src_row, src_col; + NCURSES_SIZE_T begx; + NCURSES_SIZE_T begy; + NCURSES_SIZE_T dst_row, dst_col; #if USE_SCROLL_HINTS bool wide; #endif -#if NCURSES_SP_FUNCS - SCREEN *SP_PARM = _nc_screen_of(win); -#endif - T((T_CALLED("wnoutrefresh(%p)"), (void *) win)); + T((T_CALLED("wnoutrefresh(%p)"), win)); #ifdef TRACE if (USE_TRACEF(TRACE_UPDATE)) { _tracedump("...win", win); @@ -108,8 +101,8 @@ wnoutrefresh(WINDOW *win) begx = win->_begx; begy = win->_begy; - NewScreen(SP_PARM)->_nc_bkgd = win->_nc_bkgd; - WINDOW_ATTRS(NewScreen(SP_PARM)) = WINDOW_ATTRS(win); + newscr->_nc_bkgd = win->_nc_bkgd; + WINDOW_ATTRS(newscr) = WINDOW_ATTRS(win); /* merge in change information from all subwindows of this window */ wsyncdown(win); @@ -129,7 +122,7 @@ wnoutrefresh(WINDOW *win) * windows). Note that changing this formula will not break any code, * merely change the costs of various update cases. */ - wide = (begx <= 1 && win->_maxx >= (NewScreen(SP_PARM)->_maxx - 1)); + wide = (begx <= 1 && win->_maxx >= (newscr->_maxx - 1)); #endif win->_flags &= ~_HASMOVED; @@ -144,14 +137,14 @@ wnoutrefresh(WINDOW *win) /* limit(dst_col) */ limit_x = win->_maxx; /* limit(src_col) */ - if (limit_x > NewScreen(SP_PARM)->_maxx - begx) - limit_x = NewScreen(SP_PARM)->_maxx - begx; + if (limit_x > newscr->_maxx - begx) + limit_x = newscr->_maxx - begx; for (src_row = 0, dst_row = begy + win->_yoffset; - src_row <= win->_maxy && dst_row <= NewScreen(SP_PARM)->_maxy; + src_row <= win->_maxy && dst_row <= newscr->_maxy; src_row++, dst_row++) { - struct ldat *nline = &(NewScreen(SP_PARM)->_line[dst_row]); - struct ldat *oline = &win->_line[src_row]; + register struct ldat *nline = &newscr->_line[dst_row]; + register struct ldat *oline = &win->_line[src_row]; if (oline->firstchar != _NOCHANGE) { int last_src = oline->lastchar; @@ -163,7 +156,7 @@ wnoutrefresh(WINDOW *win) dst_col = src_col + begx; if_WIDEC({ - int j; + register int j; /* * Ensure that we will copy complete multi-column characters @@ -204,7 +197,7 @@ wnoutrefresh(WINDOW *win) : win->_maxx); int fix_left = dst_col; int fix_right = last_dst; - int j; + register int j; /* * Check for boundary cases where we may overwrite part of a @@ -232,8 +225,7 @@ wnoutrefresh(WINDOW *win) * this character. Find the end of the character. */ ++j; - while (j <= NewScreen(SP_PARM)->_maxx && - isWidecExt(nline->text[j])) { + while (j <= newscr->_maxx && isWidecExt(nline->text[j])) { fix_right = j++; } } @@ -277,19 +269,18 @@ wnoutrefresh(WINDOW *win) if (win->_clear) { win->_clear = FALSE; - NewScreen(SP_PARM)->_clear = TRUE; + newscr->_clear = TRUE; } if (!win->_leaveok) { - NewScreen(SP_PARM)->_cury = (NCURSES_SIZE_T) (win->_cury + - win->_begy + win->_yoffset); - NewScreen(SP_PARM)->_curx = (NCURSES_SIZE_T) (win->_curx + win->_begx); + newscr->_cury = win->_cury + win->_begy + win->_yoffset; + newscr->_curx = win->_curx + win->_begx; } - NewScreen(SP_PARM)->_leaveok = win->_leaveok; + newscr->_leaveok = win->_leaveok; #ifdef TRACE if (USE_TRACEF(TRACE_UPDATE)) { - _tracedump("newscr", NewScreen(SP_PARM)); + _tracedump("newscr", newscr); _nc_unlock_global(tracef); } #endif /* TRACE */ diff --git a/ncurses/base/lib_restart.c b/ncurses/base/lib_restart.c index b28cfd1f2ffd..da770d4e7c92 100644 --- a/ncurses/base/lib_restart.c +++ b/ncurses/base/lib_restart.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -30,7 +30,6 @@ * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer 2008 * ****************************************************************************/ /* @@ -45,62 +44,49 @@ #define _POSIX_SOURCE #endif -MODULE_ID("$Id: lib_restart.c,v 1.13 2009/10/24 22:47:43 tom Exp $") +#include /* lines, columns, cur_term */ + +MODULE_ID("$Id: lib_restart.c,v 1.10 2008/06/21 17:31:22 tom Exp $") NCURSES_EXPORT(int) -NCURSES_SP_NAME(restartterm) (NCURSES_SP_DCLx - NCURSES_CONST char *termp, - int filenum, - int *errret) +restartterm(NCURSES_CONST char *termp, int filenum, int *errret) { int result; -#ifdef USE_TERM_DRIVER - TERMINAL *new_term; -#endif - T((T_CALLED("restartterm(%p,%s,%d,%p)"), - (void *) SP_PARM, - termp, - filenum, - (void *) errret)); + T((T_CALLED("restartterm(%s,%d,%p)"), termp, filenum, errret)); - if (TINFO_SETUP_TERM(&new_term, termp, filenum, errret, FALSE) != OK) { + if (setupterm(termp, filenum, errret) != OK) { result = ERR; - } else if (SP_PARM != 0) { - int saveecho = SP_PARM->_echo; - int savecbreak = SP_PARM->_cbreak; - int saveraw = SP_PARM->_raw; - int savenl = SP_PARM->_nl; + } else if (SP != 0) { + int saveecho = SP->_echo; + int savecbreak = SP->_cbreak; + int saveraw = SP->_raw; + int savenl = SP->_nl; -#ifdef USE_TERM_DRIVER - SP_PARM->_term = new_term; -#endif - if (saveecho) { - NCURSES_SP_NAME(echo) (NCURSES_SP_ARG); - } else { - NCURSES_SP_NAME(noecho) (NCURSES_SP_ARG); - } + if (saveecho) + echo(); + else + noecho(); if (savecbreak) { - NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG); - NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG); + cbreak(); + noraw(); } else if (saveraw) { - NCURSES_SP_NAME(nocbreak) (NCURSES_SP_ARG); - NCURSES_SP_NAME(raw) (NCURSES_SP_ARG); - } else { - NCURSES_SP_NAME(nocbreak) (NCURSES_SP_ARG); - NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG); - } - if (savenl) { - NCURSES_SP_NAME(nl) (NCURSES_SP_ARG); + nocbreak(); + raw(); } else { - NCURSES_SP_NAME(nonl) (NCURSES_SP_ARG); + nocbreak(); + noraw(); } + if (savenl) + nl(); + else + nonl(); - NCURSES_SP_NAME(reset_prog_mode) (NCURSES_SP_ARG); + reset_prog_mode(); #if USE_SIZECHANGE - _nc_update_screensize(SP_PARM); + _nc_update_screensize(SP); #endif result = OK; @@ -109,11 +95,3 @@ NCURSES_SP_NAME(restartterm) (NCURSES_SP_DCLx } returnCode(result); } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -restartterm(NCURSES_CONST char *termp, int filenum, int *errret) -{ - return NCURSES_SP_NAME(restartterm) (CURRENT_SCREEN, termp, filenum, errret); -} -#endif diff --git a/ncurses/base/lib_scanw.c b/ncurses/base/lib_scanw.c index a8621e63e172..b8a5a227a1a9 100644 --- a/ncurses/base/lib_scanw.c +++ b/ncurses/base/lib_scanw.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2001,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -40,7 +40,7 @@ #include -MODULE_ID("$Id: lib_scanw.c,v 1.12 2009/10/24 22:35:14 tom Exp $") +MODULE_ID("$Id: lib_scanw.c,v 1.11 2001/06/30 23:39:41 tom Exp $") NCURSES_EXPORT(int) vwscanw(WINDOW *win, NCURSES_CONST char *fmt, va_list argp) @@ -73,7 +73,7 @@ wscanw(WINDOW *win, NCURSES_CONST char *fmt,...) int code; va_list ap; - T(("wscanw(%p,\"%s\",...) called", (void *) win, fmt)); + T(("wscanw(%p,\"%s\",...) called", win, fmt)); va_start(ap, fmt); code = vwscanw(win, fmt, ap); diff --git a/ncurses/base/lib_screen.c b/ncurses/base/lib_screen.c index 27212b790611..4aa58ea2a19c 100644 --- a/ncurses/base/lib_screen.c +++ b/ncurses/base/lib_screen.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -30,45 +30,35 @@ * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996 on * - * and: Juergen Pfeifer 2009 * ****************************************************************************/ #include -#ifndef CUR -#define CUR SP_TERMTYPE -#endif - -MODULE_ID("$Id: lib_screen.c,v 1.38 2009/10/24 22:08:55 tom Exp $") +MODULE_ID("$Id: lib_screen.c,v 1.31 2008/08/16 19:05:37 tom Exp $") #define MAX_SIZE 0x3fff /* 16k is big enough for a window or pad */ NCURSES_EXPORT(WINDOW *) -NCURSES_SP_NAME(getwin) (NCURSES_SP_DCLx FILE *filep) +getwin(FILE *filep) { WINDOW tmp, *nwin; int n; - T((T_CALLED("getwin(%p)"), (void *) filep)); + T((T_CALLED("getwin(%p)"), filep)); clearerr(filep); - if (fread(&tmp, 1, sizeof(WINDOW), filep) < sizeof(WINDOW) - || ferror(filep) + (void) fread(&tmp, sizeof(WINDOW), 1, filep); + if (ferror(filep) || tmp._maxy == 0 || tmp._maxy > MAX_SIZE || tmp._maxx == 0 - || tmp._maxx > MAX_SIZE) { + || tmp._maxx > MAX_SIZE) returnWin(0); - } if (tmp._flags & _ISPAD) { - nwin = NCURSES_SP_NAME(newpad) (NCURSES_SP_ARGx - tmp._maxy + 1, - tmp._maxx + 1); + nwin = newpad(tmp._maxy + 1, tmp._maxx + 1); } else { - nwin = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx - tmp._maxy + 1, - tmp._maxx + 1, 0, 0); + nwin = newwin(tmp._maxy + 1, tmp._maxx + 1, 0, 0); } /* @@ -77,8 +67,6 @@ NCURSES_SP_NAME(getwin) (NCURSES_SP_DCLx FILE *filep) * made sense is probably gone. */ if (nwin != 0) { - size_t linesize = sizeof(NCURSES_CH_T) * (size_t) (tmp._maxx + 1); - nwin->_curx = tmp._curx; nwin->_cury = tmp._cury; nwin->_maxy = tmp._maxy; @@ -110,8 +98,11 @@ NCURSES_SP_NAME(getwin) (NCURSES_SP_DCLx FILE *filep) for (n = 0; n <= nwin->_maxy; n++) { clearerr(filep); - if (fread(nwin->_line[n].text, 1, linesize, filep) < linesize - || ferror(filep)) { + (void) fread(nwin->_line[n].text, + sizeof(NCURSES_CH_T), + (size_t) (nwin->_maxx + 1), + filep); + if (ferror(filep)) { delwin(nwin); returnWin(0); } @@ -121,21 +112,13 @@ NCURSES_SP_NAME(getwin) (NCURSES_SP_DCLx FILE *filep) returnWin(nwin); } -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(WINDOW *) -getwin(FILE *filep) -{ - return NCURSES_SP_NAME(getwin) (CURRENT_SCREEN, filep); -} -#endif - NCURSES_EXPORT(int) putwin(WINDOW *win, FILE *filep) { int code = ERR; int n; - T((T_CALLED("putwin(%p,%p)"), (void *) win, (void *) filep)); + T((T_CALLED("putwin(%p,%p)"), win, filep)); if (win != 0) { size_t len = (size_t) (win->_maxx + 1); @@ -158,34 +141,26 @@ putwin(WINDOW *win, FILE *filep) } NCURSES_EXPORT(int) -NCURSES_SP_NAME(scr_restore) (NCURSES_SP_DCLx const char *file) +scr_restore(const char *file) { FILE *fp = 0; - T((T_CALLED("scr_restore(%p,%s)"), (void *) SP_PARM, _nc_visbuf(file))); + T((T_CALLED("scr_restore(%s)"), _nc_visbuf(file))); if (_nc_access(file, R_OK) < 0 || (fp = fopen(file, "rb")) == 0) { returnCode(ERR); } else { - delwin(NewScreen(SP_PARM)); - NewScreen(SP_PARM) = getwin(fp); + delwin(newscr); + SP->_newscr = getwin(fp); #if !USE_REENTRANT - newscr = NewScreen(SP_PARM); + newscr = SP->_newscr; #endif (void) fclose(fp); returnCode(OK); } } -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -scr_restore(const char *file) -{ - return NCURSES_SP_NAME(scr_restore) (CURRENT_SCREEN, file); -} -#endif - NCURSES_EXPORT(int) scr_dump(const char *file) { @@ -204,63 +179,42 @@ scr_dump(const char *file) } NCURSES_EXPORT(int) -NCURSES_SP_NAME(scr_init) (NCURSES_SP_DCLx const char *file) +scr_init(const char *file) { FILE *fp = 0; - int code = ERR; - T((T_CALLED("scr_init(%p,%s)"), (void *) SP_PARM, _nc_visbuf(file))); + T((T_CALLED("scr_init(%s)"), _nc_visbuf(file))); - if (SP_PARM != 0 && -#ifdef USE_TERM_DRIVER - InfoOf(SP_PARM).caninit -#else - !(exit_ca_mode && non_rev_rmcup) -#endif - ) { - if (_nc_access(file, R_OK) >= 0 - && (fp = fopen(file, "rb")) != 0) { - delwin(CurScreen(SP_PARM)); - CurScreen(SP_PARM) = getwin(fp); + if (exit_ca_mode && non_rev_rmcup) + returnCode(ERR); + + if (_nc_access(file, R_OK) < 0 + || (fp = fopen(file, "rb")) == 0) { + returnCode(ERR); + } else { + delwin(curscr); + SP->_curscr = getwin(fp); #if !USE_REENTRANT - curscr = CurScreen(SP_PARM); + curscr = SP->_curscr; #endif - (void) fclose(fp); - code = OK; - } + (void) fclose(fp); + returnCode(OK); } - returnCode(code); -} - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -scr_init(const char *file) -{ - return NCURSES_SP_NAME(scr_init) (CURRENT_SCREEN, file); } -#endif NCURSES_EXPORT(int) -NCURSES_SP_NAME(scr_set) (NCURSES_SP_DCLx const char *file) +scr_set(const char *file) { - T((T_CALLED("scr_set(%p,%s)"), (void *) SP_PARM, _nc_visbuf(file))); + T((T_CALLED("scr_set(%s)"), _nc_visbuf(file))); - if (NCURSES_SP_NAME(scr_init) (NCURSES_SP_ARGx file) == ERR) { + if (scr_init(file) == ERR) { returnCode(ERR); } else { - delwin(NewScreen(SP_PARM)); - NewScreen(SP_PARM) = dupwin(curscr); + delwin(newscr); + SP->_newscr = dupwin(curscr); #if !USE_REENTRANT - newscr = NewScreen(SP_PARM); + newscr = SP->_newscr; #endif returnCode(OK); } } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -scr_set(const char *file) -{ - return NCURSES_SP_NAME(scr_set) (CURRENT_SCREEN, file); -} -#endif diff --git a/ncurses/base/lib_scroll.c b/ncurses/base/lib_scroll.c index fe4e80804dae..ac85bd55ea1d 100644 --- a/ncurses/base/lib_scroll.c +++ b/ncurses/base/lib_scroll.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -43,7 +43,7 @@ #include -MODULE_ID("$Id: lib_scroll.c,v 1.28 2010/12/19 01:48:09 tom Exp $") +MODULE_ID("$Id: lib_scroll.c,v 1.26 2006/10/14 20:46:08 tom Exp $") NCURSES_EXPORT(void) _nc_scroll_window(WINDOW *win, @@ -55,10 +55,10 @@ _nc_scroll_window(WINDOW *win, int limit; int line; int j; - size_t to_copy = (sizeof(NCURSES_CH_T) * (size_t) (win->_maxx + 1)); + size_t to_copy = (size_t) (sizeof(NCURSES_CH_T) * (win->_maxx + 1)); TR(TRACE_MOVE, ("_nc_scroll_window(%p, %d, %ld, %ld)", - (void *) win, n, (long) top, (long) bottom)); + win, n, (long) top, (long) bottom)); if (top < 0 || bottom < top @@ -135,7 +135,7 @@ _nc_scroll_window(WINDOW *win, NCURSES_EXPORT(int) wscrl(WINDOW *win, int n) { - T((T_CALLED("wscrl(%p,%d)"), (void *) win, n)); + T((T_CALLED("wscrl(%p,%d)"), win, n)); if (!win || !win->_scroll) { TR(TRACE_MOVE, ("...scrollok is false")); diff --git a/ncurses/base/lib_scrollok.c b/ncurses/base/lib_scrollok.c index 6a698a368da2..f6b30259be73 100644 --- a/ncurses/base/lib_scrollok.c +++ b/ncurses/base/lib_scrollok.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2000,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -40,12 +40,12 @@ #include -MODULE_ID("$Id: lib_scrollok.c,v 1.5 2009/10/24 22:35:38 tom Exp $") +MODULE_ID("$Id: lib_scrollok.c,v 1.4 2000/12/10 02:43:27 tom Exp $") NCURSES_EXPORT(int) scrollok(WINDOW *win, bool flag) { - T((T_CALLED("scrollok(%p,%d)"), (void *) win, flag)); + T((T_CALLED("scrollok(%p,%d)"), win, flag)); if (win) { win->_scroll = flag; diff --git a/ncurses/base/lib_scrreg.c b/ncurses/base/lib_scrreg.c index 546fbc183a3c..c85d60f1164d 100644 --- a/ncurses/base/lib_scrreg.c +++ b/ncurses/base/lib_scrreg.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2000,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -40,12 +40,12 @@ #include -MODULE_ID("$Id: lib_scrreg.c,v 1.11 2009/10/24 22:35:28 tom Exp $") +MODULE_ID("$Id: lib_scrreg.c,v 1.10 2000/12/10 02:43:27 tom Exp $") NCURSES_EXPORT(int) wsetscrreg(WINDOW *win, int top, int bottom) { - T((T_CALLED("wsetscrreg(%p,%d,%d)"), (void *) win, top, bottom)); + T((T_CALLED("wsetscrreg(%p,%d,%d)"), win, top, bottom)); if (win && top >= 0 && top <= win->_maxy && diff --git a/ncurses/base/lib_set_term.c b/ncurses/base/lib_set_term.c index df0a276aef8a..aff432bb9fd1 100644 --- a/ncurses/base/lib_set_term.c +++ b/ncurses/base/lib_set_term.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -30,7 +30,6 @@ * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -41,21 +40,11 @@ */ #include -#include - -#ifndef CUR -#define CUR SP_TERMTYPE -#endif -MODULE_ID("$Id: lib_set_term.c,v 1.138 2010/12/20 00:42:20 tom Exp $") +#include /* cur_term */ +#include -#ifdef USE_TERM_DRIVER -#define MaxColors InfoOf(sp).maxcolors -#define NumLabels InfoOf(sp).numlabels -#else -#define MaxColors max_colors -#define NumLabels num_labels -#endif +MODULE_ID("$Id: lib_set_term.c,v 1.117 2008/08/04 18:11:12 tom Exp $") NCURSES_EXPORT(SCREEN *) set_term(SCREEN *screenp) @@ -63,25 +52,25 @@ set_term(SCREEN *screenp) SCREEN *oldSP; SCREEN *newSP; - T((T_CALLED("set_term(%p)"), (void *) screenp)); + T((T_CALLED("set_term(%p)"), screenp)); _nc_lock_global(curses); - oldSP = CURRENT_SCREEN; + oldSP = SP; _nc_set_screen(screenp); - newSP = screenp; + newSP = SP; if (newSP != 0) { - TINFO_SET_CURTERM(newSP, newSP->_term); + set_curterm(newSP->_term); #if !USE_REENTRANT - curscr = CurScreen(newSP); - newscr = NewScreen(newSP); - stdscr = StdScreen(newSP); + curscr = newSP->_curscr; + newscr = newSP->_newscr; + stdscr = newSP->_stdscr; COLORS = newSP->_color_count; COLOR_PAIRS = newSP->_pair_count; #endif } else { - TINFO_SET_CURTERM(oldSP, 0); + set_curterm(0); #if !USE_REENTRANT curscr = 0; newscr = 0; @@ -93,7 +82,7 @@ set_term(SCREEN *screenp) _nc_unlock_global(curses); - T((T_RETURN("%p"), (void *) oldSP)); + T((T_RETURN("%p"), oldSP)); return (oldSP); } @@ -117,7 +106,7 @@ delink_screen(SCREEN *sp) for (each_screen(temp)) { if (temp == sp) { if (last) - last->_next_screen = sp->_next_screen; + last = sp->_next_screen; else _nc_screen_chain = sp->_next_screen; result = TRUE; @@ -136,27 +125,14 @@ delscreen(SCREEN *sp) { int i; - T((T_CALLED("delscreen(%p)"), (void *) sp)); + T((T_CALLED("delscreen(%p)"), sp)); _nc_lock_global(curses); if (delink_screen(sp)) { -#ifdef USE_SP_RIPOFF - ripoff_t *rop; - if (safe_ripoff_sp && safe_ripoff_sp != safe_ripoff_stack) { - for (rop = safe_ripoff_stack; - rop != safe_ripoff_sp && (rop - safe_ripoff_stack) < N_RIPS; - rop++) { - if (rop->win) { - (void) delwin(rop->win); - rop->win = 0; - } - } - } -#endif - (void) _nc_freewin(CurScreen(sp)); - (void) _nc_freewin(NewScreen(sp)); - (void) _nc_freewin(StdScreen(sp)); + (void) _nc_freewin(sp->_curscr); + (void) _nc_freewin(sp->_newscr); + (void) _nc_freewin(sp->_stdscr); if (sp->_slk != 0) { if (sp->_slk->ent != 0) { @@ -200,7 +176,7 @@ delscreen(SCREEN *sp) free(sp->_setbuf); } - NCURSES_SP_NAME(del_curterm) (NCURSES_SP_ARGx sp->_term); + del_curterm(sp->_term); free(sp); /* @@ -208,7 +184,7 @@ delscreen(SCREEN *sp) * application might try to use (except cur_term, which may have * multiple references in different screens). */ - if (sp == CURRENT_SCREEN) { + if (sp == SP) { #if !USE_REENTRANT curscr = 0; newscr = 0; @@ -272,98 +248,50 @@ extract_fgbg(char *src, int *result) } #endif -#define ReturnScreenError() _nc_set_screen(0); \ - returnCode(ERR) - /* OS-independent screen initializations */ NCURSES_EXPORT(int) -NCURSES_SP_NAME(_nc_setupscreen) ( -#if NCURSES_SP_FUNCS - SCREEN **spp, -#endif - int slines, - int scolumns, - FILE *output, - bool filtered, - int slk_format) +_nc_setupscreen(int slines GCC_UNUSED, + int scolumns GCC_UNUSED, + FILE *output, + bool filtered, + int slk_format) { char *env; int bottom_stolen = 0; - ripoff_t *rop; - SCREEN *sp; -#ifndef USE_TERM_DRIVER bool support_cookies = USE_XMC_SUPPORT; -#endif + ripoff_t *rop; T((T_CALLED("_nc_setupscreen(%d, %d, %p, %d, %d)"), - slines, scolumns, (void *) output, filtered, slk_format)); - - assert(CURRENT_SCREEN == 0); /* has been reset in newterm() ! */ - -#if NCURSES_SP_FUNCS - assert(spp != 0); - sp = *spp; + slines, scolumns, output, filtered, slk_format)); - if (!sp) { - sp = _nc_alloc_screen_sp(); - *spp = sp; - } - if (!sp - || ((sp->_acs_map = typeCalloc(chtype, ACS_LEN)) == 0) - || ((sp->_screen_acs_map = typeCalloc(bool, ACS_LEN)) == 0)) { - ReturnScreenError(); - } - - T(("created SP %p", (void *) sp)); - sp->_next_screen = _nc_screen_chain; - _nc_screen_chain = sp; - - if ((sp->_current_attr = typeCalloc(NCURSES_CH_T, 1)) == 0) { - ReturnScreenError(); - } -#else + assert(SP == 0); /* has been reset in newterm() ! */ if (!_nc_alloc_screen() || ((SP->_acs_map = typeCalloc(chtype, ACS_LEN)) == 0) || ((SP->_screen_acs_map = typeCalloc(bool, ACS_LEN)) == 0)) { returnCode(ERR); } - T(("created SP %p", (void *) SP)); + T(("created SP %p", SP)); + SP->_next_screen = _nc_screen_chain; + _nc_screen_chain = SP; - sp = SP; /* fixup so SET_LINES and SET_COLS works */ - sp->_next_screen = _nc_screen_chain; - _nc_screen_chain = sp; - - if ((sp->_current_attr = typeCalloc(NCURSES_CH_T, 1)) == 0) + if ((SP->_current_attr = typeCalloc(NCURSES_CH_T, 1)) == 0) returnCode(ERR); -#endif /* * We should always check the screensize, just in case. */ - _nc_set_screen(sp); - sp->_term = cur_term; -#ifdef USE_TERM_DRIVER - TCBOf(sp)->csp = sp; - _nc_get_screensize(sp, sp->_term, &slines, &scolumns); -#else - _nc_get_screensize(sp, &slines, &scolumns); -#endif + _nc_get_screensize(SP, &slines, &scolumns); SET_LINES(slines); SET_COLS(scolumns); + T((T_CREATE("screen %s %dx%d"), termname(), LINES, COLS)); - T((T_CREATE("screen %s %dx%d"), - NCURSES_SP_NAME(termname) (NCURSES_SP_ARG), slines, scolumns)); - - sp->_filtered = filtered; + SP->_filtered = filtered; /* implement filter mode */ if (filtered) { slines = 1; SET_LINES(slines); -#ifdef USE_TERM_DRIVER - CallDriver(sp, setfilter); -#else clear_screen = 0; cursor_down = parm_down_cursor = 0; cursor_address = 0; @@ -371,25 +299,34 @@ NCURSES_SP_NAME(_nc_setupscreen) ( row_address = 0; cursor_home = carriage_return; -#endif - T(("filter screensize %dx%d", slines, scolumns)); + T(("filter screensize %dx%d", LINES, COLS)); } #ifdef __DJGPP__ T(("setting output mode to binary")); fflush(output); setmode(output, O_BINARY); #endif - NCURSES_SP_NAME(_nc_set_buffer) (NCURSES_SP_ARGx output, TRUE); - sp->_lines = (NCURSES_SIZE_T) slines; - sp->_lines_avail = (NCURSES_SIZE_T) slines; - sp->_columns = (NCURSES_SIZE_T) scolumns; - sp->_ofp = output; - SP_PRE_INIT(sp); - SetNoPadding(sp); + _nc_set_buffer(output, TRUE); + SP->_term = cur_term; + SP->_lines = slines; + SP->_lines_avail = slines; + SP->_columns = scolumns; + SP->_cursrow = -1; + SP->_curscol = -1; + SP->_nl = TRUE; + SP->_raw = FALSE; + SP->_cbreak = 0; + SP->_echo = TRUE; + SP->_fifohead = -1; + SP->_endwin = TRUE; + SP->_ofp = output; + SP->_cursor = -1; /* cannot know real cursor shape */ + + SetNoPadding(SP); #if NCURSES_EXT_FUNCS - sp->_default_color = FALSE; - sp->_has_sgr_39_49 = FALSE; + SP->_default_color = FALSE; + SP->_has_sgr_39_49 = FALSE; /* * Set our assumption of the terminal's default foreground and background @@ -411,11 +348,11 @@ NCURSES_SP_NAME(_nc_setupscreen) ( * or black-on-white display under control of the application than not). */ #ifdef USE_ASSUMED_COLOR - sp->_default_fg = COLOR_WHITE; - sp->_default_bg = COLOR_BLACK; + SP->_default_fg = COLOR_WHITE; + SP->_default_bg = COLOR_BLACK; #else - sp->_default_fg = C_MASK; - sp->_default_bg = C_MASK; + SP->_default_fg = C_MASK; + SP->_default_bg = C_MASK; #endif /* @@ -427,14 +364,14 @@ NCURSES_SP_NAME(_nc_setupscreen) ( char sep1, sep2; int count = sscanf(env, "%d%c%d%c", &fg, &sep1, &bg, &sep2); if (count >= 1) { - sp->_default_fg = ((fg >= 0 && fg < MaxColors) ? fg : C_MASK); + SP->_default_fg = (fg >= 0 && fg < max_colors) ? fg : C_MASK; if (count >= 3) { - sp->_default_bg = ((bg >= 0 && bg < MaxColors) ? bg : C_MASK); + SP->_default_bg = (bg >= 0 && bg < max_colors) ? bg : C_MASK; } TR(TRACE_CHARPUT | TRACE_MOVE, ("from environment assumed fg=%d, bg=%d", - sp->_default_fg, - sp->_default_bg)); + SP->_default_fg, + SP->_default_bg)); } } #if USE_COLORFGBG @@ -447,51 +384,48 @@ NCURSES_SP_NAME(_nc_setupscreen) ( if (getenv("COLORFGBG") != 0) { char *p = getenv("COLORFGBG"); TR(TRACE_CHARPUT | TRACE_MOVE, ("decoding COLORFGBG %s", p)); - p = extract_fgbg(p, &(sp->_default_fg)); - p = extract_fgbg(p, &(sp->_default_bg)); + p = extract_fgbg(p, &(SP->_default_fg)); + p = extract_fgbg(p, &(SP->_default_bg)); if (*p) /* assume rxvt was compiled with xpm support */ - p = extract_fgbg(p, &(sp->_default_bg)); + p = extract_fgbg(p, &(SP->_default_bg)); TR(TRACE_CHARPUT | TRACE_MOVE, ("decoded fg=%d, bg=%d", - sp->_default_fg, sp->_default_bg)); - if (sp->_default_fg >= MaxColors) { + SP->_default_fg, SP->_default_bg)); + if (SP->_default_fg >= max_colors) { if (set_a_foreground != ABSENT_STRING && !strcmp(set_a_foreground, "\033[3%p1%dm")) { set_a_foreground = "\033[3%?%p1%{8}%>%t9%e%p1%d%;m"; } else { - sp->_default_fg %= MaxColors; + SP->_default_fg %= max_colors; } } - if (sp->_default_bg >= MaxColors) { + if (SP->_default_bg >= max_colors) { if (set_a_background != ABSENT_STRING && !strcmp(set_a_background, "\033[4%p1%dm")) { set_a_background = "\033[4%?%p1%{8}%>%t9%e%p1%d%;m"; } else { - sp->_default_bg %= MaxColors; + SP->_default_bg %= max_colors; } } } #endif #endif /* NCURSES_EXT_FUNCS */ - sp->_maxclick = DEFAULT_MAXCLICK; - sp->_mouse_event = no_mouse_event; - sp->_mouse_inline = no_mouse_inline; - sp->_mouse_parse = no_mouse_parse; - sp->_mouse_resume = no_mouse_resume; - sp->_mouse_wrap = no_mouse_wrap; - sp->_mouse_fd = -1; + SP->_maxclick = DEFAULT_MAXCLICK; + SP->_mouse_event = no_mouse_event; + SP->_mouse_inline = no_mouse_inline; + SP->_mouse_parse = no_mouse_parse; + SP->_mouse_resume = no_mouse_resume; + SP->_mouse_wrap = no_mouse_wrap; + SP->_mouse_fd = -1; /* * If we've no magic cookie support, we suppress attributes that xmc would * affect, i.e., the attributes that affect the rendition of a space. */ - sp->_ok_attributes = NCURSES_SP_NAME(termattrs) (NCURSES_SP_ARG); - if (NCURSES_SP_NAME(has_colors) (NCURSES_SP_ARG)) { - sp->_ok_attributes |= A_COLOR; + SP->_ok_attributes = termattrs(); + if (has_colors()) { + SP->_ok_attributes |= A_COLOR; } -#ifdef USE_TERM_DRIVER - _nc_cookie_init(sp); -#else #if USE_XMC_SUPPORT /* * If we have no magic-cookie support compiled-in, or if it is suppressed @@ -510,7 +444,7 @@ NCURSES_SP_NAME(_nc_setupscreen) ( if (magic_cookie_glitch > 0) { /* tvi, wyse */ - sp->_xmc_triggers = sp->_ok_attributes & ( + SP->_xmc_triggers = SP->_ok_attributes & ( A_STANDOUT | A_UNDERLINE | A_REVERSE | @@ -527,12 +461,12 @@ NCURSES_SP_NAME(_nc_setupscreen) ( * cookies. */ if (has_colors()) { - sp->_xmc_triggers |= A_COLOR; + SP->_xmc_triggers |= A_COLOR; } #endif - sp->_xmc_suppress = sp->_xmc_triggers & (chtype) ~(A_BOLD); + SP->_xmc_suppress = SP->_xmc_triggers & (chtype) ~(A_BOLD); - T(("magic cookie attributes %s", _traceattr(sp->_xmc_suppress))); + T(("magic cookie attributes %s", _traceattr(SP->_xmc_suppress))); /* * Supporting line-drawing may be possible. But make the regular * video attributes work first. @@ -572,7 +506,7 @@ NCURSES_SP_NAME(_nc_setupscreen) ( /* initialize normal acs before wide, since we use mapping in the latter */ #if !USE_WIDEC_SUPPORT - if (_nc_unicode_locale() && _nc_locale_breaks_acs(sp->_term)) { + if (_nc_unicode_locale() && _nc_locale_breaks_acs(cur_term)) { acs_chars = NULL; ena_acs = NULL; enter_alt_charset_mode = NULL; @@ -580,194 +514,134 @@ NCURSES_SP_NAME(_nc_setupscreen) ( set_attributes = NULL; } #endif -#endif - - NCURSES_SP_NAME(_nc_init_acs) (NCURSES_SP_ARG); + _nc_init_acs(); #if USE_WIDEC_SUPPORT _nc_init_wacs(); - sp->_screen_acs_fix = (_nc_unicode_locale() - && _nc_locale_breaks_acs(sp->_term)); + SP->_screen_acs_fix = (_nc_unicode_locale() + && _nc_locale_breaks_acs(cur_term)); #endif env = _nc_get_locale(); - sp->_legacy_coding = ((env == 0) + SP->_legacy_coding = ((env == 0) || !strcmp(env, "C") || !strcmp(env, "POSIX")); - T(("legacy-coding %d", sp->_legacy_coding)); + T(("legacy-coding %d", SP->_legacy_coding)); - sp->_nc_sp_idcok = TRUE; - sp->_nc_sp_idlok = FALSE; + _nc_idcok = TRUE; + _nc_idlok = FALSE; - sp->oldhash = 0; - sp->newhash = 0; + SP->oldhash = 0; + SP->newhash = 0; T(("creating newscr")); - NewScreen(sp) = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx slines, scolumns, - 0, 0); - if (NewScreen(sp) == 0) { - ReturnScreenError(); - } + if ((SP->_newscr = newwin(slines, scolumns, 0, 0)) == 0) + returnCode(ERR); + T(("creating curscr")); - CurScreen(sp) = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx slines, scolumns, - 0, 0); - if (CurScreen(sp) == 0) { - ReturnScreenError(); - } + if ((SP->_curscr = newwin(slines, scolumns, 0, 0)) == 0) + returnCode(ERR); + #if !USE_REENTRANT - newscr = NewScreen(sp); - curscr = CurScreen(sp); + newscr = SP->_newscr; + curscr = SP->_curscr; #endif #if USE_SIZECHANGE - sp->_resize = NCURSES_SP_NAME(resizeterm); + SP->_resize = resizeterm; #endif - NewScreen(sp)->_clear = TRUE; - CurScreen(sp)->_clear = FALSE; - - NCURSES_SP_NAME(def_shell_mode) (NCURSES_SP_ARG); - NCURSES_SP_NAME(def_prog_mode) (NCURSES_SP_ARG); - - if (safe_ripoff_sp && safe_ripoff_sp != safe_ripoff_stack) { - for (rop = safe_ripoff_stack; - rop != safe_ripoff_sp && (rop - safe_ripoff_stack) < N_RIPS; - rop++) { - - /* If we must simulate soft labels, grab off the line to be used. - We assume that we must simulate, if it is none of the standard - formats (4-4 or 3-2-3) for which there may be some hardware - support. */ - if (rop->hook == _nc_slk_initialize) { - if (!(NumLabels <= 0 || !SLK_STDFMT(slk_format))) { - continue; - } - } - if (rop->hook) { - int count; - WINDOW *w; - - count = (rop->line < 0) ? -rop->line : rop->line; - T(("ripping off %i lines at %s", count, - ((rop->line < 0) - ? "bottom" - : "top"))); - - w = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx - count, scolumns, - ((rop->line < 0) - ? sp->_lines_avail - count - : 0), - 0); - if (w) { - rop->win = w; - rop->hook(w, scolumns); - } else { - ReturnScreenError(); - } - if (rop->line < 0) { - bottom_stolen += count; - } else { - sp->_topstolen = (NCURSES_SIZE_T) (sp->_topstolen + count); - } - sp->_lines_avail = (NCURSES_SIZE_T) (sp->_lines_avail - count); + newscr->_clear = TRUE; + curscr->_clear = FALSE; + + def_shell_mode(); + def_prog_mode(); + + for (rop = ripoff_stack; + rop != ripoff_sp && (rop - ripoff_stack) < N_RIPS; + rop++) { + + /* If we must simulate soft labels, grab off the line to be used. + We assume that we must simulate, if it is none of the standard + formats (4-4 or 3-2-3) for which there may be some hardware + support. */ + if (rop->hook == _nc_slk_initialize) + if (!(num_labels <= 0 || !SLK_STDFMT(slk_format))) + continue; + if (rop->hook) { + int count; + WINDOW *w; + + count = (rop->line < 0) ? -rop->line : rop->line; + T(("ripping off %i lines at %s", count, + ((rop->line < 0) + ? "bottom" + : "top"))); + + w = newwin(count, scolumns, + ((rop->line < 0) + ? SP->_lines_avail - count + : 0), + 0); + if (w) { + rop->win = w; + rop->hook(w, scolumns); + } else { + returnCode(ERR); } + if (rop->line < 0) + bottom_stolen += count; + else + SP->_topstolen += count; + SP->_lines_avail -= count; } - /* reset the stack */ - safe_ripoff_sp = safe_ripoff_stack; } + /* reset the stack */ + ripoff_sp = ripoff_stack; T(("creating stdscr")); - assert((sp->_lines_avail + sp->_topstolen + bottom_stolen) == slines); - if ((StdScreen(sp) = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx - sp->_lines_avail, - scolumns, 0, 0)) == 0) { - ReturnScreenError(); - } - SET_LINES(sp->_lines_avail); + assert((SP->_lines_avail + SP->_topstolen + bottom_stolen) == slines); + if ((SP->_stdscr = newwin(SP->_lines_avail, scolumns, 0, 0)) == 0) + returnCode(ERR); + + SET_LINES(SP->_lines_avail); #if !USE_REENTRANT - stdscr = StdScreen(sp); + stdscr = SP->_stdscr; #endif - sp->_prescreen = FALSE; - returnCode(OK); -} -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -_nc_setupscreen(int slines GCC_UNUSED, - int scolumns GCC_UNUSED, - FILE *output, - bool filtered, - int slk_format) -{ - SCREEN *sp = 0; - int rc = NCURSES_SP_NAME(_nc_setupscreen) (&sp, - slines, - scolumns, - output, - filtered, - slk_format); - if (rc != OK) - _nc_set_screen(0); - return rc; + returnCode(OK); } -#endif /* * The internal implementation interprets line as the number of lines to rip * off from the top or bottom. */ NCURSES_EXPORT(int) -NCURSES_SP_NAME(_nc_ripoffline) (NCURSES_SP_DCLx - int line, - int (*init) (WINDOW *, int)) +_nc_ripoffline(int line, int (*init) (WINDOW *, int)) { - int code = ERR; + T((T_CALLED("_nc_ripoffline(%d, %p)"), line, init)); - START_TRACE(); - T((T_CALLED("ripoffline(%p,%d,%p)"), (void *) SP_PARM, line, init)); + if (line != 0) { -#if NCURSES_SP_FUNCS - if (SP_PARM != 0 && SP_PARM->_prescreen) -#endif - { - if (line == 0) { - code = OK; - } else { - if (safe_ripoff_sp == 0) - safe_ripoff_sp = safe_ripoff_stack; - if (safe_ripoff_sp < safe_ripoff_stack + N_RIPS) { - safe_ripoff_sp->line = line; - safe_ripoff_sp->hook = init; - (safe_ripoff_sp)++; - code = OK; - } - } + if (ripoff_sp == 0) + ripoff_sp = ripoff_stack; + if (ripoff_sp >= ripoff_stack + N_RIPS) + returnCode(ERR); + + ripoff_sp->line = line; + ripoff_sp->hook = init; + ripoff_sp++; } - returnCode(code); + returnCode(OK); } -#if NCURSES_SP_FUNCS NCURSES_EXPORT(int) -_nc_ripoffline(int line, int (*init) (WINDOW *, int)) +ripoffline(int line, int (*init) (WINDOW *, int)) { - return NCURSES_SP_NAME(_nc_ripoffline) (CURRENT_SCREEN_PRE, line, init); -} -#endif + START_TRACE(); + T((T_CALLED("ripoffline(%d,%p)"), line, init)); -NCURSES_EXPORT(int) -NCURSES_SP_NAME(ripoffline) (NCURSES_SP_DCLx - int line, - int (*init) (WINDOW *, int)) -{ - return NCURSES_SP_NAME(_nc_ripoffline) (NCURSES_SP_ARGx - (line < 0) ? -1 : 1, - init); -} + if (line == 0) + returnCode(OK); -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -ripoffline(int line, int (*init) (WINDOW *, int)) -{ - return NCURSES_SP_NAME(ripoffline) (CURRENT_SCREEN_PRE, line, init); + returnCode(_nc_ripoffline((line < 0) ? -1 : 1, init)); } -#endif diff --git a/ncurses/base/lib_slk.c b/ncurses/base/lib_slk.c index 84f17ae03705..662f7e45b116 100644 --- a/ncurses/base/lib_slk.c +++ b/ncurses/base/lib_slk.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * + * Copyright (c) 1998-2005,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -41,94 +41,26 @@ */ #include -#include - -#ifndef CUR -#define CUR SP_TERMTYPE -#endif -MODULE_ID("$Id: lib_slk.c,v 1.48 2011/03/05 21:21:52 tom Exp $") +#include +#include /* num_labels, label_*, plab_norm */ -#ifdef USE_TERM_DRIVER -#define NumLabels InfoOf(SP_PARM).numlabels -#define NoColorVideo InfoOf(SP_PARM).nocolorvideo -#define LabelWidth InfoOf(SP_PARM).labelwidth -#define LabelHeight InfoOf(SP_PARM).labelheight -#else -#define NumLabels num_labels -#define NoColorVideo no_color_video -#define LabelWidth label_width -#define LabelHeight label_height -#endif +MODULE_ID("$Id: lib_slk.c,v 1.35 2008/09/27 14:07:33 juergen Exp $") /* * Free any memory related to soft labels, return an error. */ static int -slk_failed(NCURSES_SP_DCL0) +slk_failed(void) { - if ((0 != SP_PARM) && SP_PARM->_slk) { - FreeIfNeeded(SP_PARM->_slk->ent); - free(SP_PARM->_slk); - SP_PARM->_slk = (SLK *) 0; + if (SP->_slk) { + FreeIfNeeded(SP->_slk->ent); + free(SP->_slk); + SP->_slk = (SLK *) 0; } return ERR; } -NCURSES_EXPORT(int) -_nc_format_slks(NCURSES_SP_DCLx int cols) -{ - int gap, i, x; - int max_length; - - if (!SP_PARM || !SP_PARM->_slk) - return ERR; - - max_length = SP_PARM->_slk->maxlen; - if (SP_PARM->slk_format >= 3) { /* PC style */ - gap = (cols - 3 * (3 + 4 * max_length)) / 2; - - if (gap < 1) - gap = 1; - - for (i = x = 0; i < SP_PARM->_slk->maxlab; i++) { - SP_PARM->_slk->ent[i].ent_x = x; - x += max_length; - x += (i == 3 || i == 7) ? gap : 1; - } - } else { - if (SP_PARM->slk_format == 2) { /* 4-4 */ - gap = cols - (int) (SP_PARM->_slk->maxlab * max_length) - 6; - - if (gap < 1) - gap = 1; - for (i = x = 0; i < SP_PARM->_slk->maxlab; i++) { - SP_PARM->_slk->ent[i].ent_x = x; - x += max_length; - x += (i == 3) ? gap : 1; - } - } else { - if (SP_PARM->slk_format == 1) { /* 1 -> 3-2-3 */ - gap = (cols - (SP_PARM->_slk->maxlab * max_length) - 5) - / 2; - - if (gap < 1) - gap = 1; - for (i = x = 0; i < SP_PARM->_slk->maxlab; i++) { - SP_PARM->_slk->ent[i].ent_x = x; - x += max_length; - x += (i == 2 || i == 4) ? gap : 1; - } - } else { - return slk_failed(NCURSES_SP_ARG); - } - } - } - SP_PARM->_slk->dirty = TRUE; - - return OK; -} - /* * Initialize soft labels. * Called from newterm() @@ -136,90 +68,108 @@ _nc_format_slks(NCURSES_SP_DCLx int cols) NCURSES_EXPORT(int) _nc_slk_initialize(WINDOW *stwin, int cols) { - int i; + int i, x; int res = OK; - size_t max_length; - SCREEN *sp; - int numlab; + unsigned max_length; T((T_CALLED("_nc_slk_initialize()"))); - assert(stwin); - - sp = _nc_screen_of(stwin); - if (0 == sp) - returnCode(ERR); - - assert(TerminalOf(SP_PARM)); - - numlab = NumLabels; - - if (SP_PARM->_slk) { /* we did this already, so simply return */ + if (SP->_slk) { /* we did this already, so simply return */ returnCode(OK); - } else if ((SP_PARM->_slk = typeCalloc(SLK, 1)) == 0) + } else if ((SP->_slk = typeCalloc(SLK, 1)) == 0) returnCode(ERR); - if (!SP_PARM->slk_format) - SP_PARM->slk_format = _nc_globals.slk_format; + SP->_slk->ent = NULL; /* * If we use colors, vidputs() will suppress video attributes that conflict * with colors. In that case, we're still guaranteed that "reverse" would * work. */ - if ((NoColorVideo & 1) == 0) - SetAttr(SP_PARM->_slk->attr, A_STANDOUT); + if ((no_color_video & 1) == 0) + SetAttr(SP->_slk->attr, A_STANDOUT); else - SetAttr(SP_PARM->_slk->attr, A_REVERSE); - - SP_PARM->_slk->maxlab = (short) ((numlab > 0) - ? numlab - : MAX_SKEY(SP_PARM->slk_format)); - SP_PARM->_slk->maxlen = (short) ((numlab > 0) - ? LabelWidth * LabelHeight - : MAX_SKEY_LEN(SP_PARM->slk_format)); - SP_PARM->_slk->labcnt = (short) ((SP_PARM->_slk->maxlab < MAX_SKEY(SP_PARM->slk_format)) - ? MAX_SKEY(SP_PARM->slk_format) - : SP_PARM->_slk->maxlab); - - if (SP_PARM->_slk->maxlen <= 0 - || SP_PARM->_slk->labcnt <= 0 - || (SP_PARM->_slk->ent = typeCalloc(slk_ent, - (size_t) SP_PARM->_slk->labcnt)) - == NULL) - returnCode(slk_failed(NCURSES_SP_ARG)); - - max_length = (size_t) SP_PARM->_slk->maxlen; - for (i = 0; i < SP_PARM->_slk->labcnt; i++) { + SetAttr(SP->_slk->attr, A_REVERSE); + + SP->_slk->maxlab = ((num_labels > 0) + ? num_labels + : MAX_SKEY(_nc_globals.slk_format)); + SP->_slk->maxlen = ((num_labels > 0) + ? label_width * label_height + : MAX_SKEY_LEN(_nc_globals.slk_format)); + SP->_slk->labcnt = ((SP->_slk->maxlab < MAX_SKEY(_nc_globals.slk_format)) + ? MAX_SKEY(_nc_globals.slk_format) + : SP->_slk->maxlab); + + if (SP->_slk->maxlen <= 0 + || SP->_slk->labcnt <= 0 + || (SP->_slk->ent = typeCalloc(slk_ent, + (unsigned) SP->_slk->labcnt)) == NULL) + returnCode(slk_failed()); + + max_length = SP->_slk->maxlen; + for (i = 0; i < SP->_slk->labcnt; i++) { size_t used = max_length + 1; - SP_PARM->_slk->ent[i].ent_text = (char *) _nc_doalloc(0, used); - if (SP_PARM->_slk->ent[i].ent_text == 0) - returnCode(slk_failed(NCURSES_SP_ARG)); - memset(SP_PARM->_slk->ent[i].ent_text, 0, used); + if ((SP->_slk->ent[i].ent_text = (char *) _nc_doalloc(0, used)) == 0) + returnCode(slk_failed()); + memset(SP->_slk->ent[i].ent_text, 0, used); - SP_PARM->_slk->ent[i].form_text = (char *) _nc_doalloc(0, used); - if (SP_PARM->_slk->ent[i].form_text == 0) - returnCode(slk_failed(NCURSES_SP_ARG)); + if ((SP->_slk->ent[i].form_text = (char *) _nc_doalloc(0, used)) == 0) + returnCode(slk_failed()); + memset(SP->_slk->ent[i].form_text, 0, used); - if (used > 1) { - memset(SP_PARM->_slk->ent[i].form_text, ' ', used - 1); - } - SP_PARM->_slk->ent[i].form_text[used - 1] = '\0'; - - SP_PARM->_slk->ent[i].visible = (char) (i < SP_PARM->_slk->maxlab); + memset(SP->_slk->ent[i].form_text, ' ', max_length); + SP->_slk->ent[i].visible = (char) (i < SP->_slk->maxlab); } + if (_nc_globals.slk_format >= 3) { /* PC style */ + int gap = (cols - 3 * (3 + 4 * max_length)) / 2; + + if (gap < 1) + gap = 1; - res = _nc_format_slks(NCURSES_SP_ARGx cols); + for (i = x = 0; i < SP->_slk->maxlab; i++) { + SP->_slk->ent[i].ent_x = x; + x += max_length; + x += (i == 3 || i == 7) ? gap : 1; + } + } else { + if (_nc_globals.slk_format == 2) { /* 4-4 */ + int gap = cols - (SP->_slk->maxlab * max_length) - 6; - if ((SP_PARM->_slk->win = stwin) == NULL) { - returnCode(slk_failed(NCURSES_SP_ARG)); + if (gap < 1) + gap = 1; + for (i = x = 0; i < SP->_slk->maxlab; i++) { + SP->_slk->ent[i].ent_x = x; + x += max_length; + x += (i == 3) ? gap : 1; + } + } else { + if (_nc_globals.slk_format == 1) { /* 1 -> 3-2-3 */ + int gap = (cols - (SP->_slk->maxlab * max_length) - 5) + / 2; + + if (gap < 1) + gap = 1; + for (i = x = 0; i < SP->_slk->maxlab; i++) { + SP->_slk->ent[i].ent_x = x; + x += max_length; + x += (i == 2 || i == 4) ? gap : 1; + } + } else + returnCode(slk_failed()); + } + } + SP->_slk->dirty = TRUE; + if ((SP->_slk->win = stwin) == NULL) { + returnCode(slk_failed()); } /* We now reset the format so that the next newterm has again * per default no SLK keys and may call slk_init again to * define a new layout. (juergen 03-Mar-1999) */ + SP->slk_format = _nc_globals.slk_format; _nc_globals.slk_format = 0; returnCode(res); } @@ -228,24 +178,14 @@ _nc_slk_initialize(WINDOW *stwin, int cols) * Restore the soft labels on the screen. */ NCURSES_EXPORT(int) -NCURSES_SP_NAME(slk_restore) (NCURSES_SP_DCL0) +slk_restore(void) { - T((T_CALLED("slk_restore(%p)"), (void *) SP_PARM)); - - if (0 == SP_PARM) - returnCode(ERR); - if (SP_PARM->_slk == NULL) - returnCode(ERR); - SP_PARM->_slk->hidden = FALSE; - SP_PARM->_slk->dirty = TRUE; + T((T_CALLED("slk_restore()"))); - returnCode(NCURSES_SP_NAME(slk_refresh) (NCURSES_SP_ARG)); -} + if (SP->_slk == NULL) + return (ERR); + SP->_slk->hidden = FALSE; + SP->_slk->dirty = TRUE; -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -slk_restore(void) -{ - return NCURSES_SP_NAME(slk_restore) (CURRENT_SCREEN); + returnCode(slk_refresh()); } -#endif diff --git a/ncurses/base/lib_slkatr_set.c b/ncurses/base/lib_slkatr_set.c index bd5f539672a7..f83616beaf17 100644 --- a/ncurses/base/lib_slkatr_set.c +++ b/ncurses/base/lib_slkatr_set.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -28,7 +28,7 @@ /**************************************************************************** * Author: Juergen Pfeifer, 1998 * - * and: Thomas E. Dickey 2005-on * + * and: Thomas E. Dickey 2005 * ****************************************************************************/ /* @@ -38,42 +38,22 @@ */ #include -MODULE_ID("$Id: lib_slkatr_set.c,v 1.14 2009/10/24 22:47:03 tom Exp $") +MODULE_ID("$Id: lib_slkatr_set.c,v 1.10 2005/01/28 21:11:53 tom Exp $") NCURSES_EXPORT(int) -NCURSES_SP_NAME(slk_attr_set) (NCURSES_SP_DCLx - const attr_t attr, - short color_pair_number, - void *opts) +slk_attr_set(const attr_t attr, short color_pair_number, void *opts) { - int code = ERR; - - T((T_CALLED("slk_attr_set(%p,%s,%d)"), - (void *) SP_PARM, - _traceattr(attr), - color_pair_number)); + T((T_CALLED("slk_attr_set(%s,%d)"), _traceattr(attr), color_pair_number)); - if (SP_PARM != 0 - && SP_PARM->_slk != 0 - && !opts - && color_pair_number >= 0 - && color_pair_number < SP_PARM->_pair_limit) { - TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP_PARM->_slk->attr)))); - SetAttr(SP_PARM->_slk->attr, attr); + if (SP != 0 && SP->_slk != 0 && !opts && + color_pair_number >= 0 && color_pair_number < COLOR_PAIRS) { + TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP->_slk->attr)))); + SetAttr(SP->_slk->attr, attr); if (color_pair_number > 0) { - SetPair(SP_PARM->_slk->attr, color_pair_number); + SetPair(SP->_slk->attr, color_pair_number); } - TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP_PARM->_slk->attr)))); - code = OK; - } - returnCode(code); -} - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -slk_attr_set(const attr_t attr, short color_pair_number, void *opts) -{ - return NCURSES_SP_NAME(slk_attr_set) (CURRENT_SCREEN, attr, - color_pair_number, opts); + TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr)))); + returnCode(OK); + } else + returnCode(ERR); } -#endif diff --git a/ncurses/base/lib_slkatrof.c b/ncurses/base/lib_slkatrof.c index bb980ab812cf..14b4c3bfadcc 100644 --- a/ncurses/base/lib_slkatrof.c +++ b/ncurses/base/lib_slkatrof.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -38,29 +38,21 @@ */ #include -MODULE_ID("$Id: lib_slkatrof.c,v 1.11 2009/10/24 22:12:21 tom Exp $") +MODULE_ID("$Id: lib_slkatrof.c,v 1.8 2005/01/08 23:01:32 tom Exp $") NCURSES_EXPORT(int) -NCURSES_SP_NAME(slk_attroff) (NCURSES_SP_DCLx const chtype attr) +slk_attroff(const chtype attr) { - T((T_CALLED("slk_attroff(%p,%s)"), (void *) SP_PARM, _traceattr(attr))); + T((T_CALLED("slk_attroff(%s)"), _traceattr(attr))); - if (SP_PARM != 0 && SP_PARM->_slk != 0) { - TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP_PARM->_slk->attr)))); - RemAttr(SP_PARM->_slk->attr, attr); + if (SP != 0 && SP->_slk != 0) { + TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP->_slk->attr)))); + RemAttr(SP->_slk->attr, attr); if ((attr & A_COLOR) != 0) { - SetPair(SP_PARM->_slk->attr, 0); + SetPair(SP->_slk->attr, 0); } - TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP_PARM->_slk->attr)))); + TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr)))); returnCode(OK); } else returnCode(ERR); } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -slk_attroff(const chtype attr) -{ - return NCURSES_SP_NAME(slk_attroff) (CURRENT_SCREEN, attr); -} -#endif diff --git a/ncurses/base/lib_slkatron.c b/ncurses/base/lib_slkatron.c index bc2fb3308eea..90add86dc1c8 100644 --- a/ncurses/base/lib_slkatron.c +++ b/ncurses/base/lib_slkatron.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -38,29 +38,21 @@ */ #include -MODULE_ID("$Id: lib_slkatron.c,v 1.12 2010/03/31 23:38:02 tom Exp $") +MODULE_ID("$Id: lib_slkatron.c,v 1.8 2005/01/08 23:02:01 tom Exp $") NCURSES_EXPORT(int) -NCURSES_SP_NAME(slk_attron) (NCURSES_SP_DCLx const chtype attr) +slk_attron(const chtype attr) { - T((T_CALLED("slk_attron(%p,%s)"), (void *) SP_PARM, _traceattr(attr))); + T((T_CALLED("slk_attron(%s)"), _traceattr(attr))); - if (SP_PARM != 0 && SP_PARM->_slk != 0) { - TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP_PARM->_slk->attr)))); - AddAttr(SP_PARM->_slk->attr, attr); + if (SP != 0 && SP->_slk != 0) { + TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP->_slk->attr)))); + AddAttr(SP->_slk->attr, attr); if ((attr & A_COLOR) != 0) { - SetPair(SP_PARM->_slk->attr, PairNumber(attr)); + SetPair(SP->_slk->attr, PAIR_NUMBER(attr)); } - TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP_PARM->_slk->attr)))); + TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr)))); returnCode(OK); } else returnCode(ERR); } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -slk_attron(const chtype attr) -{ - return NCURSES_SP_NAME(slk_attron) (CURRENT_SCREEN, attr); -} -#endif diff --git a/ncurses/base/lib_slkatrset.c b/ncurses/base/lib_slkatrset.c index 544b8d0faab7..8da9981b3b3e 100644 --- a/ncurses/base/lib_slkatrset.c +++ b/ncurses/base/lib_slkatrset.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -38,24 +38,16 @@ */ #include -MODULE_ID("$Id: lib_slkatrset.c,v 1.10 2009/10/24 22:12:21 tom Exp $") +MODULE_ID("$Id: lib_slkatrset.c,v 1.7 2005/01/08 21:46:47 tom Exp $") NCURSES_EXPORT(int) -NCURSES_SP_NAME(slk_attrset) (NCURSES_SP_DCLx const chtype attr) +slk_attrset(const chtype attr) { - T((T_CALLED("slk_attrset(%p,%s)"), (void *) SP_PARM, _traceattr(attr))); + T((T_CALLED("slk_attrset(%s)"), _traceattr(attr))); - if (SP_PARM != 0 && SP_PARM->_slk != 0) { - SetAttr(SP_PARM->_slk->attr, attr); + if (SP != 0 && SP->_slk != 0) { + SetAttr(SP->_slk->attr, attr); returnCode(OK); } else returnCode(ERR); } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -slk_attrset(const chtype attr) -{ - return NCURSES_SP_NAME(slk_attrset) (CURRENT_SCREEN, attr); -} -#endif diff --git a/ncurses/base/lib_slkattr.c b/ncurses/base/lib_slkattr.c index bec11e84c667..da82ee5b623e 100644 --- a/ncurses/base/lib_slkattr.c +++ b/ncurses/base/lib_slkattr.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -38,27 +38,19 @@ */ #include -MODULE_ID("$Id: lib_slkattr.c,v 1.11 2010/12/20 01:41:25 tom Exp $") +MODULE_ID("$Id: lib_slkattr.c,v 1.6 2005/01/08 21:44:28 tom Exp $") NCURSES_EXPORT(attr_t) -NCURSES_SP_NAME(slk_attr) (NCURSES_SP_DCL0) +slk_attr(void) { - T((T_CALLED("slk_attr(%p)"), (void *) SP_PARM)); + T((T_CALLED("slk_attr()"))); - if (SP_PARM != 0 && SP_PARM->_slk != 0) { - attr_t result = AttrOf(SP_PARM->_slk->attr) & ALL_BUT_COLOR; - int pair = GetPair(SP_PARM->_slk->attr); + if (SP != 0 && SP->_slk != 0) { + attr_t result = AttrOf(SP->_slk->attr) & ALL_BUT_COLOR; + int pair = GetPair(SP->_slk->attr); - result |= (attr_t) ColorPair(pair); + result |= COLOR_PAIR(pair); returnAttr(result); } else returnAttr(0); } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(attr_t) -slk_attr(void) -{ - return NCURSES_SP_NAME(slk_attr) (CURRENT_SCREEN); -} -#endif diff --git a/ncurses/base/lib_slkclear.c b/ncurses/base/lib_slkclear.c index 264c8c40812c..946ceeaf0e0d 100644 --- a/ncurses/base/lib_slkclear.c +++ b/ncurses/base/lib_slkclear.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2007,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -40,35 +40,27 @@ */ #include -MODULE_ID("$Id: lib_slkclear.c,v 1.14 2009/11/07 16:27:05 tom Exp $") +MODULE_ID("$Id: lib_slkclear.c,v 1.10 2007/12/29 17:51:47 tom Exp $") NCURSES_EXPORT(int) -NCURSES_SP_NAME(slk_clear) (NCURSES_SP_DCL0) +slk_clear(void) { int rc = ERR; - T((T_CALLED("slk_clear(%p)"), (void *) SP_PARM)); + T((T_CALLED("slk_clear()"))); - if (SP_PARM != 0 && SP_PARM->_slk != 0) { - SP_PARM->_slk->hidden = TRUE; + if (SP != NULL && SP->_slk != NULL) { + SP->_slk->hidden = TRUE; /* For simulated SLK's it looks much more natural to inherit those attributes from the standard screen */ - SP_PARM->_slk->win->_nc_bkgd = StdScreen(SP_PARM)->_nc_bkgd; - WINDOW_ATTRS(SP_PARM->_slk->win) = WINDOW_ATTRS(StdScreen(SP_PARM)); - if (SP_PARM->_slk->win == StdScreen(SP_PARM)) { + SP->_slk->win->_nc_bkgd = stdscr->_nc_bkgd; + WINDOW_ATTRS(SP->_slk->win) = WINDOW_ATTRS(stdscr); + if (SP->_slk->win == stdscr) { rc = OK; } else { - werase(SP_PARM->_slk->win); - rc = wrefresh(SP_PARM->_slk->win); + werase(SP->_slk->win); + rc = wrefresh(SP->_slk->win); } } returnCode(rc); } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -slk_clear(void) -{ - return NCURSES_SP_NAME(slk_clear) (CURRENT_SCREEN); -} -#endif diff --git a/ncurses/base/lib_slkcolor.c b/ncurses/base/lib_slkcolor.c index c1211bcb884a..b677b65a529a 100644 --- a/ncurses/base/lib_slkcolor.c +++ b/ncurses/base/lib_slkcolor.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -27,8 +27,8 @@ ****************************************************************************/ /**************************************************************************** - * Author: Juergen Pfeifer, 1998,2009 * - * and: Thomas E. Dickey 2005-on * + * Author: Juergen Pfeifer, 1998 * + * and: Thomas E. Dickey 2005 * ****************************************************************************/ /* @@ -38,31 +38,19 @@ */ #include -MODULE_ID("$Id: lib_slkcolor.c,v 1.16 2009/10/24 22:12:21 tom Exp $") +MODULE_ID("$Id: lib_slkcolor.c,v 1.12 2005/01/28 21:11:53 tom Exp $") -NCURSES_EXPORT(int) -NCURSES_SP_NAME(slk_color) (NCURSES_SP_DCLx short color_pair_number) -{ - int code = ERR; - - T((T_CALLED("slk_color(%p,%d)"), (void *) SP_PARM, color_pair_number)); - - if (SP_PARM != 0 - && SP_PARM->_slk != 0 - && color_pair_number >= 0 - && color_pair_number < SP_PARM->_pair_limit) { - TR(TRACE_ATTRS, ("... current is %s", _tracech_t(CHREF(SP_PARM->_slk->attr)))); - SetPair(SP_PARM->_slk->attr, color_pair_number); - TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP_PARM->_slk->attr)))); - code = OK; - } - returnCode(code); -} - -#if NCURSES_SP_FUNCS NCURSES_EXPORT(int) slk_color(short color_pair_number) { - return NCURSES_SP_NAME(slk_color) (CURRENT_SCREEN, color_pair_number); + T((T_CALLED("slk_color(%d)"), color_pair_number)); + + if (SP != 0 && SP->_slk != 0 && + color_pair_number >= 0 && color_pair_number < COLOR_PAIRS) { + TR(TRACE_ATTRS, ("... current is %s", _tracech_t(CHREF(SP->_slk->attr)))); + SetPair(SP->_slk->attr, color_pair_number); + TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr)))); + returnCode(OK); + } else + returnCode(ERR); } -#endif diff --git a/ncurses/base/lib_slkinit.c b/ncurses/base/lib_slkinit.c index 9cbdfea98430..c440109b34e6 100644 --- a/ncurses/base/lib_slkinit.c +++ b/ncurses/base/lib_slkinit.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -30,7 +30,6 @@ * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -40,41 +39,17 @@ */ #include -MODULE_ID("$Id: lib_slkinit.c,v 1.13 2009/10/31 00:10:46 tom Exp $") - -#ifdef USE_SP_RIPOFF -#define SoftkeyFormat SP_PARM->slk_format -#else -#define SoftkeyFormat _nc_globals.slk_format -#endif +MODULE_ID("$Id: lib_slkinit.c,v 1.7 2008/01/12 20:23:39 tom Exp $") NCURSES_EXPORT(int) -NCURSES_SP_NAME(slk_init) (NCURSES_SP_DCLx int format) +slk_init(int format) { int code = ERR; - START_TRACE(); - T((T_CALLED("slk_init(%p,%d)"), (void *) SP_PARM, format)); - - if (format >= 0 - && format <= 3 -#ifdef USE_SP_RIPOFF - && SP_PARM - && SP_PARM->_prescreen -#endif - && !SoftkeyFormat) { - SoftkeyFormat = 1 + format; - code = NCURSES_SP_NAME(_nc_ripoffline) (NCURSES_SP_ARGx - -SLK_LINES(SoftkeyFormat), - _nc_slk_initialize); + T((T_CALLED("slk_init(%d)"), format)); + if (format >= 0 && format <= 3 && !_nc_globals.slk_format) { + _nc_globals.slk_format = 1 + format; + code = _nc_ripoffline(-SLK_LINES(_nc_globals.slk_format), _nc_slk_initialize); } returnCode(code); } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -slk_init(int format) -{ - return NCURSES_SP_NAME(slk_init) (CURRENT_SCREEN_PRE, format); -} -#endif diff --git a/ncurses/base/lib_slklab.c b/ncurses/base/lib_slklab.c index d0b2a230796a..42bb4ac1425d 100644 --- a/ncurses/base/lib_slklab.c +++ b/ncurses/base/lib_slklab.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -29,8 +29,6 @@ /**************************************************************************** * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * - * and: Juergen Pfeifer, 1998,2009 * - * and: Thomas E. Dickey 1998-on * ****************************************************************************/ /* @@ -40,22 +38,14 @@ */ #include -MODULE_ID("$Id: lib_slklab.c,v 1.10 2009/10/24 22:12:21 tom Exp $") +MODULE_ID("$Id: lib_slklab.c,v 1.7 2003/03/29 22:53:48 tom Exp $") NCURSES_EXPORT(char *) -NCURSES_SP_NAME(slk_label) (NCURSES_SP_DCLx int n) +slk_label(int n) { - T((T_CALLED("slk_label(%p,%d)"), (void *) SP_PARM, n)); + T((T_CALLED("slk_label(%d)"), n)); - if (SP_PARM == 0 || SP_PARM->_slk == 0 || n < 1 || n > SP_PARM->_slk->labcnt) + if (SP == NULL || SP->_slk == NULL || n < 1 || n > SP->_slk->labcnt) returnPtr(0); - returnPtr(SP_PARM->_slk->ent[n - 1].ent_text); -} - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(char *) -slk_label(int n) -{ - return NCURSES_SP_NAME(slk_label) (CURRENT_SCREEN, n); + returnPtr(SP->_slk->ent[n - 1].ent_text); } -#endif diff --git a/ncurses/base/lib_slkrefr.c b/ncurses/base/lib_slkrefr.c index b06bf8d7f802..cb1beba0e2a1 100644 --- a/ncurses/base/lib_slkrefr.c +++ b/ncurses/base/lib_slkrefr.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -38,18 +38,9 @@ * Write SLK window to the (virtual) screen. */ #include +#include /* num_labels, label_*, plab_norm */ -#ifndef CUR -#define CUR SP_TERMTYPE -#endif - -MODULE_ID("$Id: lib_slkrefr.c,v 1.26 2010/05/01 19:17:28 tom Exp $") - -#ifdef USE_TERM_DRIVER -#define NumLabels InfoOf(SP_PARM).numlabels -#else -#define NumLabels num_labels -#endif +MODULE_ID("$Id: lib_slkrefr.c,v 1.17 2008/09/27 14:07:53 juergen Exp $") /* * Paint the info line for the PC style SLK emulation. @@ -62,7 +53,7 @@ slk_paint_info(WINDOW *win) if (win && sp && (sp->slk_format == 4)) { int i; - (void) mvwhline(win, 0, 0, 0, getmaxx(win)); + mvwhline(win, 0, 0, 0, getmaxx(win)); wmove(win, 0, 0); for (i = 0; i < sp->_slk->maxlab; i++) { @@ -75,47 +66,31 @@ slk_paint_info(WINDOW *win) * Write the soft labels to the soft-key window. */ static void -slk_intern_refresh(SCREEN *sp) +slk_intern_refresh(SLK * slk) { int i; - int fmt; - SLK *slk; - int numlab; - - if (sp == 0) - return; - - slk = sp->_slk; - fmt = sp->slk_format; - numlab = NumLabels; - - if (slk->hidden) - return; + int fmt = SP->slk_format; for (i = 0; i < slk->labcnt; i++) { if (slk->dirty || slk->ent[i].dirty) { if (slk->ent[i].visible) { - if (numlab > 0 && SLK_STDFMT(fmt)) { -#ifdef USE_TERM_DRIVER - CallDriver_2(sp, hwlabel, i + 1, slk->ent[i].form_text); -#else + if (num_labels > 0 && SLK_STDFMT(fmt)) { if (i < num_labels) { TPUTS_TRACE("plab_norm"); putp(TPARM_2(plab_norm, i + 1, slk->ent[i].form_text)); } -#endif } else { if (fmt == 4) slk_paint_info(slk->win); wmove(slk->win, SLK_LINES(fmt) - 1, slk->ent[i].ent_x); - if (sp->_slk) { - (void) wattrset(slk->win, AttrOf(sp->_slk->attr)); + if (SP->_slk) { + wattrset(slk->win, AttrOf(SP->_slk->attr)); } waddstr(slk->win, slk->ent[i].form_text); /* if we simulate SLK's, it's looking much more natural to use the current ATTRIBUTE also for the label window */ - (void) wattrset(slk->win, WINDOW_ATTRS(StdScreen(sp))); + wattrset(slk->win, WINDOW_ATTRS(stdscr)); } } slk->ent[i].dirty = FALSE; @@ -123,10 +98,7 @@ slk_intern_refresh(SCREEN *sp) } slk->dirty = FALSE; - if (numlab > 0) { -#ifdef USE_TERM_DRIVER - CallDriver_1(sp, hwlabelOnOff, slk->hidden ? FALSE : TRUE); -#else + if (num_labels > 0) { if (slk->hidden) { TPUTS_TRACE("label_off"); putp(label_off); @@ -134,7 +106,6 @@ slk_intern_refresh(SCREEN *sp) TPUTS_TRACE("label_on"); putp(label_on); } -#endif } } @@ -142,48 +113,32 @@ slk_intern_refresh(SCREEN *sp) * Refresh the soft labels. */ NCURSES_EXPORT(int) -NCURSES_SP_NAME(slk_noutrefresh) (NCURSES_SP_DCL0) +slk_noutrefresh(void) { - T((T_CALLED("slk_noutrefresh(%p)"), (void *) SP_PARM)); + T((T_CALLED("slk_noutrefresh()"))); - if (SP_PARM == 0 || SP_PARM->_slk == 0) + if (SP == NULL || SP->_slk == NULL) returnCode(ERR); - if (SP_PARM->_slk->hidden) + if (SP->_slk->hidden) returnCode(OK); - slk_intern_refresh(SP_PARM); + slk_intern_refresh(SP->_slk); - returnCode(wnoutrefresh(SP_PARM->_slk->win)); + returnCode(wnoutrefresh(SP->_slk->win)); } -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -slk_noutrefresh(void) -{ - return NCURSES_SP_NAME(slk_noutrefresh) (CURRENT_SCREEN); -} -#endif - /* * Refresh the soft labels. */ NCURSES_EXPORT(int) -NCURSES_SP_NAME(slk_refresh) (NCURSES_SP_DCL0) +slk_refresh(void) { - T((T_CALLED("slk_refresh(%p)"), (void *) SP_PARM)); + T((T_CALLED("slk_refresh()"))); - if (SP_PARM == 0 || SP_PARM->_slk == 0) + if (SP == NULL || SP->_slk == NULL) returnCode(ERR); - if (SP_PARM->_slk->hidden) + if (SP->_slk->hidden) returnCode(OK); - slk_intern_refresh(SP_PARM); - - returnCode(wrefresh(SP_PARM->_slk->win)); -} + slk_intern_refresh(SP->_slk); -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -slk_refresh(void) -{ - return NCURSES_SP_NAME(slk_refresh) (CURRENT_SCREEN); + returnCode(wrefresh(SP->_slk->win)); } -#endif diff --git a/ncurses/base/lib_slkset.c b/ncurses/base/lib_slkset.c index 91483f103b23..e19f88e60ac4 100644 --- a/ncurses/base/lib_slkset.c +++ b/ncurses/base/lib_slkset.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -44,10 +44,10 @@ #endif #endif -MODULE_ID("$Id: lib_slkset.c,v 1.21 2010/12/25 23:43:58 tom Exp $") +MODULE_ID("$Id: lib_slkset.c,v 1.17 2007/10/13 20:08:46 tom Exp $") NCURSES_EXPORT(int) -NCURSES_SP_NAME(slk_set) (NCURSES_SP_DCLx int i, const char *astr, int format) +slk_set(int i, const char *astr, int format) { SLK *slk; int offset; @@ -57,20 +57,20 @@ NCURSES_SP_NAME(slk_set) (NCURSES_SP_DCLx int i, const char *astr, int format) const char *str = astr; const char *p; - T((T_CALLED("slk_set(%p, %d, \"%s\", %d)"), (void *) SP_PARM, i, str, format)); + T((T_CALLED("slk_set(%d, \"%s\", %d)"), i, str, format)); - if (SP_PARM == 0 - || (slk = SP_PARM->_slk) == 0 + if (SP == 0 + || (slk = SP->_slk) == 0 || i < 1 || i > slk->labcnt || format < 0 || format > 2) returnCode(ERR); - if (str == 0) + if (str == NULL) str = ""; --i; /* Adjust numbering of labels */ - limit = MAX_SKEY_LEN(SP_PARM->slk_format); + limit = MAX_SKEY_LEN(SP->slk_format); while (isspace(UChar(*str))) str++; /* skip over leading spaces */ p = str; @@ -94,12 +94,12 @@ NCURSES_SP_NAME(slk_set) (NCURSES_SP_DCLx int i, const char *astr, int format) numcols += wcwidth(wc); p += need; } - numchrs = (int) (p - str); + numchrs = (p - str); #else while (isprint(UChar(*p))) p++; /* The first non-print stops */ - numcols = (int) (p - str); + numcols = (p - str); if (numcols > limit) numcols = limit; numchrs = numcols; @@ -147,11 +147,3 @@ NCURSES_SP_NAME(slk_set) (NCURSES_SP_DCLx int i, const char *astr, int format) slk->ent[i].dirty = TRUE; returnCode(OK); } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -slk_set(int i, const char *astr, int format) -{ - return NCURSES_SP_NAME(slk_set) (CURRENT_SCREEN, i, astr, format); -} -#endif diff --git a/ncurses/base/lib_slktouch.c b/ncurses/base/lib_slktouch.c index ba77fd2375b7..5eb5df385b82 100644 --- a/ncurses/base/lib_slktouch.c +++ b/ncurses/base/lib_slktouch.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2000,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -27,8 +27,8 @@ ****************************************************************************/ /**************************************************************************** - * Author: Juergen Pfeifer 1997,2009 * - * and: Thomas E. Dickey 1996-on * + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * ****************************************************************************/ /* @@ -38,24 +38,16 @@ */ #include -MODULE_ID("$Id: lib_slktouch.c,v 1.8 2009/10/24 22:12:21 tom Exp $") +MODULE_ID("$Id: lib_slktouch.c,v 1.5 2000/12/10 02:43:27 tom Exp $") NCURSES_EXPORT(int) -NCURSES_SP_NAME(slk_touch) (NCURSES_SP_DCL0) +slk_touch(void) { - T((T_CALLED("slk_touch(%p)"), (void *) SP_PARM)); + T((T_CALLED("slk_touch()"))); - if (SP_PARM == 0 || SP_PARM->_slk == 0) + if (SP == NULL || SP->_slk == NULL) returnCode(ERR); - SP_PARM->_slk->dirty = TRUE; + SP->_slk->dirty = TRUE; returnCode(OK); } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -slk_touch(void) -{ - return NCURSES_SP_NAME(slk_touch) (CURRENT_SCREEN); -} -#endif diff --git a/ncurses/base/lib_touch.c b/ncurses/base/lib_touch.c index 8023c7058027..2ac21f2e0d1f 100644 --- a/ncurses/base/lib_touch.c +++ b/ncurses/base/lib_touch.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -43,12 +43,12 @@ #include -MODULE_ID("$Id: lib_touch.c,v 1.11 2010/12/19 01:22:58 tom Exp $") +MODULE_ID("$Id: lib_touch.c,v 1.9 2000/12/10 02:43:27 tom Exp $") NCURSES_EXPORT(bool) is_linetouched(WINDOW *win, int line) { - T((T_CALLED("is_linetouched(%p,%d)"), (void *) win, line)); + T((T_CALLED("is_linetouched(%p,%d)"), win, line)); /* XSI doesn't define any error */ if (!win || (line > win->_maxy) || (line < 0)) @@ -62,7 +62,7 @@ is_wintouched(WINDOW *win) { int i; - T((T_CALLED("is_wintouched(%p)"), (void *) win)); + T((T_CALLED("is_wintouched(%p)"), win)); if (win) for (i = 0; i <= win->_maxy; i++) @@ -76,7 +76,7 @@ wtouchln(WINDOW *win, int y, int n, int changed) { int i; - T((T_CALLED("wtouchln(%p,%d,%d,%d)"), (void *) win, y, n, changed)); + T((T_CALLED("wtouchln(%p,%d,%d,%d)"), win, y, n, changed)); if (!win || (n < 0) || (y < 0) || (y > win->_maxy)) returnCode(ERR); @@ -85,9 +85,7 @@ wtouchln(WINDOW *win, int y, int n, int changed) if (i > win->_maxy) break; win->_line[i].firstchar = changed ? 0 : _NOCHANGE; - win->_line[i].lastchar = (NCURSES_SIZE_T) (changed - ? win->_maxx - : _NOCHANGE); + win->_line[i].lastchar = changed ? win->_maxx : _NOCHANGE; } returnCode(OK); } diff --git a/ncurses/base/lib_ungetch.c b/ncurses/base/lib_ungetch.c index 63a14cff7594..8742f867fa94 100644 --- a/ncurses/base/lib_ungetch.c +++ b/ncurses/base/lib_ungetch.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -30,7 +30,6 @@ * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -42,7 +41,7 @@ #include -MODULE_ID("$Id: lib_ungetch.c,v 1.14 2009/10/24 22:12:21 tom Exp $") +MODULE_ID("$Id: lib_ungetch.c,v 1.11 2008/05/31 16:44:54 tom Exp $") #include @@ -58,12 +57,10 @@ _nc_fifo_dump(SCREEN *sp) #endif /* TRACE */ NCURSES_EXPORT(int) -safe_ungetch(SCREEN *sp, int ch) +_nc_ungetch(SCREEN *sp, int ch) { int rc = ERR; - T((T_CALLED("ungetch(%p,%s)"), (void *) sp, _nc_tracechar(sp, ch))); - if (tail != -1) { if (head == -1) { head = 0; @@ -82,11 +79,12 @@ safe_ungetch(SCREEN *sp, int ch) #endif rc = OK; } - returnCode(rc); + return rc; } NCURSES_EXPORT(int) ungetch(int ch) { - return safe_ungetch(CURRENT_SCREEN, ch); + T((T_CALLED("ungetch(%s)"), _nc_tracechar(SP, ch))); + returnCode(_nc_ungetch(SP, ch)); } diff --git a/ncurses/base/lib_vline.c b/ncurses/base/lib_vline.c index 2f3148eca77c..1a2537e7eb6a 100644 --- a/ncurses/base/lib_vline.c +++ b/ncurses/base/lib_vline.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -40,16 +40,16 @@ #include -MODULE_ID("$Id: lib_vline.c,v 1.12 2010/12/19 01:22:58 tom Exp $") +MODULE_ID("$Id: lib_vline.c,v 1.10 2006/03/11 21:52:19 tom Exp $") NCURSES_EXPORT(int) wvline(WINDOW *win, chtype ch, int n) { int code = ERR; - int row, col; - int end; + NCURSES_SIZE_T row, col; + NCURSES_SIZE_T end; - T((T_CALLED("wvline(%p,%s,%d)"), (void *) win, _tracechtype(ch), n)); + T((T_CALLED("wvline(%p,%s,%d)"), win, _tracechtype(ch), n)); if (win) { NCURSES_CH_T wch; diff --git a/ncurses/base/lib_wattroff.c b/ncurses/base/lib_wattroff.c index fff0b395f1d8..bf2020e06027 100644 --- a/ncurses/base/lib_wattroff.c +++ b/ncurses/base/lib_wattroff.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -42,12 +42,12 @@ #include #include -MODULE_ID("$Id: lib_wattroff.c,v 1.10 2009/10/24 22:36:08 tom Exp $") +MODULE_ID("$Id: lib_wattroff.c,v 1.9 2006/05/27 19:30:33 tom Exp $") NCURSES_EXPORT(int) wattr_off(WINDOW *win, attr_t at, void *opts GCC_UNUSED) { - T((T_CALLED("wattr_off(%p,%s)"), (void *) win, _traceattr(at))); + T((T_CALLED("wattr_off(%p,%s)"), win, _traceattr(at))); if (win) { T(("... current %s (%d)", _traceattr(WINDOW_ATTRS(win)), diff --git a/ncurses/base/lib_wattron.c b/ncurses/base/lib_wattron.c index 3806285e2a38..2e17d965e94a 100644 --- a/ncurses/base/lib_wattron.c +++ b/ncurses/base/lib_wattron.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -42,12 +42,12 @@ #include #include -MODULE_ID("$Id: lib_wattron.c,v 1.11 2010/03/31 23:38:02 tom Exp $") +MODULE_ID("$Id: lib_wattron.c,v 1.9 2006/05/27 19:30:46 tom Exp $") NCURSES_EXPORT(int) wattr_on(WINDOW *win, attr_t at, void *opts GCC_UNUSED) { - T((T_CALLED("wattr_on(%p,%s)"), (void *) win, _traceattr(at))); + T((T_CALLED("wattr_on(%p,%s)"), win, _traceattr(at))); if (win != 0) { T(("... current %s (%d)", _traceattr(WINDOW_ATTRS(win)), @@ -55,7 +55,7 @@ wattr_on(WINDOW *win, attr_t at, void *opts GCC_UNUSED) if_EXT_COLORS({ if (at & A_COLOR) - win->_color = PairNumber(at); + win->_color = PAIR_NUMBER(at); }); toggle_attr_on(WINDOW_ATTRS(win), at); returnCode(OK); diff --git a/ncurses/base/lib_winch.c b/ncurses/base/lib_winch.c index 7e75f85bf390..18da9c594945 100644 --- a/ncurses/base/lib_winch.c +++ b/ncurses/base/lib_winch.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -39,16 +39,16 @@ #include -MODULE_ID("$Id: lib_winch.c,v 1.8 2010/12/19 01:22:58 tom Exp $") +MODULE_ID("$Id: lib_winch.c,v 1.5 2001/06/02 23:42:08 skimo Exp $") NCURSES_EXPORT(chtype) winch(WINDOW *win) { - T((T_CALLED("winch(%p)"), (void *) win)); + T((T_CALLED("winch(%p)"), win)); if (win != 0) { - returnChtype((chtype) CharOf(win->_line[win->_cury].text[win->_curx]) - | AttrOf(win->_line[win->_cury].text[win->_curx])); + returnChar(CharOf(win->_line[win->_cury].text[win->_curx]) | + AttrOf(win->_line[win->_cury].text[win->_curx])); } else { - returnChtype(0); + returnChar(0); } } diff --git a/ncurses/base/lib_window.c b/ncurses/base/lib_window.c index 4baa36943c44..a3236e206a37 100644 --- a/ncurses/base/lib_window.c +++ b/ncurses/base/lib_window.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -39,7 +39,7 @@ #include -MODULE_ID("$Id: lib_window.c,v 1.29 2010/12/19 01:47:22 tom Exp $") +MODULE_ID("$Id: lib_window.c,v 1.25 2008/06/07 14:12:56 tom Exp $") NCURSES_EXPORT(void) _nc_synchook(WINDOW *win) @@ -57,30 +57,32 @@ mvderwin(WINDOW *win, int y, int x) { WINDOW *orig; int i; - int rc = ERR; - T((T_CALLED("mvderwin(%p,%d,%d)"), (void *) win, y, x)); + T((T_CALLED("mvderwin(%p,%d,%d)"), win, y, x)); - if (win != 0 - && (orig = win->_parent) != 0 - && (x >= 0 && y >= 0) - && (x + getmaxx(win) <= getmaxx(orig)) - && (y + getmaxy(win) <= getmaxy(orig))) { - wsyncup(win); - win->_parx = x; - win->_pary = y; - for (i = 0; i < getmaxy(win); i++) - win->_line[i].text = &(orig->_line[y++].text[x]); - rc = OK; - } - returnCode(rc); + if (win && (orig = win->_parent)) { + if (win->_parx == x && win->_pary == y) + returnCode(OK); + if (x < 0 || y < 0) + returnCode(ERR); + if ((x + getmaxx(win) > getmaxx(orig)) || + (y + getmaxy(win) > getmaxy(orig))) + returnCode(ERR); + } else + returnCode(ERR); + wsyncup(win); + win->_parx = x; + win->_pary = y; + for (i = 0; i < getmaxy(win); i++) + win->_line[i].text = &(orig->_line[y++].text[x]); + returnCode(OK); } NCURSES_EXPORT(int) syncok(WINDOW *win, bool bf) /* enable/disable automatic wsyncup() on each change to window */ { - T((T_CALLED("syncok(%p,%d)"), (void *) win, bf)); + T((T_CALLED("syncok(%p,%d)"), win, bf)); if (win) { win->_sync = bf; @@ -96,7 +98,7 @@ wsyncup(WINDOW *win) { WINDOW *wp; - T((T_CALLED("wsyncup(%p)"), (void *) win)); + T((T_CALLED("wsyncup(%p)"), win)); if (win && win->_parent) { for (wp = win; wp->_parent; wp = wp->_parent) { int y; @@ -126,7 +128,7 @@ wsyncdown(WINDOW *win) /* mark changed every cell in win that is changed in any of its ancestors */ /* Rewritten by J. Pfeifer, 1-Apr-96 (don't even think that...) */ { - T((T_CALLED("wsyncdown(%p)"), (void *) win)); + T((T_CALLED("wsyncdown(%p)"), win)); if (win && win->_parent) { WINDOW *pp = win->_parent; @@ -165,7 +167,7 @@ wcursyncup(WINDOW *win) { WINDOW *wp; - T((T_CALLED("wcursyncup(%p)"), (void *) win)); + T((T_CALLED("wcursyncup(%p)"), win)); for (wp = win; wp && wp->_parent; wp = wp->_parent) { wmove(wp->_parent, wp->_pary + wp->_cury, wp->_parx + wp->_curx); } @@ -180,23 +182,19 @@ dupwin(WINDOW *win) size_t linesize; int i; - T((T_CALLED("dupwin(%p)"), (void *) win)); + T((T_CALLED("dupwin(%p)"), win)); if (win != 0) { -#if NCURSES_SP_FUNCS - SCREEN *sp = _nc_screen_of(win); -#endif + _nc_lock_global(curses); if (win->_flags & _ISPAD) { - nwin = NCURSES_SP_NAME(newpad) (NCURSES_SP_ARGx - win->_maxy + 1, - win->_maxx + 1); + nwin = newpad(win->_maxy + 1, + win->_maxx + 1); } else { - nwin = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx - win->_maxy + 1, - win->_maxx + 1, - win->_begy, - win->_begx); + nwin = newwin(win->_maxy + 1, + win->_maxx + 1, + win->_begy, + win->_begx); } if (nwin != 0) { @@ -239,7 +237,7 @@ dupwin(WINDOW *win) if (win->_flags & _ISPAD) nwin->_pad = win->_pad; - linesize = (unsigned) (win->_maxx + 1) * sizeof(NCURSES_CH_T); + linesize = (win->_maxx + 1) * sizeof(NCURSES_CH_T); for (i = 0; i <= nwin->_maxy; i++) { memcpy(nwin->_line[i].text, win->_line[i].text, linesize); nwin->_line[i].firstchar = win->_line[i].firstchar; diff --git a/ncurses/base/nc_panel.c b/ncurses/base/nc_panel.c index 69b10bc0c662..59bfbbe86ef6 100644 --- a/ncurses/base/nc_panel.c +++ b/ncurses/base/nc_panel.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2000,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -32,22 +32,10 @@ #include -MODULE_ID("$Id: nc_panel.c,v 1.5 2009/04/11 21:05:10 tom Exp $") +MODULE_ID("$Id: nc_panel.c,v 1.4 2000/12/10 02:43:28 tom Exp $") -NCURSES_EXPORT(struct panelhook *) -NCURSES_SP_NAME(_nc_panelhook) (NCURSES_SP_DCL0) -{ - return (SP_PARM - ? &(SP_PARM->_panelHook) - : (CURRENT_SCREEN - ? &(CURRENT_SCREEN->_panelHook) - : 0)); -} - -#if NCURSES_SP_FUNCS NCURSES_EXPORT(struct panelhook *) _nc_panelhook(void) { - return NCURSES_SP_NAME(_nc_panelhook) (CURRENT_SCREEN); + return (SP ? &(SP->_panelHook) : NULL); } -#endif diff --git a/ncurses/base/resizeterm.c b/ncurses/base/resizeterm.c index 3f1d36e89d7a..a94cfc3aaaa8 100644 --- a/ncurses/base/resizeterm.c +++ b/ncurses/base/resizeterm.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -28,7 +28,6 @@ /**************************************************************************** * Author: Thomas E. Dickey * - * and: Juergen Pfeifer * ****************************************************************************/ /* @@ -40,12 +39,11 @@ */ #include +#include -#ifndef CUR -#define CUR SP_TERMTYPE -#endif +MODULE_ID("$Id: resizeterm.c,v 1.34 2008/06/07 13:58:40 tom Exp $") -MODULE_ID("$Id: resizeterm.c,v 1.43 2011/01/10 01:34:49 tom Exp $") +#define stolen_lines (screen_lines - SP->_lines_avail) /* * If we're trying to be reentrant, do not want any local statics. @@ -66,23 +64,18 @@ static int current_cols; static void show_window_sizes(const char *name) { - SCREEN *sp; WINDOWLIST *wp; _nc_lock_global(curses); - for (each_screen(sp)) { - _tracef("%s resizing: %p: %2d x %2d (%2d x %2d)", name, (void *) sp, - *(ptrLines(sp)), - *(ptrCols(sp)), - screen_lines(sp), screen_columns(sp)); - for (each_window(sp, wp)) { - _tracef(" window %p is %2ld x %2ld at %2ld,%2ld", - (void *) &(wp->win), - (long) wp->win._maxy + 1, - (long) wp->win._maxx + 1, - (long) wp->win._begy, - (long) wp->win._begx); - } + _tracef("%s resizing: %2d x %2d (%2d x %2d)", name, LINES, COLS, + screen_lines, screen_columns); + for (each_window(wp)) { + _tracef(" window %p is %2ld x %2ld at %2ld,%2ld", + &(wp->win), + (long) wp->win._maxy + 1, + (long) wp->win._maxx + 1, + (long) wp->win._begy, + (long) wp->win._begx); } _nc_unlock_global(curses); } @@ -93,23 +86,15 @@ show_window_sizes(const char *name) * structure's size. */ NCURSES_EXPORT(bool) -NCURSES_SP_NAME(is_term_resized) (NCURSES_SP_DCLx int ToLines, int ToCols) +is_term_resized(int ToLines, int ToCols) { - T((T_CALLED("is_term_resized(%p, %d, %d)"), (void *) SP_PARM, ToLines, ToCols)); + T((T_CALLED("is_term_resized(%d, %d)"), ToLines, ToCols)); returnCode(ToLines > 0 && ToCols > 0 - && (ToLines != screen_lines(SP_PARM) - || ToCols != screen_columns(SP_PARM))); + && (ToLines != screen_lines + || ToCols != screen_columns)); } -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(bool) -is_term_resized(int ToLines, int ToCols) -{ - return NCURSES_SP_NAME(is_term_resized) (CURRENT_SCREEN, ToLines, ToCols); -} -#endif - /* */ static ripoff_t * @@ -119,9 +104,6 @@ ripped_window(WINDOW *win) ripoff_t *rop; if (win != 0) { -#ifdef USE_SP_RIPOFF - SCREEN *sp = _nc_screen_of(win); -#endif for (each_ripoff(rop)) { if (rop->win == win && rop->line != 0) { result = rop; @@ -143,9 +125,6 @@ ripped_bottom(WINDOW *win) ripoff_t *rop; if (win != 0) { -#ifdef USE_SP_RIPOFF - SCREEN *sp = _nc_screen_of(win); -#endif for (each_ripoff(rop)) { if (rop->line < 0) { result -= rop->line; @@ -167,12 +146,9 @@ child_depth(WINDOW *cmp) int depth = 0; if (cmp != 0) { -#ifdef USE_SP_WINDOWLIST - SCREEN *sp = _nc_screen_of(cmp); -#endif WINDOWLIST *wp; - for (each_window(sp, wp)) { + for (each_window(wp)) { WINDOW *tst = &(wp->win); if (tst->_parent == cmp) { depth = 1 + child_depth(tst); @@ -208,13 +184,13 @@ static int adjust_window(WINDOW *win, int ToLines, int ToCols, int stolen EXTRA_DCLS) { int result; - int bottom = CurLines + _nc_screen_of(win)->_topstolen - stolen; + int bottom = CurLines + SP->_topstolen - stolen; int myLines = win->_maxy + 1; int myCols = win->_maxx + 1; ripoff_t *rop = ripped_window(win); T((T_CALLED("adjust_window(%p,%d,%d)%s depth %d/%d currently %ldx%ld at %ld,%ld"), - (void *) win, ToLines, ToCols, + win, ToLines, ToCols, (rop != 0) ? " (rip)" : "", parent_depth(win), child_depth(win), @@ -226,19 +202,13 @@ adjust_window(WINDOW *win, int ToLines, int ToCols, int stolen EXTRA_DCLS) * If it is a ripped-off window at the bottom of the screen, simply * move it to the same relative position. */ - win->_begy = (NCURSES_SIZE_T) (ToLines - ripped_bottom(win) - 0 - win->_yoffset); - if (rop->hook == _nc_slk_initialize) - _nc_format_slks( -#if NCURSES_SP_FUNCS - _nc_screen_of(win), -#endif - ToCols); + win->_begy = ToLines - ripped_bottom(win) - 0 - win->_yoffset; } else if (win->_begy >= bottom) { /* * If it is below the bottom of the new screen, move up by the same * amount that the screen shrank. */ - win->_begy = (NCURSES_SIZE_T) (win->_begy + (ToLines - CurLines)); + win->_begy += (ToLines - CurLines); } else { if (myLines == (CurLines - stolen) && ToLines != CurLines) { @@ -269,19 +239,19 @@ adjust_window(WINDOW *win, int ToLines, int ToCols, int stolen EXTRA_DCLS) * children, decrease those to fit, then decrease the containing window, etc. */ static int -decrease_size(NCURSES_SP_DCLx int ToLines, int ToCols, int stolen EXTRA_DCLS) +decrease_size(int ToLines, int ToCols, int stolen EXTRA_DCLS) { bool found; int depth = 0; WINDOWLIST *wp; - T((T_CALLED("decrease_size(%p, %d, %d)"), (void *) SP_PARM, ToLines, ToCols)); + T((T_CALLED("decrease_size(%d, %d)"), ToLines, ToCols)); do { found = FALSE; TR(TRACE_UPDATE, ("decreasing size of windows to %dx%d, depth=%d", ToLines, ToCols, depth)); - for (each_window(SP_PARM, wp)) { + for (each_window(wp)) { WINDOW *win = &(wp->win); if (!(win->_flags & _ISPAD)) { @@ -303,19 +273,19 @@ decrease_size(NCURSES_SP_DCLx int ToLines, int ToCols, int stolen EXTRA_DCLS) * parent, increase those to fit, then increase the contained window, etc. */ static int -increase_size(NCURSES_SP_DCLx int ToLines, int ToCols, int stolen EXTRA_DCLS) +increase_size(int ToLines, int ToCols, int stolen EXTRA_DCLS) { bool found; int depth = 0; WINDOWLIST *wp; - T((T_CALLED("increase_size(%p, %d, %d)"), (void *) SP_PARM, ToLines, ToCols)); + T((T_CALLED("increase_size(%d, %d)"), ToLines, ToCols)); do { found = FALSE; TR(TRACE_UPDATE, ("increasing size of windows to %dx%d, depth=%d", ToLines, ToCols, depth)); - for (each_window(SP_PARM, wp)) { + for (each_window(wp)) { WINDOW *win = &(wp->win); if (!(win->_flags & _ISPAD)) { @@ -337,26 +307,25 @@ increase_size(NCURSES_SP_DCLx int ToLines, int ToCols, int stolen EXTRA_DCLS) * such as ungetch(). */ NCURSES_EXPORT(int) -NCURSES_SP_NAME(resize_term) (NCURSES_SP_DCLx int ToLines, int ToCols) +resize_term(int ToLines, int ToCols) { int result = OK EXTRA_ARGS; int was_stolen; - T((T_CALLED("resize_term(%p,%d,%d) old(%d,%d)"), - (void *) SP_PARM, ToLines, ToCols, - (SP_PARM == 0) ? -1 : screen_lines(SP_PARM), - (SP_PARM == 0) ? -1 : screen_columns(SP_PARM))); + T((T_CALLED("resize_term(%d,%d) old(%d,%d)"), + ToLines, ToCols, + screen_lines, screen_columns)); - if (SP_PARM == 0) { + if (SP == 0) { returnCode(ERR); } - _nc_nonsp_lock_global(curses); + _nc_lock_global(curses); - was_stolen = (screen_lines(SP_PARM) - SP_PARM->_lines_avail); - if (NCURSES_SP_NAME(is_term_resized) (NCURSES_SP_ARGx ToLines, ToCols)) { - int myLines = CurLines = screen_lines(SP_PARM); - int myCols = CurCols = screen_columns(SP_PARM); + was_stolen = (screen_lines - SP->_lines_avail); + if (is_term_resized(ToLines, ToCols)) { + int myLines = CurLines = screen_lines; + int myCols = CurCols = screen_columns; #ifdef TRACE if (USE_TRACEF(TRACE_UPDATE)) { @@ -364,42 +333,33 @@ NCURSES_SP_NAME(resize_term) (NCURSES_SP_DCLx int ToLines, int ToCols) _nc_unlock_global(tracef); } #endif - if (ToLines > screen_lines(SP_PARM)) { - increase_size(NCURSES_SP_ARGx - myLines = ToLines, myCols, was_stolen EXTRA_ARGS); + if (ToLines > screen_lines) { + increase_size(myLines = ToLines, myCols, was_stolen EXTRA_ARGS); CurLines = myLines; CurCols = myCols; } - if (ToCols > screen_columns(SP_PARM)) { - increase_size(NCURSES_SP_ARGx - myLines, myCols = ToCols, was_stolen EXTRA_ARGS); + if (ToCols > screen_columns) { + increase_size(myLines, myCols = ToCols, was_stolen EXTRA_ARGS); CurLines = myLines; CurCols = myCols; } if (ToLines < myLines || ToCols < myCols) { - decrease_size(NCURSES_SP_ARGx ToLines, ToCols, was_stolen EXTRA_ARGS); + decrease_size(ToLines, ToCols, was_stolen EXTRA_ARGS); } - screen_lines(SP_PARM) = (NCURSES_SIZE_T) ToLines; - screen_columns(SP_PARM) = (NCURSES_SIZE_T) ToCols; + screen_lines = lines = ToLines; + screen_columns = columns = ToCols; -#ifdef USE_TERM_DRIVER - CallDriver_2(SP_PARM, setsize, ToLines, ToCols); -#else - lines = (NCURSES_SIZE_T) ToLines; - columns = (NCURSES_SIZE_T) ToCols; -#endif + SP->_lines_avail = lines - was_stolen; - SP_PARM->_lines_avail = (NCURSES_SIZE_T) (ToLines - was_stolen); - - if (SP_PARM->oldhash) { - FreeAndNull(SP_PARM->oldhash); + if (SP->oldhash) { + FreeAndNull(SP->oldhash); } - if (SP_PARM->newhash) { - FreeAndNull(SP_PARM->newhash); + if (SP->newhash) { + FreeAndNull(SP->newhash); } #ifdef TRACE if (USE_TRACEF(TRACE_UPDATE)) { @@ -418,23 +378,11 @@ NCURSES_SP_NAME(resize_term) (NCURSES_SP_DCLx int ToLines, int ToCols) SET_LINES(ToLines - was_stolen); SET_COLS(ToCols); - _nc_nonsp_unlock_global(curses); + _nc_unlock_global(curses); returnCode(result); } -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -resize_term(int ToLines, int ToCols) -{ - int res = ERR; - _nc_sp_lock_global(curses); - res = NCURSES_SP_NAME(resize_term) (CURRENT_SCREEN, ToLines, ToCols); - _nc_sp_unlock_global(curses); - return (res); -} -#endif - /* * This function reallocates NCURSES window structures. It is invoked in * response to a SIGWINCH interrupt. Other user-defined windows may also need @@ -444,35 +392,34 @@ resize_term(int ToLines, int ToCols) * invoked directly from the signal handler. */ NCURSES_EXPORT(int) -NCURSES_SP_NAME(resizeterm) (NCURSES_SP_DCLx int ToLines, int ToCols) +resizeterm(int ToLines, int ToCols) { int result = ERR; - T((T_CALLED("resizeterm(%p, %d,%d) old(%d,%d)"), - (void *) SP_PARM, ToLines, ToCols, - (SP_PARM == 0) ? -1 : screen_lines(SP_PARM), - (SP_PARM == 0) ? -1 : screen_columns(SP_PARM))); + T((T_CALLED("resizeterm(%d,%d) old(%d,%d)"), + ToLines, ToCols, + screen_lines, screen_columns)); - if (SP_PARM != 0) { + if (SP != 0) { result = OK; - SP_PARM->_sig_winch = FALSE; + SP->_sig_winch = FALSE; - if (NCURSES_SP_NAME(is_term_resized) (NCURSES_SP_ARGx ToLines, ToCols)) { + if (is_term_resized(ToLines, ToCols)) { #if USE_SIGWINCH ripoff_t *rop; - bool slk_visible = (SP_PARM != 0 - && SP_PARM->_slk != 0 - && !(SP_PARM->_slk->hidden)); + bool slk_visible = (SP != 0 + && SP->_slk != 0 + && !(SP->_slk->hidden)); if (slk_visible) { slk_clear(); } #endif - result = NCURSES_SP_NAME(resize_term) (NCURSES_SP_ARGx ToLines, ToCols); + result = resize_term(ToLines, ToCols); #if USE_SIGWINCH - safe_ungetch(SP_PARM, KEY_RESIZE); /* so application can know this */ - clearok(CurScreen(SP_PARM), TRUE); /* screen contents are unknown */ + _nc_ungetch(SP, KEY_RESIZE); /* so application can know this */ + clearok(curscr, TRUE); /* screen contents are unknown */ /* ripped-off lines are a special case: if we did not lengthen * them, we haven't moved them either. repaint them, too. @@ -482,7 +429,7 @@ NCURSES_SP_NAME(resizeterm) (NCURSES_SP_DCLx int ToLines, int ToCols) * not know which are really on top. */ for (each_ripoff(rop)) { - if (rop->win != StdScreen(SP_PARM) + if (rop->win != stdscr && rop->win != 0 && rop->line < 0) { @@ -495,9 +442,10 @@ NCURSES_SP_NAME(resizeterm) (NCURSES_SP_DCLx int ToLines, int ToCols) /* soft-keys are a special case: we _know_ how to repaint them */ if (slk_visible) { - NCURSES_SP_NAME(slk_restore) (NCURSES_SP_ARG); - NCURSES_SP_NAME(slk_touch) (NCURSES_SP_ARG); - NCURSES_SP_NAME(slk_refresh) (NCURSES_SP_ARG); + slk_restore(); + slk_touch(); + + slk_refresh(); } #endif } @@ -505,11 +453,3 @@ NCURSES_SP_NAME(resizeterm) (NCURSES_SP_DCLx int ToLines, int ToCols) returnCode(result); } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(int) -resizeterm(int ToLines, int ToCols) -{ - return NCURSES_SP_NAME(resizeterm) (CURRENT_SCREEN, ToLines, ToCols); -} -#endif diff --git a/ncurses/base/safe_sprintf.c b/ncurses/base/safe_sprintf.c index e73307bac282..8fc5d89dd210 100644 --- a/ncurses/base/safe_sprintf.c +++ b/ncurses/base/safe_sprintf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -33,7 +33,7 @@ #include #include -MODULE_ID("$Id: safe_sprintf.c,v 1.24 2010/06/05 22:22:27 tom Exp $") +MODULE_ID("$Id: safe_sprintf.c,v 1.20 2007/04/21 22:28:06 tom Exp $") #if USE_SAFE_SPRINTF @@ -111,7 +111,7 @@ _nc_printf_length(const char *fmt, va_list ap) } sprintf(fmt_arg, "%d", ival); fmt_len += strlen(fmt_arg); - if ((format = _nc_doalloc(format, fmt_len)) == 0) { + if ((format = realloc(format, fmt_len)) == 0) { return -1; } strcpy(&format[--f], fmt_arg); @@ -214,20 +214,13 @@ _nc_printf_length(const char *fmt, va_list ap) * Wrapper for vsprintf that allocates a buffer big enough to hold the result. */ NCURSES_EXPORT(char *) -NCURSES_SP_NAME(_nc_printf_string) (NCURSES_SP_DCLx - const char *fmt, - va_list ap) +_nc_printf_string(const char *fmt, va_list ap) { char *result = 0; if (fmt != 0) { #if USE_SAFE_SPRINTF - va_list ap2; - int len; - - begin_va_copy(ap2, ap); - len = _nc_printf_length(fmt, ap2); - end_va_copy(ap2); + int len = _nc_printf_length(fmt, ap); if ((int) my_length < len + 1) { my_length = 2 * (len + 1); @@ -244,12 +237,12 @@ NCURSES_SP_NAME(_nc_printf_string) (NCURSES_SP_DCLx #define MyCols _nc_globals.safeprint_cols #define MyRows _nc_globals.safeprint_rows - if (screen_lines(SP_PARM) > MyRows || screen_columns(SP_PARM) > MyCols) { - if (screen_lines(SP_PARM) > MyRows) - MyRows = screen_lines(SP_PARM); - if (screen_columns(SP_PARM) > MyCols) - MyCols = screen_columns(SP_PARM); - my_length = (size_t) (MyRows * (MyCols + 1)) + 1; + if (screen_lines > MyRows || screen_columns > MyCols) { + if (screen_lines > MyRows) + MyRows = screen_lines; + if (screen_columns > MyCols) + MyCols = screen_columns; + my_length = (MyRows * (MyCols + 1)) + 1; my_buffer = typeRealloc(char, my_length, my_buffer); } @@ -269,11 +262,3 @@ NCURSES_SP_NAME(_nc_printf_string) (NCURSES_SP_DCLx } return result; } - -#if NCURSES_SP_FUNCS -NCURSES_EXPORT(char *) -_nc_printf_string(const char *fmt, va_list ap) -{ - return NCURSES_SP_NAME(_nc_printf_string) (CURRENT_SCREEN, fmt, ap); -} -#endif diff --git a/ncurses/base/tries.c b/ncurses/base/tries.c index ad85d229213d..c4263c7e50eb 100644 --- a/ncurses/base/tries.c +++ b/ncurses/base/tries.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -39,7 +39,7 @@ #include -MODULE_ID("$Id: tries.c,v 1.30 2010/08/28 21:08:23 tom Exp $") +MODULE_ID("$Id: tries.c,v 1.27 2008/08/16 19:22:55 tom Exp $") /* * Expand a keycode into the string that it corresponds to, returning null if @@ -72,9 +72,7 @@ _nc_expand_try(TRIES * tree, unsigned code, int *count, size_t len) *((unsigned char *) (result + len)) = 128; #ifdef TRACE if (len == 0 && USE_TRACEF(TRACE_MAXIMUM)) { - _tracef("expand_key %s %s", - _nc_tracechar(CURRENT_SCREEN, (int) code), - _nc_visbuf(result)); + _tracef("expand_key %s %s", _nc_tracechar(SP, code), _nc_visbuf(result)); _nc_unlock_global(tracef); } #endif @@ -89,7 +87,7 @@ _nc_expand_try(TRIES * tree, unsigned code, int *count, size_t len) NCURSES_EXPORT(int) _nc_remove_key(TRIES ** tree, unsigned code) { - T((T_CALLED("_nc_remove_key(%p,%d)"), (void *) tree, code)); + T((T_CALLED("_nc_remove_key(%p,%d)"), tree, code)); if (code == 0) returnCode(FALSE); @@ -121,7 +119,7 @@ _nc_remove_key(TRIES ** tree, unsigned code) NCURSES_EXPORT(int) _nc_remove_string(TRIES ** tree, const char *string) { - T((T_CALLED("_nc_remove_string(%p,%s)"), (void *) tree, _nc_visbuf(string))); + T((T_CALLED("_nc_remove_string(%p,%s)"), tree, _nc_visbuf(string))); if (string == 0 || *string == 0) returnCode(FALSE); diff --git a/ncurses/base/use_window.c b/ncurses/base/use_window.c index 8eb733919848..f6408c37928e 100644 --- a/ncurses/base/use_window.c +++ b/ncurses/base/use_window.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2007-2008,2009 Free Software Foundation, Inc. * + * Copyright (c) 2007,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -32,14 +32,14 @@ #include -MODULE_ID("$Id: use_window.c,v 1.9 2009/10/24 22:40:24 tom Exp $") +MODULE_ID("$Id: use_window.c,v 1.8 2008/06/07 14:13:46 tom Exp $") NCURSES_EXPORT(int) use_window(WINDOW *win, NCURSES_WINDOW_CB func, void *data) { int code = OK; - T((T_CALLED("use_window(%p,%p,%p)"), (void *) win, func, data)); + T((T_CALLED("use_window(%p,%p,%p)"), win, func, data)); _nc_lock_global(curses); code = func(win, data); _nc_unlock_global(curses); diff --git a/ncurses/base/wresize.c b/ncurses/base/wresize.c index 9a6ea500727e..f46085af59fa 100644 --- a/ncurses/base/wresize.c +++ b/ncurses/base/wresize.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -27,13 +27,12 @@ ****************************************************************************/ /**************************************************************************** - * Author: Thomas E. Dickey 1996-on * - * and: Juergen Pfeifer * + * Author: Thomas E. Dickey 1996-2002 * ****************************************************************************/ #include -MODULE_ID("$Id: wresize.c,v 1.34 2010/06/05 22:36:26 tom Exp $") +MODULE_ID("$Id: wresize.c,v 1.29 2008/06/07 13:59:01 tom Exp $") static int cleanup_lines(struct ldat *data, int length) @@ -54,13 +53,10 @@ repair_subwindows(WINDOW *cmp) WINDOWLIST *wp; struct ldat *pline = cmp->_line; int row; -#ifdef USE_SP_WINDOWLIST - SCREEN *sp = _nc_screen_of(cmp); -#endif _nc_lock_global(curses); - for (each_window(SP_PARM, wp)) { + for (each_window(wp)) { WINDOW *tst = &(wp->win); if (tst->_parent == cmp) { @@ -71,9 +67,9 @@ repair_subwindows(WINDOW *cmp) tst->_parx = cmp->_maxx; if (tst->_maxy + tst->_pary > cmp->_maxy) - tst->_maxy = (NCURSES_SIZE_T) (cmp->_maxy - tst->_pary); + tst->_maxy = cmp->_maxy - tst->_pary; if (tst->_maxx + tst->_parx > cmp->_maxx) - tst->_maxx = (NCURSES_SIZE_T) (cmp->_maxx - tst->_parx); + tst->_maxx = cmp->_maxx - tst->_parx; for (row = 0; row <= tst->_maxy; ++row) { tst->_line[row].text = &pline[tst->_pary + row].text[tst->_parx]; @@ -97,7 +93,7 @@ wresize(WINDOW *win, int ToLines, int ToCols) struct ldat *new_lines = 0; #ifdef TRACE - T((T_CALLED("wresize(%p,%d,%d)"), (void *) win, ToLines, ToCols)); + T((T_CALLED("wresize(%p,%d,%d)"), win, ToLines, ToCols)); if (win) { TR(TRACE_UPDATE, ("...beg (%ld, %ld), max(%ld,%ld), reg(%ld,%ld)", (long) win->_begy, (long) win->_begx, @@ -157,8 +153,7 @@ wresize(WINDOW *win, int ToLines, int ToCols) if (!(win->_flags & _SUBWIN)) { if (row <= size_y) { if (ToCols != size_x) { - s = typeMalloc(NCURSES_CH_T, (unsigned) ToCols + 1); - if (s == 0) + if ((s = typeMalloc(NCURSES_CH_T, ToCols + 1)) == 0) returnCode(cleanup_lines(new_lines, row)); for (col = 0; col <= ToCols; ++col) { s[col] = (col <= size_x @@ -169,14 +164,12 @@ wresize(WINDOW *win, int ToLines, int ToCols) s = win->_line[row].text; } } else { - s = typeMalloc(NCURSES_CH_T, (unsigned) ToCols + 1); - if (s == 0) + if ((s = typeMalloc(NCURSES_CH_T, ToCols + 1)) == 0) returnCode(cleanup_lines(new_lines, row)); for (col = 0; col <= ToCols; ++col) s[col] = win->_nc_bkgd; } } else { - assert(pline != 0); s = &pline[win->_pary + row].text[win->_parx]; } @@ -188,11 +181,11 @@ wresize(WINDOW *win, int ToLines, int ToCols) if ((ToCols != size_x) || (row > size_y)) { if (end >= begin) { /* growing */ if (new_lines[row].firstchar < begin) - new_lines[row].firstchar = (NCURSES_SIZE_T) begin; + new_lines[row].firstchar = begin; } else { /* shrinking */ new_lines[row].firstchar = 0; } - new_lines[row].lastchar = (NCURSES_SIZE_T) ToCols; + new_lines[row].lastchar = ToCols; } new_lines[row].text = s; } @@ -219,8 +212,8 @@ wresize(WINDOW *win, int ToLines, int ToCols) * Finally, adjust the parameters showing screen size and cursor * position: */ - win->_maxx = (NCURSES_SIZE_T) ToCols; - win->_maxy = (NCURSES_SIZE_T) ToLines; + win->_maxx = ToCols; + win->_maxy = ToLines; if (win->_regtop > win->_maxy) win->_regtop = win->_maxy; -- cgit v1.2.3