OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [tcl/] [doc/] [DString.3] - Diff between revs 578 and 1765

Only display areas with differences | Details | Blame | View Log

Rev 578 Rev 1765
'\"
'\"
'\" Copyright (c) 1993 The Regents of the University of California.
'\" Copyright (c) 1993 The Regents of the University of California.
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
'\"
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
'\"
'\" RCS: @(#) $Id: DString.3,v 1.1.1.1 2002-01-16 10:25:23 markom Exp $
'\" RCS: @(#) $Id: DString.3,v 1.1.1.1 2002-01-16 10:25:23 markom Exp $
'\"
'\"
.so man.macros
.so man.macros
.TH Tcl_DString 3 7.4 Tcl "Tcl Library Procedures"
.TH Tcl_DString 3 7.4 Tcl "Tcl Library Procedures"
.BS
.BS
.SH NAME
.SH NAME
Tcl_DStringInit, Tcl_DStringAppend, Tcl_DStringAppendElement, Tcl_DStringStartSublist, Tcl_DStringEndSublist, Tcl_DStringLength, Tcl_DStringValue, Tcl_DStringSetLength, Tcl_DStringFree, Tcl_DStringResult, Tcl_DStringGetResult \- manipulate dynamic strings
Tcl_DStringInit, Tcl_DStringAppend, Tcl_DStringAppendElement, Tcl_DStringStartSublist, Tcl_DStringEndSublist, Tcl_DStringLength, Tcl_DStringValue, Tcl_DStringSetLength, Tcl_DStringFree, Tcl_DStringResult, Tcl_DStringGetResult \- manipulate dynamic strings
.SH SYNOPSIS
.SH SYNOPSIS
.nf
.nf
\fB#include \fR
\fB#include \fR
.sp
.sp
\fBTcl_DStringInit\fR(\fIdsPtr\fR)
\fBTcl_DStringInit\fR(\fIdsPtr\fR)
.sp
.sp
char *
char *
\fBTcl_DStringAppend\fR(\fIdsPtr, string, length\fR)
\fBTcl_DStringAppend\fR(\fIdsPtr, string, length\fR)
.sp
.sp
char *
char *
\fBTcl_DStringAppendElement\fR(\fIdsPtr, string\fR)
\fBTcl_DStringAppendElement\fR(\fIdsPtr, string\fR)
.sp
.sp
\fBTcl_DStringStartSublist\fR(\fIdsPtr\fR)
\fBTcl_DStringStartSublist\fR(\fIdsPtr\fR)
.sp
.sp
\fBTcl_DStringEndSublist\fR(\fIdsPtr\fR)
\fBTcl_DStringEndSublist\fR(\fIdsPtr\fR)
.sp
.sp
int
int
\fBTcl_DStringLength\fR(\fIdsPtr\fR)
\fBTcl_DStringLength\fR(\fIdsPtr\fR)
.sp
.sp
char *
char *
\fBTcl_DStringValue\fR(\fIdsPtr\fR)
\fBTcl_DStringValue\fR(\fIdsPtr\fR)
.sp
.sp
\fBTcl_DStringSetLength\fR(\fIdsPtr, newLength\fR)
\fBTcl_DStringSetLength\fR(\fIdsPtr, newLength\fR)
.sp
.sp
\fBTcl_DStringFree\fR(\fIdsPtr\fR)
\fBTcl_DStringFree\fR(\fIdsPtr\fR)
.sp
.sp
\fBTcl_DStringResult\fR(\fIinterp, dsPtr\fR)
\fBTcl_DStringResult\fR(\fIinterp, dsPtr\fR)
.sp
.sp
\fBTcl_DStringGetResult\fR(\fIinterp, dsPtr\fR)
\fBTcl_DStringGetResult\fR(\fIinterp, dsPtr\fR)
.SH ARGUMENTS
.SH ARGUMENTS
.AS Tcl_DString newLength
.AS Tcl_DString newLength
.AP Tcl_DString *dsPtr in/out
.AP Tcl_DString *dsPtr in/out
Pointer to structure that is used to manage a dynamic string.
Pointer to structure that is used to manage a dynamic string.
.AP char *string in
.AP char *string in
Pointer to characters to add to dynamic string.
Pointer to characters to add to dynamic string.
.AP int length in
.AP int length in
Number of characters from string to add to dynamic string.  If -1,
Number of characters from string to add to dynamic string.  If -1,
add all characters up to null terminating character.
add all characters up to null terminating character.
.AP int newLength in
.AP int newLength in
New length for dynamic string, not including null terminating
New length for dynamic string, not including null terminating
character.
character.
.AP Tcl_Interp *interp in/out
.AP Tcl_Interp *interp in/out
Interpreter whose result is to be set from or moved to the
Interpreter whose result is to be set from or moved to the
dynamic string.
dynamic string.
.BE
.BE
.SH DESCRIPTION
.SH DESCRIPTION
.PP
.PP
Dynamic strings provide a mechanism for building up arbitrarily long
Dynamic strings provide a mechanism for building up arbitrarily long
strings by gradually appending information.  If the dynamic string is
strings by gradually appending information.  If the dynamic string is
short then there will be no memory allocation overhead;  as the string
short then there will be no memory allocation overhead;  as the string
gets larger, additional space will be allocated as needed.
gets larger, additional space will be allocated as needed.
.PP
.PP
\fBTcl_DStringInit\fR initializes a dynamic string to zero length.
\fBTcl_DStringInit\fR initializes a dynamic string to zero length.
The Tcl_DString structure must have been allocated by the caller.
The Tcl_DString structure must have been allocated by the caller.
No assumptions are made about the current state of the structure;
No assumptions are made about the current state of the structure;
anything already in it is discarded.
anything already in it is discarded.
If the structure has been used previously, \fBTcl_DStringFree\fR should
If the structure has been used previously, \fBTcl_DStringFree\fR should
be called first to free up any memory allocated for the old
be called first to free up any memory allocated for the old
string.
string.
.PP
.PP
\fBTcl_DStringAppend\fR adds new information to a dynamic string,
\fBTcl_DStringAppend\fR adds new information to a dynamic string,
allocating more memory for the string if needed.
allocating more memory for the string if needed.
If \fIlength\fR is less than zero then everything in \fIstring\fR
If \fIlength\fR is less than zero then everything in \fIstring\fR
is appended to the dynamic string;  otherwise \fIlength\fR
is appended to the dynamic string;  otherwise \fIlength\fR
specifies the number of bytes to append.
specifies the number of bytes to append.
\fBTcl_DStringAppend\fR returns a pointer to the characters of
\fBTcl_DStringAppend\fR returns a pointer to the characters of
the new string.  The string can also be retrieved from the
the new string.  The string can also be retrieved from the
\fIstring\fR field of the Tcl_DString structure.
\fIstring\fR field of the Tcl_DString structure.
.PP
.PP
\fBTcl_DStringAppendElement\fR is similar to \fBTcl_DStringAppend\fR
\fBTcl_DStringAppendElement\fR is similar to \fBTcl_DStringAppend\fR
except that it doesn't take a \fIlength\fR argument (it appends
except that it doesn't take a \fIlength\fR argument (it appends
all of \fIstring\fR) and it converts the string to a proper list element
all of \fIstring\fR) and it converts the string to a proper list element
before appending.
before appending.
\fBTcl_DStringAppendElement\fR adds a separator space before the
\fBTcl_DStringAppendElement\fR adds a separator space before the
new list element unless the new list element is the first in a
new list element unless the new list element is the first in a
list or sub-list (i.e. either the current string is empty, or it
list or sub-list (i.e. either the current string is empty, or it
contains the single character ``{'', or the last two characters of
contains the single character ``{'', or the last two characters of
the current string are `` {'').
the current string are `` {'').
\fBTcl_DStringAppendElement\fR returns a pointer to the
\fBTcl_DStringAppendElement\fR returns a pointer to the
characters of the new string.
characters of the new string.
.PP
.PP
\fBTcl_DStringStartSublist\fR and \fBTcl_DStringEndSublist\fR can be
\fBTcl_DStringStartSublist\fR and \fBTcl_DStringEndSublist\fR can be
used to create nested lists.
used to create nested lists.
To append a list element that is itself a sublist, first
To append a list element that is itself a sublist, first
call \fBTcl_DStringStartSublist\fR, then call \fBTcl_DStringAppendElement\fR
call \fBTcl_DStringStartSublist\fR, then call \fBTcl_DStringAppendElement\fR
for each of the elements in the sublist, then call
for each of the elements in the sublist, then call
\fBTcl_DStringEndSublist\fR to end the sublist.
\fBTcl_DStringEndSublist\fR to end the sublist.
\fBTcl_DStringStartSublist\fR appends a space character if needed,
\fBTcl_DStringStartSublist\fR appends a space character if needed,
followed by an open brace;  \fBTcl_DStringEndSublist\fR appends
followed by an open brace;  \fBTcl_DStringEndSublist\fR appends
a close brace.
a close brace.
Lists can be nested to any depth.
Lists can be nested to any depth.
.PP
.PP
\fBTcl_DStringLength\fR is a macro that returns the current length
\fBTcl_DStringLength\fR is a macro that returns the current length
of a dynamic string (not including the terminating null character).
of a dynamic string (not including the terminating null character).
\fBTcl_DStringValue\fR is a  macro that returns a pointer to the
\fBTcl_DStringValue\fR is a  macro that returns a pointer to the
current contents of a dynamic string.
current contents of a dynamic string.
.PP
.PP
.PP
.PP
\fBTcl_DStringSetLength\fR changes the length of a dynamic string.
\fBTcl_DStringSetLength\fR changes the length of a dynamic string.
If \fInewLength\fR is less than the string's current length, then
If \fInewLength\fR is less than the string's current length, then
the string is truncated.
the string is truncated.
If \fInewLength\fR is greater than the string's current length,
If \fInewLength\fR is greater than the string's current length,
then the string will become longer and new space will be allocated
then the string will become longer and new space will be allocated
for the string if needed.
for the string if needed.
However, \fBTcl_DStringSetLength\fR will not initialize the new
However, \fBTcl_DStringSetLength\fR will not initialize the new
space except to provide a terminating null character;  it is up to the
space except to provide a terminating null character;  it is up to the
caller to fill in the new space.
caller to fill in the new space.
\fBTcl_DStringSetLength\fR does not free up the string's storage space
\fBTcl_DStringSetLength\fR does not free up the string's storage space
even if the string is truncated to zero length, so \fBTcl_DStringFree\fR
even if the string is truncated to zero length, so \fBTcl_DStringFree\fR
will still need to be called.
will still need to be called.
.PP
.PP
\fBTcl_DStringFree\fR should be called when you're finished using
\fBTcl_DStringFree\fR should be called when you're finished using
the string.  It frees up any memory that was allocated for the string
the string.  It frees up any memory that was allocated for the string
and reinitializes the string's value to an empty string.
and reinitializes the string's value to an empty string.
.PP
.PP
\fBTcl_DStringResult\fR sets the result of \fIinterp\fR to the value of
\fBTcl_DStringResult\fR sets the result of \fIinterp\fR to the value of
the dynamic string given by \fIdsPtr\fR.  It does this by moving
the dynamic string given by \fIdsPtr\fR.  It does this by moving
a pointer from \fIdsPtr\fR to \fIinterp->result\fR.
a pointer from \fIdsPtr\fR to \fIinterp->result\fR.
This saves the cost of allocating new memory and copying the string.
This saves the cost of allocating new memory and copying the string.
\fBTcl_DStringResult\fR also reinitializes the dynamic string to
\fBTcl_DStringResult\fR also reinitializes the dynamic string to
an empty string.
an empty string.
.PP
.PP
\fBTcl_DStringGetResult\fR does the opposite of \fBTcl_DStringResult\fR.
\fBTcl_DStringGetResult\fR does the opposite of \fBTcl_DStringResult\fR.
It sets the value of \fIdsPtr\fR to the result of \fIinterp\fR and
It sets the value of \fIdsPtr\fR to the result of \fIinterp\fR and
it clears \fIinterp\fR's result.
it clears \fIinterp\fR's result.
If possible it does this by moving a pointer rather than by copying
If possible it does this by moving a pointer rather than by copying
the string.
the string.
.SH KEYWORDS
.SH KEYWORDS
append, dynamic string, free, result
append, dynamic string, free, result
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.