X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Flib_tputs.c;h=b123cceef243eece1fe0aaefe3fa29bf1284f9a2;hp=e3dc8d328977f20b1f7a10b95c45cc7ec3386423;hb=dc6f2587b13a5294926467a2375922b3c30d302b;hpb=404cc3f5b0751dd219565139f825c5a4d445f651 diff --git a/ncurses/tinfo/lib_tputs.c b/ncurses/tinfo/lib_tputs.c index e3dc8d32..b123ccee 100644 --- a/ncurses/tinfo/lib_tputs.c +++ b/ncurses/tinfo/lib_tputs.c @@ -48,11 +48,10 @@ #endif #include -#include /* padding_baud_rate, xon_xoff */ #include /* ospeed */ #include -MODULE_ID("$Id: lib_tputs.c,v 1.73 2009/05/10 00:54:17 tom Exp $") +MODULE_ID("$Id: lib_tputs.c,v 1.77 2009/06/07 13:59:11 tom Exp $") NCURSES_EXPORT_VAR(char) PC = 0; /* used by termcap library */ NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0; /* used by termcap library */ @@ -86,6 +85,9 @@ NCURSES_SP_NAME(delay_output) (NCURSES_SP_DCLx int ms) { T((T_CALLED("delay_output(%p,%d)"), SP_PARM, ms)); + if (!HasTInfoTerminal(SP_PARM)) + returnCode(ERR); + if (no_pad_char) { NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); napms(ms); @@ -129,7 +131,8 @@ NCURSES_SP_NAME(_nc_outch) (NCURSES_SP_DCLx int ch) { COUNT_OUTCHARS(1); - if (SP_PARM != 0 + if (HasTInfoTerminal(SP_PARM) + && SP_PARM != 0 && SP_PARM->_cleanup) { char tmp = ch; /* @@ -158,12 +161,32 @@ NCURSES_SP_NAME(putp) (NCURSES_SP_DCLx const char *string) string, 1, NCURSES_SP_NAME(_nc_outch)); } +NCURSES_EXPORT(int) +NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_DCLx + const char *name GCC_UNUSED, + const char *string) +{ + int rc = ERR; + + if (string != 0) { + TPUTS_TRACE(name); + rc = NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx string); + } + return rc; +} + #if NCURSES_SP_FUNCS NCURSES_EXPORT(int) putp(const char *string) { return NCURSES_SP_NAME(putp) (CURRENT_SCREEN, string); } + +NCURSES_EXPORT(int) +_nc_putp(const char *name, const char *string) +{ + return NCURSES_SP_NAME(_nc_putp) (CURRENT_SCREEN, name, string); +} #endif NCURSES_EXPORT(int) @@ -198,10 +221,19 @@ NCURSES_SP_NAME(tputs) (NCURSES_SP_DCLx } #endif /* TRACE */ + if (SP_PARM != 0 && !HasTInfoTerminal(SP_PARM)) + return ERR; + if (!VALID_STRING(string)) return ERR; - if (cur_term == 0) { + if ( +#if NCURSES_SP_FUNCS + (SP_PARM != 0 && SP_PARM->_term == 0) +#else + cur_term == 0 +#endif + ) { always_delay = FALSE; normal_delay = TRUE; } else {