155 lines
6.6 KiB
Plaintext
155 lines
6.6 KiB
Plaintext
.\"***************************************************************************
|
|
.\" Copyright 2018-2019,2020 Thomas E. Dickey *
|
|
.\" Copyright 1998-2010,2017 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. *
|
|
.\"***************************************************************************
|
|
.\"
|
|
.\" $Id: curs_printw.3x,v 1.28 2020/10/24 09:22:45 tom Exp $
|
|
.TH curs_printw 3X ""
|
|
.ie \n(.g .ds `` \(lq
|
|
.el .ds `` ``
|
|
.ie \n(.g .ds '' \(rq
|
|
.el .ds '' ''
|
|
.de bP
|
|
.ie n .IP \(bu 4
|
|
.el .IP \(bu 2
|
|
..
|
|
.na
|
|
.hy 0
|
|
.SH NAME
|
|
\fBprintw\fR,
|
|
\fBwprintw\fR,
|
|
\fBmvprintw\fR,
|
|
\fBmvwprintw\fR,
|
|
\fBvwprintw\fR, \fBvw_printw\fR \- print formatted output in \fBcurses\fR windows
|
|
.ad
|
|
.hy
|
|
.SH SYNOPSIS
|
|
\fB#include <curses.h>\fR
|
|
.sp
|
|
\fBint printw(const char *\fP\fIfmt\fP\fB, ...);\fR
|
|
.br
|
|
\fBint wprintw(WINDOW *\fP\fIwin\fP\fB, const char *\fP\fIfmt\fP\fB, ...);\fR
|
|
.br
|
|
\fBint mvprintw(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const char *\fP\fIfmt\fP\fB, ...);\fR
|
|
.br
|
|
\fBint mvwprintw(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const char *\fP\fIfmt\fP\fB, ...);\fR
|
|
.br
|
|
\fBint vw_printw(WINDOW *\fP\fIwin\fP\fB, const char *\fP\fIfmt\fP\fB, va_list \fP\fIvarglist\fP\fB);\fR
|
|
.sp
|
|
/* obsolete */
|
|
.br
|
|
\fBint vwprintw(WINDOW *\fP\fIwin\fP\fB, const char *\fP\fIfmt\fP\fB, va_list \fP\fIvarglist\fP\fB);\fR
|
|
.SH DESCRIPTION
|
|
The \fBprintw\fR, \fBwprintw\fR, \fBmvprintw\fR and \fBmvwprintw\fR
|
|
routines are analogous to \fBprintf\fR [see \fBprintf\fR(3)].
|
|
In
|
|
effect, the string that would be output by \fBprintf\fR is output
|
|
instead as though \fBwaddstr\fR were used on the given window.
|
|
.PP
|
|
The \fBvwprintw\fR and \fBvw_printw\fR routines are analogous
|
|
to \fBvprintf\fR [see \fBprintf\fR(3)]
|
|
and perform a \fBwprintw\fR using a variable argument list.
|
|
The third argument is a \fBva_list\fR, a pointer to a
|
|
list of arguments, as defined in \fB<stdarg.h>\fR.
|
|
.SH RETURN VALUE
|
|
Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
|
|
(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
|
|
completion.
|
|
.PP
|
|
X/Open defines no error conditions.
|
|
In this implementation,
|
|
an error may be returned if it cannot allocate enough memory for the
|
|
buffer used to format the results.
|
|
It will return an error if the window pointer is null.
|
|
.PP
|
|
Functions with a \*(``mv\*('' prefix first perform a cursor movement using
|
|
\fBwmove\fP, and return an error if the position is outside the window,
|
|
or if the window pointer is null.
|
|
.SH HISTORY
|
|
While \fBprintw\fP was implemented in 4BSD,
|
|
it was unused until 4.2BSD (which used it in games).
|
|
That early version of curses was before the ANSI C standard.
|
|
It did not use <varargs.h>, though that was available.
|
|
In 1991 (a couple of years after SVr4 was generally available,
|
|
and after the C standard was published),
|
|
other developers updated the library,
|
|
using <stdarg.h> internally in 4.4BSD curses.
|
|
Even with this improvement,
|
|
BSD curses did not use function prototypes (or even declare
|
|
functions) in the <curses.h> header until 1992.
|
|
.PP
|
|
SVr2 documented
|
|
\fBprintw\fP,
|
|
\fBwprintw\fP
|
|
tersely as \*(``printf on \fIstdscr\fP\*('' and
|
|
tersely as \*(``printf on \fIwin\fP\*('', respectively.
|
|
.PP
|
|
SVr3 added
|
|
\fBmvprintw\fP, and
|
|
\fBmvwprintw\fP, with a three-line summary saying that they were analogous
|
|
to \fBprintf\fP(3),
|
|
explaining that the string which would be output from \fBprintf\fP(3) would
|
|
instead be output using \fBwaddstr\fP on the given window.
|
|
SVr3 also added \fBvwprintw\fP, saying that the third parameter
|
|
is a \fBva_list\fP, defined in <varargs.h>,
|
|
and referring the reader to the manual pages for \fIvarargs\fP and
|
|
\fIvprintf\fP for detailed descriptions.
|
|
.PP
|
|
SVr4 added no new variations of \fBprintw\fP,
|
|
but provided for using <varargs.h> or <stdarg.h> to define the \fBva_list\fP
|
|
type.
|
|
.PP
|
|
X/Open Curses added \fBvw_printw\fP to replace \fBvwprintw\fP,
|
|
stating that its \fBva_list\fP definition requires <stdarg.h>.
|
|
.SH PORTABILITY
|
|
In this implementation, \fBvw_printw\fP and \fBvwprintw\fP are equivalent,
|
|
to support legacy applications.
|
|
However, the latter (\fBvwprintw\fP) is obsolete:
|
|
.bP
|
|
The XSI Curses standard, Issue 4 described these functions.
|
|
The function
|
|
\fBvwprintw\fR is marked TO BE WITHDRAWN, and is to be replaced by a function
|
|
\fBvw_printw\fR using the \fB<stdarg.h>\fR interface.
|
|
.bP
|
|
The Single Unix Specification, Version 2 states that
|
|
\fBvw_printw\fR is preferred to \fBvwprintw\fR since the latter requires
|
|
including \fB<varargs.h>\fR, which
|
|
cannot be used in the same file as \fB<stdarg.h>\fR.
|
|
This implementation uses \fB<stdarg.h>\fR for both,
|
|
because that header is included in \fB<curses.h\fR>.
|
|
.bP
|
|
X/Open Curses, Issue 5 (December 2007) marked \fBvwprintw\fP (along with
|
|
\fBvwscanw\fP and the termcap interface) as withdrawn.
|
|
.SH SEE ALSO
|
|
.na
|
|
\fBcurses\fR(3X),
|
|
\fBcurs_addstr\fR(3X),
|
|
\fBcurs_scanw\fR(3X),
|
|
\fBcurs_termcap\fP(3X),
|
|
\fBprintf\fR(3),
|
|
\fBvprintf\fR(3).
|