Subject: bug#36970: 26.2; invalid-read-syntax could print the location of the error

From: Lars Ingebrigtsen <[email-masked]>
Date: Mon, 01 Feb 2021 09:40:07 +0100

Eli Zaretskii <[email-masked]> writes:

>> And...  I'm slightly nervous about calling out to something as
>> complicated as Fcount_lines.
>
> What is Fcount_lines?

Sorry, I meant `count-lines'.

>> So I was poking through the Emacs lisp code to see whether there's any
>> function that will just tell me what line I'm on, and there's...
>> display_count_lines in xdisp.c, but that doesn't really seem like a good
>> fit, since that's in redisplay, and not lread.c context.
>
> Can you tell why did you think display_count_lines will not do the job
> you need it to do?

Because it's only used in xdisp.c, and I was guessing there was some
reason for that, and:

   Set *BYTE_POS_PTR to the byte position where we stopped.  This is
   either the position COUNT lines after/before START_BYTE, if we
   found COUNT lines, or LIMIT_BYTE if we hit the limit before finding
   COUNT lines.  */

So from the comments it seemed like this had some other, more complex
use case.  But I see from the actual call sites that it looks just like
what I need:

	nlines = display_count_lines (startpos_byte,
				      PT_BYTE, PT, &junk);

So I guess I should just put the prototype in lisp.h and use it?  (It's
kinda surprising that no other part of Emacs has felt the need to
compute a line number before...)

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no