HPUX DString[3]






 Tcl_DStringInit(3)                  Tcl                  Tcl_DStringInit(3)

 Tcl Library Procedures                               Tcl Library Procedures

                                     7.0



 ___________________________________________________________________________

 NAME
      Tcl_DStringInit, Tcl_DStringAppend, Tcl_DStringAppendElement,
      Tcl_DStringStartSublist, Tcl_DStringEndSublist, Tcl_DStringLength,
      Tcl_DStringValue, Tcl_DStringTrunc, Tcl_DStringFree, Tcl_DStringResult
      - manipulate dynamic strings

 SYNOPSIS
      #include <tcl.h>

      Tcl_DStringInit(dsPtr)

      char *
      Tcl_DStringAppend(dsPtr, string, length)

      char *
      Tcl_DStringAppendElement(dsPtr, string)

      Tcl_DStringStartSublist(dsPtr)

      Tcl_DStringEndSublist(dsPtr)

      int
      Tcl_DStringLength(dsPtr)

      char *
      Tcl_DStringValue(dsPtr)

      Tcl_DStringTrunc(dsPtr, newLength)

      Tcl_DStringFree(dsPtr)

      Tcl_DStringResult(interp, dsPtr)

 ARGUMENTS
      Tcl_DString   *dsPtr      (in/out)  Pointer to structure that is  used
                                          to manage a dynamic string.

      char          *string     (in)      Pointer to characters  to  add  to
                                          dynamic string.

      int           length      (in)      Number of characters  from  string
                                          to  add to dynamic string.  If -1,
                                          add  all  characters  up  to  null
                                          terminating character.

      int           newLength   (in)      New length for dynamic string, not
                                          including     null     terminating



                                    - 1 -        Formatted:  August 11, 1996






 Tcl_DStringInit(3)                  Tcl                  Tcl_DStringInit(3)

 Tcl Library Procedures                               Tcl Library Procedures

                                     7.0



                                          character.
 ___________________________________________________________________________


 DESCRIPTION
      Dynamic strings provide a mechanism for building up  arbitrarily  long
      strings  by gradually appending information.  If the dynamic string is
      short then there will be no memory allocation overhead;  as the string
      gets larger, additional space will be allocated as needed.

      Tcl_DStringInit initializes a dynamic  string  to  zero  length.   The
      Tcl_DString  structure  must  have  been  allocated by the caller.  No
      assumptions are  made  about  the  current  state  of  the  structure;
      anything  already  in it is discarded.  If the structure has been used
      previously, Tcl_DStringFree should be called  first  to  free  up  any
      memory allocated for the old string.

      Tcl_DStringAppend adds new information to a dynamic string, allocating
      more  memory  for  the  string if needed.  If length is less than zero
      then  everything  in  string  is  appended  to  the  dynamic   string;
      otherwise   length   specifies   the   number   of  bytes  to  append.
      Tcl_DStringAppend returns a pointer  to  the  characters  of  the  new
      string.  The string can also be retrieved from the string field of the
      Tcl_DString structure.

      Tcl_DStringAppendElement is similar to Tcl_DStringAppend  except  that
      it  doesn't  take  a length argument (it appends all of string) and it
      converts the  string  to  a  proper  list  element  before  appending.
      Tcl_DStringAppendElement  adds  a  separator space before the 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 contains the single
      character ``{'', or the last two characters of the current string  are
      `` {'').  Tcl_DStringAppendElement returns a pointer to the characters
      of the new string.

      Tcl_DStringStartSublist  and  Tcl_DStringEndSublist  can  be  used  to
      create  nested  lists.   To  append  a  list  element that is itself a
      sublist,    first    call    Tcl_DStringStartSublist,    then     call
      Tcl_DStringAppendElement for each of the elements in the sublist, then
      call     Tcl_DStringEndSublist      to      end      the      sublist.
      Tcl_DStringStartSublist  appends a space character if needed, followed
      by an open brace;  Tcl_DStringAppendElement  appends  a  close  brace.
      Lists can be nested to any depth.

      Tcl_DStringLength is a macro that returns  the  current  length  of  a
      dynamic   string  (not  including  the  terminating  null  character).
      Tcl_DStringValue is a  macro that returns a  pointer  to  the  current
      contents of a dynamic string.




                                    - 2 -        Formatted:  August 11, 1996






 Tcl_DStringInit(3)                  Tcl                  Tcl_DStringInit(3)

 Tcl Library Procedures                               Tcl Library Procedures

                                     7.0



      Tcl_DStringTrunc truncates a dynamic string to a given length.  It has
      no  effect  if  the  string  was already smaller than newLength.  This
      procedure does not free up the string's storage  space,  even  if  the
      string is truncated to zero length, so Tcl_DStringFree will still need
      to be called.

      Tcl_DStringFree should  be  called  when  you're  finished  using  the
      string.   It frees up any memory that was allocated for the string and
      reinitializes the string's value to an empty string.

      Tcl_DStringResult sets the result  of  interp  to  the  value  of  the
      dynamic  string given by dsPtr.  It does this by moving a pointer from
      dsPtr to interp->result.  This saves the cost of allocating new memory
      and  copying  the  string.   Tcl_DStringResult  also reinitializes the
      dynamic string to an empty string.


 KEYWORDS
      append, dynamic string, free, result

































                                    - 3 -        Formatted:  August 11, 1996