summaryrefslogtreecommitdiffstats
path: root/doc/lreplace.n
diff options
context:
space:
mode:
Diffstat (limited to 'doc/lreplace.n')
-rw-r--r--doc/lreplace.n54
1 files changed, 16 insertions, 38 deletions
diff --git a/doc/lreplace.n b/doc/lreplace.n
index 47d33f9..18c6490 100644
--- a/doc/lreplace.n
+++ b/doc/lreplace.n
@@ -17,8 +17,9 @@ lreplace \- Replace elements in a list with new elements
.BE
.SH DESCRIPTION
.PP
-\fBlreplace\fR returns a new list formed by replacing zero or more elements of
+\fBlreplace\fR returns a new list formed by replacing one or more elements of
\fIlist\fR with the \fIelement\fR arguments.
+.VS 8.5
\fIfirst\fR and \fIlast\fR are index values specifying the first and
last elements of the range to replace.
The index values \fIfirst\fR and \fIlast\fR are interpreted
@@ -27,44 +28,38 @@ supporting simple index arithmetic and indices relative to the
end of the list.
0 refers to the first element of the
list, and \fBend\fR refers to the last element of the list.
+If \fIlist\fR is empty, then \fIfirst\fR and \fIlast\fR are ignored.
+.VE
.PP
-If either \fIfirst\fR or \fIlast\fR is less than zero, it is considered
-to refer to before the first element of the list. This allows \fBlreplace\fR
-to prepend elements to \fIlist\fR.
-.VS TIP505
-If either \fIfirst\fR or \fIlast\fR indicates a position greater than the
-index of the last element of the list, it is treated as if it is an
-index one greater than the last element. This allows \fBlreplace\fR to
-append elements to \fIlist\fR.
-.VE TIP505
+If \fIfirst\fR is less than zero, it is considered to refer to before the
+first element of the list. For non-empty lists, the element indicated
+by \fIfirst\fR must exist or \fIfirst\fR must indicate before the
+start of the list.
.PP
If \fIlast\fR is less than \fIfirst\fR, then any specified elements
-will be inserted into the list before the element specified by \fIfirst\fR
+will be inserted into the list at the point specified by \fIfirst\fR
with no elements being deleted.
.PP
-The \fIelement\fR arguments specify zero or more new elements to
+The \fIelement\fR arguments specify zero or more new arguments to
be added to the list in place of those that were deleted.
Each \fIelement\fR argument will become a separate element of
the list. If no \fIelement\fR arguments are specified, then the elements
-between \fIfirst\fR and \fIlast\fR are simply deleted.
+between \fIfirst\fR and \fIlast\fR are simply deleted. If \fIlist\fR
+is empty, any \fIelement\fR arguments are added to the end of the list.
.SH EXAMPLES
-.PP
Replacing an element of a list with another:
-.PP
.CS
% \fBlreplace\fR {a b c d e} 1 1 foo
a foo c d e
.CE
.PP
Replacing two elements of a list with three:
-.PP
.CS
% \fBlreplace\fR {a b c d e} 1 2 three more elements
a three more elements d e
.CE
.PP
Deleting the last element from a list in a variable:
-.PP
.CS
% set var {a b c d e}
a b c d e
@@ -73,7 +68,6 @@ a b c d
.CE
.PP
A procedure to delete a given element from a list:
-.PP
.CS
proc lremove {listVariable value} {
upvar 1 $listVariable var
@@ -81,27 +75,11 @@ proc lremove {listVariable value} {
set var [\fBlreplace\fR $var $idx $idx]
}
.CE
-.PP
-.VS TIP505
-Appending elements to the list; note that \fBend+2\fR will initially
-be treated as if it is \fB6\fR here, but both that and \fB12345\fR are greater
-than the index of the final item so they behave identically:
-.PP
-.CS
-% set var {a b c d e}
-a b c d e
-% set var [\fBlreplace\fR $var 12345 end+2 f g h i]
-a b c d e f g h i
-.CE
-.VE TIP505
.SH "SEE ALSO"
-list(n), lappend(n), lassign(n), ledit(n), lindex(n), linsert(n), llength(n),
-lmap(n), lpop(n), lrange(n), lremove(n), lrepeat(n),
-lreverse(n), lsearch(n), lseq(n), lset(n), lsort(n),
+list(n), lappend(n), lindex(n), linsert(n), llength(n), lsearch(n),
+lset(n), lrange(n), lsort(n),
+.VS 8.5
string(n)
+.VE
.SH KEYWORDS
element, list, replace
-.\" Local variables:
-.\" mode: nroff
-.\" fill-column: 78
-.\" End: