aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2019-08-09 16:51:14 +0300
committerEli Zaretskii2019-08-09 16:51:14 +0300
commit495b33bb3858fbb8912f7d357e1d277062b98bcd (patch)
tree4bc87c4936716c91819a7880763f631264fda7bf
parentbf10b8c3e8d8c45be47bb3c529017d3cb5562178 (diff)
downloademacs-495b33bb3858fbb8912f7d357e1d277062b98bcd.tar.gz
emacs-495b33bb3858fbb8912f7d357e1d277062b98bcd.zip
Fix highlighting in man pages displayed by "M-x man"
* lisp/man.el (Man-highlight-references0): Handle the case when a section is divided between 2 or more chunks of text received from the 'man' program. (Bug#36927)
-rw-r--r--lisp/man.el19
1 files changed, 17 insertions, 2 deletions
diff --git a/lisp/man.el b/lisp/man.el
index d52ca2156d2..8858451b384 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -1288,8 +1288,23 @@ default type, `Man-xref-man-page' is used for the buttons."
1288 1288
1289(defun Man-highlight-references0 (start-section regexp button-pos target type) 1289(defun Man-highlight-references0 (start-section regexp button-pos target type)
1290 ;; Based on `Man-build-references-alist' 1290 ;; Based on `Man-build-references-alist'
1291 (when (or (null start-section) 1291 (when (or (null start-section) ;; Search regardless of sections.
1292 (Man-find-section start-section)) 1292 ;; Section header is in this chunk.
1293 (Man-find-section start-section)
1294 ;; Section header was in one of the previous chunks.
1295 (save-excursion
1296 (save-restriction
1297 (let ((orig-pos (point)))
1298 (widen)
1299 (if (Man-find-section start-section)
1300 ;; We are in the right section of the next
1301 ;; section is either not yet in the buffer, or
1302 ;; it starts after the position where we should
1303 ;; start highlighting.
1304 (progn
1305 (forward-line 1)
1306 (or (null (re-search-forward Man-heading-regexp nil t))
1307 (> (point) orig-pos))))))))
1293 (let ((end (if start-section 1308 (let ((end (if start-section
1294 (progn 1309 (progn
1295 (forward-line 1) 1310 (forward-line 1)