Well, if you insit on using a single _ prefix you can get burned. It is knwon
and systenm lbraries make hevay use of names starying with _ to avoid names in
your programs. If you had used ObjectRec instead of _ObjectRec you would have
avodied trouble. However there is more... X11/XInstric.h, a fundamnetak Xt
header file, includes X11/Object.h which says
typedef struct _ObjectRec *Object;
typedef struct _ObjectClassRec *ObjectClass;
#ifndef OBJECT
externalref WidgetClass objectClass;
#endif
so X11 has grabbed Object too... While name spaces are the ideal fix you are
unlikely to fix X11 ever (doing so would break too much software). You can
however unfix LyX to avoid names that clash, even without namespaces. If you
ever produce embeddable LyX a common prefix like LyX is probably the right
thing anyway. My mptcp library, which is not puiblically avialable yet, uses
internal structure names like __mp__var, __mp__component, __tcp__bcast_info,
etc.
As for people not using xforms 0.88 then start dreaming now. The obvously
avialable xform's RPMs for RH 6.2 are xforms 0.88. Even if that was not true
as soon as anyone does a motif port the duplicate name gets them again,
because they almost certaintly need functions that require you to include
X11/Instrinsic.h or X11/Xmu/Xmu.h (which includes X11/Instrinsic.h for you).
--
Duncan (-:
"software industry, the: unique industry where selling substandard goods is
legal and you can charge extra for fixing the problems."