mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-01-01 17:24:50 +01:00
45114: vcs_info quilt: Improve support for svn-style patch headers.
Additional lines between the |-separated header line and the actual log message, as generated by 'svn log -v' and 'svn log -g', are now supported. This change affects you if you have quilt patches with 'svn log'-style information in their headers, regardless of whether you use quilt standalone, quilt over svn, or quilt over some other VCS.
This commit is contained in:
parent
41e3518589
commit
86db36ab70
2 changed files with 16 additions and 7 deletions
|
@ -1,5 +1,8 @@
|
|||
2019-12-22 Daniel Shahaf <danielsh@apache.org>
|
||||
|
||||
* 45114: Functions/VCS_Info/VCS_INFO_patch2subject: vcs_info
|
||||
quilt: Improve support for svn-style patch headers.
|
||||
|
||||
* 45115: Misc/vcs_info-examples: vcs_info examples: Make the
|
||||
quilt-patch-dir example friendlier.
|
||||
|
||||
|
|
|
@ -14,10 +14,7 @@
|
|||
IFS= read -r "lines[$i]"
|
||||
if [[ -z ${lines[$i]} ]] || [[ ${lines[$i]} == (#b)(---[^-]|Index:)* ]]; then
|
||||
lines[$i]=()
|
||||
# For 'svn log -r N --diff' output, read the first paragraph too.
|
||||
if ! [[ $lines[i-1] =~ $svn_log_pattern ]]; then
|
||||
break
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done < "$1"
|
||||
|
||||
|
@ -55,9 +52,18 @@
|
|||
fi
|
||||
} < "$1"
|
||||
REPLY=$needle
|
||||
elif [[ $lines[2] =~ $svn_log_pattern ]]; then
|
||||
REPLY=$lines[4]
|
||||
if (( ${+lines[5]} )); then REPLY+='...'; fi
|
||||
elif [[ $lines[1] =~ $svn_log_pattern ]] || [[ $lines[2] =~ $svn_log_pattern ]]; then
|
||||
# Read up to the next blank line, and the first two lines after it.
|
||||
integer multiline=0
|
||||
{
|
||||
while read -r needle; [[ -n $needle ]]; do done
|
||||
# Read the first line of the second paragraph, which is the first
|
||||
# line of the log message.
|
||||
read -r needle
|
||||
read -r && [[ -n $REPLY ]] && multiline=1
|
||||
} < "$1"
|
||||
REPLY=$needle
|
||||
if (( multiline )); then REPLY+='...'; fi
|
||||
elif (( ${+lines[1]} )); then
|
||||
# The first line of the file is not part of the diff.
|
||||
REPLY=${lines[1]}
|
||||
|
|
Loading…
Reference in a new issue