Hi Nicolas,

So according to Emacs upstream developer Eli' reply, the current `convert-standard-filename` function's result is as expected. Since the Cygwin environment is defined as a "Posix" environment. In my patch, I was trying to call a Windows command inside a Posix environment, and intentionally pass a file path in Windows format. This is a very special case, and should be taken care of individually.

So I think I will update my patch to add a `org-babel-sql-convert-filename` function.


Thanks,
David


---------- Forwarded message ---------
From: Eli Zaretskii <eliz@gnu.org>
Date: Sun, Jun 12, 2016 at 3:10 PM
Subject: Re: Request to support Cygwin in convert-standard-filename function
To: Xi Shen <davidshen84@gmail.com>
Cc: <emacs-devel@gnu.org>


> From: Xi Shen <davidshen84@gmail.com>
> Date: Sun, 12 Jun 2016 02:51:14 +0000
>
> I encounter a problem with `convert-standard-filename`,
> https://www.gnu.org/software/emacs/manual/html_node/elisp/Standard-File-Names.html. I call this function
> within a Cygwin environment, and this function could not return me a MS-DOS/Windows format path. I think it
> treats Cygwin environment as a normal *nix environment.
>
> In Cygwin environment, the Emacs has a function called `cygwin-convert-file-name-to-windows` which
> converts a expanded path to a Windows path, e.g.:
>
> /cygdrive/c/Windows => c:\Windows
>
> According to the description of the `convert-standard-filename`, it is expected to be used only in places where
> the callee wants to convert a *nix path to the underline OS path. I think it is appropriate we invoke the
> `cygwin-convert-file-name-to-windows` function inside the `convert-standard-filename` function if it is called
> within a Cygwin environment.

Yes, Cygwin is a Posix environment, and convert-standard-filename is
documented to be a no-op in such an environment.

For the conversion you need, you can call
cygwin-convert-file-name-to-windows directly.
--

Thanks,
David S.