aboutsummaryrefslogtreecommitdiff
path: root/contrib/tcl/doc/ListObj.3
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/tcl/doc/ListObj.3')
-rw-r--r--contrib/tcl/doc/ListObj.3249
1 files changed, 0 insertions, 249 deletions
diff --git a/contrib/tcl/doc/ListObj.3 b/contrib/tcl/doc/ListObj.3
deleted file mode 100644
index c19e2344ba09..000000000000
--- a/contrib/tcl/doc/ListObj.3
+++ /dev/null
@@ -1,249 +0,0 @@
-'\"
-'\" Copyright (c) 1996-1997 Sun Microsystems, Inc.
-'\"
-'\" See the file "license.terms" for information on usage and redistribution
-'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-'\"
-'\" SCCS: @(#) @(#) ListObj.3 1.10 97/10/08 11:36:58
-'\"
-.so man.macros
-.TH Tcl_ListObj 3 8.0 Tcl "Tcl Library Procedures"
-.BS
-.SH NAME
-Tcl_ListObjAppendList, Tcl_ListObjAppendElement, Tcl_NewListObj, Tcl_SetListObj, Tcl_ListObjGetElements, Tcl_ListObjLength, Tcl_ListObjIndex, Tcl_ListObjReplace \- manipulate Tcl objects as lists
-.SH SYNOPSIS
-.nf
-\fB#include <tcl.h>\fR
-.sp
-int
-\fBTcl_ListObjAppendList\fR(\fIinterp, listPtr, elemListPtr\fR)
-.sp
-int
-\fBTcl_ListObjAppendElement\fR(\fIinterp, listPtr, objPtr\fR)
-.sp
-Tcl_Obj *
-\fBTcl_NewListObj\fR(\fIobjc, objv\fR)
-.sp
-\fBTcl_SetListObj\fR(\fIobjPtr, objc, objv\fR)
-.sp
-int
-\fBTcl_ListObjGetElements\fR(\fIinterp, listPtr, objcPtr, objvPtr\fR)
-.sp
-int
-\fBTcl_ListObjLength\fR(\fIinterp, listPtr, intPtr\fR)
-.sp
-int
-\fBTcl_ListObjIndex\fR(\fIinterp, listPtr, index, objPtrPtr\fR)
-.sp
-int
-\fBTcl_ListObjReplace\fR(\fIinterp, listPtr, first, count, objc, objv\fR)
-.SH ARGUMENTS
-.AS Tcl_Interp "*CONST objv[]" out
-.AP Tcl_Interp *interp in
-If an error occurs while converting an object to be a list object,
-an error message is left in the interpreter's result object
-unless \fIinterp\fR is NULL.
-.AP Tcl_Obj *listPtr in/out
-Points to the list object to be manipulated.
-If \fIlistPtr\fR does not already point to a list object,
-an attempt will be made to convert it to one.
-.AP Tcl_Obj *elemListPtr in/out
-For \fBTcl_ListObjAppendList\fR, this points to a list object
-containing elements to be appended onto \fIlistPtr\fR.
-Each element of *\fIelemListPtr\fR will
-become a new element of \fIlistPtr\fR.
-If *\fIelemListPtr\fR is not NULL and
-does not already point to a list object,
-an attempt will be made to convert it to one.
-.AP Tcl_Obj *objPtr in
-For \fBTcl_ListObjAppendElement\fR,
-points to the Tcl object that will be appended to \fIlistPtr\fR.
-For \fBTcl_SetListObj\fR,
-this points to the Tcl object that will be converted to a list object
-containing the \fIobjc\fR elements of the array referenced by \fIobjv\fR.
-.AP int *objcPtr in
-Points to location where \fBTcl_ListObjGetElements\fR
-stores the number of element objects in \fIlistPtr\fR.
-.AP Tcl_Obj ***objvPtr out
-A location where \fBTcl_ListObjGetElements\fR stores a pointer to an array
-of pointers to the element objects of \fIlistPtr\fR.
-.AP int objc in
-The number of Tcl objects that \fBTcl_NewListObj\fR
-will insert into a new list object,
-and \fBTcl_ListObjReplace\fR will insert into \fIlistPtr\fR.
-For \fBTcl_SetListObj\fR,
-the number of Tcl objects to insert into \fIobjPtr\fR.
-.VS
-.TP
-Tcl_Obj *CONST \fIobjv\fR[] (in)
-.
-An array of pointers to objects.
-\fBTcl_NewListObj\fR will insert these objects into a new list object
-and \fBTcl_ListObjReplace\fR will insert them into an existing \fIlistPtr\fR.
-Each object will become a separate list element.
-.VE
-.AP int *intPtr out
-Points to location where \fBTcl_ListObjLength\fR
-stores the length of the list.
-.AP int index in
-Index of the list element that \fBTcl_ListObjIndex\fR
-is to return.
-The first element has index 0.
-.AP Tcl_Obj **objPtrPtr out
-Points to place where \fBTcl_ListObjIndex\fR is to store
-a pointer to the resulting list element object.
-.AP int first in
-Index of the starting list element that \fBTcl_ListObjReplace\fR
-is to replace.
-The list's first element has index 0.
-.AP int count in
-The number of elements that \fBTcl_ListObjReplace\fR
-is to replace.
-.BE
-
-.SH DESCRIPTION
-.PP
-Tcl list objects have an internal representation that supports
-the efficient indexing and appending.
-The procedures described in this man page are used to
-create, modify, index, and append to Tcl list objects from C code.
-.PP
-\fBTcl_ListObjAppendList\fR and \fBTcl_ListObjAppendElement\fR
-both add one or more objects
-to the end of the list object referenced by \fIlistPtr\fR.
-\fBTcl_ListObjAppendList\fR appends each element of the list object
-referenced by \fIelemListPtr\fR while
-\fBTcl_ListObjAppendElement\fR appends the single object
-referenced by \fIobjPtr\fR.
-Both procedures will convert the object referenced by \fIlistPtr\fR
-to a list object if necessary.
-If an error occurs during conversion,
-both procedures return \fBTCL_ERROR\fR and leave an error message
-in the interpreter's result object if \fIinterp\fR is not NULL.
-Similarly, if \fIelemListPtr\fR does not already refer to a list object,
-\fBTcl_ListObjAppendList\fR will attempt to convert it to one
-and if an error occurs during conversion,
-will return \fBTCL_ERROR\fR
-and leave an error message in the interpreter's result object
-if interp is not NULL.
-Both procedures invalidate any old string representation of \fIlistPtr\fR
-and, if it was converted to a list object,
-free any old internal representation.
-Similarly, \fBTcl_ListObjAppendList\fR frees any old internal representation
-of \fIelemListPtr\fR if it converts it to a list object.
-After appending each element in \fIelemListPtr\fR,
-\fBTcl_ListObjAppendList\fR increments the element's reference count
-since \fIlistPtr\fR now also refers to it.
-For the same reason, \fBTcl_ListObjAppendElement\fR
-increments \fIobjPtr\fR's reference count.
-If no error occurs,
-the two procedures return \fBTCL_OK\fR after appending the objects.
-.PP
-\fBTcl_NewListObj\fR and \fBTcl_SetListObj\fR
-create a new object or modify an existing object to hold
-the \fIobjc\fR elements of the array referenced by \fIobjv\fR
-where each element is a pointer to a Tcl object.
-If \fIobjc\fR is less than or equal to zero,
-they return an empty object.
-The new object's string representation is left invalid.
-The two procedures increment the reference counts
-of the elements in \fIobjc\fR since the list object now refers to them.
-The new list object returned by \fBTcl_NewListObj\fR
-has reference count zero.
-.PP
-\fBTcl_ListObjGetElements\fR returns a count and
-a pointer to an array of the elements in a list object.
-It returns the count by storing it in the address \fIobjcPtr\fR.
-Similarly, it returns the array pointer by storing it
-in the address \fIobjvPtr\fR.
-If \fIlistPtr\fR is not already a list object,
-\fBTcl_ListObjGetElements\fR will attempt to convert it to one;
-if the conversion fails, it returns \fBTCL_ERROR\fR
-and leaves an error message in the interpreter's result object
-if \fIinterp\fR is not NULL.
-Otherwise it returns \fBTCL_OK\fR after storing the count and array pointer.
-.PP
-\fBTcl_ListObjLength\fR returns the number of elements in the list object
-referenced by \fIlistPtr\fR.
-It returns this count by storing an integer in the address \fIintPtr\fR.
-If the object is not already a list object,
-\fBTcl_ListObjLength\fR will attempt to convert it to one;
-if the conversion fails, it returns \fBTCL_ERROR\fR
-and leaves an error message in the interpreter's result object
-if \fIinterp\fR is not NULL.
-Otherwise it returns \fBTCL_OK\fR after storing the list's length.
-.PP
-The procedure \fBTcl_ListObjIndex\fR returns a pointer to the object
-at element \fIindex\fR in the list referenced by \fIlistPtr\fR.
-It returns this object by storing a pointer to it
-in the address \fIobjPtrPtr\fR.
-If \fIlistPtr\fR does not already refer to a list object,
-\fBTcl_ListObjIndex\fR will attempt to convert it to one;
-if the conversion fails, it returns \fBTCL_ERROR\fR
-and leaves an error message in the interpreter's result object
-if \fIinterp\fR is not NULL.
-If the index is out of range,
-that is, \fIindex\fR is negative or
-greater than or equal to the number of elements in the list,
-\fBTcl_ListObjIndex\fR stores a NULL in \fIobjPtrPtr\fR
-and returns \fBTCL_OK\fR.
-Otherwise it returns \fBTCL_OK\fR after storing the element's
-object pointer.
-The reference count for the list element is not incremented;
-the caller must do that if it needs to retain a pointer to the element.
-.PP
-\fBTcl_ListObjReplace\fR replaces zero or more elements
-of the list referenced by \fIlistPtr\fR
-with the \fIobjc\fR objects in the array referenced by \fIobjv\fR.
-If \fIlistPtr\fR does not point to a list object,
-\fBTcl_ListObjReplace\fR will attempt to convert it to one;
-if the conversion fails, it returns \fBTCL_ERROR\fR
-and leaves an error message in the interpreter's result object
-if \fIinterp\fR is not NULL.
-Otherwise, it returns \fBTCL_OK\fR after replacing the objects.
-If \fIobjv\fR is NULL, no new elements are added.
-If the argument \fIfirst\fR is zero or negative,
-it refers to the first element.
-If \fIfirst\fR is greater than or equal to the
-number of elements in the list, then no elements are deleted;
-the new elements are appended to the list.
-\fIcount\fR gives the number of elements to replace.
-If \fIcount\fR is zero or negative then no elements are deleted;
-the new elements are simply inserted before the one
-designated by \fIfirst\fR.
-\fBTcl_ListObjReplace\fR invalidates \fIlistPtr\fR's
-old string representation.
-The reference counts of any elements inserted from \fIobjv\fR
-are incremented since the resulting list now refers to them.
-Similarly, the reference counts for any replaced objects are decremented.
-.PP
-Because \fBTcl_ListObjReplace\fR combines
-both element insertion and deletion,
-it can be used to implement a number of list operations.
-For example, the following code inserts the \fIobjc\fR objects
-referenced by the array of object pointers \fIobjv\fR
-just before the element \fIindex\fR of the list referenced by \fIlistPtr\fR:
-.CS
-result = Tcl_ListObjReplace(interp, listPtr, index, 0, objc, objv);
-.CE
-Similarly, the following code appends the \fIobjc\fR objects
-referenced by the array \fIobjv\fR
-to the end of the list \fIlistPtr\fR:
-.CS
-result = Tcl_ListObjLength(interp, listPtr, &length);
-if (result == TCL_OK) {
- result = Tcl_ListObjReplace(interp, listPtr, length, 0, objc, objv);
-}
-.CE
-The \fIcount\fR list elements starting at \fIfirst\fR can be deleted
-by simply calling \fBTcl_ListObjReplace\fR
-with a NULL \fIobjvPtr\fR:
-.CS
-result = Tcl_ListObjReplace(interp, listPtr, first, count, 0, NULL);
-.CE
-
-.SH "SEE ALSO"
-Tcl_NewObj, Tcl_DecrRefCount, Tcl_IncrRefCount, Tcl_GetObjResult
-
-.SH KEYWORDS
-append, index, insert, internal representation, length, list, list object, list type, object, object type, replace, string representation