diff --git a/ChangeLog b/ChangeLog index dc041d2e1..57a397ce1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2020-03-28 Daniel Shahaf + * 45644: Functions/VCS_Info/Backends/VCS_INFO_get_data_git: + vcs_info git: Fix current patch's name in several cases. + * unposted: Test/V07pcre.ztst: Fix syntax error introduced in 45591. diff --git a/Functions/VCS_Info/Backends/VCS_INFO_get_data_git b/Functions/VCS_Info/Backends/VCS_INFO_get_data_git index 2b2040c94..79429c8e0 100644 --- a/Functions/VCS_Info/Backends/VCS_INFO_get_data_git +++ b/Functions/VCS_Info/Backends/VCS_INFO_get_data_git @@ -292,9 +292,24 @@ elif [[ -d "${gitdir}/rebase-apply" ]]; then # Set $subject to the info for the current patch if [[ -f "${patchdir}/msg-clean" ]]; then subject="${$(< "${patchdir}/msg-clean")[(f)1]}" + elif [[ -f "${patchdir}/final-commit" ]]; then + # This value is not rfc2047-encoded. It's also available via + # "${patchdir}/info". + subject="${$(< "${patchdir}/final-commit")[(f)1]}" elif printf -v this_patch_file "%s/%04d" "${patchdir}" "${cur}" [[ -f $this_patch_file ]] then + # This branch is last for several reasons: + # + # - The "Subject" header will be MIME-encoded (rfc2047). + # + # - If the mail has full rfc822 headers (including "Received" and + # so on), we won't find the "Subject:" header, since + # VCS_INFO_patch2subject only checks the first few lines. + # + # - In --scissors mode, we may find the outer "Subject:" header, + # whereas the inner one (after the scissors line) will be used, + # if present. () { local REPLY VCS_INFO_patch2subject "${this_patch_file}"