Hello, my first little suggestion, just for code readability:
1 - Change the esperanto word "tio", in the definition of unions from
"dwg.h" by the word "as". This word also appears in many c-files in field
selection from pointers (->tio), so mass substitution would be easily
accomplished using the 'sed' utility.
These unions in "dwg.h", would be terminated like this:
union ...
{
...
} as;
Instead of;
union ...
{
...
} tio;
And, for example, the following code:
Dwg_Object_##token * _obj = obj->tio.object->tio.token; \
Would be, after substitution:
Dwg_Object_##token * _obj = obj->as.object->as.token; \
Like I said, it's just a suggestion, if you are afraid to break something
(I don't think so), feel free not to do this.