Mercurial > emacs
changeset 83810:5ad1e235d4fa
James Wright <james at chumsley.org>
(eshell/info): New function.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Fri, 31 Aug 2007 08:08:37 +0000 |
parents | 1b3f6edd2612 |
children | 3f3a72ace3c3 |
files | lisp/eshell/em-unix.el |
diffstat | 1 files changed, 29 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/eshell/em-unix.el Fri Aug 31 07:39:07 2007 +0000 +++ b/lisp/eshell/em-unix.el Fri Aug 31 08:08:37 2007 +0000 @@ -168,6 +168,35 @@ (put 'eshell/man 'eshell-no-numeric-conversions t) +(defun eshell/info (&rest args) + "Runs the info command in-frame with the same behaviour as command-line `info', ie: + 'info' => goes to top info window + 'info arg1' => IF arg1 is a file, then visits arg1 + 'info arg1' => OTHERWISE goes to top info window and then menu item arg1 + 'info arg1 arg2' => does action for arg1 (either visit-file or menu-item) and then menu item arg2 + etc." + (require 'info) + (let ((file (cond + ((not (stringp (car args))) + nil) + ((file-exists-p (expand-file-name (car args))) + (expand-file-name (car args))) + ((file-exists-p (concat (expand-file-name (car args)) ".info")) + (concat (expand-file-name (car args)) ".info"))))) + + ;; If the first arg is a file, then go to that file's Top node + ;; Otherwise, go to the global directory + (if file + (progn + (setq args (cdr args)) + (Info-find-node file "Top")) + (Info-directory)) + + ;; Treat all remaining args as menu references + (while args + (Info-menu (car args)) + (setq args (cdr args))))) + (defun eshell-remove-entries (path files &optional top-level) "From PATH, remove all of the given FILES, perhaps interactively." (while files