Under Win2k, I compiled a just-checked-out Xemacs 21.2 under mingw32
(./configure i586-pc-mingw32). After making a few adjustments to
make_arg_list_1 in emacs.c to define Qdll_filename_encoding to be Qnative,
and then commenting out the extra definition of getloadavg in nt.c, Xemacs
actually compiles.
Unfortunately, temacs won't load files with unix-style filenames, so the
build process fails. Temacs wants windows-style filenames only. I'm running
this all from bash under cygwin 1.1.2. This feels like a bug, somewhere in
the code that parses the command line arguments, to me.
I added the Qdll_filename_encoding declaration (which wasn't in the code and
caused it to fail to compile).
Lisp_Object Qdll_filename_encoding;
static Lisp_Object
make_arg_list_1 (int argc, Extbyte **argv, int skip_args)
{
Lisp_Object result = Qnil;
REGISTER int i;
Qdll_filename_encoding = Qnative;
for (i = argc - 1; i >= 0; i--)
{
if (i == 0 || i > skip_args)
{
#ifdef WIN32_NATIVE
if (i == 0)
{
/* Do not trust to what crt0 has stuffed into argv[0] */
char full_exe_path[MAX_PATH];
Lisp_Object fullpath;
GetModuleFileName (NULL, full_exe_path, MAX_PATH);
fullpath = build_ext_string (full_exe_path, Qmswindows_tstr);
result = Fcons (fullpath, result);
#if defined(HAVE_SHLIB)
{
Extbyte *fullpathext;
LISP_STRING_TO_EXTERNAL (fullpath, fullpathext,
Qdll_filename_encoding);
(void) dll_init (fullpathext);
}
#endif
}
else
#endif
result = Fcons (build_ext_string (argv[i],
Qcommand_argument_encoding),
result);
}
}
return result;
}
I think that last build_ext_string perhaps might be converting the pathnames
if it see's em, but it's not working...
andrew