From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.bugs Subject: bug#36897: 27.0.50; [CC Mode] c-after-change may signal error in narrowed buffer Date: 2 Aug 2019 08:41:21 -0000 Organization: muc.de e.V. Message-ID: <20190802084121.5612.qmail@mail.muc.de> References: <87d0hotnmu.fsf@gmail.com> Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="79481"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: tin/2.4.2-20171224 ("Lochhead") (UNIX) (FreeBSD/11.2-RELEASE-p9 (amd64)) Cc: 36897@debbugs.gnu.org To: Noam Postavsky Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Aug 02 11:34:10 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1htTww-000KXW-36 for geb-bug-gnu-emacs@m.gmane.org; Fri, 02 Aug 2019 11:34:10 +0200 Original-Received: from localhost ([::1]:33018 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1htTwu-00067f-Js for geb-bug-gnu-emacs@m.gmane.org; Fri, 02 Aug 2019 05:34:08 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:54584) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1htTwp-00067K-KV for bug-gnu-emacs@gnu.org; Fri, 02 Aug 2019 05:34:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1htTwo-0004WR-IP for bug-gnu-emacs@gnu.org; Fri, 02 Aug 2019 05:34:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:46974) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1htTwo-0004WL-FD; Fri, 02 Aug 2019 05:34:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1htTwo-0000Fv-AP; Fri, 02 Aug 2019 05:34:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Alan Mackenzie Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org, bug-cc-mode@gnu.org Resent-Date: Fri, 02 Aug 2019 09:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36897 X-GNU-PR-Package: emacs, cc-mode Original-Received: via spool by 36897-submit@debbugs.gnu.org id=B36897.1564738439975 (code B ref 36897); Fri, 02 Aug 2019 09:34:02 +0000 Original-Received: (at 36897) by debbugs.gnu.org; 2 Aug 2019 09:33:59 +0000 Original-Received: from localhost ([127.0.0.1]:55795 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1htTwk-0000Fe-Q0 for submit@debbugs.gnu.org; Fri, 02 Aug 2019 05:33:59 -0400 Original-Received: from colin.muc.de ([193.149.48.1]:63511 helo=mail.muc.de) by debbugs.gnu.org with smtp (Exim 4.84_2) (envelope-from ) id 1htTwh-0000FS-Fs for 36897@debbugs.gnu.org; Fri, 02 Aug 2019 05:33:56 -0400 Original-Received: (qmail 5613 invoked by uid 3782); 2 Aug 2019 08:41:21 -0000 In-Reply-To: X-Newsgroups: gnu.emacs.bug 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: 209.51.188.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:164310 Archived-At: Hello, Noam. In article you wrote: > [-- text/plain, encoding 7bit, charset: US-ASCII, 31 lines --] > Package: emacs, cc-mode >>>From 'emacs -Q', eval the following: > (with-current-buffer (get-buffer-create "*test*") > (erase-buffer) > (insert "int main()\n{\n \n}\n") > (search-backward "\n}") > (c-mode) > (save-restriction > (narrow-to-region (point) (point)) > (insert "foo"))) > Gives the backtrace: > Debugger entered--Lisp error: (args-out-of-range 1 1) > get-text-property(1 c-fl-syn-tab) > c-clear-string-fences() > #f(compiled-function () #)() > c-after-change(16 19 0) > insert("foo") > (save-restriction (narrow-to-region (point) (point)) (insert "foo")) > (save-current-buffer (set-buffer (get-buffer-create "*test*")) (erase-buffer) (insert "int main()\n{\n \n}\n") (search-backward "\n}") (c-mode) (save-restriction (narrow-to-region (point) (point)) (insert "foo"))) Yes, thanks. I've known about this for around a week, and I have a patch for it prepared. I was just giving the OP who reported it to me an extra day or two to comment on it. > This is a reduced test case from > https://github.com/joaotavora/eglot/issues/291. > I think the obvious fix is to extend the save-restriction just a bit > further to cover c-clear-string-fences, patch attached. Yes. The "same" problem also happened in c-before-change, and my patch fixes that, too. (Otherwise, it's pretty much the same as your patch, as far as c-after-change is concerned.) I'll commit my patch soon, hopefully today. [ .... ] -- Alan Mackenzie (Nuremberg, Germany).