.\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+.\" Copyright 2018-2020,2021 Thomas E. Dickey *
+.\" Copyright 1998-2007,2010 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_border.3x,v 1.15 2002/02/16 22:21:47 tom Exp $
+.\" $Id: curs_border.3x,v 1.29 2021/12/25 21:49:32 tom Exp $
.TH curs_border 3X ""
+.ie \n(.g .ds `` \(lq
+.el .ds `` ``
+.ie \n(.g .ds '' \(rq
+.el .ds '' ''
+.na
+.hy 0
.SH NAME
-\fBborder\fR, \fBwborder\fR, \fBbox\fR,
-\fBhline\fR, \fBwhline\fR,
-\fBvline\fR, \fBwvline\fR,
-\fBmvhline\fR, \fBmvwhline\fR,
-\fBmvvline\fR, \fBmvwvline\fR - create \fBcurses\fR borders, horizontal and vertical lines
+\fBborder\fP,
+\fBwborder\fP,
+\fBbox\fP,
+\fBhline\fP,
+\fBwhline\fP,
+\fBvline\fP,
+\fBwvline\fP,
+\fBmvhline\fP,
+\fBmvwhline\fP,
+\fBmvvline\fP,
+\fBmvwvline\fP \- create \fBcurses\fP borders, horizontal and vertical lines
+.ad
+.hy
.SH SYNOPSIS
-\fB#include <curses.h>\fR
+\fB#include <curses.h>\fP
+.sp
+\fBint border(chtype \fP\fIls\fP\fB, chtype \fP\fIrs\fP\fB, chtype \fP\fIts\fP\fB, chtype \fP\fIbs\fP\fB,\fP
+ \fBchtype \fP\fItl\fP\fB, chtype \fP\fItr\fP\fB, chtype \fP\fIbl\fP\fB, chtype \fP\fIbr\fP\fB);\fP
.br
-\fBint border(chtype ls, chtype rs, chtype ts, chtype bs,\fR
- \fBchtype tl, chtype tr, chtype bl, chtype br);\fR
+\fBint wborder(WINDOW *\fP\fIwin\fP\fB, chtype \fP\fIls\fP\fB, chtype \fP\fIrs\fP\fB,\fP
+ \fBchtype \fP\fIts\fP\fB, chtype \fP\fIbs\fP\fB, chtype \fP\fItl\fP\fB, chtype \fP\fItr\fP\fB,\fP
+ \fBchtype \fP\fIbl\fP\fB, chtype \fP\fIbr\fP\fB);\fP
+.sp
+\fBint box(WINDOW *\fP\fIwin\fP\fB, chtype \fP\fIverch\fP\fB, chtype \fP\fIhorch\fP\fB);\fP
+.sp
+\fBint hline(chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fP
.br
-\fBint wborder(WINDOW *win, chtype ls, chtype rs,\fR
- \fBchtype ts, chtype bs, chtype tl, chtype tr,\fR
- \fBchtype bl, chtype br);\fR
+\fBint whline(WINDOW *\fP\fIwin\fP\fB, chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fP
.br
-\fBint box(WINDOW *win, chtype verch, chtype horch);\fR
+\fBint vline(chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fP
.br
-\fBint hline(chtype ch, int n);\fR
+\fBint wvline(WINDOW *\fP\fIwin\fP\fB, chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fP
+.sp
+\fBint mvhline(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fP
.br
-\fBint whline(WINDOW *win, chtype ch, int n);\fR
+\fBint mvwhline(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fP
.br
-\fBint vline(chtype ch, int n);\fR
+\fBint mvvline(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fP
.br
-\fBint wvline(WINDOW *win, chtype ch, int n);\fR
-.br
-\fBmvhline(int y, int x, chtype ch, int n);\fR
-.br
-\fBmvwhline(WINDOW *, int y, int x, chtype ch, int n);\fR
-.br
-\fBint mvvline(int y, int x, chtype ch, int n);\fR
-.br
-\fBint mvwvline(WINDOW *, int y, int x, chtype ch, int n);\fR
+\fBint mvwvline(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fP
.br
.SH DESCRIPTION
-The \fBborder\fR, \fBwborder\fR and \fBbox\fR routines
+The \fBborder\fP, \fBwborder\fP and \fBbox\fP routines
draw a box around the edges of a window.
Other than the window, each argument is a character with attributes:
+.sp
.RS
-\fIls\fR - left side,
+\fIls\fP \- left side,
.br
-\fIrs\fR - right side,
+\fIrs\fP \- right side,
.br
-\fIts\fR - top side,
+\fIts\fP \- top side,
.br
-\fIbs\fR - bottom side,
+\fIbs\fP \- bottom side,
.br
-\fItl\fR - top left-hand corner,
+\fItl\fP \- top left-hand corner,
.br
-\fItr\fR - top right-hand corner,
+\fItr\fP \- top right-hand corner,
.br
-\fIbl\fR - bottom left-hand corner, and
+\fIbl\fP \- bottom left-hand corner, and
.br
-\fIbr\fR - bottom right-hand corner.
+\fIbr\fP \- bottom right-hand corner.
.RE
+.PP
If any of these arguments is zero, then the corresponding
-default values (defined in \fBcurses.h\fR) are used instead:
+default values (defined in \fBcurses.h\fP) are used instead:
+.sp
.RS
-\fBACS_VLINE\fR,
+\fBACS_VLINE\fP,
.br
-\fBACS_VLINE\fR,
+\fBACS_VLINE\fP,
.br
-\fBACS_HLINE\fR,
+\fBACS_HLINE\fP,
.br
-\fBACS_HLINE\fR,
+\fBACS_HLINE\fP,
.br
-\fBACS_ULCORNER\fR,
+\fBACS_ULCORNER\fP,
.br
-\fBACS_URCORNER\fR,
+\fBACS_URCORNER\fP,
.br
-\fBACS_LLCORNER\fR,
+\fBACS_LLCORNER\fP,
.br
-\fBACS_LRCORNER\fR.
+\fBACS_LRCORNER\fP.
.RE
-
-\fBbox(\fR\fIwin\fR\fB, \fR\fIverch\fR\fB, \fR\fIhorch\fR\fB)\fR is a shorthand
-for the following call: \fBwborder(\fR\fIwin\fR\fB,\fR \fIverch\fR\fB,\fR
-\fIverch\fR\fB,\fR \fIhorch\fR\fB,\fR \fIhorch\fR\fB, 0, 0, 0, 0)\fR.
-
-The \fBhline\fR and \fBwhline\fR functions draw a horizontal (left to right)
-line using \fIch\fR starting at the current cursor position in the window. The
-current cursor position is not changed. The line is at most \fIn\fR characters
+.PP
+\fBbox(\fP\fIwin\fP\fB, \fP\fIverch\fP\fB, \fP\fIhorch\fP\fB)\fP is a shorthand
+for the following call: \fBwborder(\fP\fIwin\fP\fB,\fP \fIverch\fP\fB,\fP
+\fIverch\fP\fB,\fP \fIhorch\fP\fB,\fP \fIhorch\fP\fB, 0, 0, 0, 0)\fP.
+.PP
+The \fBhline\fP and \fBwhline\fP functions draw a horizontal (left to right)
+line using \fIch\fP starting at the current cursor position in the window.
+The
+current cursor position is not changed.
+The line is at most \fIn\fP characters
long, or as many as fit into the window.
-
-The \fBvline\fR and \fBwvline\fR functions draw a vertical (top to bottom) line
-using \fIch\fR starting at the current cursor position in the window. The
-current cursor position is not changed. The line is at most \fIn\fR characters
+.PP
+The \fBvline\fP and \fBwvline\fP functions draw a vertical (top to bottom) line
+using \fIch\fP starting at the current cursor position in the window.
+The
+current cursor position is not changed.
+The line is at most \fIn\fP characters
long, or as many as fit into the window.
.SH RETURN VALUE
-All routines return the integer \fBOK\fR. The SVr4.0 manual says "or a
-non-negative integer if \fBimmedok\fR is set", but this appears to be an error.
+All routines return the integer \fBOK\fP.
+The SVr4.0 manual says "or a
+non-negative integer if \fBimmedok\fP is set", but this appears to be an error.
+.PP
+X/Open does not define any error conditions.
+This implementation returns 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 NOTES
-The borders generated by these functions are \fIinside\fR borders (this
+The borders generated by these functions are \fIinside\fP borders (this
is also true of SVr4 curses, though the fact is not documented).
-
-Note that \fBborder\fR and \fBbox\fR may be macros.
+.PP
+Note that \fBborder\fP and \fBbox\fP may be macros.
.SH PORTABILITY
These functions are described in the XSI Curses standard, Issue 4.
-The standard specifies that they return \fBERR\fR on failure,
+The standard specifies that they return \fBERR\fP on failure,
but specifies no error conditions.
.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_outopts\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
+\fBcurses\fP(3X), \fBcurs_outopts\fP(3X).