[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/debbugs 2c83d55 156/311: Touch up the automatic patch a
From: |
Stefan Monnier |
Subject: |
[elpa] externals/debbugs 2c83d55 156/311: Touch up the automatic patch applying logic |
Date: |
Sun, 29 Nov 2020 18:42:01 -0500 (EST) |
branch: externals/debbugs
commit 2c83d55378f969fb5a734762e53bea00bd18ac64
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Touch up the automatic patch applying logic
---
debbugs-gnu.el | 32 ++++++++++++++++++++++++++++++--
1 file changed, 30 insertions(+), 2 deletions(-)
diff --git a/debbugs-gnu.el b/debbugs-gnu.el
index 73c19d8..296538a 100644
--- a/debbugs-gnu.el
+++ b/debbugs-gnu.el
@@ -1378,7 +1378,9 @@ If given a prefix, patch in the branch directory instead."
(article-decode-charset)
(push gnus-article-buffer patch-buffers))
(dolist (buffer patch-buffers)
- (with-current-buffer buffer
+ (with-temp-buffer
+ (insert-buffer-substring buffer)
+ (debbugs-gnu-fix-patch dir)
(call-process-region (point-min) (point-max)
"patch" nil output-buffer nil
"-r" rej "--no-backup-if-mismatch"
@@ -1414,6 +1416,28 @@ If given a prefix, patch in the branch directory
instead."
(switch-to-buffer "*vc-diff*")
(goto-char (point-min))))
+(defun debbugs-gnu-fix-patch (dir)
+ (setq dir (directory-file-name (expand-file-name dir)))
+ (goto-char (point-min))
+ (re-search-forward diff-file-header-re nil t)
+ (goto-char (match-beginning 0))
+ (let ((file-names (diff-hunk-file-names)))
+ (when (and file-names
+ (not (string-match "/" (car file-names))))
+ ;; We have a simple patch that refers to a file somewhere in the
+ ;; tree. Find it.
+ (when-let ((files (directory-files-recursively
+ dir (concat "^" (regexp-quote (car file-names))
+ "$"))))
+ (when (re-search-forward (concat "^[+]+ "
+ (regexp-quote (car file-names))
+ "[ \t]")
+ nil t)
+ (replace-match (concat "+++ a"
+ (substring (car files) (length dir))
+ "\t")
+ nil t))))))
+
(defun debbugs-gnu-find-contributor (string)
"Search through ChangeLogs to find contributors."
(interactive "sContributor match: ")
@@ -1503,7 +1527,11 @@ If given a prefix, patch in the branch directory
instead."
(save-some-buffers t)
(when (get-buffer "*vc-dir*")
(kill-buffer (get-buffer "*vc-dir*")))
- (vc-dir debbugs-gnu-trunk-directory)
+ (let ((trunk (expand-file-name debbugs-gnu-trunk-directory)))
+ (if (equal (subseq default-directory 0 (length trunk))
+ trunk)
+ (vc-dir debbugs-gnu-trunk-directory)
+ (vc-dir debbugs-gnu-branch-directory)))
(goto-char (point-min))
(while (not (search-forward "edited" nil t))
(sit-for 0.01))
- [elpa] externals/debbugs 938a990 175/311: Allow sending control messages offline, (continued)
- [elpa] externals/debbugs 938a990 175/311: Allow sending control messages offline, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 10f5c39 177/311: Add a command to save the bugs list, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs ff02eb7 123/311: * debbugs/debbugs-gnu.el (debbugs-gnu-default-packages): Add auctex, mh-e., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 8f1d62a 141/311: Upgrade debbugs to 0.7, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 313b653 142/311: Some minor changes in debbugs, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs bd6dd44 145/311: Increase the default number of hits, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 2371241 149/311: Save list of read articles, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 41c8800 150/311: Lowe the hit default, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 42bc369 153/311: debbugs code cleanup, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 2ea5f85 154/311: Retrieve debbugs data in several chunks, sequentially, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 2c83d55 156/311: Touch up the automatic patch applying logic,
Stefan Monnier <=
- [elpa] externals/debbugs 7b0b168 159/311: debbugs code cleanup, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 5691679 162/311: Activate `soap-invoke-async' in debbugs, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 6ae1bfb 163/311: Improvement on debbugs, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 6526f6a 166/311: Further improvements to debbugs, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs ad0bf48 167/311: Release debbugs 0.9, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs eb4259e 172/311: * packages/debbugs/debbugs-gnu.el (debbugs-gnu-stale): Fix docstring., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs b8ffa5f 173/311: Fix the "exempt" marker, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs b50c3fe 178/311: Decode xsd:base64Binary values in debbugs.el, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 6a865a3 191/311: Improve debbugs-gnu-search, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 5440e20 185/311: Allow the "C" command from debbugs mode to work, Stefan Monnier, 2020/11/29