diff src/device-x.c @ 227:0e522484dd2a r20-5b12

Import from CVS: tag r20-5b12
author cvs
date Mon, 13 Aug 2007 10:12:37 +0200
parents 262b8bb4a523
children 157b30c96d03
line wrap: on
line diff
--- a/src/device-x.c	Mon Aug 13 10:11:42 2007 +0200
+++ b/src/device-x.c	Mon Aug 13 10:12:37 2007 +0200
@@ -54,6 +54,9 @@
 #endif
 
 Lisp_Object Vdefault_x_device;
+#if defined(MULE) && (defined(LWLIB_MENUBARS_MOTIF) || defined(HAVE_XIM) || defined (USE_XFONTSET))
+Lisp_Object Vx_app_defaults_directory;
+#endif
 
 /* Qdisplay in general.c */
 Lisp_Object Qx_error;
@@ -284,14 +287,22 @@
     XrmDatabase db = XtDatabase (dpy); /* ### XtScreenDatabase(dpy) ? */
     CONST char *locale = XrmLocaleOfDatabase (db);
 
-    if (STRINGP (Vdata_directory) && XSTRING_LENGTH (Vdata_directory) > 0)
+    if (STRINGP (Vx_app_defaults_directory) &&
+	XSTRING_LENGTH (Vx_app_defaults_directory) > 0)
+      {
+	GET_C_STRING_FILENAME_DATA_ALLOCA(Vx_app_defaults_directory, data_dir);
+	sprintf (path, "%s%s/%s", data_dir, locale, app_class);
+	if (!access (path, R_OK))
+	  XrmCombineFileDatabase (path, &db, False);
+      }
+    else if (STRINGP (Vdata_directory) && XSTRING_LENGTH (Vdata_directory) > 0)
       {
 	GET_C_STRING_FILENAME_DATA_ALLOCA (Vdata_directory, data_dir);
 	sprintf (path, "%sapp-defaults/%s/%s", data_dir, locale, app_class);
 	if (!access (path, R_OK))
 	  XrmCombineFileDatabase (path, &db, False);
       }
-  }
+ }
 #endif /* LWLIB_MENUBARS_MOTIF or HAVE_XIM USE_XFONTSET */
 #endif /* MULE */
 
@@ -1618,6 +1629,14 @@
 */ );
   x_seppuku_on_epipe = 0;
 
+#if defined(MULE) && (defined(LWLIB_MENUBARS_MOTIF) || defined(HAVE_XIM) || defined (USE_XFONTSET))
+  DEFVAR_LISP ("x-app-defaults-directory", &Vx_app_defaults_directory /*
+Used by the Lisp code to communicate to the low level X initialization
+where the localized init files are.
+*/ );
+  Vx_app_defaults_directory = Qnil;
+#endif
+
   Fprovide (Qx);
 
   staticpro (&Vdefault_x_device);