X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=man%2Fcurs_printw.3x;h=8d7c081d3df7be1e38f19357a29241d9506eae95;hb=64845eab0d05cd928ed2455d5bc5b58e0b33c893;hp=e3ac2e8d5ededbdd6180707c7c815a44d0a689ff;hpb=3a9b6a3bf0269231bef7de74757a910dedd04e0c;p=ncurses.git diff --git a/man/curs_printw.3x b/man/curs_printw.3x index e3ac2e8d..8d7c081d 100644 --- a/man/curs_printw.3x +++ b/man/curs_printw.3x @@ -1,47 +1,155 @@ -.TH curs_printw 3X "" +.\"*************************************************************************** +.\" Copyright 2018-2022,2023 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.41 2023/10/07 21:19:07 tom Exp $ +.TH curs_printw 3X 2023-10-07 "ncurses 6.4" "Library calls" +.ie \n(.g \{\ +.ds `` \(lq +.ds '' \(rq +.\} +.el \{\ +.ie t .ds `` `` +.el .ds `` "" +.ie t .ds '' '' +.el .ds '' "" +.\} +. +.de bP +.ie n .IP \(bu 4 +.el .IP \(bu 2 +.. .SH NAME -\fBprintw\fR, \fBwprintw\fR, \fBmvprintw\fR, -\fBmvwprintw\fR, \fBvwprintw\fR - print formatted output in -\fBcurses\fR windows +\fB\%printw\fP, +\fB\%wprintw\fP, +\fB\%mvprintw\fP, +\fB\%mvwprintw\fP, +\fB\%vwprintw\fP, +\fB\%vw_printw\fP \- +write formatted output to \fIcurses\fR windows .SH SYNOPSIS -\fB#include \fR - -\fBint printw(char *fmt\fR [\fB, arg\fR] \fB...);\fR -.br -\fBint wprintw(WINDOW *win, char *fmt\fR [\fB, arg\fR] \fB...);\fR -.br -\fBint mvprintw(int y, int x, char *fmt\fR [\fB, arg\fR] \fB...);\fR -.br -\fBint mvwprintw(WINDOW *win, int y, int x, - \fBchar *fmt\fR [\fB, arg]\fR ...); - -\fB#include \fR -.br -\fBint vwprintw(WINDOW *win, char *fmt, varglist);\fR -.br +.nf +\fB#include +.PP +\fBint printw(const char *\fIfmt\fP, ...); +\fBint wprintw(WINDOW *\fIwin\fP, const char *\fIfmt\fP, ...); +\fBint mvprintw(int \fIy\fP, int \fIx\fP, const char *\fIfmt\fP, ...); +\fBint mvwprintw(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const char *\fIfmt\fP, ...); +\fBint vw_printw(WINDOW *\fIwin\fP, const char *\fIfmt\fP, va_list \fIvarglist\fP); +.PP +\fI/* obsolete */\fP +\fBint vwprintw(WINDOW *\fIwin\fP, const char *\fIfmt\fP, va_list \fIvarglist\fP); +.fi .SH DESCRIPTION -The \fBprintw\fR, \fBwprintw\fR, \fBmvprintw\fR and \fBmvwprintw\fR -routines are analogous to \fBprintf\fR [see \fBprintf\fR(3S)]. In -effect, the string that would be output by \fBprintf\fR is output -instead as though \fBwaddstr\fR were used on the given window. - -The \fBvwprintw\fR routine is analogous to \fBvprintf\fR [see -\fBprintf\fR(3S)] and performs 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\fR. +The \fBprintw\fP, \fBwprintw\fP, \fBmvprintw\fP and \fBmvwprintw\fP +routines are analogous to \fBprintf\fP [see \fBprintf\fP(3)]. +In +effect, the string that would be output by \fBprintf\fP is output +instead as though \fBwaddstr\fP were used on the given window. +.PP +The \fBvwprintw\fP and \fBvw_printw\fP routines are analogous +to \fBvprintf\fP [see \fBprintf\fP(3)] +and perform a \fBwprintw\fP using a variable argument list. +The third argument is a \fBva_list\fP, a pointer to a +list of arguments, as defined in \fB\fP. .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 +Routines that return an integer return \fBERR\fP upon failure and \fBOK\fP +(SVr4 only specifies "an integer value other than \fBERR\fP") 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 , 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 internally in 4.4BSD curses. +Even with this improvement, +BSD curses did not use function prototypes (or even declare +functions) in the 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 , +and referring the reader to the manual pages for \fIvarargs\fP and +\fBvprintf\fP for detailed descriptions. +.PP +SVr4 added no new variations of \fBprintw\fP, +but provided for using or 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 . .SH PORTABILITY -The XSI Curses standard, Issue 4 describes 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\fR interface. +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\fP is marked TO BE WITHDRAWN, and is to be replaced by a function +\fBvw_printw\fP using the \fB\fP interface. +.bP +The Single Unix Specification, Version 2 states that +\fBvw_printw\fP is preferred to \fBvwprintw\fP since the latter requires +including \fB\fP, which +cannot be used in the same file as \fB\fP. +This implementation uses \fB\fP for both, +because that header is included in \fB. +.bP +X/Open Curses, Issue 5 (December 2007) marked \fBvwprintw\fP (along with +\fBvwscanw\fP and the termcap interface) as withdrawn. .SH SEE ALSO -\fBcurses\fR(3X), \fBprintf\fR(3S), \fBvprintf(3S)\fR -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: +\fB\%curses\fP(3X), +\fB\%curs_addstr\fP(3X), +\fB\%curs_scanw\fP(3X), +\fB\%curs_termcap\fP(3X), +\fB\%printf\fP(3), +\fB\%vprintf\fP(3)