localized default databases, along with some other functionality
provided by Xt.
#include <stdio.h>, since we call sprintf.
[emacs] (malloc, realloc, free): #define these to xmalloc,
xrealloc, and xfree.
(x_get_string_resource, file_p): Add forward declarations for these.
(x_customization_string): New variable.
(x_get_customization_string): New function.
(gethomedir): Return malloc'ed space of the right size, instead of
writing into a fixed-size buffer; this means that our callers do
not impose an arbitrary limit on file name length.
(magic_file_p): Rewrite of decode_magic; actually do the
substitutions, instead of expanding all %-escapes to "". Support
the customization string. Return 0 or the expanded file name,
instead of just zero or one. Allocate the space for the expanded
file name ourselves, instead of writing into a fixed-size buffer
passed to us; this removes an arbitrary limit.
(search_magic_path): Rewrite of magic_searchpath_decoder. Return
0 or the expanded file name, instead of just zero or one.
Allocate the space for the expanded file name ourselves, instead
of writing into a fixed-size buffer passed to us; this means that
our callers do not impose an arbitrary limit on file name length.
(get_system_app): Changed to work with search_magic_path.
(get_user_app): Rewritten to work with search_magic_path, and not
to assume that the values of XAPPLRESDIR is a single directory.
(get_user_db): Properly use the new version of gethomedir.
(get_environ_db): Remove arbitrary limit on length of host name.
(x_load_resources): Take a new argument, myname.
Call get_user_db early to obtain the customization string.
Changes to stand-alone testing code.
insists on defining SIGCHLD, even if it already has a definition.
(file_p): Use the constant 4 instead of R_OK; empirically, the
number is more portable than the symbol if you count the #include
hair you have to go through to get R_OK defined. Ffile_readable_p
does this too.
* xrdb.c (getuid): Declare this to return short.
wish I knew why.
Don't include <sys/types.h>; just declare getuid to return an
int. Big deal.
(MAXPATHLEN): If this is not defined by the system's include
files, give it a value of 256.
(get_user_db): Fetch the defaults directly from the display
structure, rather than using XResourceManagerString; that
function doesn't exist in the older versions of X.