summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2022-06-09 14:42:31 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2022-06-09 14:43:40 +0200
commit39d2efbfae1dc081258a764f3c47f5f492f38fec (patch)
tree91d8c5ccbe4fa28a45626b1866fb7c1ed3bb4e7c /src
parent64b5fd2e435312346189852013c7504780f7c1d2 (diff)
downloademacs-39d2efbfae1dc081258a764f3c47f5f492f38fec.tar.gz
emacs-39d2efbfae1dc081258a764f3c47f5f492f38fec.tar.bz2
emacs-39d2efbfae1dc081258a764f3c47f5f492f38fec.zip
Make `line-number-at-pos' work more like in earlier Emacs versions
* src/fns.c (Fline_number_at_pos): Allow calling with position outside the region if called with ABSOLUTE non-nil (bug#55847). This isn't announced in the doc string, but makes function compatible with the version in earlier Emacs versions.
Diffstat (limited to 'src')
-rw-r--r--src/fns.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/fns.c b/src/fns.c
index 2c206c62b22..fceab9ba0ca 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -5869,9 +5869,12 @@ from the absolute start of the buffer, disregarding the narrowing. */)
if (!NILP (absolute))
start = BEG_BYTE;
- /* Check that POSITION is in the accessible range of the buffer. */
- if (pos < BEGV || pos > ZV)
+ /* Check that POSITION is in the accessible range of the buffer, or,
+ if we're reporting absolute positions, in the buffer. */
+ if (NILP (absolute) && (pos < BEGV || pos > ZV))
args_out_of_range_3 (make_int (pos), make_int (BEGV), make_int (ZV));
+ else if (!NILP (absolute) && (pos < 1 || pos > Z))
+ args_out_of_range_3 (make_int (pos), make_int (1), make_int (Z));
return make_int (count_lines (start, CHAR_TO_BYTE (pos)) + 1);
}