Tcl_UpVar - link one variable to another
#include <tcl.h> int Tcl_UpVar(interp, frameName, sourceName, destName, flags) int Tcl_UpVar2(interp, frameName, name1, name2, destName, flags)
Tcl_UpVar(3tcl) Tcl Library Procedures Tcl_UpVar(3tcl)
______________________________________________________________________________
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.
const char *frameName (in) Identifies the stack frame con-
taining source variable. May have
any of the forms accepted by the
upvar command, such as #0 or 1.
const 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 parenthe-
sized index.
const char *destName (in) Name of destination variable,
which is to be linked to source
variable so that references to
destName refer to the other vari-
able. Must not currently exist
except as an upvar-ed variable.
int flags (in) One of TCL_GLOBAL_ONLY, TCL_NAMES-
PACE_ONLY or 0; if non-zero, then
destName is a global or namespace
variable; otherwise it is local
to the current procedure (or cur-
rent namespace if no procedure is
active).
const char *name1 (in) First part of source variable's
name (scalar name, or name of
array without array index).
const 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
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+---------------+------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+------------------+
|Availability | runtime/tcl-8 |
+---------------+------------------+
|Stability | Uncommitted |
+---------------+------------------+
NOTES
Source code for open source software components in Oracle Solaris can
be found at https://www.oracle.com/downloads/opensource/solaris-source-
code-downloads.html.
This software was built from source available at
https://github.com/oracle/solaris-userland. The original community
source was downloaded from http://prdownloads.sourceforge.net/tcl/tcl-
core8.6.7-src.tar.gz.
Further information about this software can be found on the open source
community website at https://www.tcl.tk/.
Tcl 7.4 Tcl_UpVar(3tcl)