From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Chong Yidong Newsgroups: gmane.emacs.devel Subject: Re: Possible `point-entered' `point-left' Text Property Bug Date: Fri, 12 May 2006 13:51:37 -0400 Message-ID: <873bfff7x2.fsf@stupidchicken.com> References: <87r7304jck.fsf@stupidchicken.com> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1147456325 8867 80.91.229.2 (12 May 2006 17:52:05 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 12 May 2006 17:52:05 +0000 (UTC) Cc: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri May 12 19:52:03 2006 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1Febny-0003lo-8V for ged-emacs-devel@m.gmane.org; Fri, 12 May 2006 19:51:59 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Febnx-0007zC-Ty for ged-emacs-devel@m.gmane.org; Fri, 12 May 2006 13:51:57 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Febni-0007x5-CD for emacs-devel@gnu.org; Fri, 12 May 2006 13:51:42 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Febnh-0007wq-V7 for emacs-devel@gnu.org; Fri, 12 May 2006 13:51:41 -0400 Original-Received: from [18.72.1.2] (helo=south-station-annex.mit.edu) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA:32) (Exim 4.52) id 1FebpU-0007Oc-8p; Fri, 12 May 2006 13:53:32 -0400 Original-Received: from central-city-carrier-station.mit.edu (CENTRAL-CITY-CARRIER-STATION.MIT.EDU [18.7.7.72]) by south-station-annex.mit.edu (8.13.6/8.9.2) with ESMTP id k4CHpeC9018369; Fri, 12 May 2006 13:51:40 -0400 (EDT) Original-Received: from outgoing-legacy.mit.edu (OUTGOING-LEGACY.MIT.EDU [18.7.22.104]) by central-city-carrier-station.mit.edu (8.13.6/8.9.2) with ESMTP id k4CHpdpQ006850; Fri, 12 May 2006 13:51:40 -0400 (EDT) Original-Received: from cyd (SYDNEYPACIFIC-THIRTY.MIT.EDU [18.95.5.30]) ) by outgoing-legacy.mit.edu (8.13.6/8.12.4) with ESMTP id k4CHpbaA023080; Fri, 12 May 2006 13:51:37 -0400 (EDT) Original-Received: from cyd by cyd with local (Exim 3.36 #1 (Debian)) id 1Febnd-0006iG-00; Fri, 12 May 2006 13:51:37 -0400 Original-To: rms@gnu.org In-Reply-To: (Richard Stallman's message of "Fri, 12 May 2006 00:15:45 -0400") User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) X-Spam-Score: -1.215 X-Scanned-By: MIMEDefang 2.42 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:54345 Archived-At: > I don't know why this happens > even when moving vertically with point in the middle of a line, but I > am not familiar with the point motion code. > > I am really surprised about this because line-move-1 binds > inhibit-point-motion-hooks to t, which ought to prevent the > point-entered/left functions from even being checked for all the > intermediate positions. I investigated some more, and found two separate bugs. The first bug is that inhibit-point-motion-hooks was not being set to t during Fline_beginning_position. The second bug is more subtle. In simple.el line 3652, we have ;; Process intangibility within a line. ;; Move to the chosen destination position from above, ;; with intangibility processing enabled. (goto-char (point-min)) (let ((inhibit-point-motion-hooks nil)) (goto-char new) Here, inhibit-point-motion-hooks is bound to nil to avoid processing the intangible property. But this also has the effect of spuriously calling point-left and point-entered hooks if they are defined. I hacked around this by changing it to (goto-char new) (let ((inhibit-point-motion-hooks nil)) (goto-char new) I'm not 100% certain this will work or how to test it, so someone familiar with the tangibility/point motion code should take a look.