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."


Reply via email to