[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Quilt-dev] [PATCH v2 6/7] quilt.el: Fix quilt-editable when QUILT_PATCH
From: |
Ondřej Lysoněk |
Subject: |
[Quilt-dev] [PATCH v2 6/7] quilt.el: Fix quilt-editable when QUILT_PATCHES_PREFIX is set |
Date: |
Sat, 30 May 2020 18:17:23 +0200 |
This patch fixes a bug in quilt-editable: if QUILT_PATCHES_PREFIX is
set, quilt-editable will always return nil, even if the file being
edited is part of the topmost patch.
If QUILT_PATCHES_PREFIX is set, then 'quilt top' prints the patch name
as a relative path to the patch. Since in quilt-editable we're running
'quilt top' from the top level directory, the printed patch path is in
the form $QUILT_PATCHES/patch-name.
Later on, we're looking for a cached version of the file that we're
editing in .pc/. The patch directories are stored directly under .pc/,
rather than .pc/$QUILT_PATCHES/, so we must remove the $QUILT_PATCHES/
prefix from the patch path.
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
---
lib/quilt.el | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/lib/quilt.el b/lib/quilt.el
index fb6df35..4221674 100644
--- a/lib/quilt.el
+++ b/lib/quilt.el
@@ -69,6 +69,10 @@
(or (quilt--get-config-variable "QUILT_PC")
".pc"))
+(defun quilt-patches-prefix ()
+ "Return the value of the QUILT_PATCHES_PREFIX config variable. Return nil if
it is unset."
+ (quilt--get-config-variable "QUILT_PATCHES_PREFIX"))
+
(defun quilt-find-dir (fn &optional prefn)
"Return the top level dir of quilt from FN."
(if (or (not fn) (equal fn "/") (equal fn prefn))
@@ -189,6 +193,11 @@
(setq n (1+ n))))
(completing-read p l nil t))
+(defun quilt--strip-patchname (pn)
+ "Return the name of patch PN sans the path to the patches directory."
+ (let ((patches-path (concat (quilt-patches-directory) "/")))
+ (substring pn (length patches-path))))
+
(defvar quilt-edit-top-only 't)
(defun quilt-editable (f)
"Return t if F is editable in terms of current patch. Return nil if
otherwise."
@@ -199,7 +208,10 @@
(if (quilt-bottom-p)
(quilt-cmd "applied") ; to print error message
(setq dirs (if quilt-edit-top-only
- (list (substring (quilt-cmd-to-string "top") 0 -1))
+ (list (let ((patch (substring (quilt-cmd-to-string
"top") 0 -1)))
+ (if (quilt-patches-prefix)
+ (quilt--strip-patchname patch)
+ patch)))
(cdr (cdr (directory-files (concat qd
(quilt-pc-directory) "/"))))))
(while (and (not result) dirs)
(if (file-exists-p (concat qd (quilt-pc-directory) "/" (car dirs)
"/" fn))
--
2.25.4
- [Quilt-dev] [PATCH v2 1/7] quilt.el: Fix documentation of quilt-pc-directory, Ondřej Lysoněk, 2020/05/30
- [Quilt-dev] [PATCH v2 2/7] quilt.el: Refactor config reading functions, Ondřej Lysoněk, 2020/05/30
- [Quilt-dev] [PATCH v2 3/7] Document that quilt loads /etc/quilt.quiltrc, Ondřej Lysoněk, 2020/05/30
- [Quilt-dev] [PATCH v2 4/7] quilt.el: Load /etc/quilt.quiltrc if ~/.quiltrc doesn't exist, Ondřej Lysoněk, 2020/05/30
- [Quilt-dev] [PATCH v2 5/7] quilt.el: Make quilt-patches-directory return per-project setting, Ondřej Lysoněk, 2020/05/30
- [Quilt-dev] [PATCH v2 6/7] quilt.el: Fix quilt-editable when QUILT_PATCHES_PREFIX is set,
Ondřej Lysoněk <=
- [Quilt-dev] [PATCH v2 7/7] quilt.el: Fix a typo in documentation, Ondřej Lysoněk, 2020/05/30