(eshell-find-alias-function): Return t in the case where the function

was defined in a file, but not part of an eshell module.
This commit is contained in:
John Wiegley 2001-04-24 06:33:40 +00:00
parent ef59cfc663
commit c7b1b508e5
2 changed files with 23 additions and 11 deletions

View file

@ -1,3 +1,14 @@
2001-04-23 John Wiegley <johnw@gnu.org>
* 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 <walters@cis.ohio-state.edu>
* 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 <johnw@gnu.org>
* eshell/em-smart.el (eshell-smart-redisplay): Added some safety

View file

@ -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.