diff options
Diffstat (limited to 'doc/lreplace.n')
| -rw-r--r-- | doc/lreplace.n | 54 |
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: |
