LIST of bugs in current version of my web2c. (Nov. 1990) POINTERS Crashes on self-referencing structures, e.g. type horse = ^cow ; cow=record log : horse; (etc) In C this must all be rewritten approx. as follows: struct xyz { xyz *log ; (etc) followed by typedef struct xyz cow ; typedef cow *horse ; WITH statements. Fails because if you have an array of records, W2C knows the component type of the array is a record, but not what type of record it is. Variant records. A simple translation fails because you have to name all the intermediate places on the way down from top level. For example: codeobject = packed record breadth: iword ; case boolean of true: (IMfont: byte ; IMchar: byte ); {Printers font and character} false: (multi: iword) ; end; must be translated approx: typedef struct { iword breadth ; union{ struct{ byte IMfont ; byte IMchar ; } XXA ; iword multi ; } XXB ; } codeobject ; Then if C is a codeobject, C.IMfont must be translated as C.XXB.XXA.IMfont