---
name: "curs_border_set"
section: "3x"
platform: "macos"
package: "ncurses"
version: "79"
release: "macOS 26.5"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/curs_border_set/3x"
---

# curs\_border\_set(3x)

create curses borders or lines using complex characters and renditions

## NAME

**border\_set**, **wborder\_set**, **box\_set**, **hline\_set**, **whline\_set**, **mvhline\_set**, **mvwhline\_set**, **vline\_set**, **wvline\_set**, **mvvline\_set**, **mvwvline\_set** - create **curses** borders or lines using complex characters and renditions

## SYNOPSIS

**#include \<curses.h\>**

**int border\_set(**\
    **const cchar\_t \****ls*, **const cchar\_t \****rs*,\
    **const cchar\_t \****ts*, **const cchar\_t \****bs*,\
    **const cchar\_t \****tl*, **const cchar\_t \****tr*,\
    **const cchar\_t \****bl*, **const cchar\_t \****br* **);**\
 **int wborder\_set(**\
    **WINDOW \*win**,\
    **const cchar\_t \****ls*, **const cchar\_t \****rs*,\
    **const cchar\_t \****ts*, **const cchar\_t \****bs*,\
    **const cchar\_t \****tl*, **const cchar\_t \****tr*,\
    **const cchar\_t \****bl*, **const cchar\_t \****br***);**\
 **int box\_set(**\
    **WINDOW \*win**,\
    **const cchar\_t \****verch*,\
    **const cchar\_t \****horch***);**\
 **int hline\_set(**\
    **const cchar\_t \****wch*, **int** *n***);**\
 **int whline\_set(**\
    **WINDOW \****win*,\
    **const cchar\_t \****wch*, **int** *n***);**\
 **int mvhline\_set(**\
    **int** *y*, **int** *x*,\
    **const cchar\_t \****wch*, **int** *n***);**\
 **int mvwhline\_set(**\
    **WINDOW \****win*,\
    **int** *y*, **int** *x*,\
    **const cchar\_t \****wch*, **int** *n***);**\
 **int vline\_set(**\
    **const cchar\_t \****wch*, **int** *n***);**\
 **int wvline\_set(**\
    **WINDOW \****win*,\
    **const cchar\_t \****wch*, **int** *n***);**\
 **int mvvline\_set(**\
    **int** *y*, **int** *x*,\
    **const cchar\_t \****wch*, **int** *n***);**\
 **int mvwvline\_set(**\
    **WINDOW \****win*,\
    **int** *y*, **int** *x*,\
    **const cchar\_t \****wch*, **int** *n***);**\

## DESCRIPTION

The **border\_set** and **wborder\_set** functions draw a border around the edges of the current or specified window. These functions do not change the cursor position, and do not wrap.

Other than the window, each argument is a complex character with attributes:

*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 of these arguments is zero, then the corresponding default values (defined in **curses.h**) are used instead:

**WACS\_VLINE**,\
 **WACS\_VLINE**,\
 **WACS\_HLINE**,\
 **WACS\_HLINE**,\
 **WACS\_ULCORNER**,\
 **WACS\_URCORNER**,\
 **WACS\_LLCORNER**, and\
 **WACS\_LRCORNER**.

**box\_set(***win*, *verch***,** *horch***);** is a shorthand for the following call:

**wborder\_set(***win***,** *verch***,** *verch***,**\
     *horch***,** *horch***, NULL, NULL, NULL, NULL);**

The **\*line\_set** functions use *wch* to draw a line starting at the current cursor position in the window. The line is at most *n* characters long or as many as fit into the window. The current cursor position is not changed.

The **hline\_set**, **mvhline\_set**, **mvwhline\_set**, and **whline\_set** functions draw a line proceeding toward the last column of the same line.

The **vline\_set**, **mvvline\_set**, **mvwvline\_set**, and **wvline\_set** functions draw a line proceeding toward the last line of the window.\

## NOTES

Note that **border\_set**, **hline\_set**, **mvhline\_set**, **mvvline\_set**, **mvwhline\_set**, **mvwvline\_set**, and **vline\_set** may be macros.\

## RETURN VALUE

Upon successful completion, these functions return **OK**. Otherwise, they return **ERR**.

Functions using a window parameter return an error if it is null.

Functions with a "mv" prefix first perform a cursor movement using **wmove**, and return an error if the position is outside the window, or if the window pointer is null.

## SEE ALSO

**ncurses**(3X), **curs\_add\_wch**(3X), **curs\_border**(3X), **curs\_outopts**(3X)
