diff options
Diffstat (limited to 'rc/filetype/diff-parse.pl')
| -rwxr-xr-x | rc/filetype/diff-parse.pl | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/rc/filetype/diff-parse.pl b/rc/filetype/diff-parse.pl index f7858eb7..203e9b19 100755 --- a/rc/filetype/diff-parse.pl +++ b/rc/filetype/diff-parse.pl @@ -39,11 +39,17 @@ while (defined $ARGV[0]) { # Inputs our $directory = $ENV{PWD}; our $strip; +our $in_file; +our $in_file_line; our $version = "+"; eval $begin if defined $begin; +$in_file = "$directory/$in_file" if defined $in_file; + # Outputs +our $diff_line = 0; +our $commit; our $file; our $file_line; our $diff_line_text; @@ -83,8 +89,13 @@ sub strip { } while (<STDIN>) { + $diff_line++; s/^(> )*//g; $diff_line_text = $_; + if (m{^commit (\w+)}) { + $commit = $1; + next; + } if (m{^diff\b}) { $state = "header"; $is_recursive_diff = 1; @@ -116,6 +127,11 @@ while (<STDIN>) { $other_file_line++ if defined $other_file_line; } } + if (defined $in_file and defined $file and $file eq $in_file) { + if (defined $in_file_line and defined $file_line and $file_line >= $in_file_line) { + last; + } + } } if (not defined $file) { $file = ($fallback_file or $other_file); |
