OSDN Git Service

Please enter the commit message for your changes. Lines starting
[eos/hostdependX86LINUX64.git] / util / X86LINUX64 / man / man3 / Tcl_UnsetVar2.3
1 '\"
2 '\" Copyright (c) 1989-1993 The Regents of the University of California.
3 '\" Copyright (c) 1994-1997 Sun Microsystems, Inc.
4 '\"
5 '\" See the file "license.terms" for information on usage and redistribution
6 '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
7 '\" 
8 .TH Tcl_SetVar 3 8.1 Tcl "Tcl Library Procedures"
9 .\" The -*- nroff -*- definitions below are for supplemental macros used
10 .\" in Tcl/Tk manual entries.
11 .\"
12 .\" .AP type name in/out ?indent?
13 .\"     Start paragraph describing an argument to a library procedure.
14 .\"     type is type of argument (int, etc.), in/out is either "in", "out",
15 .\"     or "in/out" to describe whether procedure reads or modifies arg,
16 .\"     and indent is equivalent to second arg of .IP (shouldn't ever be
17 .\"     needed;  use .AS below instead)
18 .\"
19 .\" .AS ?type? ?name?
20 .\"     Give maximum sizes of arguments for setting tab stops.  Type and
21 .\"     name are examples of largest possible arguments that will be passed
22 .\"     to .AP later.  If args are omitted, default tab stops are used.
23 .\"
24 .\" .BS
25 .\"     Start box enclosure.  From here until next .BE, everything will be
26 .\"     enclosed in one large box.
27 .\"
28 .\" .BE
29 .\"     End of box enclosure.
30 .\"
31 .\" .CS
32 .\"     Begin code excerpt.
33 .\"
34 .\" .CE
35 .\"     End code excerpt.
36 .\"
37 .\" .VS ?version? ?br?
38 .\"     Begin vertical sidebar, for use in marking newly-changed parts
39 .\"     of man pages.  The first argument is ignored and used for recording
40 .\"     the version when the .VS was added, so that the sidebars can be
41 .\"     found and removed when they reach a certain age.  If another argument
42 .\"     is present, then a line break is forced before starting the sidebar.
43 .\"
44 .\" .VE
45 .\"     End of vertical sidebar.
46 .\"
47 .\" .DS
48 .\"     Begin an indented unfilled display.
49 .\"
50 .\" .DE
51 .\"     End of indented unfilled display.
52 .\"
53 .\" .SO ?manpage?
54 .\"     Start of list of standard options for a Tk widget. The manpage
55 .\"     argument defines where to look up the standard options; if
56 .\"     omitted, defaults to "options". The options follow on successive
57 .\"     lines, in three columns separated by tabs.
58 .\"
59 .\" .SE
60 .\"     End of list of standard options for a Tk widget.
61 .\"
62 .\" .OP cmdName dbName dbClass
63 .\"     Start of description of a specific option.  cmdName gives the
64 .\"     option's name as specified in the class command, dbName gives
65 .\"     the option's name in the option database, and dbClass gives
66 .\"     the option's class in the option database.
67 .\"
68 .\" .UL arg1 arg2
69 .\"     Print arg1 underlined, then print arg2 normally.
70 .\"
71 .\" .QW arg1 ?arg2?
72 .\"     Print arg1 in quotes, then arg2 normally (for trailing punctuation).
73 .\"
74 .\" .PQ arg1 ?arg2?
75 .\"     Print an open parenthesis, arg1 in quotes, then arg2 normally
76 .\"     (for trailing punctuation) and then a closing parenthesis.
77 .\"
78 .\"     # Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
79 .if t .wh -1.3i ^B
80 .nr ^l \n(.l
81 .ad b
82 .\"     # Start an argument description
83 .de AP
84 .ie !"\\$4"" .TP \\$4
85 .el \{\
86 .   ie !"\\$2"" .TP \\n()Cu
87 .   el          .TP 15
88 .\}
89 .ta \\n()Au \\n()Bu
90 .ie !"\\$3"" \{\
91 \&\\$1 \\fI\\$2\\fP (\\$3)
92 .\".b
93 .\}
94 .el \{\
95 .br
96 .ie !"\\$2"" \{\
97 \&\\$1  \\fI\\$2\\fP
98 .\}
99 .el \{\
100 \&\\fI\\$1\\fP
101 .\}
102 .\}
103 ..
104 .\"     # define tabbing values for .AP
105 .de AS
106 .nr )A 10n
107 .if !"\\$1"" .nr )A \\w'\\$1'u+3n
108 .nr )B \\n()Au+15n
109 .\"
110 .if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
111 .nr )C \\n()Bu+\\w'(in/out)'u+2n
112 ..
113 .AS Tcl_Interp Tcl_CreateInterp in/out
114 .\"     # BS - start boxed text
115 .\"     # ^y = starting y location
116 .\"     # ^b = 1
117 .de BS
118 .br
119 .mk ^y
120 .nr ^b 1u
121 .if n .nf
122 .if n .ti 0
123 .if n \l'\\n(.lu\(ul'
124 .if n .fi
125 ..
126 .\"     # BE - end boxed text (draw box now)
127 .de BE
128 .nf
129 .ti 0
130 .mk ^t
131 .ie n \l'\\n(^lu\(ul'
132 .el \{\
133 .\"     Draw four-sided box normally, but don't draw top of
134 .\"     box if the box started on an earlier page.
135 .ie !\\n(^b-1 \{\
136 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
137 .\}
138 .el \}\
139 \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
140 .\}
141 .\}
142 .fi
143 .br
144 .nr ^b 0
145 ..
146 .\"     # VS - start vertical sidebar
147 .\"     # ^Y = starting y location
148 .\"     # ^v = 1 (for troff;  for nroff this doesn't matter)
149 .de VS
150 .if !"\\$2"" .br
151 .mk ^Y
152 .ie n 'mc \s12\(br\s0
153 .el .nr ^v 1u
154 ..
155 .\"     # VE - end of vertical sidebar
156 .de VE
157 .ie n 'mc
158 .el \{\
159 .ev 2
160 .nf
161 .ti 0
162 .mk ^t
163 \h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
164 .sp -1
165 .fi
166 .ev
167 .\}
168 .nr ^v 0
169 ..
170 .\"     # Special macro to handle page bottom:  finish off current
171 .\"     # box/sidebar if in box/sidebar mode, then invoked standard
172 .\"     # page bottom macro.
173 .de ^B
174 .ev 2
175 'ti 0
176 'nf
177 .mk ^t
178 .if \\n(^b \{\
179 .\"     Draw three-sided box if this is the box's first page,
180 .\"     draw two sides but no top otherwise.
181 .ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
182 .el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
183 .\}
184 .if \\n(^v \{\
185 .nr ^x \\n(^tu+1v-\\n(^Yu
186 \kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
187 .\}
188 .bp
189 'fi
190 .ev
191 .if \\n(^b \{\
192 .mk ^y
193 .nr ^b 2
194 .\}
195 .if \\n(^v \{\
196 .mk ^Y
197 .\}
198 ..
199 .\"     # DS - begin display
200 .de DS
201 .RS
202 .nf
203 .sp
204 ..
205 .\"     # DE - end display
206 .de DE
207 .fi
208 .RE
209 .sp
210 ..
211 .\"     # SO - start of list of standard options
212 .de SO
213 'ie '\\$1'' .ds So \\fBoptions\\fR
214 'el .ds So \\fB\\$1\\fR
215 .SH "STANDARD OPTIONS"
216 .LP
217 .nf
218 .ta 5.5c 11c
219 .ft B
220 ..
221 .\"     # SE - end of list of standard options
222 .de SE
223 .fi
224 .ft R
225 .LP
226 See the \\*(So manual entry for details on the standard options.
227 ..
228 .\"     # OP - start of full description for a single option
229 .de OP
230 .LP
231 .nf
232 .ta 4c
233 Command-Line Name:      \\fB\\$1\\fR
234 Database Name:  \\fB\\$2\\fR
235 Database Class: \\fB\\$3\\fR
236 .fi
237 .IP
238 ..
239 .\"     # CS - begin code excerpt
240 .de CS
241 .RS
242 .nf
243 .ta .25i .5i .75i 1i
244 ..
245 .\"     # CE - end code excerpt
246 .de CE
247 .fi
248 .RE
249 ..
250 .\"     # UL - underline word
251 .de UL
252 \\$1\l'|0\(ul'\\$2
253 ..
254 .\"     # QW - apply quotation marks to word
255 .de QW
256 .ie '\\*(lq'"' ``\\$1''\\$2
257 .\"" fix emacs highlighting
258 .el \\*(lq\\$1\\*(rq\\$2
259 ..
260 .\"     # PQ - apply parens and quotation marks to word
261 .de PQ
262 .ie '\\*(lq'"' (``\\$1''\\$2)\\$3
263 .\"" fix emacs highlighting
264 .el (\\*(lq\\$1\\*(rq\\$2)\\$3
265 ..
266 .\"     # QR - quoted range
267 .de QR
268 .ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3
269 .\"" fix emacs highlighting
270 .el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3
271 ..
272 .\"     # MT - "empty" string
273 .de MT
274 .QW ""
275 ..
276 .BS
277 .SH NAME
278 Tcl_SetVar2Ex, Tcl_SetVar, Tcl_SetVar2, Tcl_ObjSetVar2, Tcl_GetVar2Ex, Tcl_GetVar, Tcl_GetVar2, Tcl_ObjGetVar2, Tcl_UnsetVar, Tcl_UnsetVar2 \- manipulate Tcl variables
279 .SH SYNOPSIS
280 .nf
281 \fB#include <tcl.h>\fR
282 .sp
283 Tcl_Obj *
284 \fBTcl_SetVar2Ex\fR(\fIinterp, name1, name2, newValuePtr, flags\fR)
285 .sp
286 const char *
287 \fBTcl_SetVar\fR(\fIinterp, varName, newValue, flags\fR)
288 .sp
289 const char *
290 \fBTcl_SetVar2\fR(\fIinterp, name1, name2, newValue, flags\fR)
291 .sp
292 Tcl_Obj *
293 \fBTcl_ObjSetVar2\fR(\fIinterp, part1Ptr, part2Ptr, newValuePtr, flags\fR)
294 .sp
295 Tcl_Obj *
296 \fBTcl_GetVar2Ex\fR(\fIinterp, name1, name2, flags\fR)
297 .sp
298 const char *
299 \fBTcl_GetVar\fR(\fIinterp, varName, flags\fR)
300 .sp
301 const char *
302 \fBTcl_GetVar2\fR(\fIinterp, name1, name2, flags\fR)
303 .sp
304 Tcl_Obj *
305 \fBTcl_ObjGetVar2\fR(\fIinterp, part1Ptr, part2Ptr, flags\fR)
306 .sp
307 int
308 \fBTcl_UnsetVar\fR(\fIinterp, varName, flags\fR)
309 .sp
310 int
311 \fBTcl_UnsetVar2\fR(\fIinterp, name1, name2, flags\fR)
312 .SH ARGUMENTS
313 .AS Tcl_Interp *newValuePtr
314 .AP Tcl_Interp *interp in
315 Interpreter containing variable.
316 .AP "const char" *name1 in
317 Contains the name of an array variable (if \fIname2\fR is non-NULL)
318 or (if \fIname2\fR is NULL) either the name of a scalar variable
319 or a complete name including both variable name and index.
320 May include \fB::\fR namespace qualifiers
321 to specify a variable in a particular namespace.
322 .AP "const char" *name2 in
323 If non-NULL, gives name of element within array; in this
324 case \fIname1\fR must refer to an array variable.
325 .AP Tcl_Obj *newValuePtr in
326 Points to a Tcl value containing the new value for the variable.
327 .AP int flags in
328 OR-ed combination of bits providing additional information. See below
329 for valid values.
330 .AP "const char" *varName in
331 Name of variable.
332 May include \fB::\fR namespace qualifiers
333 to specify a variable in a particular namespace.
334 May refer to a scalar variable or an element of
335 an array.
336 .AP "const char" *newValue in
337 New value for variable, specified as a null-terminated string.
338 A copy of this value is stored in the variable.
339 .AP Tcl_Obj *part1Ptr in
340 Points to a Tcl value containing the variable's name.
341 The name may include a series of \fB::\fR namespace qualifiers
342 to specify a variable in a particular namespace.
343 May refer to a scalar variable or an element of an array variable.
344 .AP Tcl_Obj *part2Ptr in
345 If non-NULL, points to a value containing the name of an element
346 within an array and \fIpart1Ptr\fR must refer to an array variable.
347 .BE
348
349 .SH DESCRIPTION
350 .PP
351 These procedures are used to create, modify, read, and delete
352 Tcl variables from C code.
353 .PP
354 \fBTcl_SetVar2Ex\fR, \fBTcl_SetVar\fR, \fBTcl_SetVar2\fR, and
355 \fBTcl_ObjSetVar2\fR 
356 will create a new variable or modify an existing one.
357 These procedures set the given variable to the value
358 given by \fInewValuePtr\fR or \fInewValue\fR and return a
359 pointer to the variable's new value, which is stored in Tcl's
360 variable structure.
361 \fBTcl_SetVar2Ex\fR and \fBTcl_ObjSetVar2\fR take the new value as a
362 Tcl_Obj and return
363 a pointer to a Tcl_Obj.  \fBTcl_SetVar\fR and \fBTcl_SetVar2\fR
364 take the new value as a string and return a string; they are
365 usually less efficient than \fBTcl_ObjSetVar2\fR.  Note that the
366 return value may be different than the \fInewValuePtr\fR or
367 \fInewValue\fR argument, due to modifications made by write traces.
368 If an error occurs in setting the variable (e.g. an array
369 variable is referenced without giving an index into the array)
370 NULL is returned and an error message is left in \fIinterp\fR's
371 result if the \fBTCL_LEAVE_ERR_MSG\fR \fIflag\fR bit is set.
372 .PP
373 \fBTcl_GetVar2Ex\fR, \fBTcl_GetVar\fR, \fBTcl_GetVar2\fR, and
374 \fBTcl_ObjGetVar2\fR
375 return the current value of a variable.
376 The arguments to these procedures are treated in the same way
377 as the arguments to the procedures described above.
378 Under normal circumstances, the return value is a pointer
379 to the variable's value.  For \fBTcl_GetVar2Ex\fR and
380 \fBTcl_ObjGetVar2\fR the value is
381 returned as a pointer to a Tcl_Obj.  For \fBTcl_GetVar\fR and
382 \fBTcl_GetVar2\fR the value is returned as a string; this is
383 usually less efficient, so \fBTcl_GetVar2Ex\fR or \fBTcl_ObjGetVar2\fR
384 are preferred.
385 If an error occurs while reading the variable (e.g. the variable
386 does not exist or an array element is specified for a scalar
387 variable), then NULL is returned and an error message is left
388 in \fIinterp\fR's result if the \fBTCL_LEAVE_ERR_MSG\fR \fIflag\fR
389 bit is set.
390 .PP
391 \fBTcl_UnsetVar\fR and \fBTcl_UnsetVar2\fR may be used to remove
392 a variable, so that future attempts to read the variable will return
393 an error.
394 The arguments to these procedures are treated in the same way
395 as the arguments to the procedures above.
396 If the variable is successfully removed then \fBTCL_OK\fR is returned.
397 If the variable cannot be removed because it does not exist then
398 \fBTCL_ERROR\fR is returned and an error message is left
399 in \fIinterp\fR's result if the \fBTCL_LEAVE_ERR_MSG\fR \fIflag\fR
400 bit is set.
401 If an array element is specified, the given element is removed
402 but the array remains.
403 If an array name is specified without an index, then the entire
404 array is removed.
405 .PP
406 The name of a variable may be specified to these procedures in
407 four ways:
408 .IP [1]
409 If \fBTcl_SetVar\fR, \fBTcl_GetVar\fR, or \fBTcl_UnsetVar\fR
410 is invoked, the variable name is given as
411 a single string, \fIvarName\fR.
412 If \fIvarName\fR contains an open parenthesis and ends with a
413 close parenthesis, then the value between the parentheses is
414 treated as an index (which can have any string value) and
415 the characters before the first open
416 parenthesis are treated as the name of an array variable.
417 If \fIvarName\fR does not have parentheses as described above, then
418 the entire string is treated as the name of a scalar variable.
419 .IP [2]
420 If the \fIname1\fR and \fIname2\fR arguments are provided and
421 \fIname2\fR is non-NULL, then an array element is specified and
422 the array name and index have
423 already been separated by the caller: \fIname1\fR contains the
424 name and \fIname2\fR contains the index.  An error is generated
425 if \fIname1\fR  contains an open parenthesis and ends with a
426 close parenthesis (array element) and \fIname2\fR is non-NULL.
427 .IP [3]
428 If \fIname2\fR is NULL, \fIname1\fR is treated just like
429 \fIvarName\fR in case [1] above (it can be either a scalar or an array
430 element variable name).
431 .PP
432 The \fIflags\fR argument may be used to specify any of several
433 options to the procedures.
434 It consists of an OR-ed combination of the following bits.
435 .TP
436 \fBTCL_GLOBAL_ONLY\fR
437 Under normal circumstances the procedures look up variables as follows.
438 If a procedure call is active in \fIinterp\fR,
439 the variable is looked up at the current level of procedure call.
440 Otherwise, the variable is looked up first in the current namespace,
441 then in the global namespace.
442 However, if this bit is set in \fIflags\fR then the variable
443 is looked up only in the global namespace
444 even if there is a procedure call active.
445 If both \fBTCL_GLOBAL_ONLY\fR and \fBTCL_NAMESPACE_ONLY\fR are given,
446 \fBTCL_GLOBAL_ONLY\fR is ignored.
447 .TP
448 \fBTCL_NAMESPACE_ONLY\fR
449 If this bit is set in \fIflags\fR then the variable
450 is looked up only in the current namespace; if a procedure is active
451 its variables are ignored, and the global namespace is also ignored unless
452 it is the current namespace.
453 .TP
454 \fBTCL_LEAVE_ERR_MSG\fR
455 If an error is returned and this bit is set in \fIflags\fR, then
456 an error message will be left in the interpreter's result,
457 where it can be retrieved with \fBTcl_GetObjResult\fR
458 or \fBTcl_GetStringResult\fR.
459 If this flag bit is not set then no error message is left
460 and the interpreter's result will not be modified.
461 .TP
462 \fBTCL_APPEND_VALUE\fR
463 If this bit is set then \fInewValuePtr\fR or \fInewValue\fR is
464 appended to the current value instead of replacing it.
465 If the variable is currently undefined, then the bit is ignored.
466 This bit is only used by the \fBTcl_Set*\fR procedures.
467 .TP
468 \fBTCL_LIST_ELEMENT\fR
469 If this bit is set, then \fInewValue\fR is converted to a valid
470 Tcl list element before setting (or appending to) the variable.
471 A separator space is appended before the new list element unless
472 the list element is going to be the first element in a list or
473 sublist (i.e. the variable's current value is empty, or contains
474 the single character
475 .QW { ,
476 or ends in
477 .QW " }" ).
478 When appending, the original value of the variable must also be
479 a valid list, so that the operation is the appending of a new
480 list element onto a list.
481 .PP
482 \fBTcl_GetVar\fR and \fBTcl_GetVar2\fR
483 return the current value of a variable.
484 The arguments to these procedures are treated in the same way
485 as the arguments to \fBTcl_SetVar\fR and \fBTcl_SetVar2\fR.
486 Under normal circumstances, the return value is a pointer
487 to the variable's value (which is stored in Tcl's variable
488 structure and will not change before the next call to \fBTcl_SetVar\fR
489 or \fBTcl_SetVar2\fR).
490 \fBTcl_GetVar\fR and \fBTcl_GetVar2\fR use the flag bits \fBTCL_GLOBAL_ONLY\fR
491 and \fBTCL_LEAVE_ERR_MSG\fR, both of
492 which have
493 the same meaning as for \fBTcl_SetVar\fR.
494 If an error occurs in reading the variable (e.g. the variable
495 does not exist or an array element is specified for a scalar
496 variable), then NULL is returned.
497 .PP
498 \fBTcl_UnsetVar\fR and \fBTcl_UnsetVar2\fR may be used to remove
499 a variable, so that future calls to \fBTcl_GetVar\fR or \fBTcl_GetVar2\fR
500 for the variable will return an error.
501 The arguments to these procedures are treated in the same way
502 as the arguments to \fBTcl_GetVar\fR and \fBTcl_GetVar2\fR.
503 If the variable is successfully removed then \fBTCL_OK\fR is returned.
504 If the variable cannot be removed because it does not exist then
505 \fBTCL_ERROR\fR is returned.
506 If an array element is specified, the given element is removed
507 but the array remains.
508 If an array name is specified without an index, then the entire
509 array is removed.
510
511 .SH "SEE ALSO"
512 Tcl_GetObjResult, Tcl_GetStringResult, Tcl_TraceVar
513
514 .SH KEYWORDS
515 array, get variable, interpreter, scalar, set, unset, value, variable