diff options
author | Niko Tyni <ntyni@debian.org> | 2008-05-16 02:15:35 +0300 |
---|---|---|
committer | H.Merijn Brand <h.m.brand@xs4all.nl> | 2008-05-16 12:47:33 +0000 |
commit | 5668511f4fa11d544523f3d4391bca3cf59add56 (patch) | |
tree | bbb237a87bac8519d3ba19544ea4952015c1ee2f | |
parent | 1d888ee36433a32b59b68d4f5c5d31b674d39322 (diff) | |
download | perl-5668511f4fa11d544523f3d4391bca3cf59add56.tar.gz |
h2ph: allow the quote mark delimiter when chasing #include directives with "-a"
Message-Id: <1210882535-11072-1-git-send-email-ntyni@debian.org>
p4raw-id: //depot/perl@33835
-rw-r--r-- | utils/h2ph.PL | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/utils/h2ph.PL b/utils/h2ph.PL index 0bfea18406..a3ff285ec0 100644 --- a/utils/h2ph.PL +++ b/utils/h2ph.PL @@ -85,7 +85,7 @@ sub reindent($) { } my ($t, $tab, %curargs, $new, $eval_index, $dir, $name, $args, $outfile); -my ($incl, $incl_type, $next); +my ($incl, $incl_type, $incl_quote, $next); while (defined (my $file = next_file())) { if (-l $file and -d $file) { link_if_possible($file) if ($opt_l); @@ -186,9 +186,10 @@ while (defined (my $file = next_file())) { print OUT $t,"unless(defined(\&$name)) {\n sub $name () {\t",$new,";}\n}\n"; } } - } elsif (/^(include|import|include_next)\s*[<\"](.*)[>\"]/) { + } elsif (/^(include|import|include_next)\s*([<\"])(.*)[>\"]/) { $incl_type = $1; - $incl = $2; + $incl_quote = $2; + $incl = $3; if (($incl_type eq 'include_next') || ($opt_e && exists($bad_file{$incl}))) { $incl =~ s/\.h$/.ph/; @@ -221,6 +222,10 @@ while (defined (my $file = next_file())) { "warn(\$\@) if \$\@;\n"); } else { $incl =~ s/\.h$/.ph/; + # copy the prefix in the quote syntax (#include "x.h") case + if ($incl !~ m|/| && $incl_quote eq q{"} && $file =~ m|^(.*)/|) { + $incl = "$1/$incl"; + } print OUT $t,"require '$incl';\n"; } } elsif (/^ifdef\s+(\w+)/) { @@ -724,8 +729,13 @@ sub queue_includes_from $line .= <HEADER>; } - if ($line =~ /^#\s*include\s+<(.*?)>/) { - push(@ARGV, $1) unless $Is_converted{$1}; + if ($line =~ /^#\s*include\s+([<"])(.*?)[>"]/) { + my ($delimiter, $new_file) = ($1, $2); + # copy the prefix in the quote syntax (#include "x.h") case + if ($delimiter eq q{"} && $file =~ m|^(.*)/|) { + $new_file = "$1/$new_file"; + } + push(@ARGV, $new_file) unless $Is_converted{$new_file}; } } close HEADER; |