/* Get keywords. */
dtor(t), t = get_token(in);
fp = t.pos;
- while (t.type == tok_lbrace) {
+ while (t.type == tok_lbrace ||
+ (t.type == tok_white && (needkw & 24))) {
+ /*
+ * In paragraph types which can't accept any
+ * body text (such as \cfg), we are lenient
+ * about whitespace between keywords. This is
+ * important for \cfg in particular since it
+ * can often have many keywords which are long
+ * pieces of text, so it's useful to permit the
+ * user to wrap the line between them.
+ */
+ if (t.type == tok_white) {
+ dtor(t), t = get_token(in); /* eat the space */
+ continue;
+ }
/* This is a keyword. */
nkeys++;
/* FIXME: there will be bugs if anyone specifies an
} magics[] = {
{ "%!FontType1-", 12, &read_pfa_file },
{ "%!PS-AdobeFont-", 15, &read_pfa_file },
+ { "\x80\x01", 2, &read_pfb_file },
{ "StartFontMetrics", 16, &read_afm_file },
+ { "\x00\x01\x00\x00", 4, &read_sfnt_file },
+ { "true", 4, &read_sfnt_file },
+ { "OTTO", 4, &read_sfnt_file },
};
paragraph *read_input(input *in, indexdata *idx) {