curs_border(3x) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | NOTES | PORTABILITY | HISTORY | SEE ALSO | COLOPHON

curs_border(3X)               Library calls               curs_border(3X)

NAME         top

       border, wborder, box, hline, whline, vline, wvline, mvhline,
       mvwhline, mvvline, mvwvline - draw borders and lines in a curses
       window of characters

SYNOPSIS         top

       #include <curses.h>

       int border(chtype ls, chtype rs, chtype ts, chtype bs,
             chtype tl, chtype tr, chtype bl, chtype br);
       int wborder(WINDOW *win, chtype ls, chtype rs,
             chtype ts, chtype bs, chtype tl, chtype tr,
             chtype bl, chtype br);

       int box(WINDOW *win, chtype verch, chtype horch);

       int hline(chtype ch, int n);
       int whline(WINDOW *win, chtype ch, int n);
       int mvhline(int y, int x, chtype ch, int n);
       int mvwhline(WINDOW *win, int y, int x, chtype ch, int n);

       int vline(chtype ch, int n);
       int wvline(WINDOW *win, chtype ch, int n);
       int mvvline(int y, int x, chtype ch, int n);
       int mvwvline(WINDOW *win, int y, int x, chtype ch, int n);

DESCRIPTION         top

       wborder and border draw a box at the edges of the specified window
       or stdscr, respectively.  Each chtype argument corresponds to a
       geometric component of the border as follows:
              ls - left side,
              rs - right side,
              ts - top side,
              bs - bottom side,
              tl - top left-hand corner,
              tr - top right-hand corner,
              bl - bottom left-hand corner, and
              br - bottom right-hand corner.

       If any chtype argument is 0, then curses uses forms-drawing
       characters (see addch(3X)) in the following correspondence:
              ACS_VLINE,
              ACS_VLINE,
              ACS_HLINE,
              ACS_HLINE,
              ACS_ULCORNER,
              ACS_URCORNER,
              ACS_LLCORNER, and
              ACS_LRCORNER.

       box(win, verch, horch) is shorthand for “wborder(win, verch,
       verch, horch, horch, 0, 0, 0, 0)”.

       whline draws a horizontal line of ch from left to right, and
       wvline a vertical one from top to bottom, stopping once n
       characters have been drawn or upon reaching the boundary of win.
       These functions do not update the cursor position (beyond any
       motion directed by their “mv” variants).  ncurses(3X) describes
       the variants of these functions.

RETURN VALUE         top

       These functions return OK on success and ERR on failure.

       In ncurses,

       •   these functions fail if the screen is not initialized; and

       •   functions taking a WINDOW pointer argument fail if win is a
           null pointer.

       Functions prefixed with “mv” first perform cursor movement and
       fail if the position (y, x) is outside the window boundaries.

NOTES         top

       Unusually, there is no wbox function; box behaves as one would
       expect wbox to, accepting a WINDOW pointer argument.

       border, box, hline, mvhline, mvwhline, vline, mvvline, and
       mvwvline may be implemented as macros.

       Borders drawn by these functions are interior borders.

PORTABILITY         top

       These functions are described in X/Open Curses Issue 4.  It
       specifies no error conditions for them.

       SVr4 documentation says that these functions return OK “or a non-
       negative integer if immedok() is set”, referring to the return
       value from wrefresh, which in SVr4 returns a count of characters
       written to the window if its immedok property is set; in ncurses,
       it does not.

       BSD curses drew boxes with horch in every character cell of the
       top and bottom lines of the window, whereas SVr3.1 and later
       curses, because its box wrapped wborder, used the default corner
       characters.

HISTORY         top

       4BSD (1980) introduced box, defining it as a function.

       SVr3.1 (1987) added whline and wvline and their variants, as well
       as border and wborder, redefining box as a macro wrapping the
       latter.

SEE ALSO         top

       curses(3X), curs_outopts(3X)

COLOPHON         top

       This page is part of the ncurses (new curses) project.
       Information about the project can be found at 
       ⟨https://invisible-island.net/ncurses/ncurses.html⟩.  If you have a
       bug report for this manual page, send it to bug-ncurses@gnu.org.
       This page was obtained from the tarball ncurses-6.6.tar.gz fetched
       from ⟨https://ftp.gnu.org/gnu/ncurses/⟩ on 2026-01-16.  If you
       discover any rendering problems in this HTML version of the page,
       or you believe there is a better or more up-to-date source for the
       page, or you have corrections or improvements to the information
       in this COLOPHON (which is not part of the original manual page),
       send a mail to man-pages@man7.org

ncurses @NCURSES_MAJOR@.@NCU... 2025-10-20                curs_border(3X)