[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master cc5cd4de93d: Fix setup of coding-systems on MS-Windows
From: |
Eli Zaretskii |
Subject: |
master cc5cd4de93d: Fix setup of coding-systems on MS-Windows |
Date: |
Sun, 5 Jan 2025 00:57:49 -0500 (EST) |
branch: master
commit cc5cd4de93d1e5ba205cbf0c370aef4559bc342b
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>
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)
---
src/emacs.c | 13 ++++++++++++-
src/w32.c | 13 +++++++++++++
2 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/src/emacs.c b/src/emacs.c
index c1e0c9f3a57..896f219baab 100644
--- a/src/emacs.c
+++ b/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);
diff --git a/src/w32.c b/src/w32.c
index a49399153aa..deeca031f64 100644
--- a/src/w32.c
+++ b/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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master cc5cd4de93d: Fix setup of coding-systems on MS-Windows,
Eli Zaretskii <=