Subject: bug#24627: 24.5; (thing-at-point 'list) may return a non-empty string without a list

From: Andreas Röhler <[email-masked]>
Date: Tue, 11 Oct 2016 17:37:14 +0200

On 11.10.2016 05:42, Tino Calancha wrote:
> Andreas Röhler <[email-masked]> writes:
>
>> On 06.10.2016 11:43, Tino Calancha wrote:
>>
>> bounds-of-thing-at-point:
>>
>>        ;; Try moving forward, then back.
>>        (funcall ;; First move to end.
>>         (or (get thing 'end-op)
>>
>> Still think bounds-of-thing-at-point should move backward first
>>
>> parse-partial-sexp offers some handy info for beginning, not end
> I agree with you that `bounds-of-thing-at-point' needs some work.  I have
> noticed other issues with it.  We might work on them once we fix this bug.
>
> In the example in this thread the problem arise because
> `thing-at-point-bounds-of-list-at-point', which is the actual
> function doing the job here.  We need to fix this function.
> Without it, the previous example works:
>
> emacs -Q thingatpt.el -eval "(require 'thingatpt)"
> M-: (put 'list 'bounds-of-thing-at-point nil) RET
>> C-p
> M-: (thing-at-point 'list t) RET
> => nil

With

(defun foo ())

at first open paren

M-: (thing-at-point 'list t) RET

returns the whole thing, right.

But at second open paren returns the whole function too - where it 
should return the empty arg-list