:type '(repeat directory)
:group 'info)
-(defcustom Info-scroll-prefer-subnodes t
+(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]
(other :tag "Replace only tag" tag))
:group 'info)
+(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
+file, so be prepared for a few surprises if you enable this feature."
+ :version "21.4"
+ :type 'boolean
+ :group 'info)
+
(defcustom Info-mode-hook
;; Try to obey obsolete Info-fontify settings.
(unless (and (boundp 'Info-fontify) (null Info-fontify))
(skip-chars-forward " \t\n")
(let ((beg (point))
str)
- (while (not (looking-at ":*[,.;() \t\n]"))
- (skip-chars-forward "^:")
- (forward-char 1))
+ (while (progn
+ (skip-chars-forward "^:")
+ (forward-char 1)
+ (not (looking-at ":*[,.;() \t\n]"))))
(setq str
(if (looking-at ":")
(buffer-substring-no-properties beg (1- (point)))
"Add the face `info-menu-header' to any header before a menu entry."
(save-excursion
(goto-char (point-min))
- (when (re-search-forward "\\* Menu:" nil t)
+ (when (re-search-forward "^\\* Menu:" nil t)
(put-text-property (match-beginning 0) (match-end 0)
'font-lock-face 'info-menu-header)
(while (re-search-forward "\n\n\\([^*\n ].*\\)\n\n?[*]" nil t)
(goto-char start)
(skip-syntax-backward " ")
(setq other-tag
- (cond
- ((<= (point) (point-min))
- "See ")
- ((memq (char-before) '(nil ?\. ?! ))
- "See ")
- ((memq (char-before) '( ?\( ?\[ ?\{ ?\, ?\; ?\: ))
- "see ")))
+ (cond ((memq (char-before) '(nil ?\. ?! ??))
+ "See ")
+ ((memq (char-before) '(?\, ?\; ?\: ?-))
+ "see ")
+ ((memq (char-before) '(?\( ?\[ ?\{))
+ ;; Check whether the paren is preceded by
+ ;; an end of sentence
+ (skip-syntax-backward " (")
+ (if (memq (char-before) '(nil ?\. ?! ??))
+ "See "
+ "see "))
+ ((save-match-data (looking-at "\n\n"))
+ "See ")))
(goto-char next))
(if hide-tag
(add-text-properties (match-beginning 1) (match-end 1)
(save-excursion
(goto-char (match-beginning 1))
(insert other-tag)))
- (when (or hide-tag (eq Info-hide-note-references t))
+ (when (and Info-refill-paragraphs
+ (or hide-tag (eq Info-hide-note-references t)))
(push (set-marker (make-marker) start)
paragraph-markers)))))
- (let ((fill-nobreak-invisible t)
- (fill-individual-varying-indent nil)
- (paragraph-start "\f\\|[ \t]*[-*]\\|[ \t]*$")
- (paragraph-separate ".*\\.[ \t]*\n[ \t]\\|[ \t]*[-*]\\|[ \t\f]*$")
- (adaptive-fill-mode nil))
- (goto-char (point-max))
- (while paragraph-markers
- (let ((m (car paragraph-markers)))
- (setq paragraph-markers (cdr paragraph-markers))
- (when (< m (point))
- (goto-char m)
- (beginning-of-line)
- (let ((beg (point)))
- (when (zerop (forward-paragraph))
- (fill-individual-paragraphs beg (point) nil nil)
- (goto-char beg))))
- (set-marker m nil))))
+ (when (and Info-refill-paragraphs
+ paragraph-markers)
+ (let ((fill-nobreak-invisible t)
+ (fill-individual-varying-indent nil)
+ (paragraph-start "\f\\|[ \t]*[-*]\\|[ \t]*$")
+ (paragraph-separate ".*\\.[ \t]*\n[ \t]\\|[ \t]*[-*]\\|[ \t\f]*$")
+ (adaptive-fill-mode nil))
+ (goto-char (point-max))
+ (while paragraph-markers
+ (let ((m (car paragraph-markers)))
+ (setq paragraph-markers (cdr paragraph-markers))
+ (when (< m (point))
+ (goto-char m)
+ (beginning-of-line)
+ (let ((beg (point)))
+ (when (zerop (forward-paragraph))
+ (fill-individual-paragraphs beg (point) nil nil)
+ (goto-char beg))))
+ (set-marker m nil)))))
(goto-char (point-min))
(when (and (search-forward "\n* Menu:" nil t)