Skip to content

Commit fc8e7ee

Browse files
committed
fix: over-permissive regex for added/deleted file meta header
The previous pattern uselessly included `.*`, unlike all the other patterns, and so would erroneously match on actual diff content lines. Noticed this because the line itself was filtered out of diffs in this codebase. This also tightens the pattern since the file mode will always be six octal (0-7) chars; and in the git codebase the format string is: "%s%snew file mode %06o%s\n"
1 parent 02c8c00 commit fc8e7ee

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

diff-so-fancy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ sub do_dsf_stuff {
303303
###################################
304304
# Remove any new file permissions #
305305
###################################
306-
} elsif ($remove_file_add_header && $line =~ /^${ansi_color_regex}.*new file mode/) {
306+
} elsif ($remove_file_add_header && $line =~ /^${ansi_color_regex}new file mode [0-7]{6}/) {
307307
# Don't print the line (i.e. remove it from the output);
308308
$last_file_mode = "add";
309309
if ($patch_mode) {
@@ -312,7 +312,7 @@ sub do_dsf_stuff {
312312
######################################
313313
# Remove any delete file permissions #
314314
######################################
315-
} elsif ($remove_file_delete_header && $line =~ /^${ansi_color_regex}deleted file mode/) {
315+
} elsif ($remove_file_delete_header && $line =~ /^${ansi_color_regex}deleted file mode [0-7]{6}/) {
316316
# Don't print the line (i.e. remove it from the output);
317317
$last_file_mode = "delete";
318318
if ($patch_mode) {

0 commit comments

Comments
 (0)