/* Deal with the X Resource Manager.
Copyright (C) 1990, 1993, 1994, 2000, 2001, 2002, 2003, 2004,
- 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+
+Author: Joseph Arceneaux
+Created: 4/90
This file is part of GNU Emacs.
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
-/* Written by jla, 4/90 */
-
#ifdef emacs
#include <config.h>
#endif
#include <unistd.h>
#endif
+#include <errno.h>
#include <epaths.h>
#include <stdio.h>
-
-#if 1 /* I'd really appreciate it if this code could go away... -JimB */
-/* This avoids lossage in the `dual-universe' headers on AT&T SysV
- X11. Don't do it on Solaris, because it breaks compilation with
- XFree86 4.0.3 (and probably many other X11R6 releases) on Solaris
- 2 */
-#if defined(USG5) && !defined(SOLARIS2)
-#ifndef SYSV
-#define SYSV
-#endif
-#endif /* USG5 && !SOLARIS2 */
-
-#endif /* 1 */
+#include <setjmp.h>
#include <X11/Xlib.h>
#include <X11/Xatom.h>
-#if 0
-#include <X11/Xos.h>
-#endif
#include <X11/X.h>
#include <X11/Xutil.h>
#include <X11/Xresource.h>
#include "lisp.h"
-extern char *getenv ();
+extern char *getenv (const char *);
/* This does cause trouble on AIX. I'm going to take the comment at
face value. */
extern struct passwd *getpwuid (uid_t);
extern struct passwd *getpwnam (const char *);
#else
-extern struct passwd *getpwuid ();
-extern struct passwd *getpwnam ();
+extern struct passwd *getpwuid (uid_t);
+extern struct passwd *getpwnam (const char *);
#endif
-extern char *get_system_name ();
+extern char *get_system_name (void);
/* Make sure not to #include anything after these definitions. Let's
not step on anyone's prototypes. */
#define free xfree
#endif
-char *x_get_string_resource ();
-static int file_p ();
+char *x_get_string_resource (XrmDatabase rdb, char *name, char *class);
+static int file_p (char *filename);
\f
/* X file search path processing. */
resource, for later use in search path decoding. If we find no
such resource, return zero. */
char *
-x_get_customization_string (db, name, class)
- XrmDatabase db;
- char *name, *class;
+x_get_customization_string (XrmDatabase db, char *name, char *class)
{
char *full_name
= (char *) alloca (strlen (name) + sizeof ("customization") + 3);
Return NULL otherwise. */
static char *
-magic_file_p (string, string_len, class, escaped_suffix, suffix)
- char *string;
- int string_len;
- char *class, *escaped_suffix, *suffix;
+magic_file_p (char *string, int string_len, char *class, char *escaped_suffix, char *suffix)
{
char *lang = getenv ("LANG");
path = (char *) realloc (path, path_size);
}
- bcopy (next, path + path_len, next_len);
+ memcpy (path + path_len, next, next_len);
path_len += next_len;
p++;
path = (char *) realloc (path, path_size);
}
- bcopy (suffix, path + path_len, suffix_len);
+ memcpy (path + path_len, suffix, suffix_len);
path_len += suffix_len;
}
static char *
-gethomedir ()
+gethomedir (void)
{
struct passwd *pw;
char *ptr;
static int
-file_p (filename)
- char *filename;
+file_p (char *filename)
{
struct stat status;
the path name of the one we found otherwise. */
static char *
-search_magic_path (search_path, class, escaped_suffix, suffix)
- char *search_path, *class, *escaped_suffix, *suffix;
+search_magic_path (char *search_path, char *class, char *escaped_suffix, char *suffix)
{
register char *s, *p;
/* Producing databases for individual sources. */
static XrmDatabase
-get_system_app (class)
- char *class;
+get_system_app (char *class)
{
XrmDatabase db = NULL;
char *path;
static XrmDatabase
-get_fallback (display)
- Display *display;
+get_fallback (Display *display)
{
return NULL;
}
static XrmDatabase
-get_user_app (class)
- char *class;
+get_user_app (char *class)
{
char *path;
char *file = 0;
static XrmDatabase
-get_user_db (display)
- Display *display;
+get_user_db (Display *display)
{
XrmDatabase db;
char *xdefs;
}
static XrmDatabase
-get_environ_db ()
+get_environ_db (void)
{
XrmDatabase db;
char *p;
/* Load X resources based on the display and a possible -xrm option. */
XrmDatabase
-x_load_resources (display, xrm_string, myname, myclass)
- Display *display;
- char *xrm_string, *myname, *myclass;
+x_load_resources (Display *display, char *xrm_string, char *myname, char *myclass)
{
XrmDatabase user_database;
XrmDatabase rdb;
and of type TYPE from database RDB. The value is returned in RET_VALUE. */
int
-x_get_resource (rdb, name, class, expected_type, ret_value)
- XrmDatabase rdb;
- char *name, *class;
- XrmRepresentation expected_type;
- XrmValue *ret_value;
+x_get_resource (XrmDatabase rdb, char *name, char *class, XrmRepresentation expected_type, XrmValue *ret_value)
{
XrmValue value;
XrmName namelist[100];
if (type == x_rm_string)
ret_value->addr = (char *) value.addr;
else
- bcopy (value.addr, ret_value->addr, ret_value->size);
+ memcpy (ret_value->addr, value.addr, ret_value->size);
return value.size;
}
database RDB. */
char *
-x_get_string_resource (rdb, name, class)
- XrmDatabase rdb;
- char *name, *class;
+x_get_string_resource (XrmDatabase rdb, char *name, char *class)
{
XrmValue value;
+ if (inhibit_x_resources)
+ /* --quick was passed, so this is a no-op. */
+ return NULL;
+
if (x_get_resource (rdb, name, class, x_rm_string, &value))
return (char *) value.addr;
char *msg, *prog;
int x1, x2, x3, x4, x5;
{
- extern int errno;
-
if (errno)
perror (prog);