diff options
author | Torsten Veller <tove@gentoo.org> | 2009-05-08 05:46:34 +0000 |
---|---|---|
committer | Torsten Veller <tove@gentoo.org> | 2009-05-08 05:46:34 +0000 |
commit | ee45e2d9cc271fd196558f79ca98c1fbd15726aa (patch) | |
tree | fe894a4398340efb32683d319aca977555f5e54b /dev-lang/perl/files/perl-fix_h2ph_include_quote.patch | |
parent | Migrate to EAPI=2. Removed old version. (diff) | |
download | historical-ee45e2d9cc271fd196558f79ca98c1fbd15726aa.tar.gz historical-ee45e2d9cc271fd196558f79ca98c1fbd15726aa.tar.bz2 historical-ee45e2d9cc271fd196558f79ca98c1fbd15726aa.zip |
Fix h2ph to handle system headers with quotes
Package-Manager: portage-2.2_rc33/cvs/Linux i686
Diffstat (limited to 'dev-lang/perl/files/perl-fix_h2ph_include_quote.patch')
-rw-r--r-- | dev-lang/perl/files/perl-fix_h2ph_include_quote.patch | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/dev-lang/perl/files/perl-fix_h2ph_include_quote.patch b/dev-lang/perl/files/perl-fix_h2ph_include_quote.patch new file mode 100644 index 000000000000..a71fbe6e293b --- /dev/null +++ b/dev-lang/perl/files/perl-fix_h2ph_include_quote.patch @@ -0,0 +1,61 @@ +Subject: Fix h2ph with double-quote-delimited #include directives. + +Allow the quote mark delimiter also for those #include directives chased with "h2ph -a". + +Debian bug #479762. + +Also add the directory prefix of the current file when the quote syntax is +used; 'require' will only look in @INC, not the current directory. + +Upstream change 33835. +--- 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; |