diff options
author | Dave Lawrence <dlawrence@mozilla.com> | 2012-08-16 16:10:14 +0200 |
---|---|---|
committer | Dave Lawrence <dlawrence@mozilla.com> | 2012-08-16 16:10:14 +0200 |
commit | 04669c69cd4d6e1f2e279f04c4595ed55ec490e1 (patch) | |
tree | 4d8b0c868d90d8e91d3cc70e74dd14202e08ded5 /Bugzilla/PatchReader/NarrowPatch.pm | |
parent | ba0b995c4453d3642e19343fa98f1b4034114f39 (diff) | |
download | bugzilla-04669c69cd4d6e1f2e279f04c4595ed55ec490e1.tar.gz bugzilla-04669c69cd4d6e1f2e279f04c4595ed55ec490e1.tar.xz |
Bug 779862: shift PatchReader into bugzilla namespace and fix long standing issues
Diffstat (limited to 'Bugzilla/PatchReader/NarrowPatch.pm')
-rw-r--r-- | Bugzilla/PatchReader/NarrowPatch.pm | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/Bugzilla/PatchReader/NarrowPatch.pm b/Bugzilla/PatchReader/NarrowPatch.pm new file mode 100644 index 000000000..b6502f2f3 --- /dev/null +++ b/Bugzilla/PatchReader/NarrowPatch.pm @@ -0,0 +1,44 @@ +package Bugzilla::PatchReader::NarrowPatch; + +use Bugzilla::PatchReader::FilterPatch; + +use strict; + +@Bugzilla::PatchReader::NarrowPatch::ISA = qw(Bugzilla::PatchReader::FilterPatch); + +sub new { + my $class = shift; + $class = ref($class) || $class; + my $this = $class->SUPER::new(); + bless $this, $class; + + $this->{INCLUDE_FILES} = [@_]; + + return $this; +} + +sub start_file { + my $this = shift; + my ($file) = @_; + if (grep { $_ eq substr($file->{filename}, 0, length($_)) } @{$this->{INCLUDE_FILES}}) { + $this->{IS_INCLUDED} = 1; + $this->{TARGET}->start_file(@_) if $this->{TARGET}; + } +} + +sub end_file { + my $this = shift; + if ($this->{IS_INCLUDED}) { + $this->{TARGET}->end_file(@_) if $this->{TARGET}; + $this->{IS_INCLUDED} = 0; + } +} + +sub next_section { + my $this = shift; + if ($this->{IS_INCLUDED}) { + $this->{TARGET}->next_section(@_) if $this->{TARGET}; + } +} + +1 |