/****************************************************************************
- * Copyright (c) 1998-2013,2015 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2017,2018 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 *
#include <termcap.h> /* ospeed */
#include <tic.h>
-MODULE_ID("$Id: lib_tputs.c,v 1.96 2015/01/03 23:51:23 tom Exp $")
+MODULE_ID("$Id: lib_tputs.c,v 1.101 2018/12/15 23:54:24 tom Exp $")
NCURSES_EXPORT_VAR(char) PC = 0; /* used by termcap library */
NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0; /* used by termcap library */
if (SP_PARM->out_inuse) {
char *buf = SP_PARM->out_buffer;
size_t amount = SP->out_inuse;
- ssize_t res;
SP->out_inuse = 0;
while (amount) {
- res = write(SP_PARM->_ofd, buf, amount);
+ ssize_t res = write(SP_PARM->_ofd, buf, amount);
if (res > 0) {
/* if the write was incomplete, try again */
}
}
}
+ } else {
+ fflush(stdout);
}
}
#endif /* BSD_TPUTS */
#ifdef TRACE
- char addrbuf[32];
-
if (USE_TRACEF(TRACE_TPUTS)) {
- if (outc == NCURSES_SP_NAME(_nc_outch))
+ char addrbuf[32];
+ TR_FUNC_BFR(1);
+
+ if (outc == NCURSES_SP_NAME(_nc_outch)) {
_nc_STRCPY(addrbuf, "_nc_outch", sizeof(addrbuf));
- else
- _nc_SPRINTF(addrbuf, _nc_SLIMIT(sizeof(addrbuf)) "%p", outc);
+ } else {
+ _nc_SPRINTF(addrbuf, _nc_SLIMIT(sizeof(addrbuf)) "%s",
+ TR_FUNC_ARG(0, outc));
+ }
if (_nc_tputs_trace) {
_tracef("tputs(%s = %s, %d, %s) called", _nc_tputs_trace,
_nc_visbuf(string), affcnt, addrbuf);
_nc_outc_wrapper(SCREEN *sp, int c)
{
if (0 == sp) {
- return (ERR);
+ return fputc(c, stdout);
} else {
return sp->jump(c);
}