From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.bugs Subject: bug#16411: undo-only bugs Date: Sat, 18 Jan 2014 22:18:54 -0500 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1390101556 29133 80.91.229.3 (19 Jan 2014 03:19:16 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 19 Jan 2014 03:19:16 +0000 (UTC) Cc: 16411@debbugs.gnu.org To: Barry OReilly Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Jan 19 04:19:22 2014 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 1W4iuv-0000ZA-Do for geb-bug-gnu-emacs@m.gmane.org; Sun, 19 Jan 2014 04:19:21 +0100 Original-Received: from localhost ([::1]:44995 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W4iuu-0005nh-E8 for geb-bug-gnu-emacs@m.gmane.org; Sat, 18 Jan 2014 22:19:20 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:59459) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W4iuj-0005nR-TZ for bug-gnu-emacs@gnu.org; Sat, 18 Jan 2014 22:19:17 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W4iuc-0002vL-Id for bug-gnu-emacs@gnu.org; Sat, 18 Jan 2014 22:19:09 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:42497) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W4iuc-0002v4-EK for bug-gnu-emacs@gnu.org; Sat, 18 Jan 2014 22:19:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1W4iub-00070P-Rm for bug-gnu-emacs@gnu.org; Sat, 18 Jan 2014 22:19:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 19 Jan 2014 03:19:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16411 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 16411-submit@debbugs.gnu.org id=B16411.139010153826920 (code B ref 16411); Sun, 19 Jan 2014 03:19:01 +0000 Original-Received: (at 16411) by debbugs.gnu.org; 19 Jan 2014 03:18:58 +0000 Original-Received: from localhost ([127.0.0.1]:56516 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W4iuX-000708-SS for submit@debbugs.gnu.org; Sat, 18 Jan 2014 22:18:58 -0500 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.181]:63784) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W4iuV-0006zw-F0 for 16411@debbugs.gnu.org; Sat, 18 Jan 2014 22:18:56 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjkFABK/CFFMCplR/2dsb2JhbABEhkezfoRJF3OCHgEBBAEjMyMFCwsaAhgOAgIUGA0kiB4Grl+SToEjjlSBEwOIYYl5kiCBXoMV X-IPAS-Result: AjkFABK/CFFMCplR/2dsb2JhbABEhkezfoRJF3OCHgEBBAEjMyMFCwsaAhgOAgIUGA0kiB4Grl+SToEjjlSBEwOIYYl5kiCBXoMV X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="45288803" Original-Received: from 76-10-153-81.dsl.teksavvy.com (HELO pastel.home) ([76.10.153.81]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 18 Jan 2014 22:18:55 -0500 Original-Received: by pastel.home (Postfix, from userid 20848) id BEFB4603BA; Sat, 18 Jan 2014 22:18:54 -0500 (EST) In-Reply-To: (Barry OReilly's message of "Sat, 18 Jan 2014 19:58:14 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) 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:83704 Archived-At: > Where: > =E2=80=A2 delta, beg, end are as documented. > =E2=80=A2 undo-redo is a new function that copies undone-element, appli= es > undo-delta, then calls primitive-undo on it. > =E2=80=A2 undone-element is the undone element of buffer-undo-list. > =E2=80=A2 undo-delta is (position . offset) indicating how undo-redo sh= ould > modify a copy of undone-element in order to carry out the redo. > When executing undo-only: > =E2=80=A2 Assume pending-undo-list can be lazily computed > =E2=80=A2 Let undo-skip-set be an empty set of undo elements to skip > =E2=80=A2 Iterate over pending-undo-list until prefix-arg undos complet= e: > =E2=80=A2 If the element is in undo-skip-set: > =E2=80=A2 Remove it from undo-skip-set > =E2=80=A2 Continue loop > =E2=80=A2 If the element is of the form for a redo element: > =E2=80=A2 Insert its undone-element in the undo-skip-set > =E2=80=A2 Else undo the element In which way would this help fixing bug 2 (I thought we had already understood how to fix bug 2, BTW)? More problematic: the step "Insert its undone-element in the undo-skip-set" means that we skip this "redo" element, which means that all the subsequent elements (until the matching undone-element) may have incorrect buffer positions. Luckily, you probably won't bump into any problem because all these intermediate elements will themselves be redo elements or be in undo-skip-set. But it's still dangerous and wasteful (why not skip all these elements in one swoop as we currently do with undo-equiv-table). Stefan