[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/helm 5496dbf263: Fix tramp error in tramp-file-name-unify
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/helm 5496dbf263: Fix tramp error in tramp-file-name-unify in emacs-29 |
Date: |
Mon, 5 Sep 2022 00:58:50 -0400 (EDT) |
branch: elpa/helm
commit 5496dbf263e6d91c6360bb4a278710ab9479810d
Author: Thierry Volpiatto <thievol@posteo.net>
Commit: Thierry Volpiatto <thievol@posteo.net>
Fix tramp error in tramp-file-name-unify in emacs-29
---
helm-files.el | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/helm-files.el b/helm-files.el
index dd701ec8a6..577a0628c5 100644
--- a/helm-files.el
+++ b/helm-files.el
@@ -3205,10 +3205,31 @@ debugging purpose."
;; Return PATTERN unchanged.
(t pattern))))
+(defun helm-ff--file-accessible-directory-p (path)
+ ;; Workaround emacs-29 file-error in `tramp-file-name-unify' by
+ ;; using its emacs-28 version instead.
+ ;; We should not need it elsewhere than at start of
+ ;; `helm-find-files-get-candidates' as after this initial call all
+ ;; paths should be absolute.
+ (cl-letf (((symbol-function 'tramp-file-name-unify)
+ (lambda (vec &optional _localname)
+ (when (tramp-file-name-p vec)
+ (setq vec (copy-tramp-file-name vec))
+ (setf (tramp-file-name-localname vec) nil
+ (tramp-file-name-hop vec) nil))
+ vec)))
+ (file-accessible-directory-p path)))
+
+(defvar helm-ff--file-accessible-directory-p-fn
+ (if (equal (func-arity 'tramp-file-name-unify) '(1 . 2))
+ #'helm-ff--file-accessible-directory-p
+ #'file-accessible-directory-p))
+
(defun helm-find-files-get-candidates (&optional require-match)
"Create candidate list for `helm-source-find-files'."
(let* ((path (helm-ff-set-pattern helm-pattern))
- (dir-p (file-accessible-directory-p path))
+ (dir-p (funcall
+ helm-ff--file-accessible-directory-p-fn path))
basedir
invalid-basedir
non-essential
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [nongnu] elpa/helm 5496dbf263: Fix tramp error in tramp-file-name-unify in emacs-29,
ELPA Syncer <=