HPUX SetResult[3]



SetResult in anderen Kapiteln des hpux Handbuch:




 Tcl_SetResult(3)                    Tcl                    Tcl_SetResult(3)

 Tcl Library Procedures                               Tcl Library Procedures

                                     7.0



 ___________________________________________________________________________

 NAME
      Tcl_SetResult, Tcl_AppendResult, Tcl_AppendElement, Tcl_ResetResult  -
      manipulate Tcl result string

 SYNOPSIS
      #include <tcl.h>

      Tcl_SetResult(interp, string, freeProc)

      Tcl_AppendResult(interp, string, string, ... , (char *) NULL)

      Tcl_AppendElement(interp, string)                                        |

      Tcl_ResetResult(interp)

      Tcl_FreeResult(interp)

 ARGUMENTS
      Tcl_Interp     *interp    (out)     Interpreter whose result is to  be
                                          modified.

      char           *string    (in)      String value to become result  for
                                          interp   or   to  be  appended  to
                                          existing result.

      Tcl_FreeProc   freeProc   (in)      Address of procedure  to  call  to
                                          release   storage  at  string,  or
                                          TCL_STATIC,    TCL_DYNAMIC,     or
                                          TCL_VOLATILE.
 ___________________________________________________________________________


 DESCRIPTION
      The  procedures  described  here  are  utilities   for   setting   the
      result/error string in a Tcl interpreter.

      Tcl_SetResult arranges for string to be  the  return  string  for  the
      current  Tcl  command  in  interp,  replacing any existing result.  If
      freeProc is TCL_STATIC it means that  string  refers  to  an  area  of
      static  storage  that  is guaranteed not to be modified until at least
      the next call to Tcl_Eval.  If freeProc is TCL_DYNAMIC it  means  that
      string  was  allocated with a call to malloc() and is now the property
      of the Tcl  system.   Tcl_SetResult  will  arrange  for  the  string's
      storage  to be released by calling free() when it is no longer needed.
      If freeProc is TCL_VOLATILE it means that string points to an area  of
      memory  that  is  likely  to be overwritten when Tcl_SetResult returns
      (e.g. it points  to  something  in  a  stack  frame).   In  this  case



                                    - 1 -        Formatted:  August 11, 1996






 Tcl_SetResult(3)                    Tcl                    Tcl_SetResult(3)

 Tcl Library Procedures                               Tcl Library Procedures

                                     7.0



      Tcl_SetResult  will make a copy of the string in dynamically allocated
      storage and arrange for the copy to  be  the  return  string  for  the
      current Tcl command.

      If freeProc isn't one  of  the  values  TCL_STATIC,  TCL_DYNAMIC,  and
      TCL_VOLATILE,  then  it  is the address of a procedure that Tcl should
      call to free the string.  This allows applications to use non-standard
      storage  allocators.   When  Tcl  no  longer needs the storage for the
      string, it will call freeProc.  FreeProc  should  have  arguments  and
      result that match the type Tcl_FreeProc:

           typedef void Tcl_FreeProc(char *blockPtr);

      When freeProc is called, its blockPtr will be  set  to  the  value  of
      string passed to Tcl_SetResult.

      If string is NULL, then freeProc  is  ignored  and  Tcl_SetResult  re-
      initializes interp's result to point to the pre-allocated result area,
      with an empty string in the result area.

      If Tcl_SetResult is called at a  time  when  interp  holds  a  result,
      Tcl_SetResult  does whatever is necessary to dispose of the old result
      (see the Tcl_Interp manual entry for details on this).

      Tcl_AppendResult makes it easy to build up Tcl results in pieces.   It
      takes  each  of  its string arguments and appends them in order to the
      current result associated with  interp.   If  the  result  is  in  its
      initialized  empty state (e.g. a command procedure was just invoked or
      Tcl_ResetResult was  just  called),  then  Tcl_AppendResult  sets  the
      result to the concatenation of its string arguments.  Tcl_AppendResult
      may be called repeatedly  as  additional  pieces  of  the  result  are
      produced.   Tcl_AppendResult  takes care of all the storage management
      issues associated with managing interp's result, such as allocating  a
      larger  result  area if necessary.  Any number of string arguments may
      be passed in a single call;  the last argument in the list must  be  a
      NULL pointer.

      Tcl_AppendElement is similar to Tcl_AppendResult  in  that  it  allows
      results  to  be  built up in pieces.  However, Tcl_AppendElement takes
      only a single string argument and it  appends  that  argument  to  the
      current  result  as a proper Tcl list element.  Tcl_AppendElement adds
      backslashes or braces if necessary to ensure that interp's result  can
      be  parsed  as  a  list  and that string will be extracted as a single
      element.  Under normal conditions, Tcl_AppendElement will add a  space
      character  to interp's result just before adding the new list element,
      so that the list  elements  in  the  result  are  properly  separated.  |
      However  if  the  new  list element is the first in a list or sub-list  |
      (i.e. interp's current result is empty,  or  consists  of  the  single  |
      character  ``{'',  or  ends in the characters `` {'') then no space is  |



                                    - 2 -        Formatted:  August 11, 1996






 Tcl_SetResult(3)                    Tcl                    Tcl_SetResult(3)

 Tcl Library Procedures                               Tcl Library Procedures

                                     7.0



      added.                                                                  |

      Tcl_ResetResult clears the  result  for  interp,  freeing  the  memory
      associated  with  it  if the current result was dynamically allocated.
      It leaves the result in its  normal  initialized  state  with  interp-
      >result   pointing  to  a  static  buffer  containing  TCL_RESULT_SIZE
      characters, of which the first  character  is  zero.   Tcl_ResetResult
      also   clears   the   error  state  managed  by  Tcl_AddErrorInfo  and
      Tcl_SetErrorCode.

      Tcl_FreeResult  is  a  macro  that  performs  part  of  the  work   of
      Tcl_ResetResult.   It  frees  up  the  memory associated with interp's
      result and sets  interp->freeProc  to  zero,  but  it  doesn't  change
      interp->result  or clear error state.  Tcl_FreeResult is most commonly
      used when a procedure is  about  to  replace  one  result  value  with
      another.


 SEE ALSO
      Tcl_AddErrorInfo, Tcl_SetErrorCode, Tcl_Interp


 KEYWORDS
      append, command, element, list, result, return value, interpreter




























                                    - 3 -        Formatted:  August 11, 1996