Subject: Re: Why call-process removes '{' and '}' chars from arguments???
From: "Larry Hall (Cygwin)" <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Thu, 03 Jun 2010 11:04:53 -0400
List-Id: <cygwin.cygwin.com>

On 6/3/2010 3:46 AM, Oleksandr Gavenko wrote:
> On 2010.06.03 0:39, Eli Zaretskii wrote:
>>> From: Oleksandr Gavenko<[email-masked]>
>>> Date: Wed, 02 Jun 2010 23:40:46 +0300
>>>
>>> I use Emacs 23.2 under Windows.
>>>
>>> (call-process
>>> "echo.exe"
>>> nil (get-buffer "*Messages*") nil
>>> "--bla" "{rev}" "}}}xxx{1}xxx{2}xxx{{{" )
>>>
>>> put in Message buffer
>>>
>>> "--bla rev }}}xxx1xxx2xxx"
>>>
>>> so remove occurrences of "{" and "}". Why???
>>
>> I cannot reproduce this in Emacs 23.2 on MS-Windows. I get the
>> expected result:
>>
>> --bla {rev} }}}xxx{1}xxx{2}xxx{{{
>>
>> What kind of port of which program is your echo.exe? What happens if
>> you invoke the same command from the shell?
>>
> Futher info: I wrote simple C prog - printarg.c with:
>
> int main(int argc, char **argv)
> {
> for (int i = 0; i < argc; i++)
> printf("\"%s\"\n", argv[i]);
> return 0;
> }
>
> When I compile it with
>
> CC=gcc # resulted executable depend on cygwin1.dll
>
> (call-process "printarg.exe"
> nil (get-buffer "*Messages*") nil
> "--bla" "{rev}" "}}}xxx{1}xxx{2}xxx{{{" )
>
> return
>
> "/home/user/usr/bin/printarg"
> "--bla"
> "rev"
> "}}}xxx1xxx2xxx"
>
> When I compile it with
>
> CC=i686-pc-cygwin-gcc-3 -mno-cygwin
> # resulted executable *NOT* depend on cygwin1.dll
>
> call-process return
>
> "d:\home\usr\bin\printarg.exe"
> "--bla"
> "{rev}"
> "}}}xxx{1}xxx{2}xxx{{{"
>
>
> Also interesting that from Cygwin bash argument successful passed to
> printarg:
>
> bash# ldd `which printarg`
> ntdll.dll => /cygdrive/c/WINDOWS/system32/ntdll.dll
> kernel32.dll => /cygdrive/c/WINDOWS/system32/kernel32.dll
> cygwin1.dll => /usr/bin/cygwin1.dll
> ADVAPI32.DLL => /cygdrive/c/WINDOWS/system32/ADVAPI32.DLL
> RPCRT4.dll => /cygdrive/c/WINDOWS/system32/RPCRT4.dll
> Secur32.dll => /cygdrive/c/WINDOWS/system32/Secur32.dll
> cyggcc_s-1.dll => /usr/bin/cyggcc_s-1.dll
> bash# printarg {}{}{{{{}}}{}}}{{} {rev}
> "printarg"
> "{}{}{{{{}}}{}}}{{}"
> "{rev}"
>
>
> GNU Emacs 23.2 from ftp.gnu.org - release build with mingw.

See <http://cygwin.com/cygwin-ug-net/using-cygwinenv.html> and try setting
the CYGWIN environment variable to include "noglob".

-- 
Larry Hall                              http://www.rfk.com
RFK Partners, Inc.                      (508) 893-9779 - RFK Office
216 Dalton Rd.                          (508) 893-9889 - FAX
Holliston, MA 01746

_____________________________________________________________________

A: Yes.
> Q: Are you sure?
>> A: Because it reverses the logical flow of conversation.
>>> Q: Why is top posting annoying in email?

--
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