X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/halibut/blobdiff_plain/f9c20de458090ec1295bf49e74f6243c14f3854b..7767353c137d62b07582eb4dfcfa46e08e7f6201:/input.c diff --git a/input.c b/input.c index 47d475a..337517d 100644 --- a/input.c +++ b/input.c @@ -903,7 +903,21 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx, /* 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 @@ -1568,7 +1582,10 @@ struct { } 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 }, }; paragraph *read_input(input *in, indexdata *idx) {