I spoke too soon, sorry to cast blame. But I still have a problem.
The source of genSubRecordSizeOffset has
pdbRecordType->papFldDes[42]->size=sizeof(prec->flnk);
pdbRecordType->papFldDes[42]->offset=(short)((char *)&prec->flnk - (char
*)prec);
pdbRecordType->papFldDes[43]->size=sizeof(prec->vers);
pdbRecordType->papFldDes[43]->offset=(short)((char *)&prec->vers - (char
*)prec);
pdbRecordType->papFldDes[44]->size=sizeof(prec->val);
pdbRecordType->papFldDes[44]->offset=(short)((char *)&prec->val - (char
*)prec);
pdbRecordType->papFldDes[45]->size=sizeof(prec->oval);
pdbRecordType->papFldDes[45]->offset=(short)((char *)&prec->oval - (char
*)prec);
Note entry 43. If I print out the items being looped over in
dbLexReoutines.c:dbRecordtypeBody I get
we are here 40
pdbFldDes name = UDF // this is item 40
we are here 41
pdbFldDes name = TIME
we are here 42
pdbFldDes name = FLNK
we are here 43
pdbFldDes name = VAL
we are here 44
pdbFldDes name = OVAL
Note that item 42 is FLNK but 43 is VAL, not VERS. What happened to vers?