From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Pip Cet Newsgroups: gmane.emacs.bugs Subject: bug#21200: 25.0.50; xdisp.c: infinite loop when using invisibility specs Date: Thu, 6 Aug 2015 18:26:05 +0000 Message-ID: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a113eca1006f80c051ca8a73c X-Trace: ger.gmane.org 1438888519 7146 80.91.229.3 (6 Aug 2015 19:15:19 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 6 Aug 2015 19:15:19 +0000 (UTC) To: 21200@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Aug 06 21:15:13 2015 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 1ZNQdE-0006hW-ET for geb-bug-gnu-emacs@m.gmane.org; Thu, 06 Aug 2015 21:15:12 +0200 Original-Received: from localhost ([::1]:46273 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZNQdD-0003ft-Ik for geb-bug-gnu-emacs@m.gmane.org; Thu, 06 Aug 2015 15:15:11 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:35400) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZNQd6-0003dl-QE for bug-gnu-emacs@gnu.org; Thu, 06 Aug 2015 15:15:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZNQd5-00085D-0J for bug-gnu-emacs@gnu.org; Thu, 06 Aug 2015 15:15:04 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:39967) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZNQd4-00084Q-TV for bug-gnu-emacs@gnu.org; Thu, 06 Aug 2015 15:15:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1ZNQd4-0006n7-FI for bug-gnu-emacs@gnu.org; Thu, 06 Aug 2015 15:15:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Pip Cet Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 06 Aug 2015 19:15:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 21200 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.143888846626046 (code B ref -1); Thu, 06 Aug 2015 19:15:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 6 Aug 2015 19:14:26 +0000 Original-Received: from localhost ([127.0.0.1]:41413 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZNQcT-0006m1-Pn for submit@debbugs.gnu.org; Thu, 06 Aug 2015 15:14:26 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:34109) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZNPrn-0005ix-Nk for submit@debbugs.gnu.org; Thu, 06 Aug 2015 14:26:12 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZNPrm-00089E-B6 for submit@debbugs.gnu.org; Thu, 06 Aug 2015 14:26:11 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:58804) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZNPrm-00089A-81 for submit@debbugs.gnu.org; Thu, 06 Aug 2015 14:26:10 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47612) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZNPrl-0007dm-0Y for bug-gnu-emacs@gnu.org; Thu, 06 Aug 2015 14:26:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZNPrj-00087i-WB for bug-gnu-emacs@gnu.org; Thu, 06 Aug 2015 14:26:08 -0400 Original-Received: from mail-io0-x22a.google.com ([2607:f8b0:4001:c06::22a]:33919) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZNPrj-00086C-Pw for bug-gnu-emacs@gnu.org; Thu, 06 Aug 2015 14:26:07 -0400 Original-Received: by iodb91 with SMTP id b91so29797469iod.1 for ; Thu, 06 Aug 2015 11:26:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=2sOH55gmxJlOyUccVU32of0t6QkTwFq1sRRSCYo8f+s=; b=OjbaMoYYzfqc5MPdXQkpDjX0z51D+i+DjfuyETzYxfZelfvnxtpI35JCTI95i4CsKg eKguZpV06Evf3W21iu+H1/SNO4lzuCU1aMRTsumSNJsmU6cgH+LY24uLbiAKC3xM1QgZ Wf/0Ocuu2TQ/6I7pupINCxbnseXZHh6tMhZvIfxzjw0Dlqv8Mo4+nDAhF4guC032D9tF f0k5tsV7pp7G4Aj7NVjl89gTo1L3tcOAHBdzZvtpgAcVSukP1Fl8i+a49IwmzRWNy2B6 n1eZByf3vC8sPNUbFH4/XBK/Tfk2gvwq7RMQcLBRIq26hXAo02mkPyEgSd1+3OgCmWRu s8zQ== X-Received: by 10.107.132.19 with SMTP id g19mr4003553iod.3.1438885565857; Thu, 06 Aug 2015 11:26:05 -0700 (PDT) Original-Received: by 10.79.66.69 with HTTP; Thu, 6 Aug 2015 11:26:05 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Mailman-Approved-At: Thu, 06 Aug 2015 15:14:24 -0400 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:105330 Archived-At: --001a113eca1006f80c051ca8a73c Content-Type: text/plain; charset=UTF-8 Hi, with the current git tree (revision 0aec2aac), I'm running into problems with an infinite loop in xdisp.c which I believe to be fixed by this patch, which is reasonably obvious: diff --git a/src/xdisp.c b/src/xdisp.c index e45cb87..7b221d4 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -4221,6 +4221,8 @@ handle_invisible_prop (struct it *it) if (invis == 2) display_ellipsis_p = true; } + + charpos = end_charpos; } while (invis != 0 && endpos < len); in this loop: do { end_charpos = Fnext_single_property_change (charpos, Qinvisible, it->string, limit); if (INTEGERP (end_charpos)) { endpos = XFASTINT (end_charpos); charpos = end_charpos; prop = Fget_text_property (end_charpos, Qinvisible, it->string); invis = TEXT_PROP_MEANS_INVISIBLE (prop); if (invis == 2) display_ellipsis_p = true; } } while (invis != 0 && endpos < len); Without the patch, we keep calling Fnext_property_change with the same arguments and expecting a different result, which obviously never happens. In fact it seems to me we only need one of charpos and end_charpos as the code currently stands, anyway. However, charpos = f(..., charpos, ...) might cause confusion. I can provide more detail if necessary, but as I said, it's a fairly obvious bug. --001a113eca1006f80c051ca8a73c Content-Type: text/plain; charset=US-ASCII; name="emacs-006.diff" Content-Disposition: attachment; filename="emacs-006.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_id0j8amb0 ZGlmZiAtLWdpdCBhL3NyYy94ZGlzcC5jIGIvc3JjL3hkaXNwLmMKaW5kZXggZTQ1Y2I4Ny4uN2Iy MjFkNCAxMDA2NDQKLS0tIGEvc3JjL3hkaXNwLmMKKysrIGIvc3JjL3hkaXNwLmMKQEAgLTQyMjEs NiArNDIyMSw4IEBAIGhhbmRsZV9pbnZpc2libGVfcHJvcCAoc3RydWN0IGl0ICppdCkKIAkJICBp ZiAoaW52aXMgPT0gMikKIAkJICAgIGRpc3BsYXlfZWxsaXBzaXNfcCA9IHRydWU7CiAJCX0KKwor ICAgICAgICAgICAgICBjaGFycG9zID0gZW5kX2NoYXJwb3M7CiAJICAgIH0KIAkgIHdoaWxlIChp bnZpcyAhPSAwICYmIGVuZHBvcyA8IGxlbik7CiAK --001a113eca1006f80c051ca8a73c--