From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Chong Yidong Newsgroups: gmane.emacs.bugs Subject: bug#3003: 23.0.92; Point trapped in overlay Date: Wed, 15 Apr 2009 19:29:11 -0400 Message-ID: <87k55lpkc8.fsf@cyd.mit.edu> Reply-To: Chong Yidong , 3003@emacsbugs.donarmstrong.com NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1239839058 3589 80.91.229.12 (15 Apr 2009 23:44:18 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 15 Apr 2009 23:44:18 +0000 (UTC) Cc: Carsten Dominik , 3003@emacsbugs.donarmstrong.com, Leo To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Apr 16 01:45:36 2009 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1LuEnK-0000QB-EV for geb-bug-gnu-emacs@m.gmane.org; Thu, 16 Apr 2009 01:45:30 +0200 Original-Received: from localhost ([127.0.0.1]:37138 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LuElv-0006FO-Mn for geb-bug-gnu-emacs@m.gmane.org; Wed, 15 Apr 2009 19:44:03 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LuElq-0006Ez-Rb for bug-gnu-emacs@gnu.org; Wed, 15 Apr 2009 19:43:58 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LuElm-0006ET-CS for bug-gnu-emacs@gnu.org; Wed, 15 Apr 2009 19:43:58 -0400 Original-Received: from [199.232.76.173] (port=51972 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LuElm-0006EQ-6Y for bug-gnu-emacs@gnu.org; Wed, 15 Apr 2009 19:43:54 -0400 Original-Received: from rzlab.ucr.edu ([138.23.92.77]:58231) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LuEll-0000zU-Lv for bug-gnu-emacs@gnu.org; Wed, 15 Apr 2009 19:43:54 -0400 Original-Received: from rzlab.ucr.edu (rzlab.ucr.edu [127.0.0.1]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id n3FNho6M011183; Wed, 15 Apr 2009 16:43:51 -0700 Original-Received: (from debbugs@localhost) by rzlab.ucr.edu (8.13.8/8.13.8/Submit) id n3FNZ4mh008903; Wed, 15 Apr 2009 16:35:04 -0700 X-Loop: owner@emacsbugs.donarmstrong.com Resent-From: Chong Yidong Resent-To: bug-submit-list@donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Wed, 15 Apr 2009 23:35:04 +0000 Resent-Message-ID: Resent-Sender: owner@emacsbugs.donarmstrong.com X-Emacs-PR-Message: followup 3003 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Original-Received: via spool by 3003-submit@emacsbugs.donarmstrong.com id=B3003.12398380507524 (code B ref 3003); Wed, 15 Apr 2009 23:35:04 +0000 Original-Received: (at 3003) by emacsbugs.donarmstrong.com; 15 Apr 2009 23:27:30 +0000 X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. Original-Received: from cyd.mit.edu (CYD.MIT.EDU [18.115.2.24]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id n3FNRNSM007518 for <3003@emacsbugs.donarmstrong.com>; Wed, 15 Apr 2009 16:27:24 -0700 Original-Received: by cyd.mit.edu (Postfix, from userid 1000) id 47C0957E245; Wed, 15 Apr 2009 19:29:11 -0400 (EDT) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3) Resent-Date: Wed, 15 Apr 2009 19:43:58 -0400 X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:27214 Archived-At: Stefan, this is due to your change. Here is an easier recipe to reproduce the bug: (defun foo-test () (interactive) (switch-to-buffer "* TEST *") (erase-buffer) (insert "asdfgh") (put-text-property 3 5 'rear-nonsticky '(invisible)) (put-text-property 3 5 'invisible t) (goto-char (point-min))) Moving point forward now gets point temporarily stuck. The crucial factor is the rear-nonsticky property. 2009-02-12 Stefan Monnier * keyboard.c (adjust_point_for_property): Allow stopping betwen two invisible areas. Here is the relevant code: /* Find boundaries `beg' and `end' of the invisible area, if any. */ while (end < ZV /* Stop if we find a spot between two runs of `invisible' where inserted text would be visible. This is important when we have two invisible boundaries that enclose an area: if the area is empty, we need this test in order to make it possible to place point in the middle rather than skip both boundaries. Note that this will stop anywhere in a non-sticky text-property, but I don't think there's much we can do about that. */ && (val = get_pos_property (make_number (end), Qinvisible, Qnil), TEXT_PROP_MEANS_INVISIBLE (val)) Do we really need to do this test? This corner case seems unimportant, as opposed to being able to treat non-sticky properties correctly.