X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=man%2Fcurs_instr.3x;h=c64151b94370df1c3d3e51b6fdc3de2d6398b834;hb=HEAD;hp=4ab3e540a40172b26777f5e9869b54340928f841;hpb=16fbf3f4f7d96b6ee6bf9159b22f26e05962aa3d;p=ncurses.git diff --git a/man/curs_instr.3x b/man/curs_instr.3x index 4ab3e540..911d4e89 100644 --- a/man/curs_instr.3x +++ b/man/curs_instr.3x @@ -1,5 +1,5 @@ .\"*************************************************************************** -.\" Copyright 2018-2021,2022 Thomas E. Dickey * +.\" Copyright 2018-2023,2024 Thomas E. Dickey * .\" Copyright 1998-2010,2017 Free Software Foundation, Inc. * .\" * .\" Permission is hereby granted, free of charge, to any person obtaining a * @@ -27,73 +27,197 @@ .\" authorization. * .\"*************************************************************************** .\" -.\" $Id: curs_instr.3x,v 1.25 2022/02/12 20:05:11 tom Exp $ -.TH curs_instr 3X "" -.ie \n(.g .ds `` \(lq -.el .ds `` `` -.ie \n(.g .ds '' \(rq -.el .ds '' '' +.\" $Id: curs_instr.3x,v 1.57 2024/06/08 20:47:39 tom Exp $ +.TH curs_instr 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "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 -\fBinstr\fP, -\fBinnstr\fP, -\fBwinstr\fP, -\fBwinnstr\fP, -\fBmvinstr\fP, -\fBmvinnstr\fP, -\fBmvwinstr\fP, -\fBmvwinnstr\fP \- get a string of characters from a \fBcurses\fP window +\fB\%instr\fP, +\fB\%innstr\fP, +\fB\%winstr\fP, +\fB\%winnstr\fP, +\fB\%mvinstr\fP, +\fB\%mvinnstr\fP, +\fB\%mvwinstr\fP, +\fB\%mvwinnstr\fP \- +get a string from a \fIcurses\fR window .SH SYNOPSIS -\fB#include \fP -.sp -\fBint instr(char *\fIstr\fB);\fR -.br -\fBint innstr(char *\fIstr\fB, int \fIn\fB);\fR -.br -\fBint winstr(WINDOW *\fIwin\fB, char *\fIstr\fB);\fR -.br -\fBint winnstr(WINDOW *\fIwin\fB, char *\fIstr\fB, int \fIn\fB);\fR -.sp -\fBint mvinstr(int \fIy\fB, int \fIx\fB, char *\fIstr\fB);\fR -.br -\fBint mvinnstr(int \fIy\fB, int \fIx\fB, char *\fIstr\fB, int \fIn\fB);\fR -.br -\fBint mvwinstr(WINDOW *\fIwin\fB, int \fIy\fB, int \fIx\fB, char *\fIstr\fB);\fR -.br -\fBint mvwinnstr(WINDOW *\fIwin\fB, int \fIy\fB, int \fIx\fB, char *\fIstr\fB, int \fIn\fB);\fR -.br +.nf +\fB#include +.PP +\fBint instr(char *\ \fIstr\fP); +\fBint winstr(WINDOW *\ \fIwin\fP, char *\ \fIstr\fP); +\fBint mvinstr(int \fIy\fP, int \fIx\fP, char *\ \fIstr\fP); +\fBint mvwinstr(WINDOW *\ \fIwin\fP, int \fIy\fP, int \fIx\fP, char *\ \fIstr\fP); +.PP +\fBint innstr(char *\ \fIstr\fP, int \fIn\fP); +\fBint winnstr(WINDOW *\ \fIwin\fP, char *\ \fIstr\fP, int \fIn\fP); +\fBint mvinnstr(int \fIy\fP, int \fIx\fP, char *\ \fIstr\fP, int \fIn\fP); +\fBint mvwinnstr(WINDOW *\ \fIwin\fP, int \fIy\fP, int \fIx\fP, char *\ \fIstr\fP, int \fIn\fP); +.fi .SH DESCRIPTION -These routines return a string of characters in \fIstr\fP, extracted starting -at the current cursor position in the named window. -Attributes are stripped from the characters. -The four -functions with \fIn\fP as the last argument return a leading substring at most -\fIn\fP characters long (exclusive of the trailing NUL). +.B \%winstr +extracts a 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 str "," +terminating it with a null character +and +omitting any attributes and color pair identifier +that +.I curses +associates with each character. +.B \%winnstr +does the same, +but copies at most +.I n +characters from +.IR win "." +An +.I n +of +.B \-1 +implies no limit; +.B \%winnstr +then works like +.BR \%winstr "." +\fB\%ncurses\fP(3X) describes the variants of these functions. .SH RETURN VALUE -All of the functions return \fBERR\fP upon failure, -or the number of characters actually read into the string. +These functions return the count of characters copied from +.I win +to +.IR str "," +or +.B ERR +upon failure. .PP -X/Open Curses defines no error conditions. -In this implementation: +In +.IR \%ncurses "," +they return +.B ERR +if .bP -If the \fIwin\fP parameter is null, an error is returned, +.I win +is +.B NULL +or .bP -If the \fIchstr\fP parameter is null, an error is returned, +.I str +is +.BR NULL "." .PP -Functions with a \*(``mv\*('' prefix first perform a cursor movement using -\fBwmove\fP, and return an error if the position is outside the window, -or if the window pointer is null. +Functions prefixed with \*(``mv\*('' first perform cursor movement and +fail if the position +.RI ( y , +.IR x ) +is outside the window boundaries. .SH NOTES -Note that all routines except \fBwinnstr\fP may be macros. +All of these functions except +.B \%winnstr +may be implemented as macros. +.PP +Reading a line that overflows the array pointed to by +.I str +with +.BR \%instr "," +.BR \%winstr "," +.BR \%mvinstr "," +or +.B \%mvwinstr +causes undefined results. +Use of +.BR \%innstr "," +.BR \%winnstr "," +.BR \%mvinnstr "," +and +.B \%mvwinnstr +is recommended instead. +.SH EXTENSIONS +.BR \%innstr "," +.BR \%winnstr "," +.BR \%mvinnstr "," +and +.BR \%mvwinnstr "'s" +treatment of +.B \-1 +as a valid value of +.I n +is an +.I \%ncurses +extension. .SH PORTABILITY -SVr4 does not -document whether a length limit includes or excludes the trailing NUL. +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. .PP -The ncurses library extends the XSI description by allowing a negative -value for \fIn\fP. -In this case, the functions return the string ending at the right margin. +X/Open Curses Issues 4 and 7 both state that +.BR \%instr "," +.BR \%winstr "," +.BR \%mvinstr "," +and +.B \%mvwinstr +return +.B OK +rather than a character count. +This is likely an erratum. +.bP +SVr3.1 and SVr4 implemented +.B \%winstr +as a wrapper around +.BR \%winnstr "," +returning the latter's return value. +X/Open Curses's specification thus may have been an editorial solecism +copied from System\ V's documentation +(see below) +by X/Open, +rather than an intentional change. +.bP +.I \%ncurses +retains compatibility with System\ V +.I curses +behavior. +.PP +SVr4 documents no return values apart from +.B OK +and +.B ERR +for any of these functions. +SVr4 does not +document whether +.I n +counts the null terminator that these functions write to +.IR str "." +.SH HISTORY +SVr3.1 (1987) +introduced these functions. .SH SEE ALSO -\fBcurses\fP(3X). +\fB\%curs_inwstr\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_inchstr\fP(3X)