summaryrefslogtreecommitdiff
path: root/lisp/man.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2005-07-23 22:51:58 +0000
committerRichard M. Stallman <rms@gnu.org>2005-07-23 22:51:58 +0000
commit55fb4ff7a72385327061e1b90f70d4c4236e9730 (patch)
tree4f6d5eee20337aae93748bcb0cf2bf039f719867 /lisp/man.el
parent69517e25dcf6eac43c13d53f22778798e0f9a2e0 (diff)
downloademacs-55fb4ff7a72385327061e1b90f70d4c4236e9730.tar.gz
(Man-bgproc-sentinel): Check here for failure to find
any man page in the output, and report the error here. (Man-arguments): Make it permanent local. (Man-goto-page): New arg NOERROR. Never kill the current buffer. (Man-mode): Pass t for NOERROR.
Diffstat (limited to 'lisp/man.el')
-rw-r--r--lisp/man.el53
1 files changed, 29 insertions, 24 deletions
diff --git a/lisp/man.el b/lisp/man.el
index cb62aa65e94..70304d32043 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -352,6 +352,7 @@ Otherwise, the value is whatever the function
(make-variable-buffer-local 'Man-page-mode-string)
(make-variable-buffer-local 'Man-original-frame)
(make-variable-buffer-local 'Man-arguments)
+(put 'Man-arguments 'permanent-local t)
(setq-default Man-sections-alist nil)
(setq-default Man-refpages-alist nil)
@@ -1005,8 +1006,15 @@ manpage command."
(if Man-fontify-manpage-flag
(Man-fontify-manpage)
(Man-cleanup-manpage))
+
(run-hooks 'Man-cooked-hook)
- (Man-mode)
+ (Man-mode)
+
+ (if (not Man-page-list)
+ (let ((args Man-arguments))
+ (kill-buffer (current-buffer))
+ (error "Can't find the %s manpage" args)))
+
(set-buffer-modified-p nil)
))
;; Restore case-fold-search before calling
@@ -1082,7 +1090,7 @@ The following key bindings are currently in effect in the buffer:
(Man-build-page-list)
(Man-strip-page-headers)
(Man-unindent)
- (Man-goto-page 1)
+ (Man-goto-page 1 t)
(run-mode-hooks 'Man-mode-hook))
(defsubst Man-build-section-alist ()
@@ -1342,35 +1350,32 @@ Specify which REFERENCE to use; default is based on word at point."
(interactive)
(quit-window))
-(defun Man-goto-page (page)
+(defun Man-goto-page (page noerror)
"Go to the manual page on page PAGE."
(interactive
(if (not Man-page-list)
- (let ((args Man-arguments))
- (kill-buffer (current-buffer))
- (error "Can't find the %s manpage" args))
+ (error "Not a man page buffer")
(if (= (length Man-page-list) 1)
(error "You're looking at the only manpage in the buffer")
(list (read-minibuffer (format "Go to manpage [1-%d]: "
(length Man-page-list)))))))
- (if (not Man-page-list)
- (let ((args Man-arguments))
- (kill-buffer (current-buffer))
- (error "Can't find the %s manpage" args)))
- (if (or (< page 1)
- (> page (length Man-page-list)))
- (error "No manpage %d found" page))
- (let* ((page-range (nth (1- page) Man-page-list))
- (page-start (car page-range))
- (page-end (car (cdr page-range))))
- (setq Man-current-page page
- Man-page-mode-string (Man-make-page-mode-string))
- (widen)
- (goto-char page-start)
- (narrow-to-region page-start page-end)
- (Man-build-section-alist)
- (Man-build-references-alist)
- (goto-char (point-min))))
+ (if (and (not Man-page-list) (not noerror))
+ (error "Not a man page buffer"))
+ (when Man-page-list
+ (if (or (< page 1)
+ (> page (length Man-page-list)))
+ (error "No manpage %d found" page))
+ (let* ((page-range (nth (1- page) Man-page-list))
+ (page-start (car page-range))
+ (page-end (car (cdr page-range))))
+ (setq Man-current-page page
+ Man-page-mode-string (Man-make-page-mode-string))
+ (widen)
+ (goto-char page-start)
+ (narrow-to-region page-start page-end)
+ (Man-build-section-alist)
+ (Man-build-references-alist)
+ (goto-char (point-min)))))
(defun Man-next-manpage ()