From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Andreas =?UTF-8?Q?R=C3=B6hler?= Newsgroups: gmane.emacs.bugs Subject: bug#24627: 24.5; (thing-at-point 'list) may return a non-empty string without a list Date: Tue, 11 Oct 2016 20:40:12 +0200 Message-ID: <781dea94-9f15-8bd2-66f5-055b55497471@easy-emacs.de> References: <48df5626-be32-ffb0-55f5-1b6f116a6940@easy-emacs.de> <87fuo3r1p0.fsf@gmail.com> <08d6c55e-f060-fabc-5657-2e80a1d06ab0@easy-emacs.de> <878ttu97e3.fsf@gmail.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: blaine.gmane.org 1476210825 11464 195.159.176.226 (11 Oct 2016 18:33:45 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 11 Oct 2016 18:33:45 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Icedove/45.4.0 Cc: 24627@debbugs.gnu.org To: Tino Calancha Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Oct 11 20:33:41 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bu1ra-0008V1-3r for geb-bug-gnu-emacs@m.gmane.org; Tue, 11 Oct 2016 20:33:18 +0200 Original-Received: from localhost ([::1]:57393 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bu1rY-0006jv-6g for geb-bug-gnu-emacs@m.gmane.org; Tue, 11 Oct 2016 14:33:16 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52164) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bu1rQ-0006jb-H1 for bug-gnu-emacs@gnu.org; Tue, 11 Oct 2016 14:33:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bu1rK-0008Mw-GA for bug-gnu-emacs@gnu.org; Tue, 11 Oct 2016 14:33:07 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:46251) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bu1rK-0008Mr-CQ for bug-gnu-emacs@gnu.org; Tue, 11 Oct 2016 14:33:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1bu1rK-0000gE-1a for bug-gnu-emacs@gnu.org; Tue, 11 Oct 2016 14:33:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Andreas =?UTF-8?Q?R=C3=B6hler?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 11 Oct 2016 18:33:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 24627 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 24627-submit@debbugs.gnu.org id=B24627.14762107662590 (code B ref 24627); Tue, 11 Oct 2016 18:33:01 +0000 Original-Received: (at 24627) by debbugs.gnu.org; 11 Oct 2016 18:32:46 +0000 Original-Received: from localhost ([127.0.0.1]:52441 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bu1r4-0000fi-7b for submit@debbugs.gnu.org; Tue, 11 Oct 2016 14:32:46 -0400 Original-Received: from mout.kundenserver.de ([212.227.126.130]:49659) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bu1r3-0000fW-2h for 24627@debbugs.gnu.org; Tue, 11 Oct 2016 14:32:45 -0400 Original-Received: from [192.168.178.35] ([95.119.246.214]) by mrelayeu.kundenserver.de (mreue001) with ESMTPSA (Nemesis) id 0LtzWQ-1au3sZ1oD0-011VfB; Tue, 11 Oct 2016 20:32:37 +0200 In-Reply-To: <878ttu97e3.fsf@gmail.com> X-Provags-ID: V03:K0:KH2Yze80dfuthZV18xBqd0x21NUFtORTkKHMFxUgn9P5jIyZlnv RNcNkVnPRmnj8fVZz7K9N3+AoE8YzgR2HuOuBDdQxwTLJSlGiceaX1HHirhXIc8csSOOn1t H8eb3vd997Nv1VYaQnCRcBCxMkY4jfuG2gTf2wuv/8YP/dueUeNBTf4N64CuZl7E+F3tMpy aUMt6XPkv+aPXssAMIFug== X-UI-Out-Filterresults: notjunk:1;V01:K0:MEl87KZQOr4=:qG6gzWdjg1U/wvbiFhNk7/ /G6enPxT3YS0AeBt3HyJdE2DpLEOmydPrAa0iKegMeOaDxV5LWqXBKsm8LA/SjjF+GQJSgwqp aoJiS3ILxq4VAlkBAYboy/V/xZ6jyXvwze/vWy+OmWgF/rXvdJh4kW8lPmpoIPN3/ycU6hqKX jhTcIX3G+Y8QrwZkvwDMlW0CMoFIJSa/MDUsSTF1M7HtwEOHle0JAXxbBNNkrIKFFcqgZpOtM kLwg5U86I3UfghTUQMfQUY3j/qrsHLeZ7aYG2JTVjHxWHz394Drm4SITG5gzlY6RNLWImc7sr gOI+8yxRH3pK3PmKPQLghGjjVa8mZOibDzg3YyGVzYDiDjC7SeQkBKcuzfh7BvOsIihdpLtRB fhPWlnUWWDQQnNV+23+/dATvmsIAdENuDWe+pG3V7VHWs5Hzokwvkk9AX/m14aK5BvklhU0iW t5RzwUP41TaEnGCvDjcW4HmziDwK1HG+PYeuQj1ZI3hoqtcTWRH/l96x3ewnp6lh2m+/3L5RS QqD3EQ1BtPSOUk2MQL3E+zuygN374fHcROHIYGZkMnPigIvBjw0EB/Fm+3p10hpT+iQMiy+xq K/S7vaPyJ+s4GfVBmqRz3j50cWmPFW0uAKVtShVhTqva1k6mCH2y7i+/3Kwg1QuUn0vTnJOaW FJEjSWBjM4Q2QGDZ1N8v5xz6IT1dCfXorustS9ZHV+zvPwwU9U/FkVI+oWv2ql3s+YSx0S9zX DK0h0G8PqT+1itoOdH1K9i0VdUzMVg6iFwzigA== X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:124362 Archived-At: On 11.10.2016 18:29, Tino Calancha wrote: > Andreas Röhler writes: > >> 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 > Following patch do the right thing in my example and your example. > Feel free to check it with some other examples that you may have: > > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > From dc2703a43a7b5dae60f7e88805971472253d4600 Mon Sep 17 00:00:00 2001 > From: Tino Calancha > Date: Wed, 12 Oct 2016 01:16:52 +0900 > Subject: [PATCH] (thing-at-point 'list) return nil if no list at point > > * lisp/thingatpt.el (thing-at-point-bounds-of-list-at-point): > Check first if we are at the beginning of a top-level sexp (Bug#24627). > Escape '[' and ']' in doc string. > --- > lisp/thingatpt.el | 22 +++++++++------------- > 1 file changed, 9 insertions(+), 13 deletions(-) > > diff --git a/lisp/thingatpt.el b/lisp/thingatpt.el > index 6d1014b..acacff2 100644 > --- a/lisp/thingatpt.el > +++ b/lisp/thingatpt.el > @@ -219,22 +219,18 @@ 'beginning-of-sexp > > (defun thing-at-point-bounds-of-list-at-point () > "Return the bounds of the list at point. > -[Internal function used by `bounds-of-thing-at-point'.]" > +\[Internal function used by `bounds-of-thing-at-point'.\]" > (save-excursion > (let ((opoint (point)) > - (beg (ignore-errors > - (up-list -1) > - (point)))) > + (beg (if (looking-at-p "(") > + (point) > + (ignore-errors > + (up-list -1) > + (point))))) > (ignore-errors > - (if beg > - (progn (forward-sexp) > - (cons beg (point))) > - ;; Are we are at the beginning of a top-level sexp? > - (forward-sexp) > - (let ((end (point))) > - (backward-sexp) > - (if (>= opoint (point)) > - (cons opoint end)))))))) > + (when beg > + (forward-sexp) > + (cons beg (point))))))) > > ;; Defuns > Hmm, what if cursor is inside a string or comment? BTW "list" might be more universal if understood syntactically What about writing (eq 4 (car (syntax-after (point))))