From c7b1b508e5f614daf0a06ea15d01928d6a303517 Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Tue, 24 Apr 2001 06:33:40 +0000 Subject: [PATCH] (eshell-find-alias-function): Return t in the case where the function was defined in a file, but not part of an eshell module. --- lisp/ChangeLog | 11 +++++++++++ lisp/eshell/esh-cmd.el | 23 ++++++++++++----------- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 78321bfc852..86e4a9d6154 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,14 @@ +2001-04-23 John Wiegley + + * eshell/em-unix.el (eshell/diff): Fixed problems that were + occurring with Emacs 21's diff.el/compile.el interaction layer. + +2001-04-23 Colin Walters + + * eshell/esh-cmd.el (eshell-find-alias-function): Return t in the + case where the function was defined in a file, but not part of an + eshell module. + 2001-04-23 John Wiegley * eshell/em-smart.el (eshell-smart-redisplay): Added some safety diff --git a/lisp/eshell/esh-cmd.el b/lisp/eshell/esh-cmd.el index 7d5a53625f5..24b51a1f6b8 100644 --- a/lisp/eshell/esh-cmd.el +++ b/lisp/eshell/esh-cmd.el @@ -1284,20 +1284,21 @@ COMMAND may result in an alias being executed, or a plain command." (defun eshell-find-alias-function (name) "Check whether a function called `eshell/NAME' exists." (let* ((sym (intern-soft (concat "eshell/" name))) - (file (symbol-file sym)) - module-sym) + (file (symbol-file sym))) + ;; If the function exists, but is defined in an eshell module + ;; that's not currently enabled, don't report it as found (if (and file (string-match "\\(em\\|esh\\)-\\(.*\\)\\(\\.el\\)?\\'" file)) - (setq file (concat "eshell-" (match-string 2 file)))) - (setq module-sym - (and sym file (fboundp 'symbol-file) + (let ((module-sym (intern (file-name-sans-extension - (file-name-nondirectory file))))) - (and sym (functionp sym) - (or (not module-sym) - (eshell-using-module module-sym) - (memq module-sym (eshell-subgroups 'eshell))) - sym))) + (file-name-nondirectory + (concat "eshell-" (match-string 2 file))))))) + (if (and (eshell-using-module module-sym) + (memq module-sym (eshell-subgroups 'eshell))) + sym)) + ;; Otherwise, if it's bound, return it. + (if (functionp sym) + sym)))) (defun eshell-plain-command (command args) "Insert output from a plain COMMAND, using ARGS. -- 2.39.2