summary refs log tree commit diff
diff options
context:
space:
mode:
authorDaniel Shahaf <d.s@daniel.shahaf.name>2015-10-21 05:11:59 +0000
committerDaniel Shahaf <d.s@daniel.shahaf.name>2015-10-24 20:42:26 +0000
commit779b3112f85d01d297ab04e6c1b68a0b33d76a55 (patch)
treee5ea0d2df6b4f9e092f23d236ab8f9d87d3507ee
parentc62db9e7dc2f59337aec1df55663383c524886cb (diff)
downloadzsh-779b3112f85d01d297ab04e6c1b68a0b33d76a55.tar.gz
zsh-779b3112f85d01d297ab04e6c1b68a0b33d76a55.tar.xz
zsh-779b3112f85d01d297ab04e6c1b68a0b33d76a55.zip
36913 + 36945: vcs_info quilt: Pass patch subject lines to gen-applied-string
The format used is '${patchname} ${subject}', which is analogous to the git backend.
-rw-r--r--ChangeLog3
-rw-r--r--Functions/VCS_Info/VCS_INFO_quilt30
2 files changed, 33 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index fe93bc724..dffd3b35a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2015-10-24  Daniel Shahaf  <d.s@daniel.shahaf.name>
 
+	* 36913 + 36945: Functions/VCS_Info/VCS_INFO_quilt: vcs_info quilt:
+	Pass patch subject lines to gen-applied-string
+
 	* 36912: Functions/VCS_Info/VCS_INFO_quilt: vcs_info quilt:
 	Tolerate being in child of .pc's parent
 
diff --git a/Functions/VCS_Info/VCS_INFO_quilt b/Functions/VCS_Info/VCS_INFO_quilt
index 29603a27a..c3c3d864d 100644
--- a/Functions/VCS_Info/VCS_INFO_quilt
+++ b/Functions/VCS_Info/VCS_INFO_quilt
@@ -145,6 +145,36 @@ function VCS_INFO_quilt() {
         unapplied=()
     fi
 
+    if [[ -n $patches ]]; then
+      () {
+        local i line
+        for ((i=1; i<=$#applied; i++)); do
+          if [[ -f "$patches/$applied[$i]" ]] &&
+             read -r line < "$patches/$applied[$i]" &&
+             [[ $line != (#b)(---|Index:)* ]] &&
+             true
+            ;
+          then
+            applied[$i]+=" $line"
+          else
+            applied[$i]+=" ?"
+          fi
+        done
+        for ((i=1; i<=$#unapplied; i++)); do
+          if [[ -f "$patches/$unapplied[$i]" ]] &&
+             read -r line < "$patches/$unapplied[$i]" &&
+             [[ $line != (#b)(---|Index:)* ]] &&
+             true
+            ;
+          then
+            unapplied[$i]+=" $line"
+          else
+            unapplied[$i]+=" ?"
+          fi
+        done
+      }
+    fi
+
     all=( ${(Oa)applied} ${unapplied} )
 
     if VCS_INFO_hook 'gen-applied-string' "${applied[@]}"; then