Mercurial > emacs
diff lwlib/xrdb.c @ 25842:648d04be6a9c
#
author | Dave Love <fx@gnu.org> |
---|---|
date | Thu, 30 Sep 1999 21:29:02 +0000 |
parents | |
children | e0d966fb548f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lwlib/xrdb.c Thu Sep 30 21:29:02 1999 +0000 @@ -0,0 +1,70 @@ +/* This file overrides the R4 or R5 mit/lib/Xt/Initialize.c, except that + the functions lwlib_GetFileDatabase(), lwlib_CombineFileDatabase(), and + lwlib_xrdb_initialize() are called. By doing this silly cpp hack, we + avoid version skew problems. + */ + +#include <X11/Xlib.h> +#include <X11/cursorfont.h> +#include <X11/Xutil.h> + +#ifdef XlibSpecificationRelease +#if XlibSpecificationRelease >= 5 +#define HAVE_X11R5 +#endif +#endif + +extern struct _XrmHashBucketRec *lwlib_GetFileDatabase (); +extern void lwlib_xrdb_initialize (); + +/* Replace all calls to XrmGetFileDatabase() with lwlib_GetFileDatabase(), + calls to XrmCombineFileDatabase() with lwlib_CombineFileDatabase(), and + rename the defined _XtDisplayInitialize() function. + */ +#define XrmGetFileDatabase lwlib_GetFileDatabase +#define XrmCombineFileDatabase lwlib_CombineFileDatabase +#define _XtDisplayInitialize _orig_XtDisplayInitialize + +/* Suck in the original code. Don't change this: see comments in Imakefile. */ +#include "Initialize.c" + +#undef XrmGetFileDatabase +#undef XrmCombineFileDatabase +#undef _XtDisplayInitialize + +/* Now provide a definition of _XtDisplayInitialize() which invokes the + original code after calling our initialization hook. Note that the R4 + and R5 versions of _XtDisplayInitialize() take different arguments. + */ + +#ifndef HAVE_X11R5 + +void _XtDisplayInitialize(dpy, pd, name, class, urlist, num_urs, argc, argv) + Display *dpy; + XtPerDisplay pd; + String name, class; + XrmOptionDescRec *urlist; + Cardinal num_urs; + Cardinal *argc; + char *argv[]; +{ + lwlib_xrdb_initialize(dpy); + _orig_XtDisplayInitialize(dpy, pd, name, class, urlist, num_urs, argc, argv); +} + +#else /* HAVE_X11R5 */ + +void _XtDisplayInitialize(dpy, pd, name, urlist, num_urs, argc, argv) + Display *dpy; + XtPerDisplay pd; + String name; + XrmOptionDescRec *urlist; + Cardinal num_urs; + int *argc; + char **argv; +{ + lwlib_xrdb_initialize(dpy); + _orig_XtDisplayInitialize(dpy, pd, name, urlist, num_urs, argc, argv); +} + +#endif /* HAVE_X11R5 */