blob: 53c984647507330970ef15e088768023238ec194 [file] [log] [blame]
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301.\"***************************************************************************
micky3879b9f5e72025-07-08 18:04:53 -04002.\" Copyright 2018-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_in_wchstr.3x,v 1.39 2024/04/20 21:24:19 tom Exp $
31.TH curs_in_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.
43.de bP
44.ie n .IP \(bu 4
45.el .IP \(bu 2
46..
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053047.SH NAME
micky3879b9f5e72025-07-08 18:04:53 -040048\fB\%in_wchstr\fP,
49\fB\%in_wchnstr\fP,
50\fB\%win_wchstr\fP,
51\fB\%win_wchnstr\fP,
52\fB\%mvin_wchstr\fP,
53\fB\%mvin_wchnstr\fP,
54\fB\%mvwin_wchstr\fP,
55\fB\%mvwin_wchnstr\fP \-
56get a \fIcurses\fR complex character string from a window
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053057.SH SYNOPSIS
58.nf
micky3879b9f5e72025-07-08 18:04:53 -040059\fB#include <curses.h>
60.PP
61\fBint in_wchstr(cchar_t *\fIwchstr\fP);
62\fBint win_wchstr(WINDOW *\fIwin\fP, cchar_t *\fIwchstr\fP);
63\fBint mvin_wchstr(int \fIy\fP, int \fIx\fP, cchar_t *\fIwchstr\fP);
64\fBint mvwin_wchstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, cchar_t *\fIwchstr\fP);
65.PP
66\fBint in_wchnstr(cchar_t *\fIwchstr\fP, int \fIn\fP);
67\fBint win_wchnstr(WINDOW *\fIwin\fP, cchar_t *\fIwchstr\fP, int \fIn\fP);
68\fBint mvin_wchnstr(int \fIy\fP, int \fIx\fP, cchar_t *\fIwchstr\fP, int \fIn\fP);
69\fBint mvwin_wchnstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, cchar_t *\fIwchstr\fP, int \fIn\fP);
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053070.fi
71.SH DESCRIPTION
micky3879b9f5e72025-07-08 18:04:53 -040072These functions return an array of complex characters in \fIwchstr\fP,
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053073starting at the current cursor position in the named window.
74Attributes (rendition) are stored with the characters.
75.PP
micky3879b9f5e72025-07-08 18:04:53 -040076The four functions with \fIn\fP as the last argument return
77a leading substring at most \fIn\fP characters long
78(exclusive of the trailing zeroed \fBcchar_t\fR.
79Transfer stops at the end of the current line, or when \fIn\fP characters have
80been stored at the location referenced by \fIwchstr\fP.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053081.PP
micky3879b9f5e72025-07-08 18:04:53 -040082Constants defined in \fB<curses.h>\fP can be used with the \fB&\fP (logical
83AND) operator to extract the character or the attribute alone from any position
84in the \fIwchstr\fP [see \fBgetcchar\fP(3X)].
Steve Kondikae271bc2015-11-15 02:50:53 +010085.SH RETURN VALUE
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053086Upon successful completion, these functions return
micky3879b9f5e72025-07-08 18:04:53 -040087\fBOK\fP.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053088Otherwise, they return
micky3879b9f5e72025-07-08 18:04:53 -040089\fBERR\fP.
Steve Kondikae271bc2015-11-15 02:50:53 +010090.PP
micky3879b9f5e72025-07-08 18:04:53 -040091X/Open Curses defines no error conditions.
92This implementation returns an error
93.bP
94if the \fIwin\fP parameter is null or
95.bP
96if the \fIwchstr\fP parameter is null.
97.PP
98Functions prefixed with \*(``mv\*('' first perform cursor movement and
99fail if the position
100.RI ( y ,
101.IR x )
102is outside the window boundaries.
103.SH NOTES
104All routines except \fBwin_wchnstr\fP may be macros.
105.PP
106Reading a line that overflows the array pointed to by
107\fIwchstr\fP
108with
109\fBin_wchstr\fP,
110\fBmvin_wchstr\fP,
111\fBmvwin_wchstr\fP
112or
113\fBwin_wchstr\fP
114causes undefined results.
115Therefore, the use of
116\fBin_wchnstr\fP,
117\fBmvin_wchnstr\fP,
118\fBmvwin_wchnstr\fP, or
119\fBwin_wchnstr\fP
120is recommended.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530121.SH PORTABILITY
micky3879b9f5e72025-07-08 18:04:53 -0400122X/Open Curses defines no error conditions.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530123This implementation checks for null pointers,
micky3879b9f5e72025-07-08 18:04:53 -0400124returning \fBERR\fP in that case.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530125.SH SEE ALSO
micky3879b9f5e72025-07-08 18:04:53 -0400126\fB\%curs_inchstr\fP(3X) describes comparable functions of the
127.I \%ncurses
128library in its non-wide-character configuration.
129.PP
130\fB\%curses\fP(3X),
131\fB\%curs_inwstr\fP(3X),
132\fB\%curs_in_wch\fP(3X)