OSDN Git Service

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