package Bugzilla::PatchReader::DiffPrinter::raw; use 5.10.1; use strict; use warnings; sub new { my $class = shift; $class = ref($class) || $class; my $this = {}; bless $this, $class; $this->{OUTFILE} = @_ ? $_[0] : *STDOUT; my $fh = $this->{OUTFILE}; return $this; } sub start_patch { } sub end_patch { } sub start_file { my $this = shift; my ($file) = @_; my $fh = $this->{OUTFILE}; if ($file->{rcs_filename}) { print $fh "Index: $file->{filename}\n"; print $fh "===================================================================\n"; print $fh "RCS file: $file->{rcs_filename}\n"; } my $old_file = $file->{is_add} ? "/dev/null" : $file->{filename}; my $old_date = $file->{old_date_str} || ""; print $fh "--- $old_file\t$old_date"; print $fh "\t$file->{old_revision}" if $file->{old_revision}; print $fh "\n"; my $new_file = $file->{is_remove} ? "/dev/null" : $file->{filename}; my $new_date = $file->{new_date_str} || ""; print $fh "+++ $new_file\t$new_date"; print $fh "\t$file->{new_revision}" if $file->{new_revision}; print $fh "\n"; } sub end_file { } sub next_section { my $this = shift; my ($section) = @_; return unless $section->{old_start} || $section->{new_start}; my $fh = $this->{OUTFILE}; print $fh "@@ -$section->{old_start},$section->{old_lines} +$section->{new_start},$section->{new_lines} @@ $section->{func_info}\n"; foreach my $line (@{$section->{lines}}) { $line =~ s/(\r?\n?)$/\n/; print $fh $line; } } 1