Fix setup of coding-systems on MS-Windows
* src/emacs.c (main) [HAVE_PDUMPER] [WINDOWSNT]: Call 'w32_init_file_name_codepage' again after loading the pdumper file. * src/w32.c (w32_init_file_name_codepage) [HAVE_PDUMPER]: Reinitialize additional variables. (Bug#75207)
This commit is contained in:
parent
441788e06d
commit
cc5cd4de93
2 changed files with 25 additions and 1 deletions
13
src/emacs.c
13
src/emacs.c
|
@ -1419,7 +1419,18 @@ android_emacs_init (int argc, char **argv, char *dump_file)
|
|||
|
||||
#ifdef HAVE_PDUMPER
|
||||
if (attempt_load_pdump)
|
||||
initial_emacs_executable = load_pdump (argc, argv, dump_file);
|
||||
{
|
||||
initial_emacs_executable = load_pdump (argc, argv, dump_file);
|
||||
#ifdef WINDOWSNT
|
||||
/* Reinitialize the codepage for file names, needed to decode
|
||||
non-ASCII file names during startup. This is needed because
|
||||
loading the pdumper file above assigns to those variables values
|
||||
from the dump stage, which might be incorrect, if dumping was done
|
||||
on a different system. */
|
||||
if (dumped_with_pdumper_p ())
|
||||
w32_init_file_name_codepage ();
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
ptrdiff_t bufsize;
|
||||
initial_emacs_executable = find_emacs_executable (argv[0], &bufsize);
|
||||
|
|
13
src/w32.c
13
src/w32.c
|
@ -1685,6 +1685,19 @@ w32_init_file_name_codepage (void)
|
|||
{
|
||||
file_name_codepage = CP_ACP;
|
||||
w32_ansi_code_page = CP_ACP;
|
||||
#ifdef HAVE_PDUMPER
|
||||
/* If we were dumped with pdumper, this function will be called after
|
||||
loading the pdumper file, and needs to reset the following
|
||||
variables that come from the dump stage, which could be on a
|
||||
different system with different default codepages. Then, the
|
||||
correct value of w32-ansi-code-page will be assigned by
|
||||
globals_of_w32fns, which is called from 'main'. Until that call
|
||||
happens, w32-ansi-code-page will have the value of CP_ACP, which
|
||||
stands for the default ANSI codepage. The other variables will be
|
||||
computed by codepage_for_filenames below. */
|
||||
Vdefault_file_name_coding_system = Qnil;
|
||||
Vfile_name_coding_system = Qnil;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Produce a Windows ANSI codepage suitable for encoding file names.
|
||||
|
|
Loading…
Add table
Reference in a new issue