Subject: bug#75207: Fwd: bug#75207: 29.4; Path conversion from native codepage to UTF-8 fails when Windows is set by default to UTF-8

From: [email-masked]
Date: Fri, 03 Jan 2025 14:35:26 +0000

I've just built Emacs on somewhat new revision (577714e3fe) and cannot repro it there.
Tag emacs-29.1 does not build by default on Windows so I didn't check.

My theory is that maybe the codepage of the machine Emacs was built on influences this??
Or this has just been fixed on the latest version.

I debugged a bit and it looks like w32_ansi_code_page is set to 1252 at some point.

> OK.  I think I see the problem (and it is not specific to UTF-8 codepage), but
> just to be sure, please show some more values:
> 
>   M-: w32-multibyte-code-page RET
>   M-: locale-coding-system RET
>   M-: file-name-coding-system RET
>   M-: default-file-name-coding-system RET
> 

M-: w32-multibyte-code-page -> 0
M-: locale-coding-system -> cp65001
M-: file-name-coding-system -> nil
M-: default-file-name-coding-system -> cp65001

> We think that PATH is encoded in Windows-1252 codepage, and the question
> is why and where do we err.  The above additional values I ask about might
> help answer that question.

I can say for sure that it is not, API monitor trace confirms this as well as some
basic Win32 programs.
getenv("PATH") returns proper string, respecting the active code page.
 
> If I send you a C-level patch, are you able to build Emacs after patching it,
> preferably the master branch of our Git repository?

Sure.