kolibrios/contrib/sdk/sources/PDCurses/pdcurses/printw.c
turbocat 3908f96f64 Added PDCurses library(uses SDL)
git-svn-id: svn://kolibrios.org@9214 a494cfbc-eb01-0410-851d-a64ba20cac60
2021-10-04 19:26:53 +00:00

130 lines
2.9 KiB
C

/* PDCurses */
#include <curspriv.h>
/*man-start**************************************************************
printw
------
### Synopsis
int printw(const char *fmt, ...);
int wprintw(WINDOW *win, const char *fmt, ...);
int mvprintw(int y, int x, const char *fmt, ...);
int mvwprintw(WINDOW *win, int y, int x, const char *fmt,...);
int vwprintw(WINDOW *win, const char *fmt, va_list varglist);
int vw_printw(WINDOW *win, const char *fmt, va_list varglist);
### Description
The printw() functions add a formatted string to the window at the
current or specified cursor position. The format strings are the same
as used in the standard C library's printf(). (printw() can be used
as a drop-in replacement for printf().)
The duplication between vwprintw() and vw_printw() is for historic
reasons. In PDCurses, they're the same.
### Return Value
All functions return the number of characters printed, or ERR on
error.
### Portability
X/Open ncurses NetBSD
printw Y Y Y
wprintw Y Y Y
mvprintw Y Y Y
mvwprintw Y Y Y
vwprintw Y Y Y
vw_printw Y Y Y
**man-end****************************************************************/
#include <string.h>
int vwprintw(WINDOW *win, const char *fmt, va_list varglist)
{
char printbuf[513];
int len;
PDC_LOG(("vwprintw() - called\n"));
#ifdef HAVE_VSNPRINTF
len = vsnprintf(printbuf, 512, fmt, varglist);
#else
len = vsprintf(printbuf, fmt, varglist);
#endif
return (waddstr(win, printbuf) == ERR) ? ERR : len;
}
int printw(const char *fmt, ...)
{
va_list args;
int retval;
PDC_LOG(("printw() - called\n"));
va_start(args, fmt);
retval = vwprintw(stdscr, fmt, args);
va_end(args);
return retval;
}
int wprintw(WINDOW *win, const char *fmt, ...)
{
va_list args;
int retval;
PDC_LOG(("wprintw() - called\n"));
va_start(args, fmt);
retval = vwprintw(win, fmt, args);
va_end(args);
return retval;
}
int mvprintw(int y, int x, const char *fmt, ...)
{
va_list args;
int retval;
PDC_LOG(("mvprintw() - called\n"));
if (move(y, x) == ERR)
return ERR;
va_start(args, fmt);
retval = vwprintw(stdscr, fmt, args);
va_end(args);
return retval;
}
int mvwprintw(WINDOW *win, int y, int x, const char *fmt, ...)
{
va_list args;
int retval;
PDC_LOG(("mvwprintw() - called\n"));
if (wmove(win, y, x) == ERR)
return ERR;
va_start(args, fmt);
retval = vwprintw(win, fmt, args);
va_end(args);
return retval;
}
int vw_printw(WINDOW *win, const char *fmt, va_list varglist)
{
PDC_LOG(("vw_printw() - called\n"));
return vwprintw(win, fmt, varglist);
}