X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=utils%2Fh2ph.PL;h=79039968768eb920be038e3497298af89ff9914d;hb=7589e17d81493a7065648e700081a252e10a5c33;hp=4dab91680b7ab329d8bcb7ba4e8eee6bd1bd4f54;hpb=4e15175a644dc94dffd2be1324573f20050a9a0f;p=p5sagit%2Fp5-mst-13.2.git diff --git a/utils/h2ph.PL b/utils/h2ph.PL index 4dab916..7903996 100644 --- a/utils/h2ph.PL +++ b/utils/h2ph.PL @@ -338,7 +338,7 @@ sub expr { # Eliminate typedefs /\(([\w\s]+)[\*\s]*\)\s*[\w\(]/ && do { foreach (split /\s+/, $1) { # Make sure all the words are types, - last unless ($isatype{$_} or $_ eq 'struct'); + last unless ($isatype{$_} or $_ eq 'struct' or $_ eq 'union'); } s/\([\w\s]+[\*\s]*\)// && next; # then eliminate them. }; @@ -361,7 +361,7 @@ sub expr { }; s/^([_a-zA-Z]\w*)// && do { my $id = $1; - if ($id eq 'struct') { + if ($id eq 'struct' || $id eq 'union') { s/^\s+(\w+)//; $id .= ' ' . $1; $isatype{$id} = 1; @@ -438,7 +438,7 @@ sub next_line } elsif ($in =~ s/^("(\\.|[^"\\])*")//) { # "... $out .= $1; } elsif ($in =~ s/^\/\/.*//) { # //... - next READ; + # fall through } elsif ($in =~ m/^\/\*/) { # /*... # C comment removal adapted from perlfaq6: if ($in =~ s/^\/\*[^*]*\*+([^\/*][^*]*\*+)*\///) { @@ -455,7 +455,7 @@ sub next_line } } - last READ; + last READ if $out =~ /\S/; } return $out;