done)))
(- (buffer-size) (forward-line (buffer-size)))))))
-(defun line-number-at-pos (&optional pos absolute-p)
- "Return buffer line number at position POS.
+(defun line-number-at-pos (&optional pos)
+ "Return (narrowed) buffer line number at position POS.
If POS is nil, use current buffer location.
-
-If ABSOLUTE-P is nil, the default, counting starts
-at (point-min), so the value refers to the contents of the
-accessible portion of the (potentially narrowed) buffer. If
-ABSOLUTE-P is non-nil, ignore any narrowing and return the
-absolute line number."
- (save-restriction
- (when absolute-p
- (widen))
- (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)))))))
+Counting starts at (point-min), so the value refers
+to the contents of the accessible portion of the buffer."
+ (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)
"Print info on cursor position (on screen and within buffer).
(call-interactively #'eval-expression)
(should (equal (current-message) "66 (#o102, #x42, ?B)"))))))
-(ert-deftest line-number-at-pos-in-widen-buffer ()
- (let ((target-line 3))
- (with-temp-buffer
- (insert "a\nb\nc\nd\n")
- (goto-char (point-min))
- (forward-line (1- target-line))
- (should (equal (line-number-at-pos) target-line))
- (should (equal (line-number-at-pos nil t) target-line)))))
-
-(ert-deftest line-number-at-pos-in-narrow-buffer ()
- (let ((target-line 3))
- (with-temp-buffer
- (insert "a\nb\nc\nd\n")
- (goto-char (point-min))
- (forward-line (1- target-line))
- (narrow-to-region (line-beginning-position) (line-end-position))
- (should (equal (line-number-at-pos) 1))
- (should (equal (line-number-at-pos nil t) target-line)))))
-
-(ert-deftest line-number-at-pos-keeps-restriction ()
- (with-temp-buffer
- (insert "a\nb\nc\nd\n")
- (goto-char (point-min))
- (forward-line 2)
- (narrow-to-region (line-beginning-position) (line-end-position))
- (should (equal (line-number-at-pos) 1))
- (line-number-at-pos nil t)
- (should (equal (line-number-at-pos) 1))))
-
-(ert-deftest line-number-at-pos-keeps-point ()
- (let (pos)
- (with-temp-buffer
- (insert "a\nb\nc\nd\n")
- (goto-char (point-min))
- (forward-line 2)
- (setq pos (point))
- (line-number-at-pos)
- (line-number-at-pos nil t)
- (should (equal pos (point))))))
-
-(ert-deftest line-number-at-pos-when-passing-point ()
- (let (pos)
- (with-temp-buffer
- (insert "a\nb\nc\nd\n")
- (should (equal (line-number-at-pos 1) 1))
- (should (equal (line-number-at-pos 3) 2))
- (should (equal (line-number-at-pos 5) 3))
- (should (equal (line-number-at-pos 7) 4)))))
-
(provide 'simple-test)
;;; simple-test.el ends here