Skip Menu |

This queue is for tickets about the ExtUtils-MakeMaker CPAN distribution.

Report information
The Basics
Id: 19754
Status: new
Priority: 0/
Queue: ExtUtils-MakeMaker

People
Owner: Nobody in particular
Requestors: schwern [...] pobox.com
Cc:
AdminCc:

Bug Information
Severity: Unimportant
Broken in: (no value)
Fixed in: (no value)



CC: makemaker [...] perl.org, bug-ExtUtils-MakeMaker [...] rt.cpan.org
Subject: Re: MakeMaker on Cygwin when environment variables end in backslash
Date: Tue, 6 Jun 2006 16:54:19 -0700
To: "Ed Avis" <eda [...] waniasset.com>
From: "Michael G Schwern" <schwern [...] gmail.com>
On 6/6/06, Ed Avis <eda@waniasset.com> wrote: Show quoted text
> This is harmless to Windows programs but when using MakeMaker under > Cygwin, the trailing backslash causes errors a bit like this: > > % make subdirs > cd C && make -f Makefile all LIB="C:\Program Files\Microsoft Visual Studio > .NET 2003\SDK\v1.1\Lib\" LIBPERL_A="libperl.a" LINKTYPE="dynamic" > PREFIX="" OPTIMIZE="" PASTHRU_DEFINE="" PASTHRU_INC="" > /bin/sh: -c: line 0: unexpected EOF while looking for matching `"' > /bin/sh: -c: line 1: syntax error: unexpected end of file > make: *** [subdirs] Error 2 > > The backslash at the end of the double-quoted string confuses sh. This > could be fixed by putting a substitution in the Makefile:
There's already a method in MakeMaker for quoting, quote_literal(). Trouble is it was introduced late in the game and there's lots of places which do not use it. This is one of them. The code which generates the above is, I think, ExtUtils::MM_Unix->pasthru() and it does not use quote_literal(). It should. Patches welcome.