OSDN Git Service

FIRST REPOSITORY
[eos/hostdependOTHERS.git] / ALPHALINUX5 / util / ALPHALINUX5 / man / man3 / Tcl_GetVar.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.3 1999/04/16 00:46:33 stanton 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.3 1999/04/16 00:46:35 stanton 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 4c 8c 12c
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 char *
260 \fBTcl_SetVar\fR(\fIinterp, varName, newValue, flags\fR)
261 .sp
262 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 char *
274 \fBTcl_GetVar\fR(\fIinterp, varName, flags\fR)
275 .sp
276 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 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 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 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 If the name references an element of an array, then the name
314 must be in writable memory:  Tcl will make temporary modifications 
315 to it while looking up the name.
316 .AP char *newValue in
317 New value for variable, specified as a NULL-terminated string.
318 A copy of this value is stored in the variable.
319 .AP Tcl_Obj *part1Ptr in
320 Points to a Tcl object containing the variable's name.
321 The name may include a series of \fB::\fR namespace qualifiers
322 to specify a variable in a particular namespace.
323 May refer to a scalar variable or an element of an array variable.
324 .AP Tcl_Obj *part2Ptr in
325 If non-NULL, points to an object containing the name of an element
326 within an array and \fIpart1Ptr\fR must refer to an array variable.
327 .BE
328
329 .SH DESCRIPTION
330 .PP
331 These procedures are used to create, modify, read, and delete
332 Tcl variables from C code.
333 .PP
334 .VS 8.1
335 \fBTcl_SetVar2Ex\fR, \fBTcl_SetVar\fR, \fBTcl_SetVar2\fR, and
336 \fBTcl_ObjSetVar2\fR 
337 will create a new variable or modify an existing one.
338 These procedures set the given variable to the value
339 given by \fInewValuePtr\fR or \fInewValue\fR and return a
340 pointer to the variable's new value, which is stored in Tcl's
341 variable structure.
342 \fBTcl_SetVar2Ex\fR and \fBTcl_ObjSetVar2\fR take the new value as a
343 Tcl_Obj and return
344 a pointer to a Tcl_Obj.  \fBTcl_SetVar\fR and \fBTcl_SetVar2\fR
345 take the new value as a string and return a string; they are
346 usually less efficient than \fBTcl_ObjSetVar2\fR.  Note that the
347 return value may be different than the \fInewValuePtr\fR or
348 .VE
349 \fInewValue\fR argument, due to modifications made by write traces.
350 If an error occurs in setting the variable (e.g. an array
351 variable is referenced without giving an index into the array)
352 NULL is returned and an error message is left in \fIinterp\fR's
353 result if the \fBTCL_LEAVE_ERR_MSG\fR \fIflag\fR bit is set.
354 .PP
355 .VS 8.1
356 \fBTcl_GetVar2Ex\fR, \fBTcl_GetVar\fR, \fBTcl_GetVar2\fR, and
357 \fBTcl_ObjGetVar2\fR
358 return the current value of a variable.
359 The arguments to these procedures are treated in the same way
360 as the arguments to the procedures described above.
361 Under normal circumstances, the return value is a pointer
362 to the variable's value.  For \fBTcl_GetVar2Ex\fR and
363 \fBTcl_ObjGetVar2\fR the value is
364 returned as a pointer to a Tcl_Obj.  For \fBTcl_GetVar\fR and
365 \fBTcl_GetVar2\fR the value is returned as a string; this is
366 usually less efficient, so \fBTcl_GetVar2Ex\fR or \fBTcl_ObjGetVar2\fR
367 are preferred.
368 .VE
369 If an error occurs while reading the variable (e.g. the variable
370 doesn't exist or an array element is specified for a scalar
371 variable), then NULL is returned and an error message is left
372 in \fIinterp\fR's result if the \fBTCL_LEAVE_ERR_MSG\fR \fIflag\fR
373 bit is set.
374 .PP
375 \fBTcl_UnsetVar\fR and \fBTcl_UnsetVar2\fR may be used to remove
376 a variable, so that future attempts to read the variable will return
377 an error.
378 The arguments to these procedures are treated in the same way
379 as the arguments to the procedures above.
380 If the variable is successfully removed then TCL_OK is returned.
381 If the variable cannot be removed because it doesn't exist then
382 TCL_ERROR is returned and an error message is left
383 in \fIinterp\fR's result if the \fBTCL_LEAVE_ERR_MSG\fR \fIflag\fR
384 bit is set.
385 If an array element is specified, the given element is removed
386 but the array remains.
387 If an array name is specified without an index, then the entire
388 array is removed.
389 .PP
390 The name of a variable may be specified to these procedures in
391 four ways:
392 .IP [1]
393 If \fBTcl_SetVar\fR, \fBTcl_GetVar\fR, or \fBTcl_UnsetVar\fR
394 is invoked, the variable name is given as
395 a single string, \fIvarName\fR.
396 If \fIvarName\fR contains an open parenthesis and ends with a
397 close parenthesis, then the value between the parentheses is
398 treated as an index (which can have any string value) and
399 the characters before the first open
400 parenthesis are treated as the name of an array variable.
401 If \fIvarName\fR doesn't have parentheses as described above, then
402 the entire string is treated as the name of a scalar variable.
403 .IP [2]
404 If the \fIname1\fR and \fIname2\fR arguments are provided and
405 \fIname2\fR is non-NULL, then an array element is specified and
406 the array name and index have
407 already been separated by the caller: \fIname1\fR contains the
408 name and \fIname2\fR contains the index.
409 .VS 8.1
410 An error is generated
411 if \fIname1\fR  contains an open parenthesis and ends with a
412 close parenthesis (array element) and \fIname2\fR is non-NULL.
413 .IP [3]
414 If \fIname2\fR is NULL, \fIname1\fR is treated just like
415 \fIvarName\fR in case [1] above (it can be either a scalar or an array
416 element variable name).
417 .VE
418 .PP
419 The \fIflags\fR argument may be used to specify any of several
420 options to the procedures.
421 It consists of an OR-ed combination of the following bits.
422 .TP
423 \fBTCL_GLOBAL_ONLY\fR
424 Under normal circumstances the procedures look up variables as follows.
425 If a procedure call is active in \fIinterp\fR,
426 the variable is looked up at the current level of procedure call.
427 Otherwise, the variable is looked up first in the current namespace,
428 then in the global namespace.
429 However, if this bit is set in \fIflags\fR then the variable
430 is looked up only in the global namespace
431 even if there is a procedure call active.
432 If both \fBTCL_GLOBAL_ONLY\fR and \fBTCL_NAMESPACE_ONLY\fR are given,
433 \fBTCL_GLOBAL_ONLY\fR is ignored.
434 .TP
435 \fBTCL_NAMESPACE_ONLY\fR
436 If this bit is set in \fIflags\fR then the variable
437 is looked up only in the current namespace; if a procedure is active
438 its variables are ignored, and the global namespace is also ignored unless
439 it is the current namespace.
440 .TP
441 \fBTCL_LEAVE_ERR_MSG\fR
442 If an error is returned and this bit is set in \fIflags\fR, then
443 an error message will be left in the interpreter's result,
444 where it can be retrieved with \fBTcl_GetObjResult\fR
445 or \fBTcl_GetStringResult\fR.
446 If this flag bit isn't set then no error message is left
447 and the interpreter's result will not be modified.
448 .TP
449 \fBTCL_APPEND_VALUE\fR
450 If this bit is set then \fInewValuePtr\fR or \fInewValue\fR is
451 appended to the current value instead of replacing it.
452 If the variable is currently undefined, then the bit is ignored.
453 This bit is only used by the \fBTcl_Set*\fR procedures.
454 .TP
455 \fBTCL_LIST_ELEMENT\fR
456 If this bit is set, then \fInewValue\fR is converted to a valid
457 Tcl list element before setting (or appending to) the variable.
458 A separator space is appended before the new list element unless
459 the list element is going to be the first element in a list or
460 sublist (i.e. the variable's current value is empty, or contains
461 the single character ``{'', or ends in `` }'').
462 .PP
463 \fBTcl_GetVar\fR and \fBTcl_GetVar2\fR
464 return the current value of a variable.
465 The arguments to these procedures are treated in the same way
466 as the arguments to \fBTcl_SetVar\fR and \fBTcl_SetVar2\fR.
467 Under normal circumstances, the return value is a pointer
468 to the variable's value (which is stored in Tcl's variable
469 structure and will not change before the next call to \fBTcl_SetVar\fR
470 or \fBTcl_SetVar2\fR).
471 \fBTcl_GetVar\fR and \fBTcl_GetVar2\fR use the flag bits TCL_GLOBAL_ONLY
472 and TCL_LEAVE_ERR_MSG, both of
473 which have
474 the same meaning as for \fBTcl_SetVar\fR.
475 If an error occurs in reading the variable (e.g. the variable
476 doesn't exist or an array element is specified for a scalar
477 variable), then NULL is returned.
478 .PP
479 \fBTcl_UnsetVar\fR and \fBTcl_UnsetVar2\fR may be used to remove
480 a variable, so that future calls to \fBTcl_GetVar\fR or \fBTcl_GetVar2\fR
481 for the variable will return an error.
482 The arguments to these procedures are treated in the same way
483 as the arguments to \fBTcl_GetVar\fR and \fBTcl_GetVar2\fR.
484 If the variable is successfully removed then TCL_OK is returned.
485 If the variable cannot be removed because it doesn't exist then
486 TCL_ERROR is returned.
487 If an array element is specified, the given element is removed
488 but the array remains.
489 If an array name is specified without an index, then the entire
490 array is removed.
491
492 .SH "SEE ALSO"
493 Tcl_GetObjResult, Tcl_GetStringResult, Tcl_TraceVar
494
495 .SH KEYWORDS
496 array, get variable, interpreter, object, scalar, set, unset, variable