X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Fcurs_getstr.3x.html;h=0aaefaf143c9b31834d030f65bdf354acb53d405;hp=13eba81072167ee48a0484731a194250cf4848a7;hb=30393be892025f03322b7907a04cc05cc08e8760;hpb=7d6371e47006c8aef4ac94f52998a35b03bf89cf;ds=sidebyside diff --git a/doc/html/man/curs_getstr.3x.html b/doc/html/man/curs_getstr.3x.html index 13eba810..0aaefaf1 100644 --- a/doc/html/man/curs_getstr.3x.html +++ b/doc/html/man/curs_getstr.3x.html @@ -26,7 +26,10 @@ * sale, use or other dealings in this Software without prior written * * authorization. * **************************************************************************** - * @Id: curs_getstr.3x,v 1.24 2018/07/28 21:34:56 tom Exp @ + * @Id: curs_getstr.3x,v 1.26 2018/09/01 20:34:52 tom Exp @ + * X/Open says also until EOf + * X/Open says then an EOS is added to the result + * X/Open doesn't mention n<0 --> @@ -67,7 +70,7 @@ The function getstr is equivalent to a series of calls to getch, until a newline or carriage return is received (the terminating character is not included in the returned string). The resulting value is placed in - the area pointed to by the character pointer str. + the area pointed to by the character pointer str, followed by a NUL. wgetnstr reads at most n characters, thus preventing a possible over- flow of the input buffer. Any attempt to enter more characters (other @@ -122,6 +125,48 @@ The functions getnstr, mvgetnstr, and mvwgetnstr were present but not documented in SVr4. + X/Open Curses issue 5 (2007) stated that these functions "read at most + n bytes" but did not state whether the terminating NUL is counted in + that limit. X/Open Curses issue 7 (2009) changed that to say they + "read at most n-1 bytes" to allow for the terminating NUL. As of 2018, + some implementations do, some do not count it: + + o ncurses 6.1 and PDCurses do not count the NUL in the given limit, + while + + o Solaris SVr4 and NetBSD curses count the NUL as part of the limit. + + o Solaris xcurses provides both: its wide-character wget_nstr re- + serves a NUL, but its wgetnstr does not count the NUL consistently. + + In SVr4 curses, a negative value of n tells wgetnstr to assume that the + caller's buffer is large enough to hold the result, i.e., to act like + wgetstr. X/Open Curses does not mention this (or anything related to + negative or zero values of n), however most implementations use the + feature, with different limits: + + o Solaris SVr4 curses and PDCurses limit the result to 255 bytes. + Other Unix systems than Solaris are likely to use the same limit. + + o Solaris xcurses limits the result to LINE_MAX bytes. + + o NetBSD 7 assumes no particular limit for the result from wgetstr. + However, it limits the wgetnstr parameter n to ensure that it is + greater than zero. + + A comment in NetBSD's source code states that this is specified in + SUSv2. + + o ncurses (before 6.2) assumes no particular limit for the result + from wgetstr, and treats the n parameter of wgetnstr like SVr4 + curses. + + o ncurses 6.2 uses LINE_MAX, or a larger (system-dependent) value + which the sysconf function may provide. If neither LINE_MAX or + sysconf is available, ncurses uses the POSIX value for LINE_MAX (a + 2048 byte limit). In either case, it reserves a byte for the ter- + minating NUL. +

SEE ALSO

        curses(3x), curs_getch(3x), curs_variables(3x).