X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=utils%2Fh2ph.PL;h=8f56db4db8d27e481f7361f6f107c02ca0327f15;hb=67fed61ba7df4193ee696a1f5213265f154533e3;hp=cd4b5a0b2cc83c5cb0c001bd27ecd98ee700b2e3;hpb=25436194551320561e53f61871c5d62bdea311ab;p=p5sagit%2Fp5-mst-13.2.git diff --git a/utils/h2ph.PL b/utils/h2ph.PL index cd4b5a0..8f56db4 100644 --- a/utils/h2ph.PL +++ b/utils/h2ph.PL @@ -509,7 +509,7 @@ sub expr { s/^\s*\((\w),/("$1",/ if $id =~ /^_IO[WR]*$/i; # cheat $new .= " &$id"; } elsif ($isatype{$id}) { - if ($new =~ /{\s*$/) { + if ($new =~ /\{\s*$/) { $new .= "'$id'"; } elsif ($new =~ /\(\s*$/ && /^[\s*]*\)/) { $new =~ s/\(\s*$//; @@ -518,8 +518,14 @@ sub expr { $new .= q(').$id.q('); } } else { - if ($inif && $new !~ /defined\s*\($/) { - $new .= '(defined(&' . $id . ') ? &' . $id . ' : undef)'; + if ($inif) { + if ($new =~ /defined\s*$/) { + $new .= '(&' . $id . ')'; + } elsif ($new =~ /defined\s*\($/) { + $new .= '&' . $id; + } else { + $new .= '(defined(&' . $id . ') ? &' . $id . ' : undef)'; + } } elsif (/^\[/) { $new .= " \$$id"; } else {