bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#23019: parse-partial-sexp doesn't output the full state needed for i


From: Stefan Monnier
Subject: bug#23019: parse-partial-sexp doesn't output the full state needed for its continuance.
Date: Mon, 04 Apr 2016 08:15:52 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux)

>> I'd like to hear what John thinks about the idea of re-using "nth 5" instead
>> of adding a new entry, but other than that, I think it's OK to commit,
>> thanks.
> How long has this stuff been out in the field?

Many many years.

> Do you think it's well known enough that anyone is depending on the
> earlier behavior of the nth 5 value?

There are definitely packages which use the (nth 5 ..) value returned
from parse-partial-sexp.  E.g. cperl-mode does:

                            state (parse-partial-sexp pre-B p))
                      (or (nth 3 state)
                          (nth 4 state)
                          (nth 5 state)
                          (error "`%s' inside `%s' BLOCK" A if-string))
as well as

             (let ((pps (parse-partial-sexp (point) found)))
               (or (nth 3 pps) (nth 4 pps) (nth 5 pps)))))

and verilog-mode does:

                 (setq state (parse-partial-sexp (point) end-mod-point 0 t nil))
                 (or (> (car state) 0)  ; in parens
                     (nth 5 state)              ; comment
                     ))

sh-script also uses it, along with perl-mode.

> I have a feeling it's OK to re-use it.

That's also my feeling.  All the uses I've found would be unaffected
(e.g. because they're in modes where there are no 2-char comment
markers, so there is really no change in behavior; or because it's only
used at positions which can't be in the middle of a 2-char comment
marker).
It's a "natural extension" of the previous meaning of "nth 5".

But admittedly, it's hard/impossible to find all uses, so I can't claim
with confidence that it won't break some code somewhere.


        Stefan





reply via email to

[Prev in Thread] Current Thread [Next in Thread]