Index of Section 3 Manual Pages

Interix / SUATcl_SetVar2Ex.3Interix / SUA

Tcl_SetVar(3)         Tcl Library Procedures        Tcl_SetVar(3)



_________________________________________________________________

NAME
       Tcl_SetVar2Ex,  Tcl_SetVar,  Tcl_SetVar2,  Tcl_ObjSetVar2,
       Tcl_GetVar2Ex,  Tcl_GetVar,  Tcl_GetVar2,  Tcl_ObjGetVar2,
       Tcl_UnsetVar, Tcl_UnsetVar2 - manipulate Tcl variables

SYNOPSIS
       #include 

       Tcl_Obj *                                                  |
       Tcl_SetVar2Ex(interp, name1, name2, newValuePtr, flags)    |

       CONST char *
       Tcl_SetVar(interp, varName, newValue, flags)

       CONST char *
       Tcl_SetVar2(interp, name1, name2, newValue, flags)

       Tcl_Obj *
       Tcl_ObjSetVar2(interp, part1Ptr, part2Ptr, newValuePtr, flags)

       Tcl_Obj *                                                  |
       Tcl_GetVar2Ex(interp, name1, name2, flags)                 |

       CONST char *
       Tcl_GetVar(interp, varName, flags)

       CONST char *
       Tcl_GetVar2(interp, name1, name2, flags)

       Tcl_Obj *
       Tcl_ObjGetVar2(interp, part1Ptr, part2Ptr, flags)

       int
       Tcl_UnsetVar(interp, varName, flags)

       int
       Tcl_UnsetVar2(interp, name1, name2, flags)

ARGUMENTS
       Tcl_Interp   *interp        (in)      Interpreter contain-
                                             ing variable.

       CONST char   *name1         (in)      Contains the name of
                                             an   array  variable
                                             (if  name2  is  non-
                                             NULL)  or  (if name2
                                             is NULL) either  the
                                             name   of  a  scalar
                                             variable or  a  com-
                                             plete name including
                                             both  variable  name
                                             and    index.    May
                                             include :: namespace
                                             qualifiers  to spec-
                                             ify a variable in  a
                                             particular    names-
                                             pace.

       CONST char   *name2         (in)      If  non-NULL,  gives
                                             name    of   element
                                             within   array;   in
                                             this case name1 must
                                             refer  to  an  array
                                             variable.

       Tcl_Obj      *newValuePtr   (in)      Points   to   a  Tcl |
                                             object    containing |
                                             the  new  value  for |
                                             the variable.

       int          flags          (in)      OR-ed combination of
                                             bits providing addi-
                                             tional  information.
                                             See  below for valid
                                             values.

       CONST char   *varName       (in)      Name  of   variable.
                                             May    include    ::
                                             namespace qualifiers
                                             to  specify  a vari-
                                             able in a particular
                                             namespace.       May
                                             refer  to  a  scalar
                                             variable  or an ele-
                                             ment of an array.

       CONST char   *newValue      (in)      New value for  vari-
                                             able, specified as a
                                             null-terminated
                                             string.   A  copy of
                                             this value is stored
                                             in the variable.

       Tcl_Obj      *part1Ptr      (in)      Points   to   a  Tcl
                                             object    containing
                                             the variable's name.
                                             The name may include
                                             a   series   of   ::
                                             namespace qualifiers
                                             to  specify  a vari-
                                             able in a particular
                                             namespace.       May
                                             refer  to  a  scalar
                                             variable  or an ele-
                                             ment  of  an   array
                                             variable.

       Tcl_Obj      *part2Ptr      (in)      If  non-NULL, points
                                             to  an  object  con-
                                             taining  the name of
                                             an element within an
                                             array  and  part1Ptr
                                             must  refer  to   an
                                             array variable.
_________________________________________________________________


DESCRIPTION
       These  procedures  are  used  to create, modify, read, and
       delete Tcl variables from C code.

       Tcl_SetVar2Ex, Tcl_SetVar, Tcl_SetVar2, and Tcl_ObjSetVar2 |
       will  create  a  new  variable  or modify an existing one. |
       These procedures set the given variable to the value given |
       by  newValuePtr  or  newValue  and return a pointer to the |
       variable's new value, which is stored  in  Tcl's  variable |
       structure.   Tcl_SetVar2Ex and Tcl_ObjSetVar2 take the new |
       value as a Tcl_Obj and return  a  pointer  to  a  Tcl_Obj. |
       Tcl_SetVar  and Tcl_SetVar2 take the new value as a string |
       and return a string; they are usually less efficient  than |
       Tcl_ObjSetVar2.  Note that the return value may be differ- |
       ent than the newValuePtr or newValue argument, due to mod-
       ifications  made  by  write traces.  If an error occurs in
       setting the variable (e.g. an array variable is referenced
       without  giving  an index into the array) NULL is returned
       and an error message is left in  interp's  result  if  the
       TCL_LEAVE_ERR_MSG flag bit is set.

       Tcl_GetVar2Ex, Tcl_GetVar, Tcl_GetVar2, and Tcl_ObjGetVar2 |
       return the current value of a variable.  The arguments  to |
       these  procedures are treated in the same way as the argu- |
       ments to the procedures  described  above.   Under  normal |
       circumstances,  the return value is a pointer to the vari- |
       able's value.  For Tcl_GetVar2Ex  and  Tcl_ObjGetVar2  the |
       value is returned as a pointer to a Tcl_Obj.  For Tcl_Get- |
       Var and Tcl_GetVar2 the value is  returned  as  a  string; |
       this  is  usually  less  efficient,  so  Tcl_GetVar2Ex  or |
       Tcl_ObjGetVar2 are preferred.  If an  error  occurs  while
       reading  the  variable (e.g. the variable doesn't exist or
       an array element is specified for a scalar variable), then
       NULL  is returned and an error message is left in interp's
       result if the TCL_LEAVE_ERR_MSG flag bit is set.

       Tcl_UnsetVar and Tcl_UnsetVar2 may be  used  to  remove  a
       variable,  so  that  future  attempts to read the variable
       will return an error.  The arguments to  these  procedures
       are treated in the same way as the arguments to the proce-
       dures above.  If the variable is successfully removed then
       TCL_OK  is  returned.   If  the variable cannot be removed
       because it doesn't exist then TCL_ERROR is returned and an
       error   message   is   left  in  interp's  result  if  the
       TCL_LEAVE_ERR_MSG flag bit is set.  If an array element is
       specified,  the  given  element  is  removed but the array
       remains.  If an array name is specified without an  index,
       then the entire array is removed.

       The  name  of  a variable may be specified to these proce-
       dures in four ways:

       [1]    If  Tcl_SetVar,  Tcl_GetVar,  or  Tcl_UnsetVar   is
              invoked,  the  variable  name  is given as a single
              string,  varName.   If  varName  contains  an  open
              parenthesis and ends with a close parenthesis, then
              the value between the parentheses is treated as  an
              index  (which  can  have  any string value) and the
              characters before the first  open  parenthesis  are
              treated  as the name of an array variable.  If var-
              Name doesn't have parentheses as  described  above,
              then  the entire string is treated as the name of a
              scalar variable.

       [2]    If the name1 and name2 arguments are  provided  and
              name2  is non-NULL, then an array element is speci-
              fied and the array name and index have already been
              separated  by  the  caller: name1 contains the name
              and name2 contains the index.  An error  is  gener- |
              ated  if  name1   contains  an open parenthesis and |
              ends with a close parenthesis (array  element)  and |
              name2 is non-NULL.                                  |

       [3]                                                        ||
              If name2  is  NULL,  name1  is  treated  just  like |
              varName  in  case  [1]  above  (it  can be either a |
              scalar or an array element variable name).

       The flags argument may be used to specify any  of  several
       options to the procedures.  It consists of an OR-ed combi-
       nation of the following bits.

       TCL_GLOBAL_ONLY
              Under normal circumstances the procedures  look  up
              variables  as  follows.   If  a  procedure  call is
              active in interp, the variable is looked up at  the
              current  level  of  procedure call.  Otherwise, the
              variable is looked up first in the  current  names-
              pace,  then  in  the global namespace.  However, if
              this bit is set  in  flags  then  the  variable  is
              looked  up  only  in  the  global namespace even if
              there  is  a  procedure  call  active.    If   both
              TCL_GLOBAL_ONLY  and  TCL_NAMESPACE_ONLY are given,
              TCL_GLOBAL_ONLY is ignored.

       TCL_NAMESPACE_ONLY
              If this bit is set in flags then  the  variable  is
              looked  up only in the current namespace; if a pro-
              cedure is active its variables are ignored, and the
              global  namespace  is also ignored unless it is the
              current namespace.

       TCL_LEAVE_ERR_MSG
              If an error is returned and  this  bit  is  set  in
              flags,  then  an  error message will be left in the
              interpreter's result, where  it  can  be  retrieved
              with  Tcl_GetObjResult  or Tcl_GetStringResult.  If
              this flag bit isn't set then no  error  message  is
              left and the interpreter's result will not be modi-
              fied.

       TCL_APPEND_VALUE
              If this bit is set then newValuePtr or newValue  is
              appended  to the current value instead of replacing
              it.  If the variable is currently  undefined,  then
              the  bit  is ignored.  This bit is only used by the
              Tcl_Set* procedures.

       TCL_LIST_ELEMENT
              If this bit is set, then newValue is converted to a
              valid Tcl list element before setting (or appending
              to) the variable.  A separator  space  is  appended
              before the new list element unless the list element
              is going to be the first element in a list or  sub-
              list  (i.e.  the variable's current value is empty,
              or contains the single character ``{'', or ends  in
              `` }'').  When appending, the original value of the
              variable must also be a valid  list,  so  that  the
              operation  is  the  appending of a new list element
              onto a list.

       Tcl_GetVar and Tcl_GetVar2 return the current value  of  a
       variable.   The  arguments to these procedures are treated
       in the  same  way  as  the  arguments  to  Tcl_SetVar  and
       Tcl_SetVar2.  Under normal circumstances, the return value
       is a pointer to the variable's value (which is  stored  in
       Tcl's  variable  structure  and will not change before the
       next call to Tcl_SetVar or Tcl_SetVar2).   Tcl_GetVar  and
       Tcl_GetVar2   use   the   flag  bits  TCL_GLOBAL_ONLY  and
       TCL_LEAVE_ERR_MSG, both of which have the same meaning  as
       for  Tcl_SetVar.   If  an  error  occurs  in  reading  the
       variable (e.g. the variable doesn't exist or an array ele-
       ment  is  specified  for  a scalar variable), then NULL is
       returned.

       Tcl_UnsetVar and Tcl_UnsetVar2 may be  used  to  remove  a
       variable,  so  that future calls to Tcl_GetVar or Tcl_Get-
       Var2 for the variable will return an error.  The arguments
       to  these  procedures  are  treated in the same way as the
       arguments to Tcl_GetVar and Tcl_GetVar2.  If the  variable
       is  successfully  removed then TCL_OK is returned.  If the
       variable cannot be removed because it doesn't  exist  then
       TCL_ERROR  is returned.  If an array element is specified,
       the given element is removed but the array remains.  If an
       array  name is specified without an index, then the entire
       array is removed.


SEE ALSO
       Tcl_GetObjResult, Tcl_GetStringResult, Tcl_TraceVar


KEYWORDS
       array, get variable,  interpreter,  object,  scalar,  set,
       unset, variable



Tcl                            8.1                  Tcl_SetVar(3)

Interix / SUAHosted at SUA Community for Interix, SUA and SFUInterix / SUA