Mailing List Archive

bugfix to c2ph
Tom,

I don't know if you've noticed/fixed this, but the version of c2ph that I
have with my perl5.000 release seems broken out of the box.

The problem was simple to fix:

% diff /usr/local/bin/c2ph c2ph.fixed
896c896
< $scrunch_code .= "\ts/($_{2,})/'$_' . length(\$1)/ge;\n";
---
> $scrunch_code .= "\ts/(${_}{2,})/'$_' . length(\$1)/ge;\n";
%

Apparently, "... $_{2,} ..." was being treated as a lookup on the hash
named %_, which was not defined. This resulted in &quick_scrunch() coming
out like:

sub quick_scrunch {
s/()/'q' . length($1)/ge;
s/()/'p' . length($1)/ge;
s/()/'I' . length($1)/ge;
[...etc...]
}

which caused an infinite loop when c2ph ran. I'm not exactly sure if it's
reasonable for a regexp like that to result in an infinite loop - maybe
there's a buglet in the perl regexp stuff too.

Anyway, hope this fix is of help.

Regards,
Nick
--
Nicholas Gianniotis nico@lehman.com
Lehman Brothers Japan Inc. +81 3 5571-7639 (voice)
Ark Mori Building +81 3 5571-7921 (fax)
12-32 Akasaka 1-chome, Minato-Ku, Tokyo 107, Japan.