X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/halibut/blobdiff_plain/d5bc1c48d6a59db9480a3c8ce43fd8ca8a3b6a21..8f664e7e91c918cd13248f6b684580c4dd2cdb31:/in_afm.c diff --git a/in_afm.c b/in_afm.c index d3d5ecb..b2aacae 100644 --- a/in_afm.c +++ b/in_afm.c @@ -56,7 +56,7 @@ void read_afm_file(input *in) { fi = snew(font_info); fi->name = NULL; fi->widths = newtree234(width_cmp); - fi->fp = NULL; + fi->fontfile = NULL; fi->kerns = newtree234(kern_cmp); fi->ligs = newtree234(lig_cmp); fi->fontbbox[0] = fi->fontbbox[1] = fi->fontbbox[2] = fi->fontbbox[3] = 0; @@ -181,6 +181,28 @@ void read_afm_file(input *in) { goto giveup; } g = glyph_intern(val); + } else if (strcmp(key, "L") == 0) { + glyph succ, lig; + if (!(val = strtok(NULL, " \t")) || + !strcmp(val, ";")) { + error(err_afmval, &in->pos, key, 1); + goto giveup; + } + succ = glyph_intern(val); + if (!(val = strtok(NULL, " \t")) || + !strcmp(val, ";")) { + error(err_afmval, &in->pos, key, 1); + goto giveup; + } + lig = glyph_intern(val); + if (g != NOGLYPH && succ != NOGLYPH && + lig != NOGLYPH) { + ligature *l = snew(ligature); + l->left = g; + l->right = succ; + l->lig = lig; + add234(fi->ligs, l); + } } do { key = strtok(NULL, " \t"); @@ -194,7 +216,7 @@ void read_afm_file(input *in) { w->glyph = g; w->width = width; add234(fi->widths, w); - ucs = ps_glyph_to_unicode(glyph_extern(g)); + ucs = ps_glyph_to_unicode(g); if (ucs < 0xFFFF) fi->bmp[ucs] = g; }