.\"*************************************************************************** .\" Copyright 2018-2024,2025 Thomas E. Dickey * .\" Copyright 1998-2010,2017 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 * .\" "Software"), to deal in the Software without restriction, including * .\" without limitation the rights to use, copy, modify, merge, publish, * .\" distribute, distribute with modifications, sublicense, and/or sell * .\" copies of the Software, and to permit persons to whom the Software is * .\" furnished to do so, subject to the following conditions: * .\" * .\" The above copyright notice and this permission notice shall be included * .\" in all copies or substantial portions of the Software. * .\" * .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * .\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * .\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * .\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * .\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. * .\" * .\" Except as contained in this notice, the name(s) of the above copyright * .\" holders shall not be used in advertising or otherwise to promote the * .\" sale, use or other dealings in this Software without prior written * .\" authorization. * .\"*************************************************************************** .\" .\" $Id: curs_inchstr.3x,v 1.65 2025/10/21 00:05:02 tom Exp $ .TH curs_inchstr 3X 2025-10-20 "ncurses 6.6" "Library calls" .ie \n(.g \{\ .ds `` \(lq .ds '' \(rq .\} .el \{\ .ie t .ds `` `` .el .ds `` "" .ie t .ds '' '' .el .ds '' "" .\} . .de bP .ie n .IP \(bu 4 .el .IP \(bu 2 .. .SH NAME \fB\%inchstr\fP, \fB\%inchnstr\fP, \fB\%winchstr\fP, \fB\%winchnstr\fP, \fB\%mvinchstr\fP, \fB\%mvinchnstr\fP, \fB\%mvwinchstr\fP, \fB\%mvwinchnstr\fP \- get a \fIcurses\fR character string from a window .SH SYNOPSIS .nf \fB#include .PP \fBint inchstr(chtype * \fIchstr\fP); \fBint inchnstr(chtype * \fIchstr\fP, int \fIn\fP); \fBint winchstr(WINDOW * \fIwin\fP, chtype * \fIchstr\fP); \fBint winchnstr(WINDOW * \fIwin\fP, chtype * \fIchstr\fP, int \fIn\fP); .PP \fBint mvinchstr(int \fIy\fP, int \fIx\fP, chtype * \fIchstr\fP); \fBint mvinchnstr(int \fIy\fP, int \fIx\fP, chtype * \fIchstr\fP, int \fIn\fP); \fBint mvwinchstr(WINDOW * \fIwin\fP, int \fIy\fP, int \fIx\fP, chtype * \fIchstr\fP); \fBint mvwinchnstr(WINDOW * \fIwin\fP, int \fIy\fP, int \fIx\fP, chtype * \fIchstr\fP, int \fIn\fP); .fi .SH DESCRIPTION .B \%winchstr extracts a .I curses character string from a .I curses window .IR win "," starting at the cursor and stopping at the end of the line, and stores it in .IR chstr "," terminating it with a null .I curses character. .B \%winchnstr does the same, but copies at most .I n .I curses characters from .IR win "." A negative .I n implies no limit; .B \%winchnstr then works like .BR \%winchstr "." \fB\%ncurses\fP(3X) describes the variants of these functions. .SH RETURN VALUE These functions return .B OK on success and .B ERR on failure. .PP In .IR \%ncurses "," these functions fail if .bP the .I curses screen has not been initialized, .bP (for functions taking a .I \%WINDOW pointer argument) .I win is a null pointer, or .bP .I chstr is a null pointer. .PP Functions prefixed with \*(``mv\*('' first perform cursor movement and fail if the position .RI ( y , .IR x ) is outside the window boundaries. .SH NOTES All of these functions except .B \%winchnstr may be implemented as macros. .PP Reading a line that overflows the array pointed to by .I chstr and its variants causes undefined results. Instead, use the .IR n -infixed functions with a positive .I n argument no larger than the size of the buffer backing .IR chstr "." .SH EXTENSIONS .BR \%inchnstr "," .BR \%winchnstr "," .BR \%mvinchnstr "," and .BR \%mvwinchnstr "'s" acceptance of negative .I n values is an .I \%ncurses extension. .SH PORTABILITY Applications employing .I \%ncurses extensions should condition their use on the visibility of the .B \%NCURSES_VERSION preprocessor macro. .PP X/Open Curses Issue\ 4 describes these functions. It specifies no error conditions for them. It characterizes the strings stored by these functions as containing \*(``at most .I n elements\*('' from a window, .\" X/Open Issue 4, Version 2, p. 113, PDF p. 133 .\" Issue 7 doesn't change this wording at all. but does not specify whether the string stored by these functions is null-terminated. .PP SVr4 does not document whether it null-terminates the .I curses character string it stores in .IR chstr "," and does not document whether a trailing null .I curses character counts toward the length limit .IR n "." .PP SVr4 describes a successful return value only as \*(``an integer value other than .IR ERR \*(''. \" Courier roman in source; SVID 4, vol. 3, p. 503 .SH HISTORY SVr3.1 (1987) introduced these functions. .SH SEE ALSO \fB\%curs_in_wchstr\fP(3X) describes comparable functions of the .I \%ncurses library in its wide-character configuration .RI \%( ncursesw ). .PP \fB\%curses\fP(3X), \fB\%curs_inch\fP(3X), \fB\%curs_inwstr\fP(3X)