]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - man/curs_insstr.3x
ncurses 6.5 - patch 20240922
[ncurses.git] / man / curs_insstr.3x
index 3e38a531d5fb79e2ff2e84764ac028ab0cc849fa..30c4da20d723cb6719c3ecb8f3136f1768e47923 100644 (file)
@@ -1,5 +1,6 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc.              *
+.\" Copyright 2019-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  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_insstr.3x,v 1.21 2010/12/04 18:38:55 tom Exp $
-.TH curs_insstr 3X ""
+.\" $Id: curs_insstr.3x,v 1.57 2024/07/27 20:07:59 tom Exp $
+.TH curs_insstr 3X 2024-07-27 "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
-\fBinsstr\fR,
-\fBinsnstr\fR,
-\fBwinsstr\fR,
-\fBwinsnstr\fR,
-\fBmvinsstr\fR,
-\fBmvinsnstr\fR,
-\fBmvwinsstr\fR,
-\fBmvwinsnstr\fR \- insert string before cursor in a \fBcurses\fR window
+\fB\%insstr\fP,
+\fB\%winsstr\fP,
+\fB\%mvinsstr\fP,
+\fB\%mvinsnstr\fP,
+\fB\%insnstr\fP,
+\fB\%winsnstr\fP,
+\fB\%mvwinsstr\fP,
+\fB\%mvwinsnstr\fP \-
+insert a string in a \fIcurses\fR window
 .SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-\fBint insstr(const char *str);\fR
-.br
-\fBint insnstr(const char *str, int n);\fR
-.br
-\fBint winsstr(WINDOW *win, const char *str);\fR
-.br
-\fBint winsnstr(WINDOW *win, const char *str, int n);\fR
-.br
-\fBint mvinsstr(int y, int x, const char *str);\fR
-.br
-\fBint mvinsnstr(int y, int x, const char *str, int n);\fR
-.br
-\fBint mvwinsstr(WINDOW *win, int y, int x, const char *str);\fR
-.br
-\fBint mvwinsnstr(WINDOW *win, int y, int x, const char *str, int n);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBint insstr(const char * \fIstr\fP);
+\fBint winsstr(WINDOW * \fIwin\fP, const char * \fIstr\fP);
+\fBint mvinsstr(int \fIy\fP, int \fIx\fP, const char * \fIstr\fP);
+\fBint mvwinsstr(WINDOW * \fIwin\fP, int \fIy\fP, int \fIx\fP, const char * \fIstr\fP);
+.PP
+\fBint insnstr(const char * \fIstr\fP, int \fIn\fP);
+\fBint winsnstr(WINDOW * \fIwin\fP, const char * \fIstr\fP, int \fIn\fP);
+\fBint mvinsnstr(int \fIy\fP, int \fIx\fP, const char * \fIstr\fP, int \fIn\fP);
+\fBint mvwinsnstr(WINDOW * \fIwin\fP, int \fIy\fP, int \fIx\fP, const char * \fIstr\fP, int \fIn\fP);
+.fi
 .SH DESCRIPTION
-These routines insert a character string
-(as many characters as will fit on the line)
-before the character under the cursor.
-All characters to the right of the cursor are shifted right
-with the possibility of the rightmost characters on the line being lost.
+.B \%winsstr
+inserts a string
+.I str
+before the character at the cursor in window
+.I win
+as if by calling \fBwinsch\fP(3X) for each
+.I char
+in
+.IR str "."
+No line wrapping is performed.
+Characters to the right of the cursor are shifted right;
+those at the right edge of the window may be lost.
+.B \%winsstr
+stops inserting if it would have to wrap to the next line to write the
+next
+.I \%char
+in
+.IR str "."
 The cursor position does not change
-(after moving to \fIy\fR, \fIx\fR, if specified).
-The functions with \fIn\fR as the last argument
-insert a leading substring of at most \fIn\fR characters.
-If \fIn\fR<=0, then the entire string is inserted.
-.PP
-Special characters are handled as in \fBaddch\fP.
+(after moving to
+.RI ( y ","
+.IR x "),"
+if specified).
+.B \%insnstr
+does the same,
+but inserts at most
+.I n
+characters,
+or as many as possible
+(up to the end of the line)
+if
+.I n
+is
+.BR \-1 "."
+\fB\%ncurses\fP(3X) describes the variants of these functions.
 .SH RETURN VALUE
-All routines that return an integer return \fBERR\fR upon failure and OK (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion, unless otherwise noted in the preceding routine descriptions.
+These functions return
+.B OK
+on success and
+.B ERR
+on failure.
 .PP
-X/Open defines no error conditions.
-In this implementation,
-if the window parameter is null or the str parameter is null,
-an error is returned.
+In
+.IR \%ncurses ","
+they return
+.B ERR
+if
+.bP
+.I win
+is
+.BR NULL ","
+.bP
+.I str
+is
+.BR NULL ","
+or
+.bP
+an internal \fBwinsch\fP(3X) call returns
+.BR ERR "."
 .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 but \fBwinsnstr\fR may be macros.
+All of these functions except
+.B \%winsnstr
+may be implemented as macros.
 .SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4, which adds
-const qualifiers to the arguments.
-.LP
-The Single Unix Specification, Version 2 states that 
-\fBinsnstr\fP and \fBwinsnstr\fP perform wrapping.
-This is probably an error, since it makes this group of functions inconsistent.
-Also, no implementation of curses documents this inconsistency.
+X/Open Curses,
+Issue 4 describes these functions.
+It specifies no error conditions for them.
+.PP
+Issue 4 distinguished
+.B \%insnstr
+and
+.B \%winsnstr
+from the other functions documented above
+by stating they \*(``do not perform wrapping\*(''.
+This was probably an error,
+since it makes this group of functions inconsistent.
+No implementation of
+.I curses
+documents this inconsistency,
+and Issue 7 removed it.
+.PP
+Issue 4 states that the entire string is inserted if
+.I n
+is less than 1.
+This is probably an error,
+.\" ...copied from SVID 4, which made the same error; see p. 510.
+because it is inconsistent with other functions
+such as \fB\%waddstr\fP(3X),
+and differs from the SVr4
+.I curses
+and Solaris
+.I xcurses
+implementations.
+Nevertheless,
+Issue 7 retains the language.
+.SH HISTORY
+SVr3.1 (1987)
+introduced
+.I \%winsstr
+and
+.IR \%winsnstr "."
 .SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_util\fR(3X),
-\fBcurs_clear\fR(3X),
-\fBcurs_inch\fR(3X).
+\fB\%curs_ins_wstr\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_ins_wstr\fP(3X),
+\fB\%curs_util\fP(3X)