'\"macro stdmacro
.if n .pH g3x11.XUQuark @(#)XUQuark	40.3 of 1/19/90
.ds tk X Toolkit
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xI Intrinsics
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
.ds xC Inter-Client Communication Conventions Manual
.ds Rn 3
.ds Vn 2.2
.hw XtMake-Geometry-Request XtQuery-Geometry wid-get
.na
.de Ds
.nf
.\\$1D \\$2 \\$1
.ft 1
.ps \\n(PS
.\".if \\n(VS>=40 .vs \\n(VSu
.\".if \\n(VS<=39 .vs \\n(VSp
..
.de De
.ce 0
.if \\n(BD .DF
.nr BD 0
.in \\n(OIu
.if \\n(TM .ls 2
.sp \\n(DDu
.fi
..
.de FD
.LP
.KS
.TA .5i 3i
.ta .5i 3i
.nf
..
.de FN
.fi
.KE
.LP
..
.de IN		\" send an index entry to the stderr
.tm \\n%:\\$1:\\$2:\\$3
..
.de C{
.KS
.nf
.D
.\"
.\"	choose appropriate monospace font
.\"	the imagen conditional, 480,
.\"	may be changed to L if LB is too
.\"	heavy for your eyes...
.\"
.ie "\\*(.T"480" .ft L
.el .ie "\\*(.T"300" .ft L
.el .ie "\\*(.T"202" .ft PO
.el .ie "\\*(.T"aps" .ft CW
.el .ft R
.ps \\n(PS
.ie \\n(VS>40 .vs \\n(VSu
.el .vs \\n(VSp
..
.de C}
.DE
.R
..
.de Pn
.ie t \\$1\fB\^\\$2\^\fR\\$3
.el \\$1\fI\^\\$2\^\fP\\$3
..
.de PN
.ie t \fB\^\\$1\^\fR\\$2
.el \fI\^\\$1\^\fP\\$2
..
.de NT
.ne 7
.ds NO Note
.if \\n(.$>$1 .if !'\\$2'C' .ds NO \\$2
.if \\n(.$ .if !'\\$1'C' .ds NO \\$1
.ie n .sp
.el .sp 10p
.TB
.ce
\\*(NO
.ie n .sp
.el .sp 5p
.if '\\$1'C' .ce 99
.if '\\$2'C' .ce 99
.in +5n
.ll -5n
.R
..
.		\" Note End -- doug kraft 3/85
.de NE
.ce 0
.in -5n
.ll +5n
.ie n .sp
.el .sp 10p
..
.ny0
.nr X
.if \nX=0 .ds x} XrmUniqueQuark 3X11 "9/1/88" "XWIN 3.0" "\&"
.if \nX=1 .ds x} XrmUniqueQuark 3X11 "9/1/88" "XWIN 3.0"
.if \nX=2 .ds x} XrmUniqueQuark 3X11 "" "\&"
.if \nX=3 .ds x} XrmUniqueQuark "" "" "\&"
.TH \*(x}
.SH NAME
XrmUniqueQuark, XrmStringToQuark, XrmQuarkToString, XrmStringToQuarkList, XrmStringToBindingQuarkList \- manipulate resource quarks
.SH SYNTAX
XrmQuark XrmUniqueQuark\^(\|)
.LP
#define XrmStringToName(string) XrmStringToQuark(string)
.br
#define XrmStringToClass(string) XrmStringToQuark(string)
.br
#define XrmStringToRepresentation(string) XrmStringToQuark(string)
.sp
XrmQuark XrmStringToQuark\^(\^\fIstring\fP\^)
.br
     char *\fIstring\fP\^;
.LP
#define XrmNameToString(name) XrmQuarkToString(name)
.br
#define XrmClassToString(class) XrmQuarkToString(class)
.br
#define XrmRepresentationToString(type) XrmQuarkToString(type)
.sp
char *XrmQuarkToString\^(\^\fIquark\fP\^)
.br
     XrmQuark \fIquark\fP\^;
.LP
#define XrmStringToNameList(str, name)  XrmStringToQuarkList((str), (name))
.br
#define XrmStringToClassList(str,class) XrmStringToQuarkList((str), (class))
.sp
void XrmStringToQuarkList\^(\^\fIstring\fP, \fIquarks_return\fP\^)
.br
     char *\fIstring\fP\^;
.br
     XrmQuarkList \fIquarks_return\fP\^;
.LP
XrmStringToBindingQuarkList\^(\^\fIstring\fP, \fIbindings_return\fP, \
\fIquarks_return\fP\^)
.br
     char *\fIstring\fP\^;
.br
     XrmBindingList \fIbindings_return\fP\^;
.br
     XrmQuarkList \fIquarks_return\fP\^;
.SH ARGUMENTS
.IP \fIbindings_return\fP 1i
Returns the binding list.
.IP \fIquark\fP 1i
Specifies the quark for which the equivalent string is desired.
.IP \fIquarks_return\fP 1i
Returns the list of quarks.
.IP \fIstring\fP 1i
Specifies the string for which a quark is to be allocated.
.SH DESCRIPTION
The
.PN XrmUniqueQuark
function allocates a quark that is guaranteed not to represent any string that
is known to the resource manager.
.LP
These functions can be used to convert to and from quark representations.
The string pointed to by the return value must not be modified or freed.
If no string exists for that quark,
.PN XrmQuarkToString
returns NULL.
.LP
The
.PN XrmQuarkToString
function converts the specified resource quark representation back to a string.
.LP
The
.PN XrmStringToQuarkList
function converts the null-terminated string (generally a fully qualified name)
to a list of quarks.
The components of the string are separated by a period or asterisk character.
.LP
A binding list is a list of type
.PN XrmBindingList
and indicates if components of name or class lists are bound tightly or loosely
(that is, if wildcarding of intermediate components is specified).
.LP
.Ds 0
typedef enum {XrmBindTightly, XrmBindLoosely} XrmBinding, *XrmBindingList;
.De
.LP
.PN XrmBindTightly
indicates that a period separates the components, and
.PN XrmBindLoosely
indicates that an asterisk separates the components.
.LP
The
.PN XrmStringToBindingQuarkList
function converts the specified string to a binding list and a quark list.
Component names in the list are separated by a period or
an asterisk character.
If the string does not start with period or asterisk,
a period is assumed.
For example, ``*a.b*c'' becomes:
.LP
.Ds 0
.TA .75i 1.5i 2.25i
.ta .75i 1.5i 2.25i
quarks	a	b	c
.br
bindings	loose	tight	loose
.De
.SH "SEE ALSO"
XrmGetResource(3X11),
.br
XrmInitialize(3X11),
.br
XrmMergeDatabases(3X11),
.br
XrmPutResource(3X11)
.br
\fI\*(xL\fP
