Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / src / nas,5.n2.os.2 / lib / python / man / mann / registry.n
CommitLineData
86530b38
AT
1'\"
2'\" Copyright (c) 1997 Sun Microsystems, Inc.
3'\" Copyright (c) 2002 ActiveState Corporation.
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: registry.n,v 1.8.2.2 2004/11/12 09:02:30 das 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
219See 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
226Command-Line Name: \\fB\\$1\\fR
227Database Name: \\fB\\$2\\fR
228Database 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 registry n 1.1 registry "Tcl Bundled Packages"
247.BS
248'\" Note: do not modify the .SH NAME line immediately below!
249.SH NAME
250registry \- Manipulate the Windows registry
251.SH SYNOPSIS
252.sp
253\fBpackage require registry 1.1\fR
254.sp
255\fBregistry \fIoption\fR \fIkeyName\fR ?\fIarg arg ...\fR?
256.BE
257
258.SH DESCRIPTION
259.PP
260The \fBregistry\fR package provides a general set of operations for
261manipulating the Windows registry. The package implements the
262\fBregistry\fR Tcl command. This command is only supported on the
263Windows platform. Warning: this command should be used with caution
264as a corrupted registry can leave your system in an unusable state.
265.PP
266\fIKeyName\fR is the name of a registry key. Registry keys must be
267one of the following forms:
268.IP
269\fB\e\e\fIhostname\fB\e\fIrootname\fB\e\fIkeypath\fR
270.IP
271\fIrootname\fB\e\fIkeypath\fR
272.IP
273\fIrootname\fR
274.PP
275\fIHostname\fR specifies the name of any valid Windows
276host that exports its registry. The \fIrootname\fR component must be
277one of \fBHKEY_LOCAL_MACHINE\fR, \fBHKEY_USERS\fR,
278.VS
279\fBHKEY_CLASSES_ROOT\fR, \fBHKEY_CURRENT_USER\fR,
280\fBHKEY_CURRENT_CONFIG\fR, \fBHKEY_PERFORMANCE_DATA\fR, or
281\fBHKEY_DYN_DATA\fR. The \fIkeypath\fR can be one or more
282.VE
283registry key names separated by backslash (\fB\e\fR) characters.
284.PP
285\fIOption\fR indicates what to do with the registry key name. Any
286unique abbreviation for \fIoption\fR is acceptable. The valid options
287are:
288.VS 8.4
289.TP
290\fBregistry broadcast \fIkeyName\fR ?\fI-timeout milliseconds\fR?
291.
292Sends a broadcast message to the system and running programs to notify them
293of certain updates. This is necessary to propagate changes to key registry
294keys like Environment. The timeout specifies the amount of time, in
295milliseconds, to wait for applications to respond to the broadcast message.
296It defaults to 3000. The following example demonstrates how to add a path
297to the global Environment and notify applications of the change without
298requiring a logoff/logon step (assumes admin privileges):
299.CS
300set regPath {HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment}
301set curPath [registry get $regPath "Path"]
302registry set $regPath "Path" "$curPath;$addPath"
303registry broadcast "Environment"
304.CE
305.VE 8.4
306.TP
307\fBregistry delete \fIkeyName\fR ?\fIvalueName\fR?
308.
309If the optional \fIvalueName\fR argument is present, the specified
310value under \fIkeyName\fR will be deleted from the registry. If the
311optional \fIvalueName\fR is omitted, the specified key and any subkeys
312or values beneath it in the registry hierarchy will be deleted. If
313the key could not be deleted then an error is generated. If the key
314did not exist, the command has no effect.
315.TP
316\fBregistry get \fIkeyName valueName\fR
317.
318Returns the data associated with the value \fIvalueName\fR under the key
319\fIkeyName\fR. If either the key or the value does not exist, then an
320error is generated. For more details on the format of the returned
321data, see SUPPORTED TYPES, below.
322.TP
323\fBregistry keys \fIkeyName\fR ?\fIpattern\fR?
324.
325If \fIpattern\fR isn't specified, returns a list of names of all the
326subkeys of \fIkeyName\fR. If \fIpattern\fR is specified, only those
327names matching \fIpattern\fR are returned. Matching is determined
328using the same rules as for \fBstring\fR \fBmatch\fR. If the
329specified \fIkeyName\fR does not exist, then an error is generated.
330.TP
331\fBregistry set \fIkeyName\fR ?\fIvalueName data \fR?\fItype\fR??
332.
333If \fIvalueName\fR isn't specified, creates the key \fIkeyName\fR if
334it doesn't already exist. If \fIvalueName\fR is specified, creates
335the key \fIkeyName\fR and value \fIvalueName\fR if necessary. The
336contents of \fIvalueName\fR are set to \fIdata\fR with the type
337indicated by \fItype\fR. If \fItype\fR isn't specified, the type
338\fBsz\fR is assumed. For more details on the data and type arguments,
339see SUPPORTED TYPES below.
340.TP
341\fBregistry type \fIkeyName valueName\fR
342.
343Returns the type of the value \fIvalueName\fR in the key
344\fIkeyName\fR. For more information on the possible types, see
345SUPPORTED TYPES, below.
346.TP
347\fBregistry values \fIkeyName\fR ?\fIpattern\fR?
348.
349If \fIpattern\fR isn't specified, returns a list of names of all the
350values of \fIkeyName\fR. If \fIpattern\fR is specified, only those
351names matching \fIpattern\fR are returned. Matching is determined
352using the same rules as for \fBstring\fR \fBmatch\fR.
353
354.SH "SUPPORTED TYPES"
355Each value under a key in the registry contains some data of a
356particular type in a type-specific representation. The \fBregistry\fR
357command converts between this internal representation and one that can
358be manipulated by Tcl scripts. In most cases, the data is simply
359returned as a Tcl string. The type indicates the intended use for the
360data, but does not actually change the representation. For some
361types, the \fBregistry\fR command returns the data in a different form to
362make it easier to manipulate. The following types are recognized by the
363registry command:
364.TP 17
365\fBbinary\fR
366.
367The registry value contains arbitrary binary data. The data is represented
368exactly in Tcl, including any embedded nulls.
369.TP
370\fBnone\fR
371.
372The registry value contains arbitrary binary data with no defined
373type. The data is represented exactly in Tcl, including any embedded
374nulls.
375.TP
376\fBsz\fR
377.
378The registry value contains a null-terminated string. The data is
379represented in Tcl as a string.
380.TP
381\fBexpand_sz\fR
382.
383The registry value contains a null-terminated string that contains
384unexpanded references to environment variables in the normal Windows
385style (for example, "%PATH%"). The data is represented in Tcl as a
386string.
387.TP
388\fBdword\fR
389.
390The registry value contains a little-endian 32-bit number. The data is
391represented in Tcl as a decimal string.
392.TP
393\fBdword_big_endian\fR
394.
395The registry value contains a big-endian 32-bit number. The data is
396represented in Tcl as a decimal string.
397.TP
398\fBlink\fR
399.
400The registry value contains a symbolic link. The data is represented
401exactly in Tcl, including any embedded nulls.
402.TP
403\fBmulti_sz\fR
404.
405The registry value contains an array of null-terminated strings. The
406data is represented in Tcl as a list of strings.
407.TP
408\fBresource_list\fR
409.
410The registry value contains a device-driver resource list. The data
411is represented exactly in Tcl, including any embedded nulls.
412.PP
413In addition to the symbolically named types listed above, unknown
414types are identified using a 32-bit integer that corresponds to the
415type code returned by the system interfaces. In this case, the data
416is represented exactly in Tcl, including any embedded nulls.
417.SH "PORTABILITY ISSUES"
418The registry command is only available on Windows.
419.SH EXAMPLE
420Print out how double-clicking on a Tcl script file will invoke a Tcl
421interpreter:
422.CS
423package require registry
424set ext .tcl
425
426# Read the type name
427set type [\fBregistry get\fR HKEY_CLASSES_ROOT\e\e$ext {}]
428# Work out where to look for the command
429set path HKEY_CLASSES_ROOT\e\e$type\e\eShell\e\eOpen\e\ecommand
430# Read the command!
431set command [\fBregistry get\fR $path {}]
432
433puts "$ext opens with $command"
434.CE
435
436.SH KEYWORDS
437registry