X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=src%2Fdumper.c;h=b66681261f2401ece621cd6c5e76768becadcf7c;hp=3c5b04dd24c47902f3c37b9df2fa842eecd604d5;hb=499b5ad5e2308fd04e3654aaa462d099f1769fd1;hpb=ac7d0619aad74b1d57c4748ebb3ab29d9c32e3d8 diff --git a/src/dumper.c b/src/dumper.c index 3c5b04d..b666812 100644 --- a/src/dumper.c +++ b/src/dumper.c @@ -29,6 +29,7 @@ Boston, MA 02111-1307, USA. */ #include "sysfile.h" #include "console-stream.h" #include "dumper.h" +#include "sysdep.h" #ifdef WIN32_NATIVE #include "nt.h" @@ -990,7 +991,7 @@ pdump (void) t_frame = Vterminal_frame; Vterminal_frame = Qnil; t_device = Vterminal_device; Vterminal_device = Qnil; - dump_add_opaque (&lrecord_implementations_table, + dump_add_opaque ((void *) &lrecord_implementations_table, lrecord_type_count * sizeof (lrecord_implementations_table[0])); dump_add_opaque (&lrecord_markers, lrecord_type_count * sizeof (lrecord_markers[0])); @@ -1364,9 +1365,11 @@ pdump_file_try (char *exe_path) int pdump_load (const char *argv0) { - char exe_path[PATH_MAX]; + char exe_path[PATH_MAX], real_exe_path[PATH_MAX]; #ifdef WIN32_NATIVE GetModuleFileName (NULL, exe_path, PATH_MAX); + /* #### urk, needed for xrealpath() below */ + Vdirectory_sep_char = make_char ('\\'); #else /* !WIN32_NATIVE */ char *w; const char *dir, *p; @@ -1430,7 +1433,11 @@ pdump_load (const char *argv0) } #endif /* WIN32_NATIVE */ - if (pdump_file_try (exe_path)) + /* Save exe_path because pdump_file_try() modifies it */ + strcpy(real_exe_path, exe_path); + if (pdump_file_try (exe_path) + || (xrealpath(real_exe_path, real_exe_path) + && pdump_file_try (real_exe_path))) { pdump_load_finish (); return 1;