[rt.cpan.org #81172] using Inline with => 'Event' fails to compile

[email protected] ("Sisyphus via RT")
Newsgroups perl.inline
Message-ID <[email protected]>
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: [email protected]
      Status: open
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=81172 >


On Fri Nov 16 06:51:09 2012, [email protected] 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.