ABCDEFGHIJKLMNOPQRSTUVWXYZ

Tcl_UpVar

Tcl_UpVar(3)                Tcl Library Procedures                Tcl_UpVar(3)



______________________________________________________________________________

NAME
       Tcl_UpVar, Tcl_UpVar2 - link one variable to another

SYNOPSIS
       #include <tcl.h>

       int
       Tcl_UpVar(interp, frameName, sourceName, destName, flags)

       int
       Tcl_UpVar2(interp, frameName, name1, name2, destName, flags)

ARGUMENTS
       Tcl_Interp         *interp          (in)      Interpreter    containing
                                                     variables;  also used for
                                                     error reporting.

       char               *frameName       (in)      Identifies    the   stack
                                                     frame  containing  source
                                                     variable.   May  have any
                                                     of the forms accepted  by
                                                     the  upvar  command, such
                                                     as #0 or 1.

       char               *sourceName      (in)      Name of source  variable,
                                                     in  the  frame  given  by
                                                     frameName.  May refer  to
                                                     a  scalar  variable or to
                                                     an array variable with  a
                                                     parenthesized index.

       char               *destName        (in)      Name of destination vari-
                                                     able,  which  is  to   be
                                                     linked to source variable
                                                     so  that  references   to
                                                     destName   refer  to  the
                                                     other variable.  Must not
                                                     currently exist except as
                                                     an upvar-ed variable.

       int                flags            (in)      Either TCL_GLOBAL_ONLY or
                                                     0;    if  non-zero,  then
                                                     destName  is   a   global
                                                     variable;   otherwise  it
                                                     is a local to the current
                                                     procedure  (or  global if
                                                     no procedure is  active).

       char               *name1           (in)      First   part   of  source
                                                     variable's  name  (scalar
                                                     name,  or  name  of array
                                                     without array index).

       char               *name2           (in)      If source variable is  an
                                                     element   of   an  array,
                                                     gives the  index  of  the
                                                     element.     For   scalar
                                                     source   variables,    is
                                                     NULL.
_________________________________________________________________


DESCRIPTION
       Tcl_UpVar  and  Tcl_UpVar2  provide the same functionality as the upvar
       command:  they make a link from a  source  variable  to  a  destination
       variable,  so  that  references to the destination are passed transpar-
       ently through to the source.  The name of the source  variable  may  be
       specified  either  as  a single string such as xyx or a(24) (by calling
       Tcl_UpVar) or in two parts where the array name has been separated from
       the  element  name  (by  calling Tcl_UpVar2).  The destination variable
       name is specified in a single string;  it may not be an array  element.

       Both  procedures  return  either TCL_OK or TCL_ERROR, and they leave an
       error message in the interpreter's result if an error occurs.

       As with the upvar command, the source variable need not  exist;  if  it
       does exist, unsetting it later does not destroy the link.  The destina-
       tion variable may exist at the time of the call,  but  if  so  it  must
       exist as a linked variable.


KEYWORDS
       linked variable, upvar, variable



Tcl                                   7.4                         Tcl_UpVar(3)