Manual Pages for UNIX Darwin command on man Tcl_ObjGetVar2
MyWebUniversity

Manual Pages for UNIX Darwin command on man Tcl_ObjGetVar2

TclSetVar(3) Tcl Library Procedures TclSetVar(3)

NAME

TclSetVar2Ex, TclSetVar, TclSetVar2, TclObjSetVar2, TclGetVar2Ex,

TclGetVar, TclGetVar2, TclObjGetVar2, TclUnsetVar, TclUnsetVar2 -

manipulate Tcl variables

SYNOPSIS

##iinncclluuddee <>

TclObj * | TTccllSSeettVVaarr22EExx(interp, name1, name2, newValuePtr, flags) | CONST char * TTccllSSeettVVaarr(interp, varName, newValue, flags) CONST char * TTccllSSeettVVaarr22(interp, name1, name2, newValue, flags) TclObj * TTccllOObbjjSSeettVVaarr22(interp, part1Ptr, part2Ptr, newValuePtr, flags) TclObj * | TTccllGGeettVVaarr22EExx(interp, name1, name2, flags) | CONST char * TTccllGGeettVVaarr(interp, varName, flags) CONST char * TTccllGGeettVVaarr22(interp, name1, name2, flags) TclObj * TTccllOObbjjGGeettVVaarr22(interp, part1Ptr, part2Ptr, flags) int TTccllUUnnsseettVVaarr(interp, varName, flags) int TTccllUUnnsseettVVaarr22(interp, name1, name2, flags) AARRGGUUMMEENNTTSS TclInterp *interp (in) Interpreter containing 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 complete name including both variable name and index. May include :::: namespace qualifiers

to specify a variable in a par-

ticular namespace.

CONST char *name2 (in) If non-NULL, gives name of ele-

ment within array; in this case name1 must refer to an array variable. TclObj *newValuePtr (in) Points to a Tcl object containing | the new value for the variable.

int flags (in) OR-ed combination of bits provid-

ing additional information. See below for valid values. CONST char *varName (in) Name of variable. May include :::: namespace qualifiers to specify a

variable in a particular names-

pace. May refer to a scalar variable or an element of an array. CONST char *newValue (in) New value for variable, specified

as a null-terminated string. A

copy of this value is stored in the variable. TclObj *part1Ptr (in) Points to a Tcl object containing the variable's name. The name

may include a series of :::: names-

pace qualifiers to specify a

variable in a particular names-

pace. May refer to a scalar variable or an element of an array variable.

TclObj *part2Ptr (in) If non-NULL, points to an object

containing 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 vari-

ables from C code. TTccllSSeettVVaarr22EExx, TTccllSSeettVVaarr, TTccllSSeettVVaarr22, and TTccllOObbjjSSeettVVaarr22 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 vari- |

able structure. TTccllSSeettVVaarr22EExx and TTccllOObbjjSSeettVVaarr22 take the new value as |

a TclObj and return a pointer to a TclObj. TTccllSSeettVVaarr and TTccllSSeett- |

VVaarr22 take the new value as a string and return a string; they are usu- |

ally less efficient than TTccllOObbjjSSeettVVaarr22. Note that the return value |

may be different 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 TTCCLLLLEEAAVVEEEERRRRMMSSGG flag bit is set. TTccllGGeettVVaarr22EExx, TTccllGGeettVVaarr, TTccllGGeettVVaarr22, and TTccllOObbjjGGeettVVaarr22 return the | current value of a variable. The arguments to these procedures are | treated in the same way as the arguments to the procedures described | above. Under normal circumstances, the return value is a pointer to | the variable's value. For TTccllGGeettVVaarr22EExx and TTccllOObbjjGGeettVVaarr22 the value | is returned as a pointer to a TclObj. For TTccllGGeettVVaarr and TTccllGGeettVVaarr22 | the value is returned as a string; this is usually less efficient, so | TTccllGGeettVVaarr22EExx or TTccllOObbjjGGeettVVaarr22 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 TTCCLLLLEEAAVVEEEERRRRMMSSGG flag bit is set. TTccllUUnnsseettVVaarr and TTccllUUnnsseettVVaarr22 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 argu-

ments to the procedures above. If the variable is successfully removed then TCLOK is returned. If the variable cannot be removed because it

doesn't exist then TCLERROR is returned and an error message is left

in interp's result if the TTCCLLLLEEAAVVEEEERRRRMMSSGG 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 procedures in four ways:

[1] If TTccllSSeettVVaarr, TTccllGGeettVVaarr, or TTccllUUnnsseettVVaarr is invoked, the vari-

able name is given as a single string, varName. If varName con-

tains 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 vari-

able. If varName doesn't have parentheses as described above,

then the entire string is treated as the name of a scalar vari-

able.

[2] If the name1 and name2 arguments are provided and name2 is non-

NULL, then an array element is specified 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 generated if |

name1 contains an open parenthesis and ends with a close paren- |

thesis (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 combination of the following bits.

TTCCLLGGLLOOBBAALLOONNLLYY 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 namespace, 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 TTCCLLGGLLOOBBAALLOONNLLYY

n TCLNAMESPACEONLY ae ie, TCLGLOBALONLY s goe.

TCLNAMESPACEONLY

If this bit is set in flags then the variable is looked up only in the current namespace; if a procedure is active its variables are ignored, and the global namespace is also ignored unless it is the current namespace. TTCCLLLLEEAAVVEEEERRRRMMSSGG 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 TTccllGGeettOObbjjRReessuulltt or TTccllGGeettSSttrriinnggRReessuulltt. If this flag bit isn't set then no error message is left and the interpreter's result will not be modified. TTCCLLAAPPPPEENNDDVVAALLUUEE 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 TTccllSSeett** procedures. TTCCLLLLIISSTTEELLEEMMEENNTT 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 sublist (i.e. the variable's current value is empty, or contains the single character ``{'', or ends in `` }''). TTccllGGeettVVaarr and TTccllGGeettVVaarr22 return the current value of a variable. The

arguments to these procedures are treated in the same way as the argu-

ments to TTccllSSeettVVaarr and TTccllSSeettVVaarr22. 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 TTccllSSeettVVaarr or TTccllSSeettVVaarr22). TTccllGGeettVVaarr and TTccllGGeettVVaarr22 use the flag bits TCLGLOBALONLY and TCLLEAVEERRMSG, both of which have the same meaning as for TTccllSSeettVVaarr. If an error occurs in reading the variable (e.g. the variable doesn't exist or an array element is specified for a scalar variable), then NULL is returned. TTccllUUnnsseettVVaarr and TTccllUUnnsseettVVaarr22 may be used to remove a variable, so that future calls to TTccllGGeettVVaarr or TTccllGGeettVVaarr22 for the variable will return an error. The arguments to these procedures are treated in the

same way as the arguments to TTccllGGeettVVaarr and TTccllGGeettVVaarr22. If the vari-

able is successfully removed then TCLOK is returned. If the variable

cannot be removed because it doesn't exist then TCLERROR 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

TclGetObjResult, TclGetStringResult, TclTraceVar KKEEYYWWOORRDDSS array, get variable, interpreter, object, scalar, set, unset, variable Tcl 8.1 TclSetVar(3)




Contact us      |      About us      |      Term of use      |       Copyright © 2000-2019 MyWebUniversity.com ™