100
XXX document the dict format:
102
whitespaces <name> whitespaces '=' whitespaces <value> whitespaces comment
104
whitespaces <name> whitespaces '=' whitespaces '"' <value> '"' whitespaces comment
108
. <name> does not contain any whitespace or = or pound
109
. <value> does not contain any double-quote or pound
100
* The dictionary line format:
102
* <ws> <name> <ws> = <ws> <value> <ws> <comment>
104
* <ws> <name> <ws> = <ws> " <quoted-value> " <ws> <comment>
107
* <name> does not contain any whitespace or = or #
108
* <value> does not contain any double-quote or #
109
* <quoted-value> does not contain any double-quote
110
* <comment> begins with # and ends at the end of the line
111
* <ws> is a sequence spaces and/or tabs
112
* <comment> and <ws> are optional
393
* Double quote, pound, pipe, 0x7F, and all control characters but
396
* Double quote, pipe, 0x7F, and all control characters but
395
* XXX Why 7F? Why not also 84 and 85 and 90 which do funny things in a
398
* 0x80 to 0xff are unescaped so characters in encodings
399
* like UTF-8 will be displayed normally.
398
401
static int const toEscape[] = {
399
402
1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
400
403
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
401
0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
404
0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
402
405
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
403
406
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
404
407
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,