On 01/08/2020 10:06, Jonas Hahnfeld via Discussions on LilyPond
development wrote:
Am Samstag, den 01.08.2020, 15:39 +0900 schrieb Masamichi Hosoda:
Testing with Frescobaldi would be appreciated, and also with special
characters in file names. I tried to model this after the code
Masamichi-san wrote in March, but I'm not sure I understand what it's
really needed for?
`stat ()` in msvcrt.dll has a problem with some Unicode file names.
So we use `_wstat ()` instead of `stat ()` if msvcrt.dll is used.
To use `_wstat ()`, we need a wide string,
so we use `MultiByteToWideChar ()` to convert it.
Do you have an example of a file name that should not work? I now have
three versions from GUB (one with MoveFileExW; one without but with
wstat; and one without wstat) and all work correctly on a recent
Windows 10. Does that mean the issue is gone with a recent update?
Might it be dependent on which VC++ package you have installed (or not)
that determines which definition is used by Windows?
i.e. (from Hosoda-san)
`stat ()` in newer UCRTs than msvcrt.dll does not have the problem.
I won't pretend to know the internals here but my work laptop has a
number of different iterations of the older VC++ components installed,
some of them go back to 2013 (for old internally made tools we still use
now and again) and they seem to co-exist but I don't know what it is LP
calls in this case. Some were installed manually and some by the various
software installers I have run.
I don't know how or what Windows patches in this case.
Yours (probably getting it completely wrong).
James