Fix 'what-page'
* lisp/textmodes/page.el (page--what-page): Adjust for 1st line on page, and use 'count-lines' again. (Bug#68215) * test/lisp/textmodes/page-tests.el (page-tests-what-page): Update test.
This commit is contained in:
parent
9b8b352ebc
commit
740953d1a2
2 changed files with 10 additions and 4 deletions
|
@ -159,21 +159,23 @@ point, respectively."
|
|||
total before after)))
|
||||
|
||||
(defun page--what-page ()
|
||||
"Return a list of the page and line number of point."
|
||||
"Return a list of the page and line number of point.
|
||||
The line number is relative to the start of the page."
|
||||
(save-restriction
|
||||
(widen)
|
||||
(save-excursion
|
||||
(let ((count 1)
|
||||
(adjust (if (or (bolp) (looking-back page-delimiter)) 1 0))
|
||||
(opoint (point)))
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward page-delimiter opoint t)
|
||||
(when (= (match-beginning 0) (match-end 0))
|
||||
(forward-char))
|
||||
(setq count (1+ count)))
|
||||
(list count (line-number-at-pos opoint))))))
|
||||
(list count (+ adjust (count-lines (point) opoint)))))))
|
||||
|
||||
(defun what-page ()
|
||||
"Print page and line number of point."
|
||||
"Display the page number, and the line number within that page."
|
||||
(interactive)
|
||||
(apply #'message (cons "Page %d, line %d" (page--what-page))))
|
||||
|
||||
|
|
|
@ -106,10 +106,14 @@
|
|||
(insert "foo\n\nbar\n\nbaz")
|
||||
(goto-char (point-min))
|
||||
(should (equal (page--what-page) '(1 1)))
|
||||
(forward-char)
|
||||
(should (equal (page--what-page) '(1 1)))
|
||||
(forward-page)
|
||||
(should (equal (page--what-page) '(2 1)))
|
||||
(next-line)
|
||||
(should (equal (page--what-page) '(2 2)))
|
||||
(forward-page)
|
||||
(should (equal (page--what-page) '(3 4)))))
|
||||
(should (equal (page--what-page) '(3 1)))))
|
||||
|
||||
|
||||
;;; page-tests.el ends here
|
||||
|
|
Loading…
Add table
Reference in a new issue