Resource File Format
A resource file contains text representing the default resource values for an
application or set of applications.
The format of resource files is defined by
Xlib — C Language X Interface. and is reproduced here
for convenience only.
The format of a resource specification is
ResourceLine
= Comment | IncludeFile | ResourceSpec | <empty line>
Comment
="!" {<any character except null or newline>}
IncludeFile
= "#" WhiteSpace "include" WhiteSpace FileName WhiteSpace
FileName
= <valid filename for operating system>
ResourceSpec
= WhiteSpace ResourceName WhiteSpace ":" WhiteSpace Value
ResourceName
= [Binding] {Component Binding} ComponentName
Binding
="." | "*"
WhiteSpace
= {<space> | <horizontal tab>}
Component
= "?" | ComponentName
ComponentName
= NameChar {NameChar}
NameChar
= "a"-"z" | "A"-"Z" | "0"-"9" | "_" | "-"
Value
={<any character except null or unescaped newline>}
Elements separated by vertical bar (|) are alternatives.
Curly braces ({...}) indicate zero or more repetitions
of the enclosed elements.
Square brackets ([...]) indicate that the enclosed element is optional.
Quotes ("...") are used around literal characters.
If the last character on a line is a backslash (\),
that line is assumed to continue on the next line.
To allow a Value to begin with whitespace,
the two-character sequence "\space" (backslash followed by space)
is recognized and replaced by a space character,
and the two-character sequence "\tab"
(backslash followed by horizontal tab)
is recognized and replaced by a horizontal tab character.
To allow a Value to contain embedded newline characters,
the two-character sequence "\n" is recognized and replaced by a
newline character.
To allow a Value to be broken across multiple lines in a text file,
the two-character sequence "\newline"
(backslash followed by newline) is
recognized and removed from the value.
To allow a Value to contain arbitrary character codes,
the four-character sequence "\nnn",
where each n is a digit character in the range of "0"-"7",
is recognized and replaced with a single byte that contains
the octal value specified by the sequence.
Finally, the two-character sequence "\\" is recognized
and replaced with a single backslash.