- struct pfm_fhuser_ext *ext = h->ext;
-
- /* Version. */
- if (!match (74 /* A */))
- lose ((h, "Unrecognized version code %d.", ext->cc));
-
- /* Date. */
- {
- static const int map[] = {6, 7, 8, 9, 3, 4, 0, 1};
- char *date = read_string (h);
- int i;
-
- if (!date)
- return 0;
- if (strlen (date) != 8)
- lose ((h, _("Bad date string length %d."), strlen (date)));
- for (i = 0; i < 8; i++)
- {
- if (date[i] < 64 /* 0 */ || date[i] > 73 /* 9 */)
- lose ((h, _("Bad character in date.")));
- if (inf)
- inf->creation_date[map[i]] = date[i] - 64 /* 0 */ + '0';
- }
- if (inf)
- {
- inf->creation_date[2] = inf->creation_date[5] = ' ';
- inf->creation_date[10] = 0;
- }
- }
-
- /* Time. */
- {
- static const int map[] = {0, 1, 3, 4, 6, 7};
- char *time = read_string (h);
- int i;
-
- if (!time)
- return 0;
- if (strlen (time) != 6)
- lose ((h, _("Bad time string length %d."), strlen (time)));
- for (i = 0; i < 6; i++)
- {
- if (time[i] < 64 /* 0 */ || time[i] > 73 /* 9 */)
- lose ((h, _("Bad character in time.")));
- if (inf)
- inf->creation_time[map[i]] = time[i] - 64 /* 0 */ + '0';
- }
- if (inf)
- {
- inf->creation_time[2] = inf->creation_time[5] = ' ';
- inf->creation_time[8] = 0;
- }
- }
-
- /* Product. */
- if (match (65 /* 1 */))
- {
- char *product;
-
- product = read_string (h);
- if (product == NULL)
- return 0;
- if (inf)
- strncpy (inf->product, product, 61);
- }
- else if (inf)
- inf->product[0] = 0;