]> code.delx.au - gnu-emacs/blob - lwlib/xrdb.c
New file.
[gnu-emacs] / lwlib / xrdb.c
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
7 #ifdef HAVE_CONFIG_H
8 #include <config.h>
9 #endif
10
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 */