comparison lisp/info.el @ 929:27262a6c632a

*** empty log message ***
author Eric S. Raymond <esr@snark.thyrsus.com>
date Tue, 04 Aug 1992 16:49:42 +0000
parents 20674ae6bf52
children 1dac458b5117
comparison
equal deleted inserted replaced
928:a95dc7876025 929:27262a6c632a
327 (if (and (equal (nth 0 (car hl)) Info-current-file) 327 (if (and (equal (nth 0 (car hl)) Info-current-file)
328 (equal (nth 1 (car hl)) Info-current-node)) 328 (equal (nth 1 (car hl)) Info-current-node))
329 (goto-char (nth 2 (car hl))) 329 (goto-char (nth 2 (car hl)))
330 (Info-restore-point (cdr hl))))) 330 (Info-restore-point (cdr hl)))))
331 331
332 (defun Info-restore-point (hl)
333 "If this node has been visited, restore the point value when we left."
334 (if hl
335 (if (and (equal (nth 0 (car hl)) Info-current-file)
336 (equal (nth 1 (car hl)) Info-current-node))
337 (goto-char (nth 2 (car hl)))
338 (Info-restore-point (cdr hl)))))
339
332 (defvar Info-last-search nil 340 (defvar Info-last-search nil
333 "Default regexp for \\<info-mode-map>\\[Info-search] command to search for.") 341 "Default regexp for \\<info-mode-map>\\[Info-search] command to search for.")
334 342
335 (defun Info-search (regexp) 343 (defun Info-search (regexp)
336 "Search for REGEXP, starting from point, and select node it's found in." 344 "Search for REGEXP, starting from point, and select node it's found in."
704 "Exit Info by selecting some other buffer." 712 "Exit Info by selecting some other buffer."
705 (interactive) 713 (interactive)
706 (switch-to-buffer (prog1 (other-buffer (current-buffer)) 714 (switch-to-buffer (prog1 (other-buffer (current-buffer))
707 (bury-buffer (current-buffer))))) 715 (bury-buffer (current-buffer)))))
708 716
717 (defun Info-next-menu-item ()
718 (interactive)
719 (save-excursion
720 (forward-line -1)
721 (search-forward "\n* menu:" nil t)
722 (or (search-forward "\n* " nil t)
723 (error "No more items in menu"))
724 (Info-goto-node (Info-extract-menu-node-name))))
725
726 (defun Info-last-menu-item ()
727 (interactive)
728 (save-excursion
729 (forward-line 1)
730 (search-backward "\n* menu:" nil t)
731 (or (search-backward "\n* " nil t)
732 (error "No previous items in menu"))
733 (Info-goto-node (Info-extract-menu-node-name))))
734
735 (defmacro no-error (&rest body)
736 (list 'condition-case nil (cons 'progn (append body '(t))) '(error nil)))
737
738 (defun Info-next-preorder ()
739 "Go to the next node, popping up a level if there is none."
740 (interactive)
741 (cond ((no-error (Info-next-menu-item)) )
742 ((no-error (Info-up)) (forward-line 1))
743 (t (error "No more nodes"))))
744
745 (defun Info-last-preorder ()
746 "Go to the last node, popping up a level if there is none."
747 (interactive)
748 (cond ((no-error (Info-last-menu-item)) )
749 ((no-error (Info-up)) (forward-line -1))
750 (t (error "No previous nodes"))))
751
752 (defun Info-scroll-up ()
753 "Read the next screen. If end of buffer is visible, go to next entry."
754 (interactive)
755 (if (pos-visible-in-window-p (point-max))
756 (Info-next-preorder)
757 (scroll-up))
758 )
759
760 (defun Info-scroll-down ()
761 "Read the previous screen. If start of buffer is visible, go to last entry."
762 (interactive)
763 (if (pos-visible-in-window-p (point-min))
764 (Info-last-preorder)
765 (scroll-down))
766 )
767
709 (defun Info-undefined () 768 (defun Info-undefined ()
710 "Make command be undefined in Info." 769 "Make command be undefined in Info."
711 (interactive) 770 (interactive)
712 (ding)) 771 (ding))
713 772
802 (if Info-mode-map 861 (if Info-mode-map
803 nil 862 nil
804 (setq Info-mode-map (make-keymap)) 863 (setq Info-mode-map (make-keymap))
805 (suppress-keymap Info-mode-map) 864 (suppress-keymap Info-mode-map)
806 (define-key Info-mode-map "." 'beginning-of-buffer) 865 (define-key Info-mode-map "." 'beginning-of-buffer)
807 (define-key Info-mode-map " " 'scroll-up) 866 (define-key Info-mode-map " " 'Info-scroll-up)
867 (define-key Info-mode-map "\C-m" 'Info-next-preorder)
808 (define-key Info-mode-map "1" 'Info-first-menu-item) 868 (define-key Info-mode-map "1" 'Info-first-menu-item)
809 (define-key Info-mode-map "2" 'Info-second-menu-item) 869 (define-key Info-mode-map "2" 'Info-second-menu-item)
810 (define-key Info-mode-map "3" 'Info-third-menu-item) 870 (define-key Info-mode-map "3" 'Info-third-menu-item)
811 (define-key Info-mode-map "4" 'Info-fourth-menu-item) 871 (define-key Info-mode-map "4" 'Info-fourth-menu-item)
812 (define-key Info-mode-map "5" 'Info-fifth-menu-item) 872 (define-key Info-mode-map "5" 'Info-fifth-menu-item)