Drag a file into emacs-w32 frame

Corinna Vinschen corinna-cygwin@cygwin.com
Mon Mar 4 21:39:00 GMT 2013

On Mar  4 16:26, Ken Brown wrote:
> On 3/4/2013 11:24 AM, Arthur Tu wrote:
> >Today when i tried to drag a file whose name containing chinese
> >characters into emacs, it failed to open.
> >
> >Here is the brief review:
> >
> >1. a file with a pure english file name to emacs-32 frame:
> >
> >     open successfully.
> >
> >
> >2. a file with chinese characters in its name to emacs-32 frame:
> >
> >      error message: "dnd-open-local-file: Can not read
> >file:/cygdrive/c/Users/Arthur/Desktop/%20%20%20%20.txt".
> >     in fact, i tried several times with different name. the name was
> >always decoded as a punch of "20%", even though different chinese
> >characters were there.
> >
> >
> >3. the same file with chinese characters in its name to a emacs-nox
> >frame(mintty):
> >
> >     the file name was pasted into the buffer correctly. chinese
> >characters were shown correctly. the file wasn't open. (This is what's
> >expected to happen in terminal session.)
> >
> >
> >So my question was around the situation 2.
> >How did the emacs-w32 handle the dragged file?
> The code for handling the file name appears to be in src/w32fns.c.
> I don't know what the issues are in trying to make it work when the
> name contains Chinese characters.  Daniel?

Cygwin is using UTF-8 as codeset by default.  Is it possible that
w32fns.c is using *shudder* Windows functions to load the file?  If so,
it uses the current Windows ANSI codepage, perhaps cp850 or some such.

Bottom line: Use Windows functions for the GUI as much as you like.
But don't use the Windows file API.  Use Cygwin functions for that.  If
you have to use a Windows functions to fetch the filename, use the
UNICODE Windows functions (the one with the trailing W) and convert the
filename to the current Cygwin codeset using cygwin_conv_path


Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

More information about the Cygwin mailing list