Mercurial > emacs
changeset 37442:f4b209194d8c
(eshell-find-alias-function): Return t in the case where the function
was defined in a file, but not part of an eshell module.
author | John Wiegley <johnw@newartisans.com> |
---|---|
date | Tue, 24 Apr 2001 06:32:19 +0000 |
parents | 565e55bc8630 |
children | 916143472598 |
files | lisp/eshell/esh-cmd.el |
diffstat | 1 files changed, 12 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/eshell/esh-cmd.el Tue Apr 24 06:31:46 2001 +0000 +++ b/lisp/eshell/esh-cmd.el Tue Apr 24 06:32:19 2001 +0000 @@ -1284,20 +1284,21 @@ (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.