X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2FEmacsFrameP.h;h=5d0100bf066c3fa5f810ec347ad9f89b5d7383c6;hb=a858680c386500889ac6f2d6d47f392c8a743c01;hp=df7f0addb4465d1dbc7946dbbfd12f7ef38e5ed1;hpb=6883ee56ec887c2c48abe5b06b5e66aa74031910;p=chise%2Fxemacs-chise.git.1 diff --git a/src/EmacsFrameP.h b/src/EmacsFrameP.h index df7f0ad..5d0100b 100644 --- a/src/EmacsFrameP.h +++ b/src/EmacsFrameP.h @@ -21,8 +21,8 @@ Boston, MA 02111-1307, USA. */ /* Synched up with: Not in FSF. */ -#ifndef _EmacsFrameP_h -#define _EmacsFrameP_h +#ifndef INCLUDED_EmacsFrameP_h_ +#define INCLUDED_EmacsFrameP_h_ #include "xintrinsicp.h" #include @@ -32,6 +32,31 @@ Boston, MA 02111-1307, USA. */ #include "EmacsFrame.h" typedef struct { + +#ifdef LWLIB_USES_MOTIF +#if XmVERSION < 2 + /* It's easy to erroneously compile with Motif 1 headers, but link + with Motif 2 libraries. + + For example, AIX stupidly provides Motif headers in + /usr/dt/include, but fails to provide the corresponding libraries + in /usr/dt/lib. + + We actually try to survive such a version mismatch, since Motif 2 + is _almost_ binary compatible with Motif 1. Motif 2's + XmPrimitivePart has some trailing data members which overlay the + start of this struct. We create dummy members to make space for + XmPrimitivePart's added members. These must, of course, be at + the beginning of this struct. + + Delete this kludge when no one has Motif1 on their system anymore, + perhaps in 2010. */ + XtCallbackList Motif2_dummy_convert_callback; + XtCallbackList Motif2_dummy_popup_handler_callback; + long Motif2_dummy_layout_direction; +#endif +#endif + struct frame* frame; /* the *emacs* frame object */ /* Resources that can't be done from lisp. @@ -109,6 +134,4 @@ typedef struct _EmacsFrameClassRec { /* full class record declaration */ extern EmacsFrameClassRec emacsFrameClassRec; /* class pointer */ - - -#endif /* _EmacsFrameP_h */ +#endif /* INCLUDED_EmacsFrameP_h_ */