+ fi->capheight = atof(val);
+ } else if (strcmp(key, "XHeight") == 0) {
+ if (!(val = strtok(NULL, " \t"))) {
+ err_afmval(&in->pos, key, 1);
+ goto giveup;
+ }
+ fi->xheight = atof(val);
+ } else if (strcmp(key, "Ascender") == 0) {
+ if (!(val = strtok(NULL, " \t"))) {
+ err_afmval(&in->pos, key, 1);
+ goto giveup;
+ }
+ fi->ascent = atof(val);
+ } else if (strcmp(key, "Descender") == 0) {
+ if (!(val = strtok(NULL, " \t"))) {
+ err_afmval(&in->pos, key, 1);
+ goto giveup;
+ }
+ fi->descent = atof(val);
+ } else if (strcmp(key, "CapHeight") == 0) {
+ if (!(val = strtok(NULL, " \t"))) {
+ err_afmval(&in->pos, key, 1);
+ goto giveup;
+ }
+ fi->capheight = atof(val);
+ } else if (strcmp(key, "StdHW") == 0) {
+ if (!(val = strtok(NULL, " \t"))) {
+ err_afmval(&in->pos, key, 1);
+ goto giveup;
+ }
+ fi->stemh = atof(val);
+ } else if (strcmp(key, "StdVW") == 0) {
+ if (!(val = strtok(NULL, " \t"))) {
+ err_afmval(&in->pos, key, 1);
+ goto giveup;
+ }
+ fi->stemv = atof(val);
+ } else if (strcmp(key, "ItalicAngle") == 0) {
+ if (!(val = strtok(NULL, " \t"))) {
+ err_afmval(&in->pos, key, 1);
+ goto giveup;
+ }
+ fi->italicangle = atof(val);
+ } else if (strcmp(key, "StartCharMetrics") == 0) {
+ int nglyphs, i;
+ if (!(val = strtok(NULL, " \t"))) {
+ err_afmval(&in->pos, key, 1);
+ goto giveup;
+ }
+ nglyphs = atoi(val);