[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Bug #33255 (Windows cannot open files with non-ascii names)
From: |
Ben Pfaff |
Subject: |
Re: Bug #33255 (Windows cannot open files with non-ascii names) |
Date: |
Thu, 8 Oct 2015 21:29:35 -0700 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Thu, Oct 08, 2015 at 06:47:05PM +0200, John Darrington wrote:
> In addition to the changes I've submitted for review, I think the resolution
> to this
> problem involves work in src/data/make-file.c
>
> The issue is, this module contains a lot of calls to posix file functions,
> such as
> open, rename, unlink etc.
>
> These work in w32 so long as there are no non-ascii characters in the
> filenames.
> To get other characters to work, we have to do two things:
>
> 1. Convert the filenames to UTF-16LE
> AND
> 2. replace the function calls by their WideChar equivalents.
>
> Step 2 however has caveats:
>
> open --> _wopen is no problem.
> unlink --> _wunlink is no problem.
> rename --> _wrename will not work, because windows rename refuses to
> overwrite an existing file. We will
> have to use the native Windows function MoveFileW
>
> Not sure about stat.
>
>
> It may end up being easier to have a platform specific implementation of
> make-file.c
>
> What do you think?
Can this be fixed in Gnulib somehow?
A system-specific implementation makes sense except that we lack proper
resources to test it.