summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2018-09-14 11:14:02 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2018-09-14 11:14:02 -0400
commit628102f6f42d2ea82c4eda81ee35bdec1da32a9b (patch)
treee3e44821f2cdc11920fc363e6103639fbc25fd3b /lisp
parent441e23b5eb13929db9341f93ee71b761135943e3 (diff)
downloademacs-628102f6f42d2ea82c4eda81ee35bdec1da32a9b.tar.gz
* lisp/eshell/em-dirs.el (eshell-expand-multiple-dots): Avoid defadvice.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/eshell/em-dirs.el10
1 files changed, 6 insertions, 4 deletions
diff --git a/lisp/eshell/em-dirs.el b/lisp/eshell/em-dirs.el
index 5180a0700db..b7d13ee27b7 100644
--- a/lisp/eshell/em-dirs.el
+++ b/lisp/eshell/em-dirs.el
@@ -314,16 +314,18 @@ Thus, this does not include the current directory.")
path)))
(defun eshell-expand-multiple-dots (path)
+ ;; FIXME: This advice recommendation is rather odd: it's somewhat
+ ;; dangerous and it claims not to work with minibuffer-completion, which
+ ;; makes it much less interesting.
"Convert `...' to `../..', `....' to `../../..', etc..
With the following piece of advice, you can make this functionality
available in most of Emacs, with the exception of filename completion
in the minibuffer:
- (defadvice expand-file-name
- (before translate-multiple-dots
- (filename &optional directory) activate)
- (setq filename (eshell-expand-multiple-dots filename)))"
+ (advice-add 'expand-file-name :around #'my-expand-multiple-dots)
+ (defun my-expand-multiple-dots (orig-fun filename &rest args)
+ (apply orig-fun (eshell-expand-multiple-dots filename) args))"
(while (string-match "\\(?:^\\|/\\)\\.\\.\\(\\.+\\)\\(?:$\\|/\\)" path)
(let* ((extra-dots (match-string 1 path))
(len (length extra-dots))