]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - man/curs_printw.3x
ncurses 6.4 - patch 20231016
[ncurses.git] / man / curs_printw.3x
index a0b95bbc9e6b195f8809ad1243f1dd3147113908..8d7c081d3df7be1e38f19357a29241d9506eae95 100644 (file)
@@ -1,5 +1,6 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2017,2018 Free Software Foundation, Inc.              *
+.\" 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            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_printw.3x,v 1.23 2018/07/28 21:14:06 tom Exp $
-.TH curs_printw 3X ""
+.\" $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
 ..
-.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
+\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 <curses.h>\fR
-.sp
-\fBint printw(const char *fmt, ...);\fR
-.br
-\fBint wprintw(WINDOW *win, const char *fmt, ...);\fR
-.br
-\fBint mvprintw(int y, int x, const char *fmt, ...);\fR
-.br
-\fBint mvwprintw(WINDOW *win, int y, int x, const char *fmt, ...);\fR
-.br
-\fBint vw_printw(WINDOW *win, const char *fmt, va_list varglist);\fR
-.sp
-/* obsolete */
-.br
-\fBint vwprintw(WINDOW *win, const char *fmt, va_list varglist);\fR
+.nf
+\fB#include <curses.h>
+.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(3)].
+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\fR is output
-instead as though \fBwaddstr\fR were used on the given window.
+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\fR and \fBwv_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.
+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<stdarg.h>\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.
@@ -81,9 +88,45 @@ 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
+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
+\fBvprintf\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.
@@ -91,23 +134,22 @@ 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.
+\fBvwprintw\fP is marked TO BE WITHDRAWN, and is to be replaced by a function
+\fBvw_printw\fP using the \fB<stdarg.h>\fP 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>.
+\fBvw_printw\fP  is preferred to \fBvwprintw\fP since the latter requires
+including \fB<varargs.h>\fP, which
+cannot be used in the same file as \fB<stdarg.h>\fP.
+This implementation uses \fB<stdarg.h>\fP for both,
+because that header is included in \fB<curses.h\fP>.
 .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).
+\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)