From 9a67491b91bfc476d8c1c30dc2932d1967fb6720 Mon Sep 17 00:00:00 2001 From: Andrew Robbins Date: Tue, 27 Jun 2017 12:21:09 -0400 Subject: Fixed bug in diff_patch_file() filename parsing. --- libs/common | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libs/common b/libs/common index c5c89483..7898f115 100755 --- a/libs/common +++ b/libs/common @@ -86,12 +86,13 @@ diff_patch_file() { local repository_path="$1" local patch_file_path="$2" - local filename_in_diff="$(sed -rne 's/^-{3} {1}(.*)$/\1/p' <"${patch_file_path}")" + # TODO: Improve handling of filenames to avoid gotchas w/ \n, \t, etc. + local filename_in_diff="$(sed -rne 's/^-{3}\s+([^ \r\n]*).*/\1/p' "${patch_file_path}")" local source_file_path - if ! ( grep -E '^-{3}.*/' <"${patch_file_path}" >/dev/null 2>&1 ); then - source_file_path="${repository_path}/${filename_in_diff##\ }" + if ! ( grep -E '^-{3}.*/' "${patch_file_path}" >/dev/null 2>&1 ); then + source_file_path="${repository_path}/${filename_in_diff}" else source_file_path="${repository_path}/${filename_in_diff##*/}" fi -- cgit v1.2.3-70-g09d2