[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 0929e06: Improve fontification of footnote referenc
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] master 0929e06: Improve fontification of footnote references in Info buffers |
Date: |
Fri, 21 Oct 2016 10:00:38 +0000 (UTC) |
branch: master
commit 0929e061fb544c0f4c10ff0412a41cf7e8148270
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>
Improve fontification of footnote references in Info buffers
* lisp/info.el (Info-fontify-node): Don't fontify random numbers
in parentheses as if they were footnote references. See
https://lists.gnu.org/archive/html/bug-texinfo/2016-10/msg00007.html
for the details.
---
lisp/info.el | 32 ++++++++++++++++++++++----------
1 file changed, 22 insertions(+), 10 deletions(-)
diff --git a/lisp/info.el b/lisp/info.el
index bb259bd..6b8b369 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -5001,17 +5001,29 @@ first line or header line, and for breadcrumb links.")
;; Fontify footnotes
(goto-char (point-min))
(when (and not-fontified-p (re-search-forward "^[ \t]*-+ Footnotes -+$"
nil t))
- (let ((limit (point)))
+ (let ((limit (point))
+ (fncount 0))
+ ;; How many footnotes do we have in this node?
+ (while (re-search-forward "^ [ \t]*([0-9]+) " nil t)
+ (setq fncount (1+ fncount)))
(goto-char (point-min))
- (while (re-search-forward "\\(([0-9]+)\\)" nil t)
- (add-text-properties (match-beginning 0) (match-end 0)
- `(font-lock-face info-xref
- link t
- mouse-face highlight
- help-echo
- ,(if (< (point) limit)
- "mouse-2: go to footnote definition"
- "mouse-2: go to footnote reference"))))))
+ (while (re-search-forward "\\((\\([0-9]+\\))\\)" nil t)
+ (let ((footnote-num (string-to-number (match-string 2))))
+ ;; Don't fontify parenthesized numbers that cannot
+ ;; possibly be one of this node's footnotes. This still
+ ;; doesn't catch unrelated numbers that happen to be
+ ;; small enough, but in that case they should use
+ ;; "@footnotestyle separate" in the Texinfo sources.
+ (when (and (> footnote-num 0)
+ (<= footnote-num fncount))
+ (add-text-properties (match-beginning 0) (match-end 0)
+ `(font-lock-face info-xref
+ link t
+ mouse-face highlight
+ help-echo
+ ,(if (< (point) limit)
+ "mouse-2: go to footnote definition"
+ "mouse-2: go to footnote
reference"))))))))
;; Hide empty lines at the end of the node.
(goto-char (point-max))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 0929e06: Improve fontification of footnote references in Info buffers,
Eli Zaretskii <=