1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-30 08:09:04 +00:00

Replace info' with upper-case Info' where appropriate.

(info-title-1, info-title-2, info-title-3, info-title-4)
(info-menu-header): Move up face definitions.
(info-menu-star): Rename from `info-menu-5'.
(Info-fontify-node): Replace `info-menu-5' with `info-menu-star'.
(Info-fontify-visited-nodes): Fix docstring.
(Info-hide-note-references): Fix docstring.
(Info-up, Info-next-reference, Info-prev-reference): Put cursor on
menu items in the same way as on cross-references.
(info-apropos): Fix sorting order and formatting to be like in the
stand-alone Info browser.  Display error messages for 1 sec.
(Info-mode-map): Move down `c' key binding.  Bind `^' to `Info-up'.
(Info-mode-menu): Remove item for `Info-search-case-sensitively'
from the menu bar.
(Info-insert-dir): Restore point after calling `insert-buffer-substring'.
This commit is contained in:
Juri Linkov 2005-08-09 08:43:02 +00:00
parent 5a9807a8bd
commit 185cff9545

View File

@ -25,7 +25,7 @@
;;; Commentary:
;; Note that nowadays we expect info files to be made using makeinfo.
;; Note that nowadays we expect Info files to be made using makeinfo.
;; In particular we make these assumptions:
;; - a menu item MAY contain colons but not colon-space ": "
;; - a menu item ending with ": " (but not ":: ") is an index entry
@ -44,20 +44,20 @@
(defvar Info-history nil
"Stack of info nodes user has visited.
"Stack of Info nodes user has visited.
Each element of the stack is a list (FILENAME NODENAME BUFFERPOS).")
(defvar Info-history-forward nil
"Stack of info nodes user has visited with `Info-history-back' command.
"Stack of Info nodes user has visited with `Info-history-back' command.
Each element of the stack is a list (FILENAME NODENAME BUFFERPOS).")
(defvar Info-history-list nil
"List of all info nodes user has visited.
"List of all Info nodes user has visited.
Each element of the list is a list (FILENAME NODENAME).")
(defcustom Info-enable-edit nil
"*Non-nil means the \\<Info-mode-map>\\[Info-edit] command in Info can edit the current node.
This is convenient if you want to write info files by hand.
This is convenient if you want to write Info files by hand.
However, we recommend that you not do this.
It is better to write a Texinfo file and generate the Info file from that,
because that gives you a printed manual as well."
@ -76,11 +76,57 @@ The Lisp code is executed when the node is selected.")
"Face for Info node names."
:group 'info)
(defface info-menu-5
(defface info-title-1
'((((type tty pc) (class color) (background light))
:foreground "green" :weight bold)
(((type tty pc) (class color) (background dark))
:foreground "yellow" :weight bold)
(t :height 1.2 :inherit info-title-2))
"Face for info titles at level 1."
:group 'info)
;; backward-compatibility alias
(put 'Info-title-1-face 'face-alias 'info-title-1)
(defface info-title-2
'((((type tty pc) (class color)) :foreground "lightblue" :weight bold)
(t :height 1.2 :inherit info-title-3))
"Face for info titles at level 2."
:group 'info)
;; backward-compatibility alias
(put 'Info-title-2-face 'face-alias 'info-title-2)
(defface info-title-3
'((((type tty pc) (class color)) :weight bold)
(t :height 1.2 :inherit info-title-4))
"Face for info titles at level 3."
:group 'info)
;; backward-compatibility alias
(put 'Info-title-3-face 'face-alias 'info-title-3)
(defface info-title-4
'((((type tty pc) (class color)) :weight bold)
(t :weight bold :inherit variable-pitch))
"Face for info titles at level 4."
:group 'info)
;; backward-compatibility alias
(put 'Info-title-4-face 'face-alias 'info-title-4)
(defface info-menu-header
'((((type tty pc))
:underline t
:weight bold)
(t
:inherit variable-pitch
:weight bold))
"Face for headers in Info menus."
:group 'info)
(defface info-menu-star
'((((class color)) :foreground "red1")
(t :underline t))
"Face for every third `*' in an Info menu."
:group 'info)
(put 'info-menu-5 'face-alias 'info-menu-star)
(defface info-xref
'((((min-colors 88)
@ -101,7 +147,7 @@ The Lisp code is executed when the node is selected.")
:group 'info)
(defcustom Info-fontify-visited-nodes t
"*Non-nil means to fontify visited nodes in a different face."
"*Non-nil to fontify references to visited nodes in `info-xref-visited' face."
:version "22.1"
:type 'boolean
:group 'info)
@ -165,6 +211,7 @@ These directories are searched after those in `Info-directory-list'."
(defcustom Info-scroll-prefer-subnodes nil
"*If non-nil, \\<Info-mode-map>\\[Info-scroll-up] in a menu visits subnodes.
If this is non-nil, and you scroll far enough in a node that its menu
appears on the screen, the next \\<Info-mode-map>\\[Info-scroll-up]
moves to a subnode indicated by the following menu item. This means
@ -180,7 +227,8 @@ when you hit the end of the current node."
(defcustom Info-hide-note-references t
"*If non-nil, hide the tag and section reference in *note and * menu items.
If value is non-nil but not `hide', also replaces the \"*note\" with \"see\".
If value is non-nil but not t or `hide', the reference section is still shown."
If value is non-nil but not t or `hide', the reference section is still shown.
`nil' completely disables this feature."
:version "22.1"
:type '(choice (const :tag "No hiding" nil)
(const :tag "Replace tag and hide reference" t)
@ -190,7 +238,7 @@ If value is non-nil but not t or `hide', the reference section is still shown."
(defcustom Info-refill-paragraphs nil
"*If non-nil, attempt to refill paragraphs with hidden references.
This refilling may accidentally remove explicit line breaks in the info
This refilling may accidentally remove explicit line breaks in the Info
file, so be prepared for a few surprises if you enable this feature."
:version "22.1"
:type 'boolean
@ -247,7 +295,7 @@ Can also be t when using `Info-on-current-buffer'.")
(defvar Info-current-subfile nil
"Info subfile that is actually in the *info* buffer now.
nil if current info file is not split into subfiles.")
nil if current Info file is not split into subfiles.")
(defvar Info-current-node nil
"Name of node that Info is now looking at, or nil.")
@ -357,7 +405,7 @@ be last in the list.")
(not (file-directory-p filename))))
(defun info-insert-file-contents (filename &optional visit)
"Insert the contents of an info file in the current buffer.
"Insert the contents of an Info file in the current buffer.
Do the right thing if the file has been compressed or zipped."
(let* ((tail Info-suffix-list)
(lfn (if (fboundp 'msdos-long-file-names)
@ -632,12 +680,12 @@ just return nil (no error)."
filename)))
(defun Info-find-node (filename nodename &optional no-going-back)
"Go to an info node specified as separate FILENAME and NODENAME.
"Go to an Info node specified as separate FILENAME and NODENAME.
NO-GOING-BACK is non-nil if recovering from an error in this function;
it says do not attempt further (recursive) error recovery."
(info-initialize)
(setq filename (Info-find-file filename))
;; Go into info buffer.
;; Go into Info buffer.
(or (eq major-mode 'Info-mode) (pop-to-buffer "*info*"))
;; Record the node we are leaving.
(if (and Info-current-file (not no-going-back))
@ -647,7 +695,7 @@ it says do not attempt further (recursive) error recovery."
(Info-find-node-2 filename nodename no-going-back))
(defun Info-on-current-buffer (&optional nodename)
"Use the `Info-mode' to browse the current info buffer.
"Use the `Info-mode' to browse the current Info buffer.
If a prefix arg is provided, it queries for the NODENAME which
else defaults to \"Top\"."
(interactive
@ -665,7 +713,7 @@ else defaults to \"Top\"."
;; makeinfo-buffer) out of the way of normal operations.
;;
(defun Info-revert-find-node (filename nodename)
"Go to an info node FILENAME and NODENAME, re-reading disk contents.
"Go to an Info node FILENAME and NODENAME, re-reading disk contents.
When *info* is already displaying FILENAME and NODENAME, the window position
is preserved, if possible."
(pop-to-buffer "*info*")
@ -1028,7 +1076,7 @@ a case-insensitive match is tried."
;; Insert the entire original dir file as a start; note that we've
;; already saved its default directory to use as the default
;; directory for the whole concatenation.
(insert-buffer-substring buffer)
(goto-char (prog1 (point) (insert-buffer-substring buffer)))
;; Look at each of the other buffers one by one.
(dolist (other others)
@ -1287,7 +1335,7 @@ any double quotes or backslashes must be escaped (\\\",\\\\)."
(set-buffer-modified-p nil)))
(defun Info-select-node ()
"Select the info node that point is in."
"Select the Info node that point is in."
;; Bind this in case the user sets it to nil.
(let ((case-fold-search t))
(save-excursion
@ -1343,20 +1391,20 @@ any double quotes or backslashes must be escaped (\\\",\\\\)."
") "
(or Info-current-node ""))))))
;; Go to an info node specified with a filename-and-nodename string
;; Go to an Info node specified with a filename-and-nodename string
;; of the sort that is found in pointers in nodes.
;; Don't autoload this function: the correct entry point for other packages
;; to use is `info'. --Stef
;; ;;;###autoload
(defun Info-goto-node (nodename &optional fork)
"Go to info node named NODENAME. Give just NODENAME or (FILENAME)NODENAME.
"Go to Info node named NODENAME. Give just NODENAME or (FILENAME)NODENAME.
If NODENAME is of the form (FILENAME)NODENAME, the node is in the Info file
FILENAME; otherwise, NODENAME should be in the current Info file (or one of
its sub-files).
Completion is available, but only for node names in the current Info file.
If FORK is non-nil (interactively with a prefix arg), show the node in
a new info buffer.
a new Info buffer.
If FORK is a string, it is the name to use for the new buffer."
(interactive (list (Info-read-node-name "Go to node: ") current-prefix-arg))
(info-initialize)
@ -1402,7 +1450,7 @@ PATH-AND-SUFFIXES is a pair of lists, (DIRECTORIES . SUFFIXES)."
;; include it.
(and (or (null (file-name-extension file))
(string-match suffix file))
;; But exclude subfiles of split info files.
;; But exclude subfiles of split Info files.
(not (string-match "-[0-9]+\\'" file))
;; And exclude backup files.
(not (string-match "~\\'" file))
@ -1822,7 +1870,7 @@ If SAME-FILE is non-nil, do not move to a different Info file."
(concat "\n\\* +\\(" (regexp-quote old-node)
":\\|[^:]+: +" (regexp-quote old-node) "\\)"))
nil t))
(beginning-of-line)
(progn (beginning-of-line) (if (looking-at "^\\* ") (forward-char 2)))
(goto-char p)
(Info-restore-point Info-history))))
@ -2011,7 +2059,7 @@ Table of contents is created from the tree structure of menus."
"Follow cross reference named FOOTNOTENAME to the node it refers to.
FOOTNOTENAME may be an abbreviation of the reference name.
If FORK is non-nil (interactively with a prefix arg), show the node in
a new info buffer. If FORK is a string, it is the name to use for the
a new Info buffer. If FORK is a string, it is the name to use for the
new buffer."
(interactive
(let ((completion-ignore-case t)
@ -2222,7 +2270,7 @@ Because of ambiguities, this should be concatenated with something like
The menu item should one of those listed in the current node's menu.
Completion is allowed, and the default menu item is the one point is on.
If FORK is non-nil (interactively with a prefix arg), show the node in
a new info buffer. If FORK is a string, it is the name to use for the
a new Info buffer. If FORK is a string, it is the name to use for the
new buffer."
(interactive
(let ((completions '())
@ -2547,7 +2595,9 @@ parent node."
(if (looking-at "\\* Menu:")
(if recur
(error "No cross references in this node")
(Info-next-reference t)))))
(Info-next-reference t))
(if (looking-at "^\\* ")
(forward-char 2)))))
(defun Info-prev-reference (&optional recur)
"Move cursor to the previous cross-reference or menu item in the node."
@ -2566,7 +2616,9 @@ parent node."
(if (looking-at "\\* Menu:")
(if recur
(error "No cross references in this node")
(Info-prev-reference t)))))
(Info-prev-reference t))
(if (looking-at "^\\* ")
(forward-char 2)))))
(defvar Info-index-nodes nil
"Alist of cached index node names of visited Info files.
@ -2800,25 +2852,29 @@ Build a menu of the possible matches."
(goto-char (point-min))
(re-search-forward "\\* Menu: *\n" nil t)
(while (re-search-forward "\\*.*: *(\\([^)]+\\))" nil t)
(add-to-list 'manuals (match-string 1)))
(dolist (manual manuals)
(setq manuals (cons (match-string 1) manuals)))
(dolist (manual (nreverse manuals))
(message "Searching %s" manual)
(if (setq nodes (Info-index-nodes (Info-find-file manual)))
(condition-case nil
(condition-case err
(if (setq nodes (Info-index-nodes (Info-find-file manual)))
(save-excursion
(Info-find-node manual (car nodes))
(while
(progn
(goto-char (point-min))
(while (re-search-forward pattern nil t)
(add-to-list 'matches
(list manual
(match-string-no-properties 1)
(match-string-no-properties 2)
(match-string-no-properties 3))))
(setq matches
(cons (list manual
(match-string-no-properties 1)
(match-string-no-properties 2)
(match-string-no-properties 3))
matches)))
(setq nodes (cdr nodes) node (car nodes)))
(Info-goto-node node)))
(error nil)))))
(Info-goto-node node))))
(error
(message "%s" (if (eq (car-safe err) 'error)
(nth 1 err) err))
(sit-for 1 t)))))
(Info-goto-node (concat "(" current-file ")" current-node))
(setq Info-history ohist
Info-history-list ohist-list)
@ -2828,8 +2884,8 @@ Build a menu of the possible matches."
(with-current-buffer (get-buffer-create " *info-apropos*")
(erase-buffer)
(insert "\n\^_\nFile: apropos, Node: Index, Up: (dir)\n")
(insert "* Menu: \nNodes whose indices contain \"" string "\"\n\n")
(dolist (entry matches)
(insert "* Menu: \nNodes whose indices contain `" string "':\n\n")
(dolist (entry (nreverse matches))
(insert
(format "* %-38s (%s)%s.%s\n"
(concat (nth 1 entry) " [" (nth 0 entry) "]:")
@ -3002,7 +3058,6 @@ if point is in a menu item description, follow that menu item."
(define-key Info-mode-map "<" 'Info-top-node)
(define-key Info-mode-map ">" 'Info-final-node)
(define-key Info-mode-map "b" 'beginning-of-buffer)
(define-key Info-mode-map "c" 'Info-copy-current-node-name)
(define-key Info-mode-map "d" 'Info-directory)
(define-key Info-mode-map "e" 'Info-edit)
(define-key Info-mode-map "f" 'Info-follow-reference)
@ -3024,8 +3079,11 @@ if point is in a menu item description, follow that menu item."
(define-key Info-mode-map "t" 'Info-top-node)
(define-key Info-mode-map "T" 'Info-toc)
(define-key Info-mode-map "u" 'Info-up)
;; For consistency with dired-copy-filename-as-kill.
;; `w' for consistency with `dired-copy-filename-as-kill'.
(define-key Info-mode-map "w" 'Info-copy-current-node-name)
(define-key Info-mode-map "c" 'Info-copy-current-node-name)
;; `^' for consistency with `dired-up-directory'.
(define-key Info-mode-map "^" 'Info-up)
(define-key Info-mode-map "," 'Info-index-next)
(define-key Info-mode-map "\177" 'Info-scroll-down)
(define-key Info-mode-map [mouse-2] 'Info-mouse-follow-nearest-node)
@ -3040,7 +3098,7 @@ if point is in a menu item description, follow that menu item."
(easy-menu-define
Info-mode-menu Info-mode-map
"Menu for info files."
"Menu for Info files."
'("Info"
["Up" Info-up :active (Info-check-pointer "up")
:help "Go up in the Info tree"]
@ -3062,8 +3120,6 @@ if point is in a menu item description, follow that menu item."
("Reference" ["You should never see this" report-emacs-bug t])
["Search..." Info-search
:help "Search for regular expression in this Info file"]
["Search Case-Sensitively..." Info-search-case-sensitively
:help "Search for regular expression case sensitively"]
["Search Next" Info-search-next
:help "Search for another occurrence of regular expression"]
["Go to Node..." Info-goto-node
@ -3175,12 +3231,12 @@ if point is in a menu item description, follow that menu item."
(defun Info-copy-current-node-name (&optional arg)
"Put the name of the current info node into the kill ring.
The name of the info file is prepended to the node name in parentheses.
"Put the name of the current Info node into the kill ring.
The name of the Info file is prepended to the node name in parentheses.
With a zero prefix arg, put the name inside a function call to `info'."
(interactive "P")
(unless Info-current-node
(error "No current info node"))
(error "No current Info node"))
(let ((node (concat "(" (file-name-nondirectory
(or (and (stringp Info-current-file)
Info-current-file)
@ -3246,7 +3302,7 @@ Moving within a node:
\\[beginning-of-buffer] Go to beginning of node.
Advanced commands:
\\[Info-copy-current-node-name] Put name of current info node in the kill ring.
\\[Info-copy-current-node-name] Put name of current Info node in the kill ring.
\\[clone-buffer] Select a new cloned Info buffer in another window.
\\[Info-edit] Edit contents of selected node.
1 .. 9 Pick first ... ninth item in node's menu.
@ -3356,7 +3412,7 @@ which returns to Info mode for browsing.
Allowed only if variable `Info-enable-edit' is non-nil."
(interactive)
(or Info-enable-edit
(error "Editing info nodes is not enabled"))
(error "Editing Info nodes is not enabled"))
(Info-edit-mode)
(message "%s" (substitute-command-keys
"Editing: Type \\<Info-edit-map>\\[Info-cease-edit] to return to info")))
@ -3418,7 +3474,7 @@ in the first element of the returned list (which is treated specially in
"\\( <[0-9]+>\\)?:\\s *\\(.*\\)\\."
"\\(?:[ \t\n]+(line +\\([0-9]+\\))\\)?"))
(info-file "emacs")) ;default
;; Determine which info file this command is documented in.
;; Determine which Info file this command is documented in.
(if (get command 'info-file)
(setq info-file (get command 'info-file))
;; If it doesn't say explicitly, test its name against
@ -3527,51 +3583,6 @@ the variable `Info-file-list-for-emacs'."
(t
(Info-goto-emacs-command-node command)))))
(defface info-title-1
'((((type tty pc) (class color) (background light))
:foreground "green" :weight bold)
(((type tty pc) (class color) (background dark))
:foreground "yellow" :weight bold)
(t :height 1.2 :inherit info-title-2))
"Face for info titles at level 1."
:group 'info)
;; backward-compatibility alias
(put 'Info-title-1-face 'face-alias 'info-title-1)
(defface info-title-2
'((((type tty pc) (class color)) :foreground "lightblue" :weight bold)
(t :height 1.2 :inherit info-title-3))
"Face for info titles at level 2."
:group 'info)
;; backward-compatibility alias
(put 'Info-title-2-face 'face-alias 'info-title-2)
(defface info-title-3
'((((type tty pc) (class color)) :weight bold)
(t :height 1.2 :inherit info-title-4))
"Face for info titles at level 3."
:group 'info)
;; backward-compatibility alias
(put 'Info-title-3-face 'face-alias 'info-title-3)
(defface info-title-4
'((((type tty pc) (class color)) :weight bold)
(t :weight bold :inherit variable-pitch))
"Face for info titles at level 4."
:group 'info)
;; backward-compatibility alias
(put 'Info-title-4-face 'face-alias 'info-title-4)
(defface info-menu-header
'((((type tty pc))
:underline t
:weight bold)
(t
:inherit variable-pitch
:weight bold))
"Face for headers in Info menus."
:group 'info)
(defun Info-escape-percent (string)
"Double all occurrences of `%' in STRING.
@ -3868,7 +3879,7 @@ Preserve text properties."
(if (and (<= n 9) (zerop (% n 3))) ; visual aids to help with 1-9 keys
(put-text-property (match-beginning 0)
(1+ (match-beginning 0))
'font-lock-face 'info-menu-5)))
'font-lock-face 'info-menu-star)))
(when not-fontified-p
(add-text-properties
(match-beginning 1) (match-end 1)
@ -3962,7 +3973,7 @@ Preserve text properties."
;;; Speedbar support:
;; These functions permit speedbar to display the "tags" in the
;; current info node.
;; current Info node.
(eval-when-compile (require 'speedbar))
(defvar Info-speedbar-key-map nil
@ -4004,7 +4015,7 @@ Preserve text properties."
;;; Info hierarchy display method
;;;###autoload
(defun Info-speedbar-browser ()
"Initialize speedbar to display an info node browser.
"Initialize speedbar to display an Info node browser.
This will add a speedbar major display mode."
(interactive)
(require 'speedbar)
@ -4145,7 +4156,7 @@ BUFFER is the buffer speedbar is requesting buttons for."
"^No `.*' in index$"
"^No cross-reference named"
"^No cross.references in this node$"
"^No current info node$"
"^No current Info node$"
"^No menu in this node$"
"^No more items in menu$"
"^No more nodes$"
@ -4172,7 +4183,7 @@ BUFFER is the buffer speedbar is requesting buttons for."
(defun Info-restore-desktop-buffer (desktop-buffer-file-name
desktop-buffer-name
desktop-buffer-misc)
"Restore an info buffer specified in a desktop file."
"Restore an Info buffer specified in a desktop file."
(let ((first (nth 0 desktop-buffer-misc))
(second (nth 1 desktop-buffer-misc)))
(when (and first second)