projects
/
chise
/
xemacs-chise.git.1
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
XEmacs 21.4.11 "Native Windows TTY Support".
[chise/xemacs-chise.git.1]
/
src
/
dumper.c
diff --git
a/src/dumper.c
b/src/dumper.c
index
640309d
..
b666812
100644
(file)
--- 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 "sysfile.h"
#include "console-stream.h"
#include "dumper.h"
+#include "sysdep.h"
#ifdef WIN32_NATIVE
#include "nt.h"
#ifdef WIN32_NATIVE
#include "nt.h"
@@
-414,7
+415,7
@@
pdump_get_indirect_count (EMACS_INT code,
const struct lrecord_description *idesc,
const void *idata)
{
const struct lrecord_description *idesc,
const void *idata)
{
- EMACS_INT count;
+ EMACS_INT count = 0; /* initialize to shut up GCC */
const void *irdata;
int line = XD_INDIRECT_VAL (code);
const void *irdata;
int line = XD_INDIRECT_VAL (code);
@@
-818,7
+819,7
@@
pdump_scan_by_alignment (void (*f)(pdump_entry_list_elt *,
for (align = ALIGNOF (max_align_t); align; align>>=1)
{
for (align = ALIGNOF (max_align_t); align; align>>=1)
{
- int i;
+ size_t i;
pdump_entry_list_elt *elt;
for (i=0; i<lrecord_type_count; i++)
pdump_entry_list_elt *elt;
for (i=0; i<lrecord_type_count; i++)
@@
-843,7
+844,7
@@
pdump_scan_by_alignment (void (*f)(pdump_entry_list_elt *,
static void
pdump_dump_root_struct_ptrs (void)
{
static void
pdump_dump_root_struct_ptrs (void)
{
- int i;
+ size_t i;
size_t count = Dynarr_length (pdump_root_struct_ptrs);
pdump_static_pointer *data = alloca_array (pdump_static_pointer, count);
for (i = 0; i < count; i++)
size_t count = Dynarr_length (pdump_root_struct_ptrs);
pdump_static_pointer *data = alloca_array (pdump_static_pointer, count);
for (i = 0; i < count; i++)
@@
-870,7
+871,7
@@
pdump_dump_opaques (void)
static void
pdump_dump_rtables (void)
{
static void
pdump_dump_rtables (void)
{
- int i;
+ size_t i;
pdump_entry_list_elt *elt;
pdump_reloc_table rt;
pdump_entry_list_elt *elt;
pdump_reloc_table rt;
@@
-922,7
+923,7
@@
pdump_dump_root_objects (void)
{
size_t count = (Dynarr_length (pdump_root_objects) +
Dynarr_length (pdump_weak_object_chains));
{
size_t count = (Dynarr_length (pdump_root_objects) +
Dynarr_length (pdump_weak_object_chains));
- size_t i;
+ EMACS_INT i;
PDUMP_WRITE_ALIGNED (size_t, count);
PDUMP_ALIGN_OUTPUT (pdump_static_Lisp_Object);
PDUMP_WRITE_ALIGNED (size_t, count);
PDUMP_ALIGN_OUTPUT (pdump_static_Lisp_Object);
@@
-969,7
+970,7
@@
pdump_dump_root_objects (void)
void
pdump (void)
{
void
pdump (void)
{
- int i;
+ size_t i;
Lisp_Object t_console, t_device, t_frame;
int none;
pdump_header header;
Lisp_Object t_console, t_device, t_frame;
int none;
pdump_header header;
@@
-990,7
+991,7
@@
pdump (void)
t_frame = Vterminal_frame; Vterminal_frame = Qnil;
t_device = Vterminal_device; Vterminal_device = Qnil;
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]));
lrecord_type_count * sizeof (lrecord_implementations_table[0]));
dump_add_opaque (&lrecord_markers,
lrecord_type_count * sizeof (lrecord_markers[0]));
@@
-1027,7
+1028,7
@@
pdump (void)
if (!none)
return;
if (!none)
return;
- for (i=0; i<Dynarr_length (pdump_root_struct_ptrs); i++)
+ for (i=0; i<(size_t)Dynarr_length (pdump_root_struct_ptrs); i++)
{
pdump_root_struct_ptr info = Dynarr_at (pdump_root_struct_ptrs, i);
pdump_register_struct (*(info.ptraddress), info.desc, 1);
{
pdump_root_struct_ptr info = Dynarr_at (pdump_root_struct_ptrs, i);
pdump_register_struct (*(info.ptraddress), info.desc, 1);
@@
-1364,9
+1365,11
@@
pdump_file_try (char *exe_path)
int
pdump_load (const char *argv0)
{
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);
#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;
#else /* !WIN32_NATIVE */
char *w;
const char *dir, *p;
@@
-1430,7
+1433,11
@@
pdump_load (const char *argv0)
}
#endif /* WIN32_NATIVE */
}
#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;
{
pdump_load_finish ();
return 1;