Commit | Line | Data |
---|---|---|
a08cb76c DL |
1 | /* This file overrides the R4 or R5 mit/lib/Xt/Initialize.c, except that |
2 | the functions lwlib_GetFileDatabase(), lwlib_CombineFileDatabase(), and | |
3 | lwlib_xrdb_initialize() are called. By doing this silly cpp hack, we | |
4 | avoid version skew problems. | |
5 | */ | |
6 | ||
0f0912e6 PE |
7 | #ifdef HAVE_CONFIG_H |
8 | #include <config.h> | |
9 | #endif | |
10 | ||
a08cb76c DL |
11 | #include <X11/Xlib.h> |
12 | #include <X11/cursorfont.h> | |
13 | #include <X11/Xutil.h> | |
14 | ||
15 | #ifdef XlibSpecificationRelease | |
16 | #if XlibSpecificationRelease >= 5 | |
17 | #define HAVE_X11R5 | |
18 | #endif | |
19 | #endif | |
20 | ||
21 | extern struct _XrmHashBucketRec *lwlib_GetFileDatabase (); | |
22 | extern void lwlib_xrdb_initialize (); | |
23 | ||
24 | /* Replace all calls to XrmGetFileDatabase() with lwlib_GetFileDatabase(), | |
25 | calls to XrmCombineFileDatabase() with lwlib_CombineFileDatabase(), and | |
26 | rename the defined _XtDisplayInitialize() function. | |
27 | */ | |
28 | #define XrmGetFileDatabase lwlib_GetFileDatabase | |
29 | #define XrmCombineFileDatabase lwlib_CombineFileDatabase | |
30 | #define _XtDisplayInitialize _orig_XtDisplayInitialize | |
31 | ||
32 | /* Suck in the original code. Don't change this: see comments in Imakefile. */ | |
33 | #include "Initialize.c" | |
34 | ||
35 | #undef XrmGetFileDatabase | |
36 | #undef XrmCombineFileDatabase | |
37 | #undef _XtDisplayInitialize | |
38 | ||
39 | /* Now provide a definition of _XtDisplayInitialize() which invokes the | |
40 | original code after calling our initialization hook. Note that the R4 | |
41 | and R5 versions of _XtDisplayInitialize() take different arguments. | |
42 | */ | |
43 | ||
44 | #ifndef HAVE_X11R5 | |
45 | ||
46 | void _XtDisplayInitialize(dpy, pd, name, class, urlist, num_urs, argc, argv) | |
47 | Display *dpy; | |
48 | XtPerDisplay pd; | |
49 | String name, class; | |
50 | XrmOptionDescRec *urlist; | |
51 | Cardinal num_urs; | |
52 | Cardinal *argc; | |
53 | char *argv[]; | |
54 | { | |
55 | lwlib_xrdb_initialize(dpy); | |
56 | _orig_XtDisplayInitialize(dpy, pd, name, class, urlist, num_urs, argc, argv); | |
57 | } | |
58 | ||
59 | #else /* HAVE_X11R5 */ | |
60 | ||
61 | void _XtDisplayInitialize(dpy, pd, name, urlist, num_urs, argc, argv) | |
62 | Display *dpy; | |
63 | XtPerDisplay pd; | |
64 | String name; | |
65 | XrmOptionDescRec *urlist; | |
66 | Cardinal num_urs; | |
67 | int *argc; | |
68 | char **argv; | |
69 | { | |
70 | lwlib_xrdb_initialize(dpy); | |
71 | _orig_XtDisplayInitialize(dpy, pd, name, urlist, num_urs, argc, argv); | |
72 | } | |
73 | ||
74 | #endif /* HAVE_X11R5 */ |