blob: 5dd3e8f4e1312ab3c5e3863cb0d6ac791046c564 [file] [log] [blame]
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301.\"***************************************************************************
micky3879b9f5e72025-07-08 18:04:53 -04002.\" Copyright 2019-2023,2024 Thomas E. Dickey *
3.\" Copyright 2002-2012,2017 Free Software Foundation, Inc. *
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05304.\" *
5.\" Permission is hereby granted, free of charge, to any person obtaining a *
6.\" copy of this software and associated documentation files (the *
7.\" "Software"), to deal in the Software without restriction, including *
8.\" without limitation the rights to use, copy, modify, merge, publish, *
9.\" distribute, distribute with modifications, sublicense, and/or sell *
10.\" copies of the Software, and to permit persons to whom the Software is *
11.\" furnished to do so, subject to the following conditions: *
12.\" *
13.\" The above copyright notice and this permission notice shall be included *
14.\" in all copies or substantial portions of the Software. *
15.\" *
16.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
17.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
18.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
19.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
20.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
21.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
22.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
23.\" *
24.\" Except as contained in this notice, the name(s) of the above copyright *
25.\" holders shall not be used in advertising or otherwise to promote the *
26.\" sale, use or other dealings in this Software without prior written *
27.\" authorization. *
28.\"***************************************************************************
29.\"
micky3879b9f5e72025-07-08 18:04:53 -040030.\" $Id: curs_add_wchstr.3x,v 1.39 2024/04/20 21:20:07 tom Exp $
31.TH curs_add_wchstr 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
32.ie \n(.g \{\
33.ds `` \(lq
34.ds '' \(rq
35.\}
36.el \{\
37.ie t .ds `` ``
38.el .ds `` ""
39.ie t .ds '' ''
40.el .ds '' ""
41.\}
42.
Steve Kondikae271bc2015-11-15 02:50:53 +010043.de bP
micky3879b9f5e72025-07-08 18:04:53 -040044.ie n .IP \(bu 4
45.el .IP \(bu 2
Steve Kondikae271bc2015-11-15 02:50:53 +010046..
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053047.SH NAME
micky3879b9f5e72025-07-08 18:04:53 -040048\fB\%add_wchstr\fP,
49\fB\%add_wchnstr\fP,
50\fB\%wadd_wchstr\fP,
51\fB\%wadd_wchnstr\fP,
52\fB\%mvadd_wchstr\fP,
53\fB\%mvadd_wchnstr\fP,
54\fB\%mvwadd_wchstr\fP,
55\fB\%mvwadd_wchnstr\fP \-
56add a \fIcurses\fR complex character string to a window
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053057.SH SYNOPSIS
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053058.nf
micky3879b9f5e72025-07-08 18:04:53 -040059\fB#include <curses.h>
Steve Kondikae271bc2015-11-15 02:50:53 +010060.PP
micky3879b9f5e72025-07-08 18:04:53 -040061\fBint add_wchstr(const cchar_t *\fIwchstr\fP);
62\fBint wadd_wchstr(WINDOW * \fIwin\fP, const cchar_t *\fIwchstr\fP);
63\fBint mvadd_wchstr(int \fIy\fP, int \fIx\fP, const cchar_t *\fIwchstr\fP);
64\fBint mvwadd_wchstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const cchar_t *\fIwchstr\fP);
65.PP
66\fBint add_wchnstr(const cchar_t *\fIwchstr\fP, int \fIn\fP);
67\fBint wadd_wchnstr(WINDOW * \fIwin\fP, const cchar_t *\fIwchstr\fP, int \fIn\fP);
68\fBint mvadd_wchnstr(int \fIy\fP, int \fIx\fP, const cchar_t *\fIwchstr\fP, int \fIn\fP);
69\fBint mvwadd_wchnstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const cchar_t *\fIwchstr\fP, int \fIn\fP);
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053070.fi
71.SH DESCRIPTION
Steve Kondikae271bc2015-11-15 02:50:53 +010072These functions copy the (null-terminated)
micky3879b9f5e72025-07-08 18:04:53 -040073array of complex characters \fIwchstr\fP
Steve Kondikae271bc2015-11-15 02:50:53 +010074into the window image structure
75starting at the current cursor position.
micky3879b9f5e72025-07-08 18:04:53 -040076.PP
77The four functions with \fIn\fP as the last
78argument copy at most \fIn\fP elements,
Steve Kondikae271bc2015-11-15 02:50:53 +010079but no more than will fit on the line.
micky3879b9f5e72025-07-08 18:04:53 -040080If \fBn\fP=\fB\-1\fP then the whole array is copied,
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053081to the maximum number of characters that will fit on the line.
82.PP
micky3879b9f5e72025-07-08 18:04:53 -040083The window cursor is \fInot\fP advanced.
84These functions are faster than \fBwaddnstr\fP.
Steve Kondikae271bc2015-11-15 02:50:53 +010085On the other hand:
86.bP
87they do not perform checking
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053088(such as for the newline, backspace, or carriage return characters),
Steve Kondikae271bc2015-11-15 02:50:53 +010089.bP
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053090they do not advance the current cursor position,
Steve Kondikae271bc2015-11-15 02:50:53 +010091.bP
92they do not expand other control characters to ^-escapes, and
93.bP
94they truncate the string if it crosses the right margin,
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053095rather than wrapping it around to the new line.
96.PP
Steve Kondikae271bc2015-11-15 02:50:53 +010097These functions end successfully
micky3879b9f5e72025-07-08 18:04:53 -040098on encountering a null \fBcchar_t\fP, or
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053099when they have filled the current line.
100If a complex character cannot completely fit at the end of the current line,
101the remaining columns are filled with the background character and rendition.
Steve Kondikae271bc2015-11-15 02:50:53 +0100102.SH RETURN VALUE
micky3879b9f5e72025-07-08 18:04:53 -0400103All functions return the integer \fBERR\fP upon failure and \fBOK\fP on success.
Steve Kondikae271bc2015-11-15 02:50:53 +0100104.PP
micky3879b9f5e72025-07-08 18:04:53 -0400105X/Open Curses does not specify any error conditions.
Steve Kondikae271bc2015-11-15 02:50:53 +0100106This implementation returns an error
micky3879b9f5e72025-07-08 18:04:53 -0400107.bP
108if the \fIwin\fP parameter is null or
109.bP
110if the \fIwchstr\fP parameter is null.
Steve Kondikae271bc2015-11-15 02:50:53 +0100111.PP
micky3879b9f5e72025-07-08 18:04:53 -0400112Functions prefixed with \*(``mv\*('' first perform cursor movement and
113fail if the position
114.RI ( y ,
115.IR x )
116is outside the window boundaries.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530117.SH NOTES
micky3879b9f5e72025-07-08 18:04:53 -0400118All functions except \fBwadd_wchnstr\fP may be macros.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530119.SH PORTABILITY
micky3879b9f5e72025-07-08 18:04:53 -0400120These functions are described in X/Open Curses, Issue 4.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530121.SH SEE ALSO
micky3879b9f5e72025-07-08 18:04:53 -0400122\fB\%curs_addchstr\fP(3X) describes comparable functions of the
123.I \%ncurses
124library in its non-wide-character configuration.
Steve Kondikae271bc2015-11-15 02:50:53 +0100125.PP
micky3879b9f5e72025-07-08 18:04:53 -0400126\fB\%curses\fP(3X),
127\fB\%curs_addwstr\fP(3X),
128\fB\%curs_add_wch\fP(3X)