10568f49bSmrg<?xml version="1.0" encoding="UTF-8" ?> 20568f49bSmrg<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 30568f49bSmrg 49e7bcd65Smrg<appendix id='Resource_File_Format'> 59e7bcd65Smrg<title>Resource File Format</title> 69e7bcd65Smrg<para> 79e7bcd65SmrgA resource file contains text representing the default resource values for an 89e7bcd65Smrgapplication or set of applications. 99e7bcd65Smrg</para> 109e7bcd65Smrg 119e7bcd65Smrg<para> 129e7bcd65SmrgThe format of resource files is defined by 130568f49bSmrg<emphasis remap='I'>Xlib — C Language X Interface.</emphasis> and is reproduced here 149e7bcd65Smrgfor convenience only. 159e7bcd65Smrg</para> 169e7bcd65Smrg 179e7bcd65Smrg<para>The format of a resource specification is</para> 189e7bcd65Smrg<informaltable frame='none'> 199e7bcd65Smrg <?dbfo keep-together="always" ?> 209e7bcd65Smrg <tgroup cols='2' align='left' colsep='0' rowsep='0'> 219e7bcd65Smrg <colspec colwidth='0.3*' colname='c1'/> 229e7bcd65Smrg <colspec colwidth='1.0*' colname='c2'/> 239e7bcd65Smrg <tbody> 249e7bcd65Smrg <row> 259e7bcd65Smrg <entry>ResourceLine</entry> 269e7bcd65Smrg <entry>= Comment | IncludeFile | ResourceSpec | <empty line></entry> 279e7bcd65Smrg </row> 289e7bcd65Smrg <row> 299e7bcd65Smrg <entry>Comment</entry> 300568f49bSmrg <entry>=“!” {<any character except null or newline>}</entry> 319e7bcd65Smrg </row> 329e7bcd65Smrg <row> 339e7bcd65Smrg <entry>IncludeFile</entry> 340568f49bSmrg <entry>= “#” WhiteSpace “include” WhiteSpace FileName WhiteSpace</entry> 359e7bcd65Smrg </row> 369e7bcd65Smrg <row> 379e7bcd65Smrg <entry>FileName</entry> 389e7bcd65Smrg <entry>= <valid filename for operating system></entry> 399e7bcd65Smrg </row> 409e7bcd65Smrg <row> 419e7bcd65Smrg <entry>ResourceSpec</entry> 420568f49bSmrg <entry>= WhiteSpace ResourceName WhiteSpace “:” WhiteSpace Value</entry> 439e7bcd65Smrg </row> 449e7bcd65Smrg <row> 459e7bcd65Smrg <entry>ResourceName</entry> 469e7bcd65Smrg <entry>= [Binding] {Component Binding} ComponentName</entry> 479e7bcd65Smrg </row> 489e7bcd65Smrg <row> 499e7bcd65Smrg <entry>Binding</entry> 500568f49bSmrg <entry>=“.” | “*”</entry> 519e7bcd65Smrg </row> 529e7bcd65Smrg <row> 539e7bcd65Smrg <entry>WhiteSpace</entry> 549e7bcd65Smrg <entry>= {<space> | <horizontal tab>}</entry> 559e7bcd65Smrg </row> 569e7bcd65Smrg <row> 579e7bcd65Smrg <entry>Component</entry> 580568f49bSmrg <entry>= “?” | ComponentName</entry> 599e7bcd65Smrg </row> 609e7bcd65Smrg <row> 619e7bcd65Smrg <entry>ComponentName</entry> 629e7bcd65Smrg <entry>= NameChar {NameChar}</entry> 639e7bcd65Smrg </row> 649e7bcd65Smrg <row> 659e7bcd65Smrg <entry>NameChar</entry> 660568f49bSmrg <entry>= “a”–“z” | “A”–“Z” | “0”–“9” | “_” | “-”</entry> 679e7bcd65Smrg </row> 689e7bcd65Smrg <row> 699e7bcd65Smrg <entry>Value</entry> 709e7bcd65Smrg <entry>={<any character except null or unescaped newline>}</entry> 719e7bcd65Smrg </row> 729e7bcd65Smrg </tbody> 739e7bcd65Smrg </tgroup> 749e7bcd65Smrg</informaltable> 759e7bcd65Smrg 769e7bcd65Smrg<para> 779e7bcd65SmrgElements separated by vertical bar (|) are alternatives. 789e7bcd65SmrgCurly braces ({...}) indicate zero or more repetitions 799e7bcd65Smrgof the enclosed elements. 809e7bcd65SmrgSquare brackets ([...]) indicate that the enclosed element is optional. 810568f49bSmrgQuotes (“...”) are used around literal characters. 829e7bcd65Smrg</para> 839e7bcd65Smrg 849e7bcd65Smrg<para> 859e7bcd65SmrgIf the last character on a line is a backslash (\), 869e7bcd65Smrgthat line is assumed to continue on the next line. 879e7bcd65Smrg</para> 889e7bcd65Smrg 899e7bcd65Smrg<para> 909e7bcd65SmrgTo allow a Value to begin with whitespace, 910568f49bSmrgthe two-character sequence “\<emphasis remap='I'>space</emphasis>” (backslash followed by space) 929e7bcd65Smrgis recognized and replaced by a space character, 930568f49bSmrgand the two-character sequence “\<emphasis remap='I'>tab</emphasis>” 949e7bcd65Smrg(backslash followed by horizontal tab) 959e7bcd65Smrgis recognized and replaced by a horizontal tab character. 969e7bcd65Smrg</para> 979e7bcd65Smrg<para> 989e7bcd65SmrgTo allow a Value to contain embedded newline characters, 990568f49bSmrgthe two-character sequence “\n” is recognized and replaced by a 1009e7bcd65Smrgnewline character. 1019e7bcd65SmrgTo allow a Value to be broken across multiple lines in a text file, 1020568f49bSmrgthe two-character sequence “\<emphasis remap='I'>newline</emphasis>” 1039e7bcd65Smrg(backslash followed by newline) is 1049e7bcd65Smrgrecognized and removed from the value. 1059e7bcd65Smrg</para> 1069e7bcd65Smrg<para> 1079e7bcd65SmrgTo allow a Value to contain arbitrary character codes, 1080568f49bSmrgthe four-character sequence “\<emphasis remap='I'>nnn</emphasis>”, 1090568f49bSmrgwhere each <emphasis remap='I'>n</emphasis> is a digit character in the range of “0”–“7”, 1109e7bcd65Smrgis recognized and replaced with a single byte that contains 1119e7bcd65Smrgthe octal value specified by the sequence. 1120568f49bSmrgFinally, the two-character sequence “\\” is recognized 1139e7bcd65Smrgand replaced with a single backslash. 1149e7bcd65Smrg</para> 1159e7bcd65Smrg</appendix> 116