Fri Nov 16 19:58:21 2012: Request 81172 was acted upon.
Transaction: Correspondence added by SISYPHUS
       Queue: Inline
     Subject: using Inline with => 'Event' fails to compile
   Broken in: (no value)
    Severity: (no value)
       Owner: Nobody
  Requestors: peter.smoczyn...@i-new.com
      Status: open
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=81172 >


On Fri Nov 16 06:51:09 2012, peter.smoczyn...@i-new.com wrote:

> in fact it's the space(!) and not the double quotes!
> 
> i.e.
> 
> "-I /opt/perl5.12.2.debug/lib/site_perl/5.12.2/i86pc-solaris/Event"
> 
> vs.
> 
> "-I/opt/perl5.12.2.debug/lib/site_perl/5.12.2/i86pc-solaris/Event"

Well spotted - I had missed that there was a space stuck in there.

So ... the space between the -I and the /opt doesn't cause any problems
until the whole thing is enclosed in double-quotes ? (Please correct me
if that's wrong.)
I would have expected that space to be a problem even if there *weren't*
any enclosing double-quotes.
But, if that's not the case, then quote_space() probably needs to take
this into consideration.

I'm thinking quote_space() should be able to do this at the end of its
processing with

s/"\-I\s+\//"-I\//g

since any spaces between the leading -I and the first / can never be
meaningful (right ?).

If you want to give that a try, at the end of the quote_space()
subroutine in C.pm, change:

  my $out = join '', @in;
  $_[0] = $out;

to:

  my $out = join '', @in;
  out =~ s/"\-I\s+\//"-I\//g;
  $_[0] = $out;

I haven't tested, however, so I'm being a bit premature here ...

There's also the case that

-I /foo

would be changed to

-I" /foo"

if it was the first element in the string, so that needs to be looked
at, too.

I'll release 0.51_01 in a couple of days time, and let you know when
that happens. It will contain, among other things, a fix for this issue.

Thanks for the report, and for the digging.

Cheers,
Rob 

Reply via email to