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