[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#31772: 26.1; (thing-at-point 'list) regression
From: |
Eli Zaretskii |
Subject: |
bug#31772: 26.1; (thing-at-point 'list) regression |
Date: |
Tue, 11 Sep 2018 14:16:00 +0300 |
> From: Leo Liu <sdl.web@gmail.com>
> Cc: 31772@debbugs.gnu.org, tino.calancha@gmail.com
> Date: Tue, 11 Sep 2018 18:26:36 +0800
>
> The difference is on what to return when (up-list -1) fails. They both
> try to return the sexp at point but the patched behaviour try returning
> the whole sexp while the one in <= 25.1 cut off the sexp from point.
>
> Looking at the code in 25.1 it looks to me the original author had a
> thinko i.e. he/she meant to write:
>
> (if (>= opoint (point))
> (cons (point) end))
>
> but instead write
>
> (if (>= opoint (point))
> (cons opoint end))
>
> which resulted in some weird cases that you mentioned in previous email.
Right.
> > Would it be possible to modify list-at-point so that it keeps the
> > current behavior, perhaps as an option? I'd like to find a solution
> > that doesn't just revert to the old behavior, but allows those who
> > need the new behavior to have it in some reasonable way.
>
> Yes, this can be done. For example:
>
> (defun list-at-point (&optional ignore-comment-or-string)
> "Return the Lisp list at point, or nil if none is found.
> If IGNORE-COMMENT-OR-STRING is non-nil comments and strings are
> treated as white space."
> (let ((ppss (and ignore-comment-or-string (syntax-ppss))))
> (save-excursion
> (goto-char (or (nth 8 ppss) (point)))
> (form-at-point 'list 'listp))))
Would you mind submitting a patch that includes the above, and also
fixes/augments the tests accordingly? I think these changes then
could go into the emacs-26 branch, unless someone raises objections.
Thanks.
- bug#31772: 26.1; (thing-at-point 'list) regression, Leo Liu, 2018/09/06
- bug#31772: 26.1; (thing-at-point 'list) regression, Eli Zaretskii, 2018/09/11
- bug#31772: 26.1; (thing-at-point 'list) regression, Leo Liu, 2018/09/11
- bug#31772: 26.1; (thing-at-point 'list) regression, Leo Liu, 2018/09/11
- bug#31772: 26.1; (thing-at-point 'list) regression, Eli Zaretskii, 2018/09/11
- bug#31772: 26.1; (thing-at-point 'list) regression, Leo Liu, 2018/09/14
- bug#31772: 26.1; (thing-at-point 'list) regression, Eli Zaretskii, 2018/09/15
- bug#31772: 26.1; (thing-at-point 'list) regression, Leo Liu, 2018/09/15
- bug#31772: 26.1; (thing-at-point 'list) regression, Eli Zaretskii, 2018/09/15