From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Barry OReilly Newsgroups: gmane.emacs.bugs Subject: bug#15567: Point jumps around madly in XML file when undoing while auto-revert-mode updates buffer Date: Thu, 10 Oct 2013 10:14:08 -0400 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=089e013d0a6484f23d04e8639db5 X-Trace: ger.gmane.org 1381414519 6298 80.91.229.3 (10 Oct 2013 14:15:19 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 10 Oct 2013 14:15:19 +0000 (UTC) Cc: 15567@debbugs.gnu.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Oct 10 16:15:22 2013 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 1VUH1M-0003qH-QK for geb-bug-gnu-emacs@m.gmane.org; Thu, 10 Oct 2013 16:15:21 +0200 Original-Received: from localhost ([::1]:48198 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VUH1L-0001RE-Ug for geb-bug-gnu-emacs@m.gmane.org; Thu, 10 Oct 2013 10:15:19 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:36569) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VUH1B-0001Qb-K4 for bug-gnu-emacs@gnu.org; Thu, 10 Oct 2013 10:15:15 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VUH15-0004P9-9s for bug-gnu-emacs@gnu.org; Thu, 10 Oct 2013 10:15:09 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:60771) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VUH15-0004Nq-5v for bug-gnu-emacs@gnu.org; Thu, 10 Oct 2013 10:15:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1VUH14-0006uT-IV for bug-gnu-emacs@gnu.org; Thu, 10 Oct 2013 10:15:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Barry OReilly Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 10 Oct 2013 14:15:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 15567 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 15567-submit@debbugs.gnu.org id=B15567.138141445326446 (code B ref 15567); Thu, 10 Oct 2013 14:15:02 +0000 Original-Received: (at 15567) by debbugs.gnu.org; 10 Oct 2013 14:14:13 +0000 Original-Received: from localhost ([127.0.0.1]:40830 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VUH0G-0006sT-OQ for submit@debbugs.gnu.org; Thu, 10 Oct 2013 10:14:13 -0400 Original-Received: from mail-ob0-f170.google.com ([209.85.214.170]:38605) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VUH0E-0006sK-07 for 15567@debbugs.gnu.org; Thu, 10 Oct 2013 10:14:10 -0400 Original-Received: by mail-ob0-f170.google.com with SMTP id gq1so1764164obb.29 for <15567@debbugs.gnu.org>; Thu, 10 Oct 2013 07:14:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=ji2Q1sPfJ2ObHI3t6sQzrBPclo1M104iVXWQojV/EUw=; b=HD1O/+UGSadtJsSFo1VEkELHb2PQtfTvEGbTJPgDKlHVPXHj+B1sCJMoJvFSMhD176 U60J6WlGtA2fCJ4tJ/7YkAuw9EXqAQezQ28vxrsQTixh0Be6MzBhJ2C+mJqhsVunvbq+ m9B/7jLKjthdXrejNIDg34e6j9EyHivL0pwqxKGKr/FR6bMjTobRDFcS/4jp0BJe8bSY cUAEzdBXLIMjH/dZM+GDkBGbb8ck2F0Tda84nAwTLRgFIxaykE401aZALu1koQBUFgxL 78Nrv+9bQAn6FvDWfGJjF7gUI4P47Yz62IkN5DX7p4qWdfcachBXE85dQGLOTf6U5pzo UzQw== X-Received: by 10.182.86.69 with SMTP id n5mr255241obz.115.1381414448982; Thu, 10 Oct 2013 07:14:08 -0700 (PDT) Original-Received: by 10.76.156.103 with HTTP; Thu, 10 Oct 2013 07:14:08 -0700 (PDT) In-Reply-To: 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:79147 Archived-At: --089e013d0a6484f23d04e8639db5 Content-Type: text/plain; charset=ISO-8859-1 There may be two bugs here: 1: That the rng-validate-while-idle timer calls input-pending-p when point is on an excursion, regardless of what the inner timer is. ie another instance of bug 15045. 2: That there are more than one rng-validate-while-idle timers. In order to more directly verify bug 2, I ran with this: diff --git a/lisp/nxml/rng-valid.el b/lisp/nxml/rng-valid.el index fb8bd03..9fb5a7b 100644 --- a/lisp/nxml/rng-valid.el +++ b/lisp/nxml/rng-valid.el @@ -137,6 +137,8 @@ A quick validation validates at most one chunk." ;; Global variables +(defvar rng-validate-timers '()) + (defvar rng-validate-timer nil) (make-variable-buffer-local 'rng-validate-timer) ;; ensure that we can cancel the timer even after a kill-all-local-variables @@ -389,6 +391,7 @@ The schema is set like `rng-auto-set-schema'." (cancel-timer rng-validate-quick-timer)) (kill-local-variable 'rng-validate-quick-timer))) +(require 'cl-lib) (defun rng-activate-timers () (unless rng-validate-timer (let ((inhibit-quit t)) @@ -401,7 +404,8 @@ The schema is set like `rng-auto-set-schema'." (run-with-idle-timer rng-validate-quick-delay t 'rng-validate-quick-while-idle - (current-buffer)))))) + (current-buffer))) + (cl-pushnew rng-validate-timer rng-validate-timers)))) (defun rng-validate-clear () (rng-validate-mode 1 t)) @@ -433,6 +437,7 @@ The schema is set like `rng-auto-set-schema'." ;; validation process down. (defun rng-validate-while-idle (buffer) + (my-msg "DEBUG: size of rng-validate-timers: %s" (length rng-validate-timers)) (when (buffer-live-p buffer) ; bug#13999 (with-current-buffer buffer (if rng-validate-mode I also have message statements in mode hooks. Here's the output when I reproduced the issue: 2013-10-10T10:00:11.404643 Inside my-text-mode-hook for buffer REDACTED_UnitTests_valgrind.xml 2013-10-10T10:00:11.404814 Inside my-nxml-mode-hook for buffer REDACTED_UnitTests_valgrind.xml Mark set [2 times] 2013-10-10T10:00:15.717636 DEBUG: size of rng-validate-timers: 1 Mark set [3 times] Using vacuous schema 2013-10-10T10:00:37.920625 DEBUG: size of rng-validate-timers: 2 2013-10-10T10:00:38.227798 Inside my-text-mode-hook for buffer REDACTED_UnitTests_valgrind.xml 2013-10-10T10:00:38.227983 Inside my-nxml-mode-hook for buffer REDACTED_UnitTests_valgrind.xml user-error: No further undo information 2013-10-10T10:00:43.442746 DEBUG: size of rng-validate-timers: 2 Reverting buffer `REDACTED_UnitTests_valgrind.xml'. 2013-10-10T10:01:01.231729 DEBUG: size of rng-validate-timers: 3 Reverting buffer `REDACTED_UnitTests_valgrind.xml'. 2013-10-10T10:01:11.217973 DEBUG: size of rng-validate-timers: 4 Reverting buffer `REDACTED_UnitTests_valgrind.xml'. Mark set 2013-10-10T10:01:20.598804 DEBUG: size of rng-validate-timers: 5 2013-10-10T10:01:20.602859 DEBUG: size of rng-validate-timers: 5 --089e013d0a6484f23d04e8639db5 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
There may be two bugs here:

=A0=A0 1: That the rng-= validate-while-idle timer calls input-pending-p
=A0=A0 when point is on = an excursion, regardless of what the inner timer
=A0=A0 is. ie another i= nstance of bug 15045.

=A0=A0 2: That there are more than one rng-validate-while-idle timers.<= br>
In order to more directly verify bug 2, I ran with this:

diff= --git a/lisp/nxml/rng-valid.el b/lisp/nxml/rng-valid.el
index fb8bd03..= 9fb5a7b 100644
--- a/lisp/nxml/rng-valid.el
+++ b/lisp/nxml/rng-valid.el
@@ -137,6 += 137,8 @@ A quick validation validates at most one chunk."
=A0
= =A0;; Global variables
=A0
+(defvar rng-validate-timers '())
+=
=A0(defvar rng-validate-timer nil)
=A0(make-variable-buffer-local 'r= ng-validate-timer)
=A0;; ensure that we can cancel the timer even after = a kill-all-local-variables
@@ -389,6 +391,7 @@ The schema is set like `r= ng-auto-set-schema'."
=A0=A0=A0=A0=A0=A0 (cancel-timer rng-validate-quick-timer))
=A0=A0=A0=A0= (kill-local-variable 'rng-validate-quick-timer)))
=A0
+(require = 'cl-lib)
=A0(defun rng-activate-timers ()
=A0=A0 (unless rng-vali= date-timer
=A0=A0=A0=A0 (let ((inhibit-quit t))
@@ -401,7 +404,8 @@ The schema is set like `rng-auto-set-schema'."=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (run-with-idle-timer rng-validate-qui= ck-delay
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 t
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 'rng-valid= ate-quick-while-idle
-=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0 (current-buffer))))))
+=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (current= -buffer)))
+=A0=A0=A0=A0=A0 (cl-pushnew rng-validate-timer rng-validate-= timers))))
=A0
=A0(defun rng-validate-clear ()
=A0=A0 (rng-validat= e-mode 1 t))
@@ -433,6 +437,7 @@ The schema is set like `rng-auto-set-schema'."=
=A0;; validation process down.
=A0
=A0(defun rng-validate-while-i= dle (buffer)
+=A0 (my-msg "DEBUG: size of rng-validate-timers: %s&q= uot; (length rng-validate-timers))
=A0=A0 (when (buffer-live-p buffer)=A0=A0=A0=A0=A0=A0=A0=A0 ; bug#13999
= =A0=A0=A0=A0 (with-current-buffer buffer
=A0=A0=A0=A0=A0=A0 (if rng-vali= date-mode

I also have message statements in mode hooks. Here's t= he output when I
reproduced the issue:

2013-10-10T10:00:11.404643 Inside my-text-mode-hook for buffer REDACTED= _UnitTests_valgrind.xml
2013-10-10T10:00:11.404814 Inside my-nxml-mode-= hook for buffer REDACTED_UnitTests_valgrind.xml
Mark set [2 times]
2013-10-10T10:00:15.717636 DEBUG: size of rng-validate-timers: 1
Mark se= t [3 times]
Using vacuous schema
2013-10-10T10:00:37.920625 DEBUG: si= ze of rng-validate-timers: 2
2013-10-10T10:00:38.227798 Inside my-text-m= ode-hook for buffer REDACTED_UnitTests_valgrind.xml
2013-10-10T10:00:38.227983 Inside my-nxml-mode-hook for buffer REDACTED_Uni= tTests_valgrind.xml
user-error: No further undo information
2013-10-= 10T10:00:43.442746 DEBUG: size of rng-validate-timers: 2
Reverting buffe= r `REDACTED_UnitTests_valgrind.xml'.
2013-10-10T10:01:01.231729 DEBUG: size of rng-validate-timers: 3
Reverti= ng buffer `REDACTED_UnitTests_valgrind.xml'.
2013-10-10T10:01:11.217= 973 DEBUG: size of rng-validate-timers: 4
Reverting buffer `REDACTED_Uni= tTests_valgrind.xml'.
Mark set
2013-10-10T10:01:20.598804 DEBUG: size of rng-validate-timers: = 5
2013-10-10T10:01:20.602859 DEBUG: size of rng-validate-timers: 5
--089e013d0a6484f23d04e8639db5--