78ae2e63cf510a1479946ed8ecd87e60ebdbf545
[platform/upstream/libX11.git] / man / XrmUniqueQuark.man
1 .\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
2 .\"
3 .\" Permission is hereby granted, free of charge, to any person obtaining
4 .\" a copy of this software and associated documentation files (the
5 .\" "Software"), to deal in the Software without restriction, including
6 .\" without limitation the rights to use, copy, modify, merge, publish,
7 .\" distribute, sublicense, and/or sell copies of the Software, and to
8 .\" permit persons to whom the Software is furnished to do so, subject to
9 .\" the following conditions:
10 .\"
11 .\" The above copyright notice and this permission notice shall be included
12 .\" in all copies or substantial portions of the Software.
13 .\"
14 .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15 .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17 .\" IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
18 .\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19 .\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20 .\" OTHER DEALINGS IN THE SOFTWARE.
21 .\"
22 .\" Except as contained in this notice, the name of the X Consortium shall
23 .\" not be used in advertising or otherwise to promote the sale, use or
24 .\" other dealings in this Software without prior written authorization
25 .\" from the X Consortium.
26 .\"
27 .\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991 by
28 .\" Digital Equipment Corporation
29 .\"
30 .\" Portions Copyright \(co 1990, 1991 by
31 .\" Tektronix, Inc.
32 .\"
33 .\" Permission to use, copy, modify and distribute this documentation for
34 .\" any purpose and without fee is hereby granted, provided that the above
35 .\" copyright notice appears in all copies and that both that copyright notice
36 .\" and this permission notice appear in all copies, and that the names of
37 .\" Digital and Tektronix not be used in in advertising or publicity pertaining
38 .\" to this documentation without specific, written prior permission.
39 .\" Digital and Tektronix makes no representations about the suitability
40 .\" of this documentation for any purpose.
41 .\" It is provided ``as is'' without express or implied warranty.
42 .\" 
43 .\"
44 .ds xT X Toolkit Intrinsics \- C Language Interface
45 .ds xW Athena X Widgets \- C Language X Toolkit Interface
46 .ds xL Xlib \- C Language X Interface
47 .ds xC Inter-Client Communication Conventions Manual
48 .na
49 .de Ds
50 .nf
51 .\\$1D \\$2 \\$1
52 .ft 1
53 .\".ps \\n(PS
54 .\".if \\n(VS>=40 .vs \\n(VSu
55 .\".if \\n(VS<=39 .vs \\n(VSp
56 ..
57 .de De
58 .ce 0
59 .if \\n(BD .DF
60 .nr BD 0
61 .in \\n(OIu
62 .if \\n(TM .ls 2
63 .sp \\n(DDu
64 .fi
65 ..
66 .de FD
67 .LP
68 .KS
69 .TA .5i 3i
70 .ta .5i 3i
71 .nf
72 ..
73 .de FN
74 .fi
75 .KE
76 .LP
77 ..
78 .de IN          \" send an index entry to the stderr
79 ..
80 .de C{
81 .KS
82 .nf
83 .D
84 .\"
85 .\"     choose appropriate monospace font
86 .\"     the imagen conditional, 480,
87 .\"     may be changed to L if LB is too
88 .\"     heavy for your eyes...
89 .\"
90 .ie "\\*(.T"480" .ft L
91 .el .ie "\\*(.T"300" .ft L
92 .el .ie "\\*(.T"202" .ft PO
93 .el .ie "\\*(.T"aps" .ft CW
94 .el .ft R
95 .ps \\n(PS
96 .ie \\n(VS>40 .vs \\n(VSu
97 .el .vs \\n(VSp
98 ..
99 .de C}
100 .DE
101 .R
102 ..
103 .de Pn
104 .ie t \\$1\fB\^\\$2\^\fR\\$3
105 .el \\$1\fI\^\\$2\^\fP\\$3
106 ..
107 .de ZN
108 .ie t \fB\^\\$1\^\fR\\$2
109 .el \fI\^\\$1\^\fP\\$2
110 ..
111 .de hN
112 .ie t <\fB\\$1\fR>\\$2
113 .el <\fI\\$1\fP>\\$2
114 ..
115 .de NT
116 .ne 7
117 .ds NO Note
118 .if \\n(.$>$1 .if !'\\$2'C' .ds NO \\$2
119 .if \\n(.$ .if !'\\$1'C' .ds NO \\$1
120 .ie n .sp
121 .el .sp 10p
122 .TB
123 .ce
124 \\*(NO
125 .ie n .sp
126 .el .sp 5p
127 .if '\\$1'C' .ce 99
128 .if '\\$2'C' .ce 99
129 .in +5n
130 .ll -5n
131 .R
132 ..
133 .               \" Note End -- doug kraft 3/85
134 .de NE
135 .ce 0
136 .in -5n
137 .ll +5n
138 .ie n .sp
139 .el .sp 10p
140 ..
141 .ny0
142 .TH XrmUniqueQuark __libmansuffix__ __xorgversion__ "XLIB FUNCTIONS"
143 .SH NAME
144 XrmUniqueQuark, XrmStringToQuark, XrmPermStringToQuark, XrmQuarkToString, XrmStringToQuarkList, XrmStringToBindingQuarkList \- manipulate resource quarks
145 .SH SYNOPSIS
146 .HP
147 XrmQuark XrmUniqueQuark\^(void); 
148 .LP
149 \&#define XrmStringToName(string) XrmStringToQuark(string)
150 .br
151 \&#define XrmStringToClass(string) XrmStringToQuark(string)
152 .br
153 \&#define XrmStringToRepresentation(string) XrmStringToQuark(string)
154 .HP
155 int XrmQuark XrmStringToQuark\^(\^char *\fIstring\fP\^); 
156 .HP
157 XrmQuark XrmPermStringToQuark\^(\^char *\fIstring\fP\^); 
158 .LP
159 \&#define XrmStringToName(string) XrmStringToQuark(string)
160 .br
161 \&#define XrmStringToClass(string) XrmStringToQuark(string)
162 .br
163 \&#define XrmStringToRepresentation(string) XrmStringToQuark(string)
164 .HP
165 XrmQuark XrmStringToQuark\^(\^char *\fIstring\fP\^); 
166 .HP
167 XrmQuark XrmPermStringToQuark\^(\^char *\fIstring\fP\^); 
168 .LP
169 \&#define XrmNameToString(name) XrmQuarkToString(name)
170 .br
171 \&#define XrmClassToString(class) XrmQuarkToString(class)
172 .br
173 \&#define XrmRepresentationToString(type) XrmQuarkToString(type)
174 .HP
175 char *XrmQuarkToString\^(\^XrmQuark \fIquark\fP\^); 
176 .LP
177 \&#define XrmStringToNameList(str, name)  XrmStringToQuarkList((str), (name))
178 .br
179 \&#define XrmStringToClassList(str,class) XrmStringToQuarkList((str), (class))
180 .sp
181 .HP
182 void XrmStringToQuarkList\^(\^char *\fIstring\fP\^, XrmQuarkList
183 \fIquarks_return\fP\^); 
184 .HP
185 XrmStringToBindingQuarkList\^(\^char *\fIstring\fP\^, XrmBindingList
186 \fIbindings_return\fP\^, XrmQuarkList \fIquarks_return\fP\^); 
187 .SH ARGUMENTS
188 .IP \fIbindings_return\fP 1i
189 Returns the binding list.
190 .IP \fIquark\fP 1i
191 Specifies the quark for which the equivalent string is desired.
192 .IP \fIquarks_return\fP 1i
193 Returns the list of quarks.
194 .ds Ql \ or quark list
195 .IP \fIstring\fP 1i
196 Specifies the string for which a quark\*(Ql is to be allocated.
197 .SH DESCRIPTION
198 The
199 .ZN XrmUniqueQuark
200 function allocates a quark that is guaranteed not to represent any string that
201 is known to the resource manager.
202 .LP
203 These functions can be used to convert from string to quark representation.
204 If the string is not in the Host Portable Character Encoding,
205 the conversion is implementation-dependent.
206 The string argument to
207 .ZN XrmStringToQuark
208 need not be permanently allocated storage.
209 .ZN XrmPermStringToQuark
210 is just like
211 .ZN XrmStringToQuark ,
212 except that Xlib is permitted to assume the string argument is permanently
213 allocated,
214 and, hence, that it can be used as the value to be returned by
215 .ZN XrmQuarkToString .
216 .LP
217 For any given quark, if
218 .ZN XrmStringToQuark
219 returns a non-NULL value,
220 all future calls will return the same value (identical address).
221 .LP
222 These functions can be used to convert from quark representation to string.
223 The string pointed to by the return value must not be modified or freed.
224 The returned string is byte-for-byte equal to the original
225 string passed to one of the string-to-quark routines.
226 If no string exists for that quark,
227 .ZN XrmQuarkToString
228 returns NULL.
229 For any given quark, if
230 .ZN XrmQuarkToString
231 returns a non-NULL value,
232 all future calls will return the same value (identical address).
233 .LP
234 These functions can be used to convert from string to quark representation.
235 If the string is not in the Host Portable Character Encoding,
236 the conversion is implementation-dependent.
237 The string argument to
238 .ZN XrmStringToQuark
239 need not be permanently allocated storage.
240 .ZN XrmPermStringToQuark
241 is just like
242 .ZN XrmStringToQuark ,
243 except that Xlib is permitted to assume the string argument is permanently
244 allocated,
245 and, hence, that it can be used as the value to be returned by
246 .ZN XrmQuarkToString .
247 .LP
248 For any given quark, if
249 .ZN XrmStringToQuark
250 returns a non-NULL value,
251 all future calls will return the same value (identical address).
252 .LP
253 The
254 .ZN XrmStringToQuarkList
255 function converts the null-terminated string (generally a fully qualified name)
256 to a list of quarks.
257 The caller must allocate sufficient space for the quarks list before calling 
258 .ZN XrmStringToQuarkList .
259 Note that the string must be in the valid ResourceName format 
260 (see section 15.1).
261 If the string is not in the Host Portable Character Encoding,
262 the conversion is implementation-dependent.
263 .LP
264 A binding list is a list of type
265 .ZN XrmBindingList
266 and indicates if components of name or class lists are bound tightly or loosely
267 (that is, if wildcarding of intermediate components is specified).
268 .LP
269 .EX
270 typedef enum {XrmBindTightly, XrmBindLoosely} XrmBinding, *XrmBindingList;
271 .EE
272 .LP
273 .ZN XrmBindTightly
274 indicates that a period separates the components, and
275 .ZN XrmBindLoosely
276 indicates that an asterisk separates the components.
277 .LP
278 The
279 .ZN XrmStringToBindingQuarkList
280 function converts the specified string to a binding list and a quark list.
281 The caller must allocate sufficient space for the quarks list and the
282 binding list before calling 
283 .ZN XrmStringToBindingQuarkList .
284 If the string is not in the Host Portable Character Encoding
285 the conversion is implementation-dependent.
286 Component names in the list are separated by a period or
287 an asterisk character.
288 If the string does not start with period or asterisk,
289 a period is assumed.
290 For example, ``*a.b*c'' becomes:
291 .LP
292 .TS
293 l l l.
294 quarks  a       b       c
295 bindings        loose   tight   loose
296 .TE
297 .SH "SEE ALSO"
298 XrmGetResource(__libmansuffix__),
299 XrmInitialize(__libmansuffix__),
300 XrmMergeDatabases(__libmansuffix__),
301 XrmPutResource(__libmansuffix__)
302 .LP
303 \fI\*(xL\fP