Commit f076870a authored by Kim F. Storm's avatar Kim F. Storm
Browse files

(line-at-pos): New defun.

(what-line): Use it.  Optimize by only counting lines in narrowed region once.
parent 455316e2
2004-01-22 Kim F. Storm <storm@cua.dk>
* simple.el (line-at-pos): New defun.
(what-line): Use it. Optimize by only counting lines in narrowed
region once.
2004-01-22 Kenichi Handa <handa@m17n.org> 2004-01-22 Kenichi Handa <handa@m17n.org>
* language/cyrillic.el (ccl-encode-windows-1251-font): Rearrange * language/cyrillic.el (ccl-encode-windows-1251-font): Rearrange
......
...@@ -498,20 +498,15 @@ that uses or sets the mark." ...@@ -498,20 +498,15 @@ that uses or sets the mark."
(defun what-line () (defun what-line ()
"Print the current buffer line number and narrowed line number of point." "Print the current buffer line number and narrowed line number of point."
(interactive) (interactive)
(let ((opoint (point)) start) (let ((opoint (point)) (start (point-min))
(save-excursion (n (line-at-pos)))
(save-restriction (if (= start 1)
(goto-char (point-min)) (message "Line %d" n)
(widen) (save-excursion
(forward-line 0) (save-restriction
(setq start (point)) (widen)
(goto-char opoint) (message "line %d (narrowed line %d)"
(forward-line 0) (+ n (line-at-pos start) -1) n))))))
(if (/= start (point-min))
(message "line %d (narrowed line %d)"
(1+ (count-lines (point-min) (point)))
(1+ (count-lines start (point))))
(message "Line %d" (1+ (count-lines (point-min) (point)))))))))
(defun count-lines (start end) (defun count-lines (start end)
"Return number of lines between START and END. "Return number of lines between START and END.
...@@ -536,6 +531,17 @@ and the greater of them is not at the start of a line." ...@@ -536,6 +531,17 @@ and the greater of them is not at the start of a line."
done))) done)))
(- (buffer-size) (forward-line (buffer-size))))))) (- (buffer-size) (forward-line (buffer-size)))))))
(defun line-at-pos (&optional pos)
"Return (narrowed) buffer line number at position POS.
If POS is nil, use current buffer location."
(let ((opoint (or pos (point))) start)
(save-excursion
(goto-char (point-min))
(setq start (point))
(goto-char opoint)
(forward-line 0)
(1+ (count-lines start (point))))))
(defun what-cursor-position (&optional detail) (defun what-cursor-position (&optional detail)
"Print info on cursor position (on screen and within buffer). "Print info on cursor position (on screen and within buffer).
Also describe the character after point, and give its character code Also describe the character after point, and give its character code
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment