From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.bugs Subject: bug#16985: indent-for-tab-command error messages could mention line numbers Date: Wed, 02 Apr 2014 15:49:26 -0400 Message-ID: References: <87ob1ahnu7.fsf@jidanni.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1396523815 22242 80.91.229.3 (3 Apr 2014 11:16:55 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 3 Apr 2014 11:16:55 +0000 (UTC) Cc: 16985-done@debbugs.gnu.org To: =?UTF-8?Q?=E7=A9=8D=E4=B8=B9=E5=B0=BC?= Dan Jacobson Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Apr 03 13:16:48 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WVeJQ-00075K-F8 for geb-bug-gnu-emacs@m.gmane.org; Thu, 03 Apr 2014 11:51:56 +0200 Original-Received: from localhost ([::1]:40376 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WVRAw-0007X1-Iq for geb-bug-gnu-emacs@m.gmane.org; Wed, 02 Apr 2014 15:50:18 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:45974) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WVRAn-0007BG-LI for bug-gnu-emacs@gnu.org; Wed, 02 Apr 2014 15:50:15 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WVRAh-00028K-Mx for bug-gnu-emacs@gnu.org; Wed, 02 Apr 2014 15:50:09 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:60362) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WVRAh-00028F-L0 for bug-gnu-emacs@gnu.org; Wed, 02 Apr 2014 15:50:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1WVRAg-0004Qz-Os for bug-gnu-emacs@gnu.org; Wed, 02 Apr 2014 15:50:03 -0400 Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-To: bug-gnu-emacs@gnu.org Resent-Date: Wed, 02 Apr 2014 19:50:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: cc-closed 16985 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Mail-Followup-To: 16985@debbugs.gnu.org, monnier@iro.umontreal.ca, jidanni@jidanni.org Original-Received: via spool by 16985-done@debbugs.gnu.org id=D16985.139646819617018 (code D ref 16985); Wed, 02 Apr 2014 19:50:01 +0000 Original-Received: (at 16985-done) by debbugs.gnu.org; 2 Apr 2014 19:49:56 +0000 Original-Received: from localhost ([127.0.0.1]:33309 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WVRAZ-0004QQ-N5 for submit@debbugs.gnu.org; Wed, 02 Apr 2014 15:49:56 -0400 Original-Received: from mercure.iro.umontreal.ca ([132.204.24.67]:42324) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WVRAV-0004QB-HZ for 16985-done@debbugs.gnu.org; Wed, 02 Apr 2014 15:49:53 -0400 Original-Received: from hidalgo.iro.umontreal.ca (hidalgo.iro.umontreal.ca [132.204.27.50]) by mercure.iro.umontreal.ca (Postfix) with ESMTP id EE5BF84E3F; Wed, 2 Apr 2014 15:49:50 -0400 (EDT) Original-Received: from lechon.iro.umontreal.ca (lechon.iro.umontreal.ca [132.204.27.242]) by hidalgo.iro.umontreal.ca (Postfix) with ESMTP id 742081E5B74; Wed, 2 Apr 2014 15:49:26 -0400 (EDT) Original-Received: by lechon.iro.umontreal.ca (Postfix, from userid 20848) id 5B4A4B4128; Wed, 2 Apr 2014 15:49:26 -0400 (EDT) In-Reply-To: <87ob1ahnu7.fsf@jidanni.org> ("=?UTF-8?Q?=E7=A9=8D=E4=B8=B9=E5=B0=BC?= Dan Jacobson"'s message of "Thu, 13 Mar 2014 09:46:56 +0800") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-DIRO-MailScanner-Information: Please contact the ISP for more information X-DIRO-MailScanner: Found to be clean X-DIRO-MailScanner-SpamCheck: n'est pas un polluriel, SpamAssassin (score=-2.82, requis 5, autolearn=not spam, ALL_TRUSTED -2.82, MC_TSTLAST 0.00) X-DIRO-MailScanner-From: monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.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-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:87662 Archived-At: >>>>> "=E7=A9=8D=E4=B8=B9=E5=B0=BC" =3D=3D =E7=A9=8D=E4=B8=B9=E5=B0=BC Dan = Jacobson writes: >>>>> "SM" =3D=3D Stefan Monnier writes: SM> IOW, please tell us in which case you got the above error, so we can SM> catch it and turn it into a non-error. >>> I recall it was when I was editing a perl program, so try with perl >>> mode... But anyway I think it would be better to catch such errors. SM> Hmm... catch them and do what? Such a signal means that's a coding SM> error somewhere in the indentation code, so hiding the signal is not SM> a good idea. SM> Stefan > OK, this file.pl > {}} > }( > } > triggers the bug. Do C-x h TAB. > Also the message should say "Help report this bug in xxx.el!" else people > will think it is an error in their perl file. Thanks for the simple test case. I installed the patch below which should fix those problems. Stefan =3D=3D=3D modified file 'lisp/progmodes/perl-mode.el' --- lisp/progmodes/perl-mode.el 2014-02-10 01:34:22 +0000 +++ lisp/progmodes/perl-mode.el 2014-04-02 19:46:36 +0000 @@ -854,11 +854,12 @@ (and (=3D (char-syntax (following-char)) ?\)) (save-excursion (forward-char 1) - (forward-sexp -1) + (when (condition-case nil (progn (forward-sexp -1) t) + (scan-error nil)) (perl-indent-new-calculate ;; Recalculate the parsing-start, since we may have jumped ;; dangerously close (typically in the case of nested functions= ). - 'virtual nil (save-excursion (perl-beginning-of-function))))) + 'virtual nil (save-excursion (perl-beginning-of-function)))))) (and (and (=3D (following-char) ?{) (save-excursion (forward-char) (perl-hanging-paren-p))) (+ (or default (perl-calculate-indent parse-start))