From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 19 17:16:11 2014 Received: (at submit) by debbugs.gnu.org; 19 Feb 2014 22:16:11 +0000 Received: from localhost ([127.0.0.1]:60736 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WGFR4-0002ZW-09 for submit@debbugs.gnu.org; Wed, 19 Feb 2014 17:16:10 -0500 Received: from eggs.gnu.org ([208.118.235.92]:46250) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WGFR1-0002Z9-9n for submit@debbugs.gnu.org; Wed, 19 Feb 2014 17:16:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WGFQs-0000s8-T8 for submit@debbugs.gnu.org; Wed, 19 Feb 2014 17:16:02 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:55187) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WGFQs-0000s2-QP for submit@debbugs.gnu.org; Wed, 19 Feb 2014 17:15:58 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47955) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WGFQq-0006Lz-5m for bug-gnu-emacs@gnu.org; Wed, 19 Feb 2014 17:15:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WGFQn-0000r9-Ek for bug-gnu-emacs@gnu.org; Wed, 19 Feb 2014 17:15:56 -0500 Received: from mail-ob0-x234.google.com ([2607:f8b0:4003:c01::234]:46401) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WGFQn-0000r1-70 for bug-gnu-emacs@gnu.org; Wed, 19 Feb 2014 17:15:53 -0500 Received: by mail-ob0-f180.google.com with SMTP id vb8so825868obc.25 for ; Wed, 19 Feb 2014 14:15:52 -0800 (PST) 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=ABk073nS4thTkKBquASpYY3o4bgZrcDCVaAAXQoTzaQ=; b=BBsRGtIBODpdF/ZXLX5mQdi3yzSQ8lEBO4VVcxjNBuPqEzFJk7+g7xgDZYm6ev2zdL EoVUl0pgVJ6Dk9DVDceOEpgg/W8LVQGEKkbGOIiKrH/bjg4ls9fYHlvJLJOj7yyGoBF4 zk2GJUJFgXOEyVC9bZSfPISwR+H9HvkYkdSL8yHdnzyr6oaTVmqUTLhdexJrLPk3cxRK Sbv05NfdpbCosyfCgRi6gOuwTYZGIkb0kUi8gr0Hwl5JZ6b7hX61IS7KWClSFFKXCaNK mZ3pRSOjgcEVxeq5maoCzMXz3ghmDPS0sI0EYoOQhgsKl9gbVN9PmpnVY+IgFEJPgg0m 9CeQ== MIME-Version: 1.0 X-Received: by 10.182.87.42 with SMTP id u10mr33017984obz.22.1392848152415; Wed, 19 Feb 2014 14:15:52 -0800 (PST) Received: by 10.76.21.84 with HTTP; Wed, 19 Feb 2014 14:15:52 -0800 (PST) Date: Wed, 19 Feb 2014 17:15:52 -0500 Message-ID: Subject: Undo in region after markers in undo history relocated From: Barry OReilly To: bug-gnu-emacs@gnu.org Content-Type: multipart/alternative; boundary=089e013cba6259e29204f2c9bb69 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-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) --089e013cba6259e29204f2c9bb69 Content-Type: text/plain; charset=ISO-8859-1 Strange behavior with the following recipe, using trunk: * ./src/emacs -Q * Move point up two lines * Insert "aaa" * Undo * Move point down two lines * Insert "bbb" * Select "bbb" from end to beginning and delete * Insert "bbb" * Go to line where "aaa" was and select the line from beginning to end * Undo in region * Observe: * "Undo in region!" is echoed in the minibuffer * Unexpectedly, "aaa" is not reinserted back into the buffer * Strangely, the selection mark at BOL moves forward three chars * Undo in region again * Observe: * "aaa" is reinserted, despite selection no longer covering the region where "aaa" was Prior to the first undo in region, buffer-undo-list is: (nil (192 . 195) nil (bbb . 192) (# . -3) (# . -3) (# . -3) nil (192 . 195) (t . 0) nil (aaa . 141) nil (141 . 144) (t . 0) nil (1 . 192) (t . 0)) And after undo-make-selective-list pending-undo-list becomes: (nil (# . -3) (# . -3) nil (aaa . 141) nil (141 . 144) nil) It seems the # is the mark used during selection. When bbb is deleted, the mark is recorded into undo history, and it's still there when the selection mark has moved to position 141 before "aaa". So: > * Unexpectedly, "aaa" is not reinserted back into the buffer is due to the selection mark and another marker occupying their own change group in the filtered pending-undo-list, and that change group is chosen for the first undo in region. > Strangely, the selection mark at BOL moves forward three chars is due to the -3 marker adjustment. > * "aaa" is reinserted, despite selection no longer covering the region where "aaa" was is simply due to pending-undo-list being reused for the second consecutive undo, unaware that the selection mark was adjusted. I haven't determined what those other two markers are. But the general question comes up: how is the undo history meant to know about marker relocations? The code in adjust_markers_for_delete indicates markers are only recorded when they would be in a deleted region or immediately before it, so I think the only circumstance markers form their own undesired change group in the pending-undo-list is when recorded markers were relocated. --089e013cba6259e29204f2c9bb69 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Strange behavior with the following recipe, using trunk:
  • ./src/emacs -Q
  • Move point up two lines=
  • Insert "aaa"
  • Undo
  &b= ull; Move point down two lines
  • Insert "bbb"
  • Select "bbb" from end to beginning and delete
&n= bsp; • Insert "bbb"
  • Go to line where "= aaa" was and select the line from beginning to
    e= nd
  • Undo in region
  • Observe:
    • "Undo in region!" is echoed in the mini= buffer
    • Unexpectedly, "aaa" is not re= inserted back into the buffer
    • Strangely, the s= election mark at BOL moves forward three chars
  • Undo in reg= ion again
  • Observe:
    • "aaa" is rein= serted, despite selection no longer covering the
    = ;  region where "aaa" was

Prior to the first undo in = region, buffer-undo-list is:

  (nil (192 . 195) nil (bbb . 192)= (#<marker at 141 in *scratch*> . -3) (#<marker at 192 in *scratch= *> . -3) (#<marker at 190 in *scratch*> . -3) nil (192 . 195) (t .= 0) nil (aaa . 141) nil (141 . 144) (t . 0) nil (1 . 192) (t . 0))

And after undo-make-selective-list pending-undo-list becomes:

&n= bsp; (nil (#<marker at 141 in *scratch*> . -3) (#<marker at 190 in= *scratch*> . -3) nil (aaa . 141) nil (141 . 144) nil)

It seems t= he #<marker at 141 in *scratch*> is the mark used during
selection. When bbb is deleted, the mark is recorded into undo
history, = and it's still there when the selection mark has moved to
position 1= 41 before "aaa". So:

> • Unexpectedly, "aaa&q= uot; is not reinserted back into the buffer

is due to the selection mark and another marker occupying their own
= change group in the filtered pending-undo-list, and that change group
is= chosen for the first undo in region.

> Strangely, the selection = mark at BOL moves forward three chars

is due to the -3 marker adjustment.

> • "aaa" = is reinserted, despite selection no longer covering the
  &nbs= p; region where "aaa" was

is simply due to pending-undo-li= st being reused for the second
consecutive undo, unaware that the selection mark was adjusted.

I ha= ven't determined what those other two markers are. But the general
q= uestion comes up: how is the undo history meant to know about marker
relocations?

The code in adjust_markers_for_delete indicates markers= are only
recorded when they would be in a deleted region or immediately= before
it, so I think the only circumstance markers form their own unde= sired
change group in the pending-undo-list is when recorded markers
were relo= cated.

--089e013cba6259e29204f2c9bb69-- From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 19 18:08:05 2014 Received: (at 16818) by debbugs.gnu.org; 19 Feb 2014 23:08:05 +0000 Received: from localhost ([127.0.0.1]:60767 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WGGFI-0003z0-Og for submit@debbugs.gnu.org; Wed, 19 Feb 2014 18:08:05 -0500 Received: from mail-ob0-f175.google.com ([209.85.214.175]:40751) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WGGFG-0003yU-3Q for 16818@debbugs.gnu.org; Wed, 19 Feb 2014 18:08:02 -0500 Received: by mail-ob0-f175.google.com with SMTP id wn1so1254076obc.6 for <16818@debbugs.gnu.org>; Wed, 19 Feb 2014 15:07:56 -0800 (PST) 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 :content-type; bh=3Zk/Q4OJowgGVmpSIPSrcOyQR3L9yaFYXqgpAnAr968=; b=kDitY20lWdUVFWepGMD9X2cgZJjLvFv9n8C2GHDD1pGTLBBZUf/Cry7i6kz2gISutb TvWlw2HWaixw1dprov8va9krHPEpl3PH+nV057pevjeGcyVtyBmdgFzqCTjo4SlpUs+d IyQbGeBci1HGgH8KDXD95jAhRyT/pyTV94YPr2Ln4vgo5xIgCCxUe75/J4k9sZOvsQJq YqkBRXwA0O3i9zl3VoyeC4uVFpk0G3PDgigG0+iZOgWXhVpEoso8o9jkIFOjztEKDSmo 4vYGKdYDdgZ8wwEvuB3+MtwNkLYGa1HYUbsjIFZnBEPFmnIHIbw37lA9kdkRBs7vnBOg t9nA== MIME-Version: 1.0 X-Received: by 10.60.80.137 with SMTP id r9mr33999440oex.30.1392851276344; Wed, 19 Feb 2014 15:07:56 -0800 (PST) Received: by 10.76.21.84 with HTTP; Wed, 19 Feb 2014 15:07:56 -0800 (PST) In-Reply-To: References: Date: Wed, 19 Feb 2014 18:07:56 -0500 Message-ID: Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) From: Barry OReilly To: 16818@debbugs.gnu.org Content-Type: multipart/alternative; boundary=089e013a12f88d329a04f2ca75aa X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16818 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --089e013a12f88d329a04f2ca75aa Content-Type: text/plain; charset=ISO-8859-1 Another question: what is the purpose of undo-adjusted-markers? simple.el is the only file I found that references it, and it's only setting the variable without using it. I found the specialized GC treatment of undo history markers in compact_undo_list, so merely having references to the markers via undo-adjusted-markers might be a motivation. But I can't think of a particular reason for that. --089e013a12f88d329a04f2ca75aa Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Another question: what is the purpose of undo-adjusted-mar= kers?
simple.el is the only file I found that references it, and it'= s only
setting the variable without using it.

I found the special= ized GC treatment of undo history markers in
compact_undo_list, so merely having references to the markers via
undo-a= djusted-markers might be a motivation. But I can't think of a
partic= ular reason for that.


--089e013a12f88d329a04f2ca75aa-- From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 19 23:53:26 2014 Received: (at 16818) by debbugs.gnu.org; 20 Feb 2014 04:53:26 +0000 Received: from localhost ([127.0.0.1]:32858 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WGLdV-0005Mq-Pu for submit@debbugs.gnu.org; Wed, 19 Feb 2014 23:53:25 -0500 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:59660) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WGLdU-0005Me-L9 for 16818@debbugs.gnu.org; Wed, 19 Feb 2014 23:53:24 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4EABK/CFFLd/o4/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLNBIUGA0kiB4GwS2RCgOIYZwZgV6DFQ X-IPAS-Result: Av4EABK/CFFLd/o4/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLNBIUGA0kiB4GwS2RCgOIYZwZgV6DFQ X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="48208325" Received: from 75-119-250-56.dsl.teksavvy.com (HELO pastel.home) ([75.119.250.56]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 19 Feb 2014 23:53:19 -0500 Received: by pastel.home (Postfix, from userid 20848) id DBBA56336B; Wed, 19 Feb 2014 23:53:18 -0500 (EST) From: Stefan Monnier To: Barry OReilly Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) Message-ID: References: Date: Wed, 19 Feb 2014 23:53:18 -0500 In-Reply-To: (Barry OReilly's message of "Wed, 19 Feb 2014 18:07:56 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) > Another question: what is the purpose of undo-adjusted-markers? > simple.el is the only file I found that references it, and it's only > setting the variable without using it. I don't see that. It's set *and* read in undo-elt-in-region. Not sure exactly what is the purpose, tho. Stefan From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 20 09:39:03 2014 Received: (at 16818) by debbugs.gnu.org; 20 Feb 2014 14:39:03 +0000 Received: from localhost ([127.0.0.1]:33208 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WGUmE-0005hD-Gc for submit@debbugs.gnu.org; Thu, 20 Feb 2014 09:39:02 -0500 Received: from mail-oa0-f52.google.com ([209.85.219.52]:52092) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WGUmA-0005gh-MP for 16818@debbugs.gnu.org; Thu, 20 Feb 2014 09:38:59 -0500 Received: by mail-oa0-f52.google.com with SMTP id i4so1873336oah.11 for <16818@debbugs.gnu.org>; Thu, 20 Feb 2014 06:38:52 -0800 (PST) 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=Ab5TlQIbpiG1Ft8vv2bMfD19JbRLya7RUaZ6OtMFl40=; b=rpBXa2N4d9ohyCxtcCDRjQGSYPgZMOG+JgHzW6gCr/51S9SQeq9oWwJcTpSp9ezlee Ix0hvT34vHFKadwpTS8071k5BPTlzAwCfQzVQVqZi7VEHVi8qawga9ZS3LqRwNf6/6rX qgIVjbfRp7LHmYLqH9e1RA6xAVCIaaS+7Oauma9jQ0ueZaJ92T2ncmgZmoHA9fezUj3W ZuTasEPdCgAJ4+wofIksHRHYo+O7JnT0Ia4JsSh7YS/1h6gWwVpjZWSQacg3I7w1UmNG pFzZt4m2kh7PqwRi6Cc33QM7FqHaHSAEdZX/V18cEMaxMayLuI296SlveOAc0RvjR62t 2MSQ== MIME-Version: 1.0 X-Received: by 10.60.123.75 with SMTP id ly11mr1772595oeb.1.1392907132737; Thu, 20 Feb 2014 06:38:52 -0800 (PST) Received: by 10.76.21.84 with HTTP; Thu, 20 Feb 2014 06:38:52 -0800 (PST) In-Reply-To: References: Date: Thu, 20 Feb 2014 09:38:52 -0500 Message-ID: Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) From: Barry OReilly To: Stefan Monnier Content-Type: multipart/alternative; boundary=047d7b5d25e4da31f804f2d7760b X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --047d7b5d25e4da31f804f2d7760b Content-Type: text/plain; charset=ISO-8859-1 > I don't see that. It's set *and* read in undo-elt-in-region. Not > sure exactly what is the purpose, tho. I found no purpose at all for it. The more pertinent question is: > the general question comes up: how is the undo history meant to know > about marker relocations? I think the marker adjustment entries in the undo history are invalid when a marker is relocated elsewhere. I don't see code to deal with that, so how you would like it to happen? --047d7b5d25e4da31f804f2d7760b Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
> I don't see that. It's set *and* read in undo= -elt-in-region. Not
> sure exactly what is the purpose, tho.

I= found no purpose at all for it.

The more pertinent question is:

> the general question comes up: how is the undo history meant to kn= ow
> about marker relocations?

I think the marker adjustment e= ntries in the undo history are invalid
when a marker is relocated elsewh= ere. I don't see code to deal with
that, so how you would like it to happen?

--047d7b5d25e4da31f804f2d7760b-- From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 24 17:46:21 2014 Received: (at 16818) by debbugs.gnu.org; 24 Feb 2014 22:46:21 +0000 Received: from localhost ([127.0.0.1]:38280 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WI4I0-0002Au-1f for submit@debbugs.gnu.org; Mon, 24 Feb 2014 17:46:21 -0500 Received: from mail-oa0-f47.google.com ([209.85.219.47]:55744) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WI4Hx-0002Ae-48 for 16818@debbugs.gnu.org; Mon, 24 Feb 2014 17:46:18 -0500 Received: by mail-oa0-f47.google.com with SMTP id h16so2768936oag.6 for <16818@debbugs.gnu.org>; Mon, 24 Feb 2014 14:46:11 -0800 (PST) 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=PvVGn6G571S8zcg9JVeGDT1wQg3V3YM55PzBaMU3orU=; b=Y+q5VuqYcbz/aRalP5QA25/5QISAaJUy4h8dpXvgfihmbl+iV1I+4RyefW5XeGT5ig Kg1NPmHo9DxSLRUXxaPglSNCScczLOO0joyeRMHWdP+eagt2nm8ZLLXCOLQekv0rh4Pt Mzn4730nqjXXDyPAVqri8rO2CaQyMHssnBwcIuYZXrI86UQfYWQ42V2DtiHq75WnTPU9 f7KT2LIzrdh/AHoH8hu369b77WStsSVa1QF/mjFy3o9bbMjEv2wAopT/ibK27F9XkR2j Y3q/MMK4klASvU75RxOgV2DsYBzvGtn9kP7xGn+n8U55yaDKOLgHRlv9wbuPTJPxfmAm hOKQ== MIME-Version: 1.0 X-Received: by 10.60.115.68 with SMTP id jm4mr18394789oeb.45.1393281971300; Mon, 24 Feb 2014 14:46:11 -0800 (PST) Received: by 10.76.21.84 with HTTP; Mon, 24 Feb 2014 14:46:11 -0800 (PST) In-Reply-To: References: Date: Mon, 24 Feb 2014 17:46:11 -0500 Message-ID: Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) From: Barry OReilly To: Stefan Monnier Content-Type: multipart/alternative; boundary=089e0115f368f8aea004f32ebc79 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --089e0115f368f8aea004f32ebc79 Content-Type: text/plain; charset=ISO-8859-1 > > the general question comes up: how is the undo history meant to > > know about marker relocations? > I think the marker adjustment entries in the undo history are > invalid when a marker is relocated elsewhere. I don't see code to > deal with that, so how you would like it to happen? I found the Elisp manual says about moving markers: When you do this, be sure you know whether the marker is used outside of your program, and, if so, what effects will result from moving it--otherwise, confusing things may happen in other parts of Emacs. So if we expand on the guidance as follows: diff --git a/doc/lispref/markers.texi b/doc/lispref/markers.texi index 51b87ab..19386d6 100644 --- a/doc/lispref/markers.texi +++ b/doc/lispref/markers.texi @@ -344,10 +344,12 @@ specify the insertion type, create them with insertion type @section Moving Marker Positions This section describes how to change the position of an existing -marker. When you do this, be sure you know whether the marker is used -outside of your program, and, if so, what effects will result from -moving it---otherwise, confusing things may happen in other parts of -Emacs. +marker. When you do this, be sure you know how the marker is used +outside of your program. For example, moving a marker to an unrelated +new position can cause undo to later adjust the marker incorrectly. +Often when you wish to relocate a marker to an unrelated position, it +is preferable to make a new marker and set the prior one to point +nowhere. @defun set-marker marker position &optional buffer This function moves @var{marker} to @var{position} then we don't need to worry about markers in general, only the particular offending ones of the recipe. As I described, one offending marker is the mark-marker. From the push-mark function: (defun push-mark (&optional location nomsg activate) [...] (setq mark-ring (cons (copy-marker (mark-marker)) mark-ring)) [...] (set-marker (mark-marker) (or location (point)) (current-buffer)) [...] (setq global-mark-ring (cons (copy-marker (mark-marker)) global-mark-ring)) ) Two copies are made and the copies go to the mark-ring and global-mark-ring. The mark continues to be the same marker object under eq as before, only mutated. Consequently, not only does undo adjust a marker it shouldn't have, but it doesn't adjust the copies in the rings when it should have. What makes more sense to me is that the old value of mark-marker is pushed onto the rings, then a new marker object is created to become the value of mark-marker. Then the marker adjustment records would reference the right markers. Effectively this means the mark would follow the advice of the Elisp manual excerpt above. I welcome your guidance about what the right way to solve this bug is. Thank you. --089e0115f368f8aea004f32ebc79 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
> > the general question comes up: how is the undo h= istory meant to
> > know about marker relocations?

> I t= hink the marker adjustment entries in the undo history are
> invalid = when a marker is relocated elsewhere. I don't see code to
> deal with that, so how you would like it to happen?

I found the= Elisp manual says about moving markers:

  When you do this, be= sure you know whether the marker is used
  outside of your program= , and, if so, what effects will result from
  moving it—otherwise, confusing things may happen in other part= s of
  Emacs.

So if we expand on the guidance as follows:
diff --git a/doc/lispref/markers.texi b/doc/lispref/markers.texi
in= dex 51b87ab..19386d6 100644
--- a/doc/lispref/markers.texi
+++ b/doc/lispref/markers.texi
@@ -344= ,10 +344,12 @@ specify the insertion type, create them with insertion type<= br> @section Moving Marker Positions
 
   This se= ction describes how to change the position of an existing
-marker.  When you do this, be sure you know whether the marker is use= d
-outside of your program, and, if so, what effects will result from-moving it---otherwise, confusing things may happen in other parts of
-= Emacs.
+marker.  When you do this, be sure you know how the marker is used+outside of your program.  For example, moving a marker to an unrelat= ed
+new position can cause undo to later adjust the marker incorrectly.<= br>+Often when you wish to relocate a marker to an unrelated position, it +is preferable to make a new marker and set the prior one to point
+nowh= ere.
 
 @defun set-marker marker position &optional buf= fer
 This function moves @var{marker} to @var{position}

then= we don't need to worry about markers in general, only the
particular offending ones of the recipe.

As I described, one offendi= ng marker is the mark-marker. From the
push-mark function:

(defun= push-mark (&optional location nomsg activate)
  [...]
 = ;   (setq mark-ring (cons (copy-marker (mark-marker)) mark-ring))=
  [...]
  (set-marker (mark-marker) (or location (point)) (cur= rent-buffer))
  [...]
  (setq global-mark-ring (cons (copy-= marker (mark-marker)) global-mark-ring))
  )

Two copies are = made and the copies go to the mark-ring and
global-mark-ring. The mark continues to be the same marker object
under = eq as before, only mutated. Consequently, not only does undo
adjust a ma= rker it shouldn't have, but it doesn't adjust the copies in
the rings when it should have.

What makes more sense to me is that t= he old value of mark-marker is
pushed onto the rings, then a new marker = object is created to become
the value of mark-marker. Then the marker ad= justment records would
reference the right markers. Effectively this means the mark would
follo= w the advice of the Elisp manual excerpt above.

I welcome your guida= nce about what the right way to solve this bug is.
Thank you.

--089e0115f368f8aea004f32ebc79-- From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 25 16:44:11 2014 Received: (at 16818) by debbugs.gnu.org; 25 Feb 2014 21:44:11 +0000 Received: from localhost ([127.0.0.1]:39983 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WIPnP-0001YD-30 for submit@debbugs.gnu.org; Tue, 25 Feb 2014 16:44:11 -0500 Received: from mercure.iro.umontreal.ca ([132.204.24.67]:56652) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WIPnJ-0001Xz-LX for 16818@debbugs.gnu.org; Tue, 25 Feb 2014 16:44:06 -0500 Received: from hidalgo.iro.umontreal.ca (hidalgo.iro.umontreal.ca [132.204.27.50]) by mercure.iro.umontreal.ca (Postfix) with ESMTP id E7F8D84DE2; Tue, 25 Feb 2014 16:44:04 -0500 (EST) Received: from lechon.iro.umontreal.ca (lechon.iro.umontreal.ca [132.204.27.242]) by hidalgo.iro.umontreal.ca (Postfix) with ESMTP id 3B89B1E5B74; Tue, 25 Feb 2014 16:43:32 -0500 (EST) Received: by lechon.iro.umontreal.ca (Postfix, from userid 20848) id 09E0CB4128; Tue, 25 Feb 2014 16:43:31 -0500 (EST) From: Stefan Monnier To: Barry OReilly Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) Message-ID: References: Date: Tue, 25 Feb 2014 16:43:31 -0500 In-Reply-To: (Barry OReilly's message of "Mon, 24 Feb 2014 17:46:11 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-DIRO-MailScanner-Information: Please contact the ISP for more information X-DIRO-MailScanner: Found to be clean X-DIRO-MailScanner-SpamCheck: n'est pas un polluriel, SpamAssassin (score=-2.82, requis 5, autolearn=not spam, ALL_TRUSTED -2.82, MC_TSTLAST 0.00) X-DIRO-MailScanner-From: monnier@iro.umontreal.ca X-Spam-Status: No X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) > What makes more sense to me is that the old value of mark-marker is > pushed onto the rings, then a new marker object is created to become > the value of mark-marker. Then the marker adjustment records would > reference the right markers. Effectively this means the mark would > follow the advice of the Elisp manual excerpt above. That sounds right. I don't have time to really understand the ins and outs, but if you can write an ERT test case for it, we could install the change. Stefan From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 26 10:18:15 2014 Received: (at 16818) by debbugs.gnu.org; 26 Feb 2014 15:18:15 +0000 Received: from localhost ([127.0.0.1]:41420 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WIgFT-0008OT-52 for submit@debbugs.gnu.org; Wed, 26 Feb 2014 10:18:15 -0500 Received: from mail-ob0-f182.google.com ([209.85.214.182]:63477) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WIgFQ-0008OL-Lr for 16818@debbugs.gnu.org; Wed, 26 Feb 2014 10:18:13 -0500 Received: by mail-ob0-f182.google.com with SMTP id uz6so889891obc.41 for <16818@debbugs.gnu.org>; Wed, 26 Feb 2014 07:18:12 -0800 (PST) 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=62I7qJcp8jNQRJPlCzxC7xfMPhZ11mcX0LsZngCP6YA=; b=poz5T0igfNec2L49VNzsdw+6pPv02hKLupuAKb3P9ZAy19XQq4cY2U9TWiySppZOsu /lLEm/02BXPR1TqwYs6pa0RDUig0+SwYuYFPH2hlWoA7jL84jvLdPjdllPKRrur3bore PB+2xJkWv1t2II2oHzf3MmWEmyPBfRiEFMRIuZ1wvPhRguW+V66jPrfsF/Uj6X/rs5Nd ick5wbF/PvG3oH4AbnjWbyM9RJ0ExRDbTQr9uN1qc8v5vy5fWJ6cmrgSADlO9KHVEr1I N6Xor9mUzIYtSk4S1wZbxYOWe4onsnRdX7dyVLfJHoLVCQcpt9OjdfnR7ZUsBc4Xjxpm UPjw== MIME-Version: 1.0 X-Received: by 10.182.243.138 with SMTP id wy10mr525686obc.83.1393427892099; Wed, 26 Feb 2014 07:18:12 -0800 (PST) Received: by 10.76.21.84 with HTTP; Wed, 26 Feb 2014 07:18:12 -0800 (PST) In-Reply-To: References: Date: Wed, 26 Feb 2014 10:18:12 -0500 Message-ID: Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) From: Barry OReilly To: Stefan Monnier Content-Type: multipart/alternative; boundary=001a11c2a12087612b04f350b68c X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --001a11c2a12087612b04f350b68c Content-Type: text/plain; charset=ISO-8859-1 > That sounds right. I don't have time to really understand the ins > and outs, but if you can write an ERT test case for it, we could > install the change. Thanks. The doc patch is relevant with or without a fix, so I'll install that soon if there's no objections. --001a11c2a12087612b04f350b68c Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
> That sounds right. I don't have time to really un= derstand the ins
> and outs, but if you can write an ERT test case fo= r it, we could
> install the change.

Thanks. The doc patch is = relevant with or without a fix, so I'll
install that soon if there's no objections.

--001a11c2a12087612b04f350b68c-- From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 11 17:24:34 2014 Received: (at 16818) by debbugs.gnu.org; 11 Mar 2014 21:24:35 +0000 Received: from localhost ([127.0.0.1]:33629 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WNUA4-0007fL-2a for submit@debbugs.gnu.org; Tue, 11 Mar 2014 17:24:34 -0400 Received: from mail-oa0-f54.google.com ([209.85.219.54]:33367) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WNU9y-0007f7-EP for 16818@debbugs.gnu.org; Tue, 11 Mar 2014 17:24:28 -0400 Received: by mail-oa0-f54.google.com with SMTP id n16so9384099oag.27 for <16818@debbugs.gnu.org>; Tue, 11 Mar 2014 14:24:25 -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=12zjDy5so2qaetN8liHiRM/TzrNiTKxL/QwG4RAoz2o=; b=SPYHJUqrjvtoUyoxK7xcY1i+fPa8XWWToriR4nwtkhoxaMjpaacnzS3Syn0S72vhzi B2TLZZdJBlS1tdrNFhXSgSZIaraBGQIMwUtONMPrPEnFZHCfgxzUNyytB4Yd2ojvtKQl dmhz8Ovax2OM0fsaGelyYs2lvohYcqXMeJdUX/2FAsJ33GRs9xjqNVtO5B1+UlFJsx6Y GUJ2QsWNhMMYlMiAlhuQPMRQSHvFwu/p2GIqwWxEdPcXPz5Cf/6w9T02Hc+gc0u/Jk3K 9uaDF/yA1DHpgm900z2UlqLvmZ6m+D5olrGxWVysLV289rJT47G7xYAJajBmku3d/XxE I0FA== MIME-Version: 1.0 X-Received: by 10.60.145.225 with SMTP id sx1mr10882653oeb.30.1394573065665; Tue, 11 Mar 2014 14:24:25 -0700 (PDT) Received: by 10.76.6.44 with HTTP; Tue, 11 Mar 2014 14:24:25 -0700 (PDT) In-Reply-To: References: Date: Tue, 11 Mar 2014 17:24:25 -0400 Message-ID: Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) From: Barry OReilly To: Stefan Monnier Content-Type: multipart/alternative; boundary=047d7b5d485231430d04f45b583f X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --047d7b5d485231430d04f45b583f Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable >> What makes more sense to me is that the old value of mark-marker is >> pushed onto the rings, then a new marker object is created to >> become the value of mark-marker. Then the marker adjustment records >> would reference the right markers. Effectively this means the mark >> would follow the advice of the Elisp manual excerpt above. > That sounds right. I don't have time to really understand the ins > and outs, but if you can write an ERT test case for it, we could > install the change. At the end is a patch to implement this. I wrote the marker-tests to make sure I didn't break anything too badly, they pass with or without the rest of the patch. The new undo-test-mark-adjustment implements the recipe of this bug report. It fails with current trunk and passes with the patch. Of the original symptoms of this bug report, the patch solves: >> Strangely, the selection mark at BOL moves forward three chars but not: >> * Unexpectedly, "aaa" is not reinserted back into the buffer > is due to the selection mark and another marker occupying their own > change group in the filtered pending-undo-list, and that change > group is chosen for the first undo in region. The selection mark is no longer "in the way" on the pending-undo-list, but the another marker still is. It only is when the recipe is carried out manually apparently, because the marker is not there when the recipe is carried out in the undo-test-mark-adjustment. IOW, the ERT test passes the same test case that fails when carried out manually. Debugging the C sources, I find the offending marker in the pending-undo-list is first created at the following C and Lisp backtraces: Obtained 31 stack frames. ./src/emacs [0x52c2b4] ./src/emacs(Fmake_overlay+0xf2) [0x526062] ./src/emacs(Ffuncall+0x371) [0x5729c1] ./src/emacs(exec_byte_code+0x3a5) [0x5a42e5] ./src/emacs(Ffuncall+0x20c) [0x57285c] ./src/emacs(exec_byte_code+0x3a5) [0x5a42e5] ./src/emacs(Ffuncall+0x20c) [0x57285c] ./src/emacs(exec_byte_code+0x3a5) [0x5a42e5] ./src/emacs(Ffuncall+0x20c) [0x57285c] ./src/emacs(eval_sub+0x6a8) [0x572118] ./src/emacs(internal_lisp_condition_case+0x21b) [0x574cbb] ./src/emacs(exec_byte_code+0x12fa) [0x5a523a] ./src/emacs(Ffuncall+0x20c) [0x57285c] ./src/emacs(Fapply+0x2c7) [0x572fe7] ./src/emacs(Ffuncall+0x422) [0x572a72] ./src/emacs(exec_byte_code+0x3a5) [0x5a42e5] ./src/emacs(Ffuncall+0x20c) [0x57285c] ./src/emacs(internal_condition_case_n+0xfe) [0x5713ce] ./src/emacs(safe_call+0x138) [0x463298] ./src/emacs [0x4814f4] ./src/emacs(read_char+0x965) [0x50f3b5] ./src/emacs [0x510bad] ./src/emacs(command_loop_1+0x27e) [0x51267e] ./src/emacs(internal_condition_case+0xda) [0x57101a] ./src/emacs [0x5097ca] ./src/emacs(internal_catch+0xd8) [0x570ef8] ./src/emacs(recursive_edit_1+0x120) [0x508d00] ./src/emacs(Frecursive_edit+0xc7) [0x50a687] ./src/emacs(main+0x8ed) [0x5016ad] /lib64/libc.so.6(__libc_start_main+0xf4) [0x31cf01d994] ./src/emacs [0x43b369] make-overlay(192 193) #[1028 "=C3=81=01!=C2=84=1C=C3=82=04=04\=02!=C2=88=C3=83=01=C3=84#=C2=88= =C3=83=01=C3 =C3=86#=C2=88=C2=89=C2=87=C3=87=01!p=3D=C2=834=C3=88=01!=04=3D=C2=834=C3=89= =01!=03=3D=C2=84;=C3=8A=01p$=C2=88=C2=87" [redisplay-unhighlight-region-function overlayp make-overlay overlay-put window face region overlay-buffer overlay-start overlay-end move-overlay] 9 " (fn START END WINDOW ROL)"](192 193 # nil) redisplay--update-region-highlight(#) #[0 "=C3=80=C2=A2=C2=84 =C3=83=C3=84 !=C2=87=C3=80=C2=A2<=C2=84=18=C3=80=C3 =C3=86=C2=89=C3=87#=C2 = =C2=88 =C2=83\"=C3=88=C3=83=C3=80=C2=A2\"=C2=87=C3=89 =C2 )=C3=8A =C3=80=C2= =A2=C2=89=C2 S=C2=89@=C2=89=C3=84 =3D=C2=84>=C2=89=03=3D=C2=83E=C3=83=01!=C2=88=C2=82L =C3=8B=02=C3=8C\"!=C2=88=01A=C2=B6=C2=82=C2=82+=C2=B2=01=C2=87" [((#)) highlight-nonselected-windows redisplay-unhighlight-region-function redisplay--update-region-highlight selected-window window-list-1 nil t mapc window-minibuffer-p minibuffer-selected-window window-parameter internal-region-overlay] 7 " (fn)"]() funcall(#[0 "=C3=80=C2=A2=C2=84 =C3=83=C3=84 !=C2=87=C3=80=C2=A2<=C2=84=18=C3=80=C3 =C3=86=C2=89=C3=87#=C2 = =C2=88 =C2=83\"=C3=88=C3=83=C3=80=C2=A2\"=C2=87=C3=89 =C2 )=C3=8A =C3=80=C2= =A2=C2=89=C2 S=C2=89@=C2=89=C3=84 =3D=C2=84>=C2=89=03=3D=C2=83E=C3=83=01!=C2=88=C2=82L =C3=8B=02=C3=8C\"!=C2=88=01A=C2=B6=C2=82=C2=82+=C2=B2=01=C2=87" [((#)) highlight-nonselected-windows redisplay-unhighlight-region-function redisplay--update-region-highlight selected-window window-list-1 nil t mapc window-minibuffer-p minibuffer-selected-window window-parameter internal-region-overlay] 7 " (fn)"]) redisplay--update-region-highlights((#)) apply(redisplay--update-region-highlights (#)) #[128 "=C3=80=C3=81=02\"=C2=88=C3=80=C3=82=02\"=C2=87" [apply redisplay--= update-region-highlights ignore nil] 4 nil nil]((#)) redisplay_internal\ \(C\ function\)() Following the redisplay code indicated, it looks like the same overlay object is reused for subsequent region selections. If so, the explanation is similar as for the mark: the marker of the internal-region-overlay is the same under eq when "bbb" is selected and deleted as when the line formerly containing "aaa" is selected followed by undo in region. The marker adjustment is incorrectly found because the marker moved, and consequently the "aaa" undo record is not found. Would the solution be analogous as for the mark: make a new overlay for each new region selection? Finally, here's the patch that fixes this problem wrt the mark: diff --git a/lisp/simple.el b/lisp/simple.el index f9447b1..5b7970c 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -4399,11 +4399,11 @@ If NO-TMM is non-nil, leave `transient-mark-mode' alone." (setq transient-mark-mode 'lambda)) (run-hooks 'activate-mark-hook))) -(defun set-mark (pos) - "Set this buffer's mark to POS. Don't use this function! -That is to say, don't use this function unless you want -the user to see that the mark has moved, and you want the previous -mark position to be lost. +(defun set-mark (pos-or-marker) + "Set this buffer's mark to POS-OR-MARKER. Don't use this +function! That is to say, don't use this function unless you +want the user to see that the mark has moved, and you want the +previous mark position to be lost. Normally, when a new mark is set, the old one should go on the stack. This is why most applications should use `push-mark', not `set-mark'. @@ -4415,9 +4415,10 @@ To remember a location for internal use in the Lisp program, store it in a Lisp variable. Example: (let ((beg (point))) (forward-line 1) (delete-region beg (point)))." - - (set-marker (mark-marker) pos (current-buffer)) - (if pos + (if (markerp pos-or-marker) + (setq mark pos-or-marker) + (set-marker (mark-marker) pos-or-marker (current-buffer))) + (if pos-or-marker (activate-mark 'no-tmm) ;; Normally we never clear mark-active except in Transient Mark mode. ;; But when we actually clear out the mark value too, we must @@ -4639,10 +4640,12 @@ purposes. See the documentation of `set-mark' for more information. In Transient Mark mode, activate mark if optional third arg ACTIVATE non-nil." (unless (null (mark t)) - (setq mark-ring (cons (copy-marker (mark-marker)) mark-ring)) + (push (mark-marker) mark-ring) (when (> (length mark-ring) mark-ring-max) - (move-marker (car (nthcdr mark-ring-max mark-ring)) nil) + ;; Remove from mark-ring. Note that marker may be in + ;; global-mark-ring, so don't point it nowhere. (setcdr (nthcdr (1- mark-ring-max) mark-ring) nil))) + (set-mark (copy-marker (mark-marker))) (set-marker (mark-marker) (or location (point)) (current-buffer)) ;; Now push the mark on the global mark ring. (if (and global-mark-ring @@ -4650,9 +4653,8 @@ In Transient Mark mode, activate mark if optional third arg ACTIVATE non-nil." ;; The last global mark pushed was in this same buffer. ;; Don't push another one. nil - (setq global-mark-ring (cons (copy-marker (mark-marker)) global-mark-ring)) + (push (mark-marker) global-mark-ring) (when (> (length global-mark-ring) global-mark-ring-max) - (move-marker (car (nthcdr global-mark-ring-max global-mark-ring)) nil) (setcdr (nthcdr (1- global-mark-ring-max) global-mark-ring) nil))) (or nomsg executing-kbd-macro (> (minibuffer-depth) 0) (message "Mark set")) @@ -4664,11 +4666,9 @@ In Transient Mark mode, activate mark if optional third arg ACTIVATE non-nil." "Pop off mark ring into the buffer's actual mark. Does not set point. Does nothing if mark ring is empty." (when mark-ring - (setq mark-ring (nconc mark-ring (list (copy-marker (mark-marker))))) - (set-marker (mark-marker) (+ 0 (car mark-ring)) (current-buffer)) - (move-marker (car mark-ring) nil) - (if (null (mark t)) (ding)) - (setq mark-ring (cdr mark-ring))) + (setq mark-ring (nconc mark-ring (list (mark-marker)))) + (set-mark (pop mark-ring)) + (if (null (mark t)) (ding))) (deactivate-mark)) (define-obsolete-function-alias diff --git a/src/buffer.c b/src/buffer.c index 90c1542..d811515 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -5161,6 +5161,7 @@ init_buffer_once (void) bset_abbrev_table (&buffer_defaults, Qnil); bset_display_table (&buffer_defaults, Qnil); bset_undo_list (&buffer_defaults, Qnil); + bset_mark (&buffer_defaults, Qnil); bset_mark_active (&buffer_defaults, Qnil); bset_file_format (&buffer_defaults, Qnil); bset_auto_save_file_format (&buffer_defaults, Qt); @@ -5219,6 +5220,7 @@ init_buffer_once (void) bset_major_mode (&buffer_local_flags, make_number (-1)); bset_mode_name (&buffer_local_flags, make_number (-1)); bset_undo_list (&buffer_local_flags, make_number (-1)); + bset_mark (&buffer_local_flags, make_number (-1)); bset_mark_active (&buffer_local_flags, make_number (-1)); bset_point_before_scroll (&buffer_local_flags, make_number (-1)); bset_file_truename (&buffer_local_flags, make_number (-1)); @@ -6124,6 +6126,9 @@ the changes between two undo boundaries as a single step to be undone. If the value of the variable is t, undo information is not recorded. */); + DEFVAR_PER_BUFFER ("mark", &BVAR (current_buffer, mark), Qnil, + doc: /* The buffer's mark. */); + DEFVAR_PER_BUFFER ("mark-active", &BVAR (current_buffer, mark_active), Qnil, doc: /* Non-nil means the mark and region are currently active in this buffer. */); diff --git a/test/automated/marker-tests.el b/test/automated/marker-tests.e= l new file mode 100644 index 0000000..87ebf82 --- /dev/null +++ b/test/automated/marker-tests.el @@ -0,0 +1,59 @@ +;;; marker-tests.el --- tests for common markers such as the mark -*- lexical-binding:t -*- + +;; Copyright (C) 2014 Free Software Foundation, Inc. + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Commentary: + +;;; Code: + +(ert-deftest marker-tests-mark-rings () + (let ((buf1 (generate-new-buffer "buf1")) + (buf2 (generate-new-buffer "buf2"))) + (set-buffer buf1) + (insert "abcdefg") + (push-mark 1) + (goto-char 2) + (push-mark) + (set-buffer buf2) + (insert "ABCDEFG") + (push-mark) + (set-buffer buf1) + (pop-global-mark) + (should (eq (current-buffer) (marker-buffer (mark-marker)))) + (should (eq (current-buffer) buf2)) + (goto-char 3) + (pop-mark) ; Shouldn't go anywhere, mark-ring empty + (should (=3D 3 (point))) + (pop-global-mark) + (should (eq (current-buffer) buf1)) + (push-mark 4) + (should (=3D 4 (mark t))) + (goto-char 5) + (exchange-point-and-mark) + (should (=3D 4 (point))) + (should (=3D 5 (marker-position (mark-marker)))) + (pop-mark) + (should (=3D 2 (mark t))) + (pop-mark) + (should (=3D 1 (mark t))) + (should (=3D 4 (point))) + (should (eq (current-buffer) buf1)))) + +;;; marker-tests.el ends here + + diff --git a/test/automated/undo-tests.el b/test/automated/undo-tests.el index 8a963f1..a4ed95e 100644 --- a/test/automated/undo-tests.el +++ b/test/automated/undo-tests.el @@ -268,6 +268,46 @@ (should (string=3D (buffer-string) "This sentence corrupted?aaa")))) +(ert-deftest undo-test-mark-adjustment () + "Test that the mark's marker adjustment in undo history doesn't + obstruct undo in region from finding the correct change group. + Demonstrates bug 16818." + (with-temp-buffer + (buffer-enable-undo) + (transient-mark-mode 1) + (insert "First line\n") + (insert "Second line\n") + (undo-boundary) + + (goto-char (point-min)) + (insert "aaa") + (undo-boundary) + + (undo) + (undo-boundary) + + (goto-char (point-max)) + (insert "bbb") + (undo-boundary) + + (push-mark (point) t t) + (setq mark-active t) + (goto-char (- (point) 3)) + (delete-forward-char 1) + (undo-boundary) + + (insert "bbb") + (undo-boundary) + + (goto-char (point-min)) + (push-mark (point) t t) + (setq mark-active t) + (goto-char (+ (point) 3)) + (undo) + (undo-boundary) + + (should (string=3D (buffer-string) "aaaFirst line\nSecond line\nbbb"))= )) + (defun undo-test-all (&optional interactive) "Run all tests for \\[undo]." (interactive "p") --047d7b5d485231430d04f45b583f Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
>> What makes more sense to me is that the old value= of mark-marker is
>> pushed onto the rings, then a new marker obj= ect is created to
>> become the value of mark-marker. Then the mar= ker adjustment records
>> would reference the right markers. Effectively this means the mark=
>> would follow the advice of the Elisp manual excerpt above.
=
> That sounds right. I don't have time to really understand the = ins
> and outs, but if you can write an ERT test case for it, we could
&g= t; install the change.

At the end is a patch to implement this. I wr= ote the marker-tests to
make sure I didn't break anything too badly,= they pass with or without
the rest of the patch. The new undo-test-mark-adjustment implements
the = recipe of this bug report. It fails with current trunk and passes
with t= he patch.

Of the original symptoms of this bug report, the patch sol= ves:

>> Strangely, the selection mark at BOL moves forward three chars=

but not:

>> * Unexpectedly, "aaa" is not rei= nserted back into the buffer
> is due to the selection mark and anoth= er marker occupying their own
> change group in the filtered pending-undo-list, and that change
>= ; group is chosen for the first undo in region.

The selection mark i= s no longer "in the way" on the pending-undo-list,
but the ano= ther marker still is. It only is when the recipe is carried
out manually apparently, because the marker is not there when the
recipe= is carried out in the undo-test-mark-adjustment. IOW, the ERT
test pass= es the same test case that fails when carried out manually.

Debuggin= g the C sources, I find the offending marker in the
pending-undo-list is first created at the following C and Lisp
backtrace= s:

Obtained 31 stack frames.
./src/emacs [0x52c2b4]
./src/emac= s(Fmake_overlay+0xf2) [0x526062]
./src/emacs(Ffuncall+0x371) [0x5729c1]<= br> ./src/emacs(exec_byte_code+0x3a5) [0x5a42e5]
./src/emacs(Ffuncall+0x20c)= [0x57285c]
./src/emacs(exec_byte_code+0x3a5) [0x5a42e5]
./src/emacs(= Ffuncall+0x20c) [0x57285c]
./src/emacs(exec_byte_code+0x3a5) [0x5a42e5]<= br> ./src/emacs(Ffuncall+0x20c) [0x57285c]
./src/emacs(eval_sub+0x6a8) [0x57= 2118]
./src/emacs(internal_lisp_condition_case+0x21b) [0x574cbb]
./sr= c/emacs(exec_byte_code+0x12fa) [0x5a523a]
./src/emacs(Ffuncall+0x20c) [0= x57285c]
./src/emacs(Fapply+0x2c7) [0x572fe7]
./src/emacs(Ffuncall+0x422) [0x572a= 72]
./src/emacs(exec_byte_code+0x3a5) [0x5a42e5]
./src/emacs(Ffuncall= +0x20c) [0x57285c]
./src/emacs(internal_condition_case_n+0xfe) [0x5713ce= ]
./src/emacs(safe_call+0x138) [0x463298]
./src/emacs [0x4814f4]
./src/= emacs(read_char+0x965) [0x50f3b5]
./src/emacs [0x510bad]
./src/emacs(= command_loop_1+0x27e) [0x51267e]
./src/emacs(internal_condition_case+0xd= a) [0x57101a]
./src/emacs [0x5097ca]
./src/emacs(internal_catch+0xd8) [0x570ef8]
./= src/emacs(recursive_edit_1+0x120) [0x508d00]
./src/emacs(Frecursive_edit= +0xc7) [0x50a687]
./src/emacs(main+0x8ed) [0x5016ad]
/lib64/libc.so.6= (__libc_start_main+0xf4) [0x31cf01d994]
./src/emacs [0x43b369]
=A0 make-overlay(192 193)
=A0 #[1028 "=C3= =81=01!=C2=84=1C=C3=82=04=04\=02!=C2=88=C3=83=01=C3=84#=C2=88=C3=83=01=C3= =85=C3=86#=C2=88=C2=89=C2=87=C3=87=01!p=3D=C2=834=C3=88=01!=04=3D=C2=834=C3= =89=01!=03=3D=C2=84;=C3=8A=01p$=C2=88=C2=87" [redisplay-unhighlight-re= gion-function overlayp make-overlay overlay-put window face region overlay-= buffer overlay-start overlay-end move-overlay] 9 "

(fn START END WINDOW ROL)"](192 193 #<window 3 on *scratch*>= nil)
=A0 redisplay--update-region-highlight(#<window 3 on *scratch*&= gt;)
=A0 #[0 "=C3=80=C2=A2=C2=84
=C3=83=C3=84 !=C2=87=C3=80=C2= =A2<=C2=84=18=C3=80=C3=85=C3=86=C2=89=C3=87#=C2=A0=C2=88 =C2=83\"= =C3=88=C3=83=C3=80=C2=A2\"=C2=87=C3=89 =C2=85)=C3=8A =C3=80=C2=A2=C2= =89=C2=85S=C2=89@=C2=89=C3=84 =3D=C2=84>=C2=89=03=3D=C2=83E=C3=83=01!=C2= =88=C2=82L
=C3=8B=02=C3=8C\"!=C2=88=01A=C2=B6=C2=82=C2=82+=C2=B2=01=C2=87" [= ((#<window 3 on *scratch*>)) highlight-nonselected-windows redisplay-= unhighlight-region-function redisplay--update-region-highlight selected-win= dow window-list-1 nil t mapc window-minibuffer-p minibuffer-selected-window= window-parameter internal-region-overlay] 7 "

(fn)"]()
=A0 funcall(#[0 "=C3=80=C2=A2=C2=84
=C3=83=C3= =84 !=C2=87=C3=80=C2=A2<=C2=84=18=C3=80=C3=85=C3=86=C2=89=C3=87#=C2=A0= =C2=88 =C2=83\"=C3=88=C3=83=C3=80=C2=A2\"=C2=87=C3=89 =C2=85)=C3= =8A =C3=80=C2=A2=C2=89=C2=85S=C2=89@=C2=89=C3=84 =3D=C2=84>=C2=89=03=3D= =C2=83E=C3=83=01!=C2=88=C2=82L
=C3=8B=02=C3=8C\"!=C2=88=01A=C2=B6= =C2=82=C2=82+=C2=B2=01=C2=87" [((#<window 3 on *scratch*>)) high= light-nonselected-windows redisplay-unhighlight-region-function redisplay--= update-region-highlight selected-window window-list-1 nil t mapc window-min= ibuffer-p minibuffer-selected-window window-parameter internal-region-overl= ay] 7 "

(fn)"])
=A0 redisplay--update-region-highlights((#<window 3 = on *scratch*>))
=A0 apply(redisplay--update-region-highlights (#<w= indow 3 on *scratch*>))
=A0 #[128 "=C3=80=C3=81=02\"=C2=88= =C3=80=C3=82=02\"=C2=87" [apply redisplay--update-region-highligh= ts ignore nil] 4 nil nil]((#<window 3 on *scratch*>))
=A0 redisplay_internal\ \(C\ function\)()

Following the redisplay co= de indicated, it looks like the same overlay
object is reused for subseq= uent region selections. If so, the
explanation is similar as for the mar= k: the marker of the
internal-region-overlay is the same under eq when "bbb" is select= ed
and deleted as when the line formerly containing "aaa" is s= elected
followed by undo in region. The marker adjustment is incorrectly= found
because the marker moved, and consequently the "aaa" undo record = is
not found. Would the solution be analogous as for the mark: make a ne= w
overlay for each new region selection?

Finally, here's the = patch that fixes this problem wrt the mark:

diff --git a/lisp/simple.el b/lisp/simple.el
index f9447b1..5b7970c = 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -4399,11 +4399= ,11 @@ If NO-TMM is non-nil, leave `transient-mark-mode' alone." =A0=A0=A0=A0=A0=A0 (setq transient-mark-mode 'lambda))
=A0=A0=A0=A0 = (run-hooks 'activate-mark-hook)))
=A0
-(defun set-mark (pos)
-= =A0 "Set this buffer's mark to POS.=A0 Don't use this function= !
-That is to say, don't use this function unless you want
-the user to see that the mark has moved, and you want the previous
-mar= k position to be lost.
+(defun set-mark (pos-or-marker)
+=A0 "Se= t this buffer's mark to POS-OR-MARKER.=A0 Don't use this
+functi= on!=A0 That is to say, don't use this function unless you
+want the user to see that the mark has moved, and you want the
+previou= s mark position to be lost.
=A0
=A0Normally, when a new mark is set, = the old one should go on the stack.
=A0This is why most applications sho= uld use `push-mark', not `set-mark'.
@@ -4415,9 +4415,10 @@ To remember a location for internal use in the Lisp = program,
=A0store it in a Lisp variable.=A0 Example:
=A0
=A0=A0=A0= (let ((beg (point))) (forward-line 1) (delete-region beg (point)))."<= br>-
-=A0 (set-marker (mark-marker) pos (current-buffer))
-=A0 (if pos
+= =A0 (if (markerp pos-or-marker)
+=A0=A0=A0=A0=A0 (setq mark pos-or-marke= r)
+=A0=A0=A0 (set-marker (mark-marker) pos-or-marker (current-buffer)))=
+=A0 (if pos-or-marker
=A0=A0=A0=A0=A0=A0 (activate-mark 'no-tmm)
=A0=A0=A0=A0 ;; Normally = we never clear mark-active except in Transient Mark mode.
=A0=A0=A0=A0 ;= ; But when we actually clear out the mark value too, we must
@@ -4639,10= +4640,12 @@ purposes.=A0 See the documentation of `set-mark' for more = information.
=A0
=A0In Transient Mark mode, activate mark if optional third arg ACTIV= ATE non-nil."
=A0=A0 (unless (null (mark t))
-=A0=A0=A0 (setq ma= rk-ring (cons (copy-marker (mark-marker)) mark-ring))
+=A0=A0=A0 (push (= mark-marker) mark-ring)
=A0=A0=A0=A0 (when (> (length mark-ring) mark-ring-max)
-=A0=A0=A0=A0= =A0 (move-marker (car (nthcdr mark-ring-max mark-ring)) nil)
+=A0=A0=A0= =A0=A0 ;; Remove from mark-ring.=A0 Note that marker may be in
+=A0=A0= =A0=A0=A0 ;; global-mark-ring, so don't point it nowhere.
=A0=A0=A0=A0=A0=A0 (setcdr (nthcdr (1- mark-ring-max) mark-ring) nil)))
= +=A0 (set-mark (copy-marker (mark-marker)))
=A0=A0 (set-marker (mark-mar= ker) (or location (point)) (current-buffer))
=A0=A0 ;; Now push the mark= on the global mark ring.
=A0=A0 (if (and global-mark-ring
@@ -4650,9 +4653,8 @@ In Transient Mark= mode, activate mark if optional third arg ACTIVATE non-nil."
=A0= =A0=A0=A0=A0=A0 ;; The last global mark pushed was in this same buffer.
= =A0=A0=A0=A0=A0=A0 ;; Don't push another one.
=A0=A0=A0=A0=A0=A0 nil
-=A0=A0=A0 (setq global-mark-ring (cons (copy-mar= ker (mark-marker)) global-mark-ring))
+=A0=A0=A0 (push (mark-marker) glo= bal-mark-ring)
=A0=A0=A0=A0 (when (> (length global-mark-ring) global= -mark-ring-max)
-=A0=A0=A0=A0=A0 (move-marker (car (nthcdr global-mark-r= ing-max global-mark-ring)) nil)
=A0=A0=A0=A0=A0=A0 (setcdr (nthcdr (1- global-mark-ring-max) global-mark-ri= ng) nil)))
=A0=A0 (or nomsg executing-kbd-macro (> (minibuffer-depth)= 0)
=A0=A0=A0=A0=A0=A0 (message "Mark set"))
@@ -4664,11 +4= 666,9 @@ In Transient Mark mode, activate mark if optional third arg ACTIVA= TE non-nil."
=A0=A0 "Pop off mark ring into the buffer's actual mark.
=A0Doe= s not set point.=A0 Does nothing if mark ring is empty."
=A0=A0 (wh= en mark-ring
-=A0=A0=A0 (setq mark-ring (nconc mark-ring (list (copy-mar= ker (mark-marker)))))
-=A0=A0=A0 (set-marker (mark-marker) (+ 0 (car mark-ring)) (current-buffer)= )
-=A0=A0=A0 (move-marker (car mark-ring) nil)
-=A0=A0=A0 (if (null (= mark t)) (ding))
-=A0=A0=A0 (setq mark-ring (cdr mark-ring)))
+=A0=A0= =A0 (setq mark-ring (nconc mark-ring (list (mark-marker))))
+=A0=A0=A0 (set-mark (pop mark-ring))
+=A0=A0=A0 (if (null (mark t)) (di= ng)))
=A0=A0 (deactivate-mark))
=A0
=A0(define-obsolete-function-a= lias
diff --git a/src/buffer.c b/src/buffer.c
index 90c1542..d811515 = 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -5161,6 +5161,7 @@ init_buffer_once (void)
=A0= =A0 bset_abbrev_table (&buffer_defaults, Qnil);
=A0=A0 bset_display_= table (&buffer_defaults, Qnil);
=A0=A0 bset_undo_list (&buffer_d= efaults, Qnil);
+=A0 bset_mark (&buffer_defaults, Qnil);
=A0=A0 bset_mark_active (&a= mp;buffer_defaults, Qnil);
=A0=A0 bset_file_format (&buffer_defaults= , Qnil);
=A0=A0 bset_auto_save_file_format (&buffer_defaults, Qt);@@ -5219,6 +5220,7 @@ init_buffer_once (void)
=A0=A0 bset_major_mode (&buffer_local_flags, make_number (-1));
=A0= =A0 bset_mode_name (&buffer_local_flags, make_number (-1));
=A0=A0 b= set_undo_list (&buffer_local_flags, make_number (-1));
+=A0 bset_mar= k (&buffer_local_flags, make_number (-1));
=A0=A0 bset_mark_active (&buffer_local_flags, make_number (-1));
=A0= =A0 bset_point_before_scroll (&buffer_local_flags, make_number (-1));=A0=A0 bset_file_truename (&buffer_local_flags, make_number (-1));@@ -6124,6 +6126,9 @@ the changes between two undo boundaries as a single = step to be undone.
=A0
=A0If the value of the variable is t, undo information is not record= ed.=A0 */);
=A0
+=A0 DEFVAR_PER_BUFFER ("mark", &BVAR (= current_buffer, mark), Qnil,
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 doc: /* The buffer's mark.=A0 */);
+
=A0=A0 DEFVAR_PER_BUFFER ("mark-active", &BVAR (current_= buffer, mark_active), Qnil,
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 doc: /* Non-nil means the mark and region are currently = active in this buffer.=A0 */);
=A0
diff --git a/test/automated/marker= -tests.el b/test/automated/marker-tests.el
new file mode 100644
index 0000000..87ebf82
--- /dev/null
+++ b/te= st/automated/marker-tests.el
@@ -0,0 +1,59 @@
+;;; marker-tests.el --= - tests for common markers such as the mark -*- lexical-binding:t -*-
+
+;; Copyright (C) 2014 Free Software Foundation, Inc.
+
+;; This= file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can= redistribute it and/or modify
+;; it under the terms of the GNU General= Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;= ; (at your option) any later version.
+
+;; GNU Emacs is distributed = in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; withou= t even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.=A0 See the
+;; = GNU General Public License for more details.
+
+;; You should have re= ceived a copy of the GNU General Public License
+;; along with GNU Emacs= .=A0 If not, see <http://www.gn= u.org/licenses/>.
+
+;;; Commentary:
+
+;;; Code:
+
+(ert-deftest marker-tests= -mark-rings ()
+=A0 (let ((buf1 (generate-new-buffer "buf1"))<= br>+=A0=A0=A0=A0=A0=A0=A0 (buf2 (generate-new-buffer "buf2")))+=A0=A0=A0 (set-buffer buf1)
+=A0=A0=A0 (insert "abcdefg")
+=A0=A0=A0 (push-mark 1)
+=A0= =A0=A0 (goto-char 2)
+=A0=A0=A0 (push-mark)
+=A0=A0=A0 (set-buffer bu= f2)
+=A0=A0=A0 (insert "ABCDEFG")
+=A0=A0=A0 (push-mark)+=A0=A0=A0 (set-buffer buf1)
+=A0=A0=A0 (pop-global-mark)
+=A0=A0=A0 (should (eq (current-buffer) (marker-buffer (mark-marker))))
= +=A0=A0=A0 (should (eq (current-buffer) buf2))
+=A0=A0=A0 (goto-char 3)<= br>+=A0=A0=A0 (pop-mark) ; Shouldn't go anywhere, mark-ring empty
+= =A0=A0=A0 (should (=3D 3 (point)))
+=A0=A0=A0 (pop-global-mark)
+=A0=A0=A0 (should (eq (current-buffer) buf= 1))
+=A0=A0=A0 (push-mark 4)
+=A0=A0=A0 (should (=3D 4 (mark t)))
= +=A0=A0=A0 (goto-char 5)
+=A0=A0=A0 (exchange-point-and-mark)
+=A0=A0= =A0 (should (=3D 4 (point)))
+=A0=A0=A0 (should (=3D 5 (marker-position = (mark-marker))))
+=A0=A0=A0 (pop-mark)
+=A0=A0=A0 (should (=3D 2 (mark t)))
+=A0=A0=A0= (pop-mark)
+=A0=A0=A0 (should (=3D 1 (mark t)))
+=A0=A0=A0 (should (= =3D 4 (point)))
+=A0=A0=A0 (should (eq (current-buffer) buf1))))
++;;; marker-tests.el ends here
+
+
diff --git a/test/automated/undo-tests.el b/test/automated/undo-tests.= el
index 8a963f1..a4ed95e 100644
--- a/test/automated/undo-tests.el+++ b/test/automated/undo-tests.el
@@ -268,6 +268,46 @@
=A0=A0=A0= =A0 (should (string=3D (buffer-string)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 "This = sentence corrupted?aaa"))))
=A0
+(ert-deftest undo-test-mark-adj= ustment ()
+=A0 "Test that the mark's marker adjustment in undo= history doesn't
+=A0 obstruct undo in region from finding the corre= ct change group.
+=A0 Demonstrates bug 16818."
+=A0 (with-temp-buffer
+=A0=A0=A0 = (buffer-enable-undo)
+=A0=A0=A0 (transient-mark-mode 1)
+=A0=A0=A0 (i= nsert "First line\n")
+=A0=A0=A0 (insert "Second line\n&q= uot;)
+=A0=A0=A0 (undo-boundary)
+
+=A0=A0=A0 (goto-char (point-min))
+=A0=A0=A0 (insert "aaa&quo= t;)
+=A0=A0=A0 (undo-boundary)
+
+=A0=A0=A0 (undo)
+=A0=A0=A0 (= undo-boundary)
+
+=A0=A0=A0 (goto-char (point-max))
+=A0=A0=A0 (in= sert "bbb")
+=A0=A0=A0 (undo-boundary)
+
+=A0=A0=A0 (push-mark (point) t t)
+=A0=A0=A0 (setq mark-active t)<= br>+=A0=A0=A0 (goto-char (- (point) 3))
+=A0=A0=A0 (delete-forward-char = 1)
+=A0=A0=A0 (undo-boundary)
+
+=A0=A0=A0 (insert "bbb"= )
+=A0=A0=A0 (undo-boundary)
+
+=A0=A0=A0 (goto-char (point-min))
+=A0=A0=A0 (push-mark (point) t t)+=A0=A0=A0 (setq mark-active t)
+=A0=A0=A0 (goto-char (+ (point) 3))+=A0=A0=A0 (undo)
+=A0=A0=A0 (undo-boundary)
+
+=A0=A0=A0 (should= (string=3D (buffer-string) "aaaFirst line\nSecond line\nbbb"))))=
+
=A0(defun undo-test-all (&optional interactive)
=A0=A0 "Ru= n all tests for \\[undo]."
=A0=A0 (interactive "p")
--047d7b5d485231430d04f45b583f-- From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 12 19:24:49 2014 Received: (at 16818) by debbugs.gnu.org; 12 Mar 2014 23:24:49 +0000 Received: from localhost ([127.0.0.1]:35046 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WNsW0-0000kl-Js for submit@debbugs.gnu.org; Wed, 12 Mar 2014 19:24:48 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:53779) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WNsVy-0000kd-Qs for 16818@debbugs.gnu.org; Wed, 12 Mar 2014 19:24:47 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4EABK/CFFMCppy/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLNBIUGA0kiB4GwS2NDYN9A6R6gV6DE4FK X-IPAS-Result: Av4EABK/CFFMCppy/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLNBIUGA0kiB4GwS2NDYN9A6R6gV6DE4FK X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="51544378" Received: from 76-10-154-114.dsl.teksavvy.com (HELO ceviche.home) ([76.10.154.114]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 12 Mar 2014 19:24:46 -0400 Received: by ceviche.home (Postfix, from userid 20848) id BF26B66090; Wed, 12 Mar 2014 19:24:45 -0400 (EDT) From: Stefan Monnier To: Barry OReilly Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) Message-ID: References: Date: Wed, 12 Mar 2014 19:24:45 -0400 In-Reply-To: (Barry OReilly's message of "Tue, 11 Mar 2014 17:24:25 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) > At the end is a patch to implement this. I wrote the marker-tests to > make sure I didn't break anything too badly, they pass with or without > the rest of the patch. The new undo-test-mark-adjustment implements > the recipe of this bug report. It fails with current trunk and passes > with the patch. Thinking more about this, I think this is fixing the symptom, but not the cause. The cause is that primitive-undo shouldn't blindly obey a (MARKER . OFFSET) entry. Instead it should only obey it if the marker still points at the corresponding place. Your patch works around the problem by trying to avoid moving the mark (creating new markers each time instead) but that doesn't fix the problem for the other markers. Problem is: the undo log format as it stands does not record in a reliable way what was the marker's position at that time, so it's not easy to figure out whether the marker is still at the "same place" or not. This said, in practice, those (MARKER . OFFSET) entries are only introduced for text deletion. So we should normally find them immediately after a (STRING . POS) and those (MARKER . OFFSET) should only be applied if that MARKER was at POS before undoing the deletion of STRING. IOW, I think the right fix is to change primitive-undo's handling of (STRING . POS) by first looking at subsequent (MARKER . OFFSET) entries and dropping those whose MARKER is not currently at POS. WDYT? Stefan From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 12 22:00:00 2014 Received: (at 16818) by debbugs.gnu.org; 13 Mar 2014 02:00:00 +0000 Received: from localhost ([127.0.0.1]:35147 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WNuwB-0006Ht-4b for submit@debbugs.gnu.org; Wed, 12 Mar 2014 21:59:59 -0400 Received: from mail-ob0-f176.google.com ([209.85.214.176]:44123) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WNuw8-0006Hg-UT for 16818@debbugs.gnu.org; Wed, 12 Mar 2014 21:59:57 -0400 Received: by mail-ob0-f176.google.com with SMTP id wp18so376977obc.7 for <16818@debbugs.gnu.org>; Wed, 12 Mar 2014 18:59:55 -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=9KcqC6kY2Azta+Zzpg/pe0lkmD02U+PPUuxeSyiAX8Q=; b=jRix5NBY3dkXqJvlhOLolmgn9GDpJAjXpKWjQFLJmXjlXeqEno7IoFgMqmGV/6pxwu kO+yDGvCOzDqCWxF3CfWONPCuEty7Sa4TYV5rJhTIT+CTgXaNmB+Bu3+H6BOL/7R/U2b l4ETcOq8fcSPVPYAAsfBqMCs9vbiaxMrQyRHHn6R4PYiugjP+rkBTnN1HFW99OVIQ3yo WNz3QXmvikCt82EGwdcHlgU3DPL1fZ9YeYayFpj+z9dd+tUHC/hMt5k4sA5Uz5GfOWVv ThBsmjrmFtdG+O3By5nKRCA9cQ47DA8qGLqogBwGxk65aeQNCOqKKZF3WqYwhts1GgYA WE4A== MIME-Version: 1.0 X-Received: by 10.60.77.35 with SMTP id p3mr701689oew.46.1394675995878; Wed, 12 Mar 2014 18:59:55 -0700 (PDT) Received: by 10.76.6.44 with HTTP; Wed, 12 Mar 2014 18:59:55 -0700 (PDT) In-Reply-To: References: Date: Wed, 12 Mar 2014 21:59:55 -0400 Message-ID: Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) From: Barry OReilly To: Stefan Monnier Content-Type: multipart/alternative; boundary=047d7b33d2444fa85604f4734fbc X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --047d7b33d2444fa85604f4734fbc Content-Type: text/plain; charset=ISO-8859-1 > Thinking more about this, I think this is fixing the symptom, but > not the cause. The cause is that primitive-undo shouldn't blindly > obey a (MARKER . OFFSET) entry. Instead it should only obey it if > the marker still points at the corresponding place. >From what I can tell, the root cause is relocating markers to unrelated locations in the buffer while another part of Emacs still has a reference to it. Your counter proposal is a step from the root. For instance, the markers within the mark rings will not adjust correctly, whilst with my patch they will. I think your proposal sounds good nonetheless. I don't doubt there are other markers that could get swept up into the undo history, become relocated, and then annoy users of undo in region. > (creating new markers each time instead) My patch actually results in fewer markers created. --047d7b33d2444fa85604f4734fbc Content-Type: text/html; charset=ISO-8859-1
> Thinking more about this, I think this is fixing the symptom, but
> not the cause. The cause is that primitive-undo shouldn't blindly
> obey a (MARKER . OFFSET) entry. Instead it should only obey it if
> the marker still points at the corresponding place.

From what I can tell, the root cause is relocating markers to
unrelated locations in the buffer while another part of Emacs still
has a reference to it.

Your counter proposal is a step from the root. For instance, the
markers within the mark rings will not adjust correctly, whilst with
my patch they will.

I think your proposal sounds good nonetheless. I don't doubt there are
other markers that could get swept up into the undo history, become
relocated, and then annoy users of undo in region.

> (creating new markers each time instead)

My patch actually results in fewer markers created.

--047d7b33d2444fa85604f4734fbc-- From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 13 09:24:34 2014 Received: (at 16818) by debbugs.gnu.org; 13 Mar 2014 13:24:34 +0000 Received: from localhost ([127.0.0.1]:35478 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WO5ce-0004yR-UR for submit@debbugs.gnu.org; Thu, 13 Mar 2014 09:24:33 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:26902) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WO5cb-0004yE-VE for 16818@debbugs.gnu.org; Thu, 13 Mar 2014 09:24:30 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4EABK/CFFMCppy/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLNBIUGA0kiB4GwS2RCgOkeoFegxM X-IPAS-Result: Av4EABK/CFFMCppy/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLNBIUGA0kiB4GwS2RCgOkeoFegxM X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="51706833" Received: from 76-10-154-114.dsl.teksavvy.com (HELO pastel.home) ([76.10.154.114]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 13 Mar 2014 09:24:29 -0400 Received: by pastel.home (Postfix, from userid 20848) id ED2D76057F; Thu, 13 Mar 2014 09:24:28 -0400 (EDT) From: Stefan Monnier To: Barry OReilly Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) Message-ID: References: Date: Thu, 13 Mar 2014 09:24:28 -0400 In-Reply-To: (Barry OReilly's message of "Wed, 12 Mar 2014 21:59:55 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) >> Thinking more about this, I think this is fixing the symptom, but >> not the cause. The cause is that primitive-undo shouldn't blindly >> obey a (MARKER . OFFSET) entry. Instead it should only obey it if >> the marker still points at the corresponding place. > From what I can tell, the root cause is relocating markers to > unrelated locations in the buffer while another part of Emacs still > has a reference to it. Not sure in which way what you're saying is different from what I'm saying. Are we in violent agreement? > Your counter proposal is a step from the root. For instance, the > markers within the mark rings will not adjust correctly, whilst with > my patch they will. Can you give an example incorrect adjustment? >> (creating new markers each time instead) > My patch actually results in fewer markers created. Right, I didn't mean that creating new markers is a problem. Stefan From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 13 10:35:11 2014 Received: (at 16818) by debbugs.gnu.org; 13 Mar 2014 14:35:11 +0000 Received: from localhost ([127.0.0.1]:36001 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WO6j0-0007DI-Qp for submit@debbugs.gnu.org; Thu, 13 Mar 2014 10:35:11 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:46027) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WO6ix-0007D4-2C for 16818@debbugs.gnu.org; Thu, 13 Mar 2014 10:35:08 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4EABK/CFFMCppy/2dsb2JhbABEvw4Xc4IeAQEEAVYjEAs0EhQYDSSIHgbBLY0Ng30DpHqBXoMTgUo X-IPAS-Result: Av4EABK/CFFMCppy/2dsb2JhbABEvw4Xc4IeAQEEAVYjEAs0EhQYDSSIHgbBLY0Ng30DpHqBXoMTgUo X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="51729653" Received: from 76-10-154-114.dsl.teksavvy.com (HELO pastel.home) ([76.10.154.114]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 13 Mar 2014 10:35:05 -0400 Received: by pastel.home (Postfix, from userid 20848) id AAF7F60293; Thu, 13 Mar 2014 10:35:05 -0400 (EDT) From: Stefan Monnier To: Barry OReilly Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) Message-ID: References: Date: Thu, 13 Mar 2014 10:35:05 -0400 In-Reply-To: (Stefan Monnier's message of "Thu, 13 Mar 2014 09:24:28 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) >> Your counter proposal is a step from the root. For instance, the >> markers within the mark rings will not adjust correctly, whilst with >> my patch they will. > Can you give an example incorrect adjustment? Oh, I think I see: with the current code, the mark-ring gets copies of markers and those copies are made "late", so if you do "C-SPC, some deletion around point, and then C-SPC", a new marker for the first C-SPC is pushed on the mark-ring, but the undo-log has an adjustment for mark-marker rather than for that new marker. IOW, I think the primitive-undo fix is needed and your fix is also needed. I think your fix is too risky for the 24.4, tho (IOW, please wait for the trunk to re-open before installing it). The primitive-undo fix should be safe enough for 24.4, so if you want to code this up and install it, feel free. Stefan From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 13 12:56:03 2014 Received: (at 16818) by debbugs.gnu.org; 13 Mar 2014 16:56:03 +0000 Received: from localhost ([127.0.0.1]:36087 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WO8vJ-0003HX-S9 for submit@debbugs.gnu.org; Thu, 13 Mar 2014 12:56:02 -0400 Received: from mail-ob0-f177.google.com ([209.85.214.177]:36615) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WO8vG-0003HE-9v for 16818@debbugs.gnu.org; Thu, 13 Mar 2014 12:55:59 -0400 Received: by mail-ob0-f177.google.com with SMTP id wo20so1286316obc.36 for <16818@debbugs.gnu.org>; Thu, 13 Mar 2014 09:55:57 -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=yds9K/LX6WzPLb99bwQnyCPpiYoO59cogdX3I16Afk8=; b=SU6ViASh6+AbPWE5xsDGqmzc4B55sdaW3vH6kqU87hl0W1olNKxfe5bl1NfX3j6wy3 BaokSXXwJhEoJAt4+7dd7tEG3yjR7fPiORkAMP6p0m4Cmf+fQ9wisSuZdg8PYuWOUUv1 VA8lxzIYU6hgFX7lI06ZTiIdPbkM9HX+dcoHIATIu1DX3ZB14GaSNtqnpndFpDQss351 fxiJhMdTBuI1r2fAMmYwBzFXcMin27p6q3S0NrgEmJ1jwsGKyxId/qA3FU3ODE1hnEmT HjQHbzFw9VVmvJaF57YI+SFA9+5EWtUlsvNxZ/fhEdbpWseSPJRHauGYybRVZd3pYIGy crvg== MIME-Version: 1.0 X-Received: by 10.182.16.33 with SMTP id c1mr2448553obd.4.1394729757496; Thu, 13 Mar 2014 09:55:57 -0700 (PDT) Received: by 10.76.6.44 with HTTP; Thu, 13 Mar 2014 09:55:57 -0700 (PDT) In-Reply-To: References: Date: Thu, 13 Mar 2014 12:55:57 -0400 Message-ID: Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) From: Barry OReilly To: Stefan Monnier Content-Type: multipart/alternative; boundary=f46d04479f93c0deef04f47fd398 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --f46d04479f93c0deef04f47fd398 Content-Type: text/plain; charset=ISO-8859-1 > Oh, I think I see: with the current code, the mark-ring gets copies of > markers and those copies are made "late", so if you do "C-SPC, some > deletion around point, and then C-SPC", a new marker for the first C-SPC > is pushed on the mark-ring, but the undo-log has an adjustment for > mark-marker rather than for that new marker. > IOW, I think the primitive-undo fix is needed and your fix is also > needed. Yes that's right. Parents cover their childrens' eyes at the violence of our agreement. I just discovered my patch has a bug. If I C-SPC first thing after starting Emacs, an error is signaled because the mark is nil. I had hoped the mark variable initialized equivalently except to make itself available to Lisp. There are clearly holes in my understanding of the initialization business. I'll debug that at a later time. --f46d04479f93c0deef04f47fd398 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
> Oh, I think I see: with the current code, the mark-ri= ng gets copies of
> markers and those copies are made "late"= ;, so if you do "C-SPC, some
> deletion around point, and then C= -SPC", a new marker for the first C-SPC
> is pushed on the mark-ring, but the undo-log has an adjustment for
= > mark-marker rather than for that new marker.

> IOW, I think = the primitive-undo fix is needed and your fix is also
> needed.

Yes that's right. Parents cover their childrens' eyes at the vi= olence
of our agreement.

I just discovered my patch has a bug. If= I C-SPC first thing after
starting Emacs, an error is signaled because = the mark is nil. I had
hoped the mark variable initialized equivalently except to make itself
a= vailable to Lisp. There are clearly holes in my understanding of the
ini= tialization business. I'll debug that at a later time.

--f46d04479f93c0deef04f47fd398-- From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 17 19:05:44 2014 Received: (at 16818) by debbugs.gnu.org; 17 Mar 2014 23:05:44 +0000 Received: from localhost ([127.0.0.1]:39331 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WPgbH-0008Eq-4U for submit@debbugs.gnu.org; Mon, 17 Mar 2014 19:05:44 -0400 Received: from mail-ob0-f170.google.com ([209.85.214.170]:51874) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WPgb9-0008Ed-Tu for 16818@debbugs.gnu.org; Mon, 17 Mar 2014 19:05:37 -0400 Received: by mail-ob0-f170.google.com with SMTP id uz6so6263567obc.15 for <16818@debbugs.gnu.org>; Mon, 17 Mar 2014 16:05:35 -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=lSRmf17xk4fn8rw1xcIHtXpwfTBxtVWq9HURX/bcbsc=; b=iopgxvT9O751JoJ5oYFkiReaKnX9fe/IyFQfXQyGx9CazUlpDv2bQEPqIwgK5IJN6z lRn1sKvTHfb7PAwRgcHya2HWqR5Em4/Dm9ik5qle2QQodv/DKQXgbeHh1Fnw+g1V0jQb H8Ww++sxcc2j//DWLlf5l8HsDXlMFyZca+4lzGusXer3+cScG6rxz/LZC0KhgmiHcj5J p9XrL0uheUSEI717onPB+eL3ckTdTxotTle2KiZLoJHEKCuYhvSwvSW53P8U5PMqmrWu GGhZfEAbXyaLWQauJEzIO0aBxCbfDkxeFs3HalOyrW/Ad+6CZJip27CbpQI34B1S3QTQ AKyw== MIME-Version: 1.0 X-Received: by 10.182.44.167 with SMTP id f7mr22586549obm.3.1395097534958; Mon, 17 Mar 2014 16:05:34 -0700 (PDT) Received: by 10.76.6.44 with HTTP; Mon, 17 Mar 2014 16:05:34 -0700 (PDT) In-Reply-To: References: Date: Mon, 17 Mar 2014 19:05:34 -0400 Message-ID: Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) From: Barry OReilly To: Stefan Monnier Content-Type: multipart/mixed; boundary=001a11c1d7e000012604f4d57529 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --001a11c1d7e000012604f4d57529 Content-Type: multipart/alternative; boundary=001a11c1d7e000012104f4d57527 --001a11c1d7e000012104f4d57527 Content-Type: text/plain; charset=ISO-8859-1 > The primitive-undo fix should be safe enough for 24.4, so if you > want to code this up and install it, feel free. I have attached the patch for this, which I'll install if nothing comes up from review. --001a11c1d7e000012104f4d57527 Content-Type: text/html; charset=ISO-8859-1
> The primitive-undo fix should be safe enough for 24.4, so if you
> want to code this up and install it, feel free.

I have attached the patch for this, which I'll install if nothing
comes up from review.

--001a11c1d7e000012104f4d57527-- --001a11c1d7e000012604f4d57529 Content-Type: text/plain; charset=US-ASCII; name="undo-skip-markers.diff" Content-Disposition: attachment; filename="undo-skip-markers.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hswd1ixa0 ZGlmZiAtLWdpdCBhL2xpc3AvQ2hhbmdlTG9nIGIvbGlzcC9DaGFuZ2VMb2cKaW5kZXggYTFlZTVi Yi4uYTUzZjVkNiAxMDA2NDQKLS0tIGEvbGlzcC9DaGFuZ2VMb2cKKysrIGIvbGlzcC9DaGFuZ2VM b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0wMy0xMyAgQmFycnkgTydSZWlsbHkgIDxndW5kYWV0 aWFwb0BnbWFpbC5jb20+CisKKwkqIHNpbXBsZS5lbCAocHJpbWl0aXZlLXVuZG8pOiBXaGVuIGFk anVzdGluZyBhIG1hcmtlciwgY2hlY2sgdGhhdAorCWl0cyBwb3NpdGlvbiBpcyBzdGlsbCB2YWxp ZC4gIChCdWcjMTY4MTgpCisJKHVuZG8tbWFrZS1zZWxlY3RpdmUtbGlzdCk6IERldGVybWluZSB3 aGV0aGVyIGEgbWFya2VyIGFkanVzdG1lbnQKKwlpcyBpbiB0aGUgcmVnaW9uIGJhc2VkIG9uIHdo ZXRoZXIgdGhlIGRlbGV0aW9uIHRoYXQgcmVjb3JkZWQgaXQgaW4KKwl1bmRvIGhpc3RvcnkgaXMg aW4gdGhlIHJlZ2lvbi4gIFJlbW92ZSB2YXJpYWJsZSBhZGp1c3RlZC1tYXJrZXJzLAorCXdoaWNo IHdhcyB1bnVzZWQgYW5kIG9ubHkgbm9uIG5pbCBkdXJpbmcgdW5kby1tYWtlLXNlbGVjdGl2ZS1s aXN0LgorCSh1bmRvLWVsdC1pbi1yZWdpb24pOiBOZXcgb3B0aW9uYWwgYXJndW1lbnQgTUFSS0VS LVZBTElESVRZLVBPUy4KKwogMjAxNC0wMy0xMyAgRG1pdHJ5IEd1dG92ICA8ZGd1dG92QHlhbmRl eC5ydT4KIAogCSogcHJvZ21vZGVzL3J1YnktbW9kZS5lbCAocnVieS1mb250LWxvY2sta2V5d29y ZHMpOiBGb250aWZ5CmRpZmYgLS1naXQgYS9saXNwL3NpbXBsZS5lbCBiL2xpc3Avc2ltcGxlLmVs CmluZGV4IDg4MWE2MzMuLmE3MmNmOGIgMTAwNjQ0Ci0tLSBhL2xpc3Avc2ltcGxlLmVsCisrKyBi L2xpc3Avc2ltcGxlLmVsCkBAIC0yMjI5LDg1ICsyMjI5LDkwIEBAIFJldHVybiB3aGF0IHJlbWFp bnMgb2YgdGhlIGxpc3QuIgogICAgICAgICAoZGlkLWFwcGx5IG5pbCkKICAgICAgICAgKG5leHQg bmlsKSkKICAgICAod2hpbGUgKD4gYXJnIDApCi0gICAgICAod2hpbGUgKHNldHEgbmV4dCAocG9w IGxpc3QpKSAgICAgO0V4aXQgaW5uZXIgbG9vcCBhdCB1bmRvIGJvdW5kYXJ5LgotICAgICAgICA7 OyBIYW5kbGUgYW4gaW50ZWdlciBieSBzZXR0aW5nIHBvaW50IHRvIHRoYXQgdmFsdWUuCi0gICAg ICAgIChwY2FzZSBuZXh0Ci0gICAgICAgICAgKChwcmVkIGludGVnZXJwKSAoZ290by1jaGFyIG5l eHQpKQotICAgICAgICAgIDs7IEVsZW1lbnQgKHQgLiBUSU1FKSByZWNvcmRzIHByZXZpb3VzIG1v ZHRpbWUuCi0gICAgICAgICAgOzsgUHJlc2VydmUgYW55IGZsYWcgb2YgTk9ORVhJU1RFTlRfTU9E VElNRV9OU0VDUyBvcgotICAgICAgICAgIDs7IFVOS05PV05fTU9EVElNRV9OU0VDUy4KLSAgICAg ICAgICAoYCh0IC4gLHRpbWUpCi0gICAgICAgICAgIDs7IElmIHRoaXMgcmVjb3JkcyBhbiBvYnNv bGV0ZSBzYXZlCi0gICAgICAgICAgIDs7IChub3QgbWF0Y2hpbmcgdGhlIGFjdHVhbCBkaXNrIGZp bGUpCi0gICAgICAgICAgIDs7IHRoZW4gZG9uJ3QgbWFyayB1bm1vZGlmaWVkLgotICAgICAgICAg ICAod2hlbiAob3IgKGVxdWFsIHRpbWUgKHZpc2l0ZWQtZmlsZS1tb2R0aW1lKSkKLSAgICAgICAg ICAgICAgICAgICAgIChhbmQgKGNvbnNwIHRpbWUpCi0gICAgICAgICAgICAgICAgICAgICAgICAg IChlcXVhbCAobGlzdCAoY2FyIHRpbWUpIChjZHIgdGltZSkpCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAodmlzaXRlZC1maWxlLW1vZHRpbWUpKSkpCi0gICAgICAgICAgICAgKHdo ZW4gKGZib3VuZHAgJ3VubG9jay1idWZmZXIpCi0gICAgICAgICAgICAgICAodW5sb2NrLWJ1ZmZl cikpCi0gICAgICAgICAgICAgKHNldC1idWZmZXItbW9kaWZpZWQtcCBuaWwpKSkKLSAgICAgICAg ICA7OyBFbGVtZW50IChuaWwgUFJPUCBWQUwgQkVHIC4gRU5EKSBpcyBwcm9wZXJ0eSBjaGFuZ2Uu Ci0gICAgICAgICAgKGAobmlsIC4gLChvciBgKCxwcm9wICx2YWwgLGJlZyAuICxlbmQpIHBjYXNl LS1kb250Y2FyZSkpCi0gICAgICAgICAgICh3aGVuIChvciAoPiAocG9pbnQtbWluKSBiZWcpICg8 IChwb2ludC1tYXgpIGVuZCkpCi0gICAgICAgICAgICAgKGVycm9yICJDaGFuZ2VzIHRvIGJlIHVu ZG9uZSBhcmUgb3V0c2lkZSB2aXNpYmxlIHBvcnRpb24gb2YgYnVmZmVyIikpCi0gICAgICAgICAg IChwdXQtdGV4dC1wcm9wZXJ0eSBiZWcgZW5kIHByb3AgdmFsKSkKLSAgICAgICAgICA7OyBFbGVt ZW50IChCRUcgLiBFTkQpIG1lYW5zIHJhbmdlIHdhcyBpbnNlcnRlZC4KLSAgICAgICAgICAoYCgs KGFuZCBiZWcgKHByZWQgaW50ZWdlcnApKSAuICwoYW5kIGVuZCAocHJlZCBpbnRlZ2VycCkpKQot ICAgICAgICAgICA7OyAoYW5kIGAoLGJlZyAuICxlbmQpIGAoLChwcmVkIGludGVnZXJwKSAuICwo cHJlZCBpbnRlZ2VycCkpKQotICAgICAgICAgICA7OyBJZGVhbGx5OiBgKCwocHJlZCBpbnRlZ2Vy cCBiZWcpIC4gLChwcmVkIGludGVnZXJwIGVuZCkpCi0gICAgICAgICAgICh3aGVuIChvciAoPiAo cG9pbnQtbWluKSBiZWcpICg8IChwb2ludC1tYXgpIGVuZCkpCi0gICAgICAgICAgICAgKGVycm9y ICJDaGFuZ2VzIHRvIGJlIHVuZG9uZSBhcmUgb3V0c2lkZSB2aXNpYmxlIHBvcnRpb24gb2YgYnVm ZmVyIikpCi0gICAgICAgICAgIDs7IFNldCBwb2ludCBmaXJzdCB0aGluZywgc28gdGhhdCB1bmRv aW5nIHRoaXMgdW5kbwotICAgICAgICAgICA7OyBkb2VzIG5vdCBzZW5kIHBvaW50IGJhY2sgdG8g d2hlcmUgaXQgaXMgbm93LgotICAgICAgICAgICAoZ290by1jaGFyIGJlZykKLSAgICAgICAgICAg KGRlbGV0ZS1yZWdpb24gYmVnIGVuZCkpCi0gICAgICAgICAgOzsgRWxlbWVudCAoYXBwbHkgRlVO IC4gQVJHUykgbWVhbnMgY2FsbCBGVU4gdG8gdW5kby4KLSAgICAgICAgICAoYChhcHBseSAuICxm dW4tYXJncykKLSAgICAgICAgICAgKGxldCAoKGN1cnJidWZmIChjdXJyZW50LWJ1ZmZlcikpKQot ICAgICAgICAgICAgIChpZiAoaW50ZWdlcnAgKGNhciBmdW4tYXJncykpCi0gICAgICAgICAgICAg ICAgIDs7IExvbmcgZm9ybWF0OiAoYXBwbHkgREVMVEEgU1RBUlQgRU5EIEZVTiAuIEFSR1MpLgot ICAgICAgICAgICAgICAgICAocGNhc2UtbGV0KiAoKGAoLGRlbHRhICxzdGFydCAsZW5kICxmdW4g LiAsYXJncykgZnVuLWFyZ3MpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RhcnQt bWFyayAoY29weS1tYXJrZXIgc3RhcnQgbmlsKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChlbmQtbWFyayAoY29weS1tYXJrZXIgZW5kIHQpKSkKLSAgICAgICAgICAgICAgICAgICAo d2hlbiAob3IgKD4gKHBvaW50LW1pbikgc3RhcnQpICg8IChwb2ludC1tYXgpIGVuZCkpCi0gICAg ICAgICAgICAgICAgICAgICAoZXJyb3IgIkNoYW5nZXMgdG8gYmUgdW5kb25lIGFyZSBvdXRzaWRl IHZpc2libGUgcG9ydGlvbiBvZiBidWZmZXIiKSkKLSAgICAgICAgICAgICAgICAgICAoYXBwbHkg ZnVuIGFyZ3MpIDs7IFVzZSBgc2F2ZS1jdXJyZW50LWJ1ZmZlcic/Ci0gICAgICAgICAgICAgICAg ICAgOzsgQ2hlY2sgdGhhdCB0aGUgZnVuY3Rpb24gZGlkIHdoYXQgdGhlIGVudHJ5Ci0gICAgICAg ICAgICAgICAgICAgOzsgc2FpZCBpdCB3b3VsZCBkby4KLSAgICAgICAgICAgICAgICAgICAodW5s ZXNzIChhbmQgKD0gc3RhcnQgc3RhcnQtbWFyaykKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKD0gKCsgZGVsdGEgZW5kKSBlbmQtbWFyaykpCi0gICAgICAgICAgICAgICAgICAgICAo ZXJyb3IgIkNoYW5nZXMgdG8gYmUgdW5kb25lIGJ5IGZ1bmN0aW9uIGRpZmZlcmVudCB0aGFuIGFu bm91bmNlZCIpKQotICAgICAgICAgICAgICAgICAgIChzZXQtbWFya2VyIHN0YXJ0LW1hcmsgbmls KQotICAgICAgICAgICAgICAgICAgIChzZXQtbWFya2VyIGVuZC1tYXJrIG5pbCkpCi0gICAgICAg ICAgICAgICAoYXBwbHkgZnVuLWFyZ3MpKQotICAgICAgICAgICAgICh1bmxlc3MgKGVxIGN1cnJi dWZmIChjdXJyZW50LWJ1ZmZlcikpCi0gICAgICAgICAgICAgICAoZXJyb3IgIlVuZG8gZnVuY3Rp b24gc3dpdGNoZWQgYnVmZmVyIikpCi0gICAgICAgICAgICAgKHNldHEgZGlkLWFwcGx5IHQpKSkK LSAgICAgICAgICA7OyBFbGVtZW50IChTVFJJTkcgLiBQT1MpIG1lYW5zIFNUUklORyB3YXMgZGVs ZXRlZC4KLSAgICAgICAgICAoYCgsKGFuZCBzdHJpbmcgKHByZWQgc3RyaW5ncCkpIC4gLChhbmQg cG9zIChwcmVkIGludGVnZXJwKSkpCi0gICAgICAgICAgICh3aGVuIChsZXQgKChhcG9zIChhYnMg cG9zKSkpCi0gICAgICAgICAgICAgICAgICAgKG9yICg8IGFwb3MgKHBvaW50LW1pbikpICg+IGFw b3MgKHBvaW50LW1heCkpKSkKLSAgICAgICAgICAgICAoZXJyb3IgIkNoYW5nZXMgdG8gYmUgdW5k b25lIGFyZSBvdXRzaWRlIHZpc2libGUgcG9ydGlvbiBvZiBidWZmZXIiKSkKLSAgICAgICAgICAg KGlmICg8IHBvcyAwKQotICAgICAgICAgICAgICAgKHByb2duCi0gICAgICAgICAgICAgICAgIChn b3RvLWNoYXIgKC0gcG9zKSkKLSAgICAgICAgICAgICAgICAgKGluc2VydCBzdHJpbmcpKQotICAg ICAgICAgICAgIChnb3RvLWNoYXIgcG9zKQotICAgICAgICAgICAgIDs7IE5vdyB0aGF0IHdlIHJl Y29yZCBtYXJrZXIgYWRqdXN0bWVudHMKLSAgICAgICAgICAgICA7OyAoY2F1c2VkIGJ5IGRlbGV0 aW9uKSBmb3IgdW5kbywKLSAgICAgICAgICAgICA7OyB3ZSBzaG91bGQgYWx3YXlzIGluc2VydCBh ZnRlciBtYXJrZXJzLAotICAgICAgICAgICAgIDs7IHNvIHRoYXQgdW5kb2luZyB0aGUgbWFya2Vy IGFkanVzdG1lbnRzCi0gICAgICAgICAgICAgOzsgcHV0IHRoZSBtYXJrZXJzIGJhY2sgaW4gdGhl IHJpZ2h0IHBsYWNlLgotICAgICAgICAgICAgIChpbnNlcnQgc3RyaW5nKQotICAgICAgICAgICAg IChnb3RvLWNoYXIgcG9zKSkpCi0gICAgICAgICAgOzsgKE1BUktFUiAuIE9GRlNFVCkgbWVhbnMg YSBtYXJrZXIgTUFSS0VSIHdhcyBhZGp1c3RlZCBieSBPRkZTRVQuCi0gICAgICAgICAgKGAoLChh bmQgbWFya2VyIChwcmVkIG1hcmtlcnApKSAuICwoYW5kIG9mZnNldCAocHJlZCBpbnRlZ2VycCkp KQotICAgICAgICAgICAod2hlbiAobWFya2VyLWJ1ZmZlciBtYXJrZXIpCi0gICAgICAgICAgICAg KHNldC1tYXJrZXIgbWFya2VyCi0gICAgICAgICAgICAgICAgICAgICAgICAgKC0gbWFya2VyIG9m ZnNldCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAobWFya2VyLWJ1ZmZlciBtYXJrZXIpKSkp Ci0gICAgICAgICAgKF8gKGVycm9yICJVbnJlY29nbml6ZWQgZW50cnkgaW4gdW5kbyBsaXN0ICVT IiBuZXh0KSkpKQorICAgICAgKGxldCAoZGVsLXBvcykKKyAgICAgICAgKHdoaWxlIChzZXRxIG5l eHQgKHBvcCBsaXN0KSkgICAgIDtFeGl0IGlubmVyIGxvb3AgYXQgdW5kbyBib3VuZGFyeS4KKyAg ICAgICAgICA7OyBIYW5kbGUgYW4gaW50ZWdlciBieSBzZXR0aW5nIHBvaW50IHRvIHRoYXQgdmFs dWUuCisgICAgICAgICAgKHBjYXNlIG5leHQKKyAgICAgICAgICAgICgocHJlZCBpbnRlZ2VycCkg KGdvdG8tY2hhciBuZXh0KSkKKyAgICAgICAgICAgIDs7IEVsZW1lbnQgKHQgLiBUSU1FKSByZWNv cmRzIHByZXZpb3VzIG1vZHRpbWUuCisgICAgICAgICAgICA7OyBQcmVzZXJ2ZSBhbnkgZmxhZyBv ZiBOT05FWElTVEVOVF9NT0RUSU1FX05TRUNTIG9yCisgICAgICAgICAgICA7OyBVTktOT1dOX01P RFRJTUVfTlNFQ1MuCisgICAgICAgICAgICAoYCh0IC4gLHRpbWUpCisgICAgICAgICAgICAgOzsg SWYgdGhpcyByZWNvcmRzIGFuIG9ic29sZXRlIHNhdmUKKyAgICAgICAgICAgICA7OyAobm90IG1h dGNoaW5nIHRoZSBhY3R1YWwgZGlzayBmaWxlKQorICAgICAgICAgICAgIDs7IHRoZW4gZG9uJ3Qg bWFyayB1bm1vZGlmaWVkLgorICAgICAgICAgICAgICh3aGVuIChvciAoZXF1YWwgdGltZSAodmlz aXRlZC1maWxlLW1vZHRpbWUpKQorICAgICAgICAgICAgICAgICAgICAgICAoYW5kIChjb25zcCB0 aW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCAobGlzdCAoY2FyIHRpbWUp IChjZHIgdGltZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNpdGVk LWZpbGUtbW9kdGltZSkpKSkKKyAgICAgICAgICAgICAgICh3aGVuIChmYm91bmRwICd1bmxvY2st YnVmZmVyKQorICAgICAgICAgICAgICAgICAodW5sb2NrLWJ1ZmZlcikpCisgICAgICAgICAgICAg ICAoc2V0LWJ1ZmZlci1tb2RpZmllZC1wIG5pbCkpKQorICAgICAgICAgICAgOzsgRWxlbWVudCAo bmlsIFBST1AgVkFMIEJFRyAuIEVORCkgaXMgcHJvcGVydHkgY2hhbmdlLgorICAgICAgICAgICAg KGAobmlsIC4gLChvciBgKCxwcm9wICx2YWwgLGJlZyAuICxlbmQpIHBjYXNlLS1kb250Y2FyZSkp CisgICAgICAgICAgICAgKHdoZW4gKG9yICg+IChwb2ludC1taW4pIGJlZykgKDwgKHBvaW50LW1h eCkgZW5kKSkKKyAgICAgICAgICAgICAgIChlcnJvciAiQ2hhbmdlcyB0byBiZSB1bmRvbmUgYXJl IG91dHNpZGUgdmlzaWJsZSBwb3J0aW9uIG9mIGJ1ZmZlciIpKQorICAgICAgICAgICAgIChwdXQt dGV4dC1wcm9wZXJ0eSBiZWcgZW5kIHByb3AgdmFsKSkKKyAgICAgICAgICAgIDs7IEVsZW1lbnQg KEJFRyAuIEVORCkgbWVhbnMgcmFuZ2Ugd2FzIGluc2VydGVkLgorICAgICAgICAgICAgKGAoLChh bmQgYmVnIChwcmVkIGludGVnZXJwKSkgLiAsKGFuZCBlbmQgKHByZWQgaW50ZWdlcnApKSkKKyAg ICAgICAgICAgICA7OyAoYW5kIGAoLGJlZyAuICxlbmQpIGAoLChwcmVkIGludGVnZXJwKSAuICwo cHJlZCBpbnRlZ2VycCkpKQorICAgICAgICAgICAgIDs7IElkZWFsbHk6IGAoLChwcmVkIGludGVn ZXJwIGJlZykgLiAsKHByZWQgaW50ZWdlcnAgZW5kKSkKKyAgICAgICAgICAgICAod2hlbiAob3Ig KD4gKHBvaW50LW1pbikgYmVnKSAoPCAocG9pbnQtbWF4KSBlbmQpKQorICAgICAgICAgICAgICAg KGVycm9yICJDaGFuZ2VzIHRvIGJlIHVuZG9uZSBhcmUgb3V0c2lkZSB2aXNpYmxlIHBvcnRpb24g b2YgYnVmZmVyIikpCisgICAgICAgICAgICAgOzsgU2V0IHBvaW50IGZpcnN0IHRoaW5nLCBzbyB0 aGF0IHVuZG9pbmcgdGhpcyB1bmRvCisgICAgICAgICAgICAgOzsgZG9lcyBub3Qgc2VuZCBwb2lu dCBiYWNrIHRvIHdoZXJlIGl0IGlzIG5vdy4KKyAgICAgICAgICAgICAoZ290by1jaGFyIGJlZykK KyAgICAgICAgICAgICAoZGVsZXRlLXJlZ2lvbiBiZWcgZW5kKSkKKyAgICAgICAgICAgIDs7IEVs ZW1lbnQgKGFwcGx5IEZVTiAuIEFSR1MpIG1lYW5zIGNhbGwgRlVOIHRvIHVuZG8uCisgICAgICAg ICAgICAoYChhcHBseSAuICxmdW4tYXJncykKKyAgICAgICAgICAgICAobGV0ICgoY3VycmJ1ZmYg KGN1cnJlbnQtYnVmZmVyKSkpCisgICAgICAgICAgICAgICAoaWYgKGludGVnZXJwIChjYXIgZnVu LWFyZ3MpKQorICAgICAgICAgICAgICAgICAgIDs7IExvbmcgZm9ybWF0OiAoYXBwbHkgREVMVEEg U1RBUlQgRU5EIEZVTiAuIEFSR1MpLgorICAgICAgICAgICAgICAgICAgIChwY2FzZS1sZXQqICgo YCgsZGVsdGEgLHN0YXJ0ICxlbmQgLGZ1biAuICxhcmdzKSBmdW4tYXJncykKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHN0YXJ0LW1hcmsgKGNvcHktbWFya2VyIHN0YXJ0IG5pbCkp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmQtbWFyayAoY29weS1tYXJrZXIg ZW5kIHQpKSkKKyAgICAgICAgICAgICAgICAgICAgICh3aGVuIChvciAoPiAocG9pbnQtbWluKSBz dGFydCkgKDwgKHBvaW50LW1heCkgZW5kKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGVycm9y ICJDaGFuZ2VzIHRvIGJlIHVuZG9uZSBhcmUgb3V0c2lkZSB2aXNpYmxlIHBvcnRpb24gb2YgYnVm ZmVyIikpCisgICAgICAgICAgICAgICAgICAgICAoYXBwbHkgZnVuIGFyZ3MpIDs7IFVzZSBgc2F2 ZS1jdXJyZW50LWJ1ZmZlcic/CisgICAgICAgICAgICAgICAgICAgICA7OyBDaGVjayB0aGF0IHRo ZSBmdW5jdGlvbiBkaWQgd2hhdCB0aGUgZW50cnkKKyAgICAgICAgICAgICAgICAgICAgIDs7IHNh aWQgaXQgd291bGQgZG8uCisgICAgICAgICAgICAgICAgICAgICAodW5sZXNzIChhbmQgKD0gc3Rh cnQgc3RhcnQtbWFyaykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPSAoKyBk ZWx0YSBlbmQpIGVuZC1tYXJrKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yICJDaGFu Z2VzIHRvIGJlIHVuZG9uZSBieSBmdW5jdGlvbiBkaWZmZXJlbnQgdGhhbiBhbm5vdW5jZWQiKSkK KyAgICAgICAgICAgICAgICAgICAgIChzZXQtbWFya2VyIHN0YXJ0LW1hcmsgbmlsKQorICAgICAg ICAgICAgICAgICAgICAgKHNldC1tYXJrZXIgZW5kLW1hcmsgbmlsKSkKKyAgICAgICAgICAgICAg ICAgKGFwcGx5IGZ1bi1hcmdzKSkKKyAgICAgICAgICAgICAgICh1bmxlc3MgKGVxIGN1cnJidWZm IChjdXJyZW50LWJ1ZmZlcikpCisgICAgICAgICAgICAgICAgIChlcnJvciAiVW5kbyBmdW5jdGlv biBzd2l0Y2hlZCBidWZmZXIiKSkKKyAgICAgICAgICAgICAgIChzZXRxIGRpZC1hcHBseSB0KSkp CisgICAgICAgICAgICA7OyBFbGVtZW50IChTVFJJTkcgLiBQT1MpIG1lYW5zIFNUUklORyB3YXMg ZGVsZXRlZC4KKyAgICAgICAgICAgIChgKCwoYW5kIHN0cmluZyAocHJlZCBzdHJpbmdwKSkgLiAs KGFuZCBwb3MgKHByZWQgaW50ZWdlcnApKSkKKyAgICAgICAgICAgICAod2hlbiAobGV0ICgoYXBv cyAoYWJzIHBvcykpKQorICAgICAgICAgICAgICAgICAgICAgKG9yICg8IGFwb3MgKHBvaW50LW1p bikpICg+IGFwb3MgKHBvaW50LW1heCkpKSkKKyAgICAgICAgICAgICAgIChlcnJvciAiQ2hhbmdl cyB0byBiZSB1bmRvbmUgYXJlIG91dHNpZGUgdmlzaWJsZSBwb3J0aW9uIG9mIGJ1ZmZlciIpKQor ICAgICAgICAgICAgIChzZXRxIGRlbC1wb3MgcG9zKQorICAgICAgICAgICAgIChpZiAoPCBwb3Mg MCkKKyAgICAgICAgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hh ciAoLSBwb3MpKQorICAgICAgICAgICAgICAgICAgIChpbnNlcnQgc3RyaW5nKSkKKyAgICAgICAg ICAgICAgIChnb3RvLWNoYXIgcG9zKQorICAgICAgICAgICAgICAgOzsgTm93IHRoYXQgd2UgcmVj b3JkIG1hcmtlciBhZGp1c3RtZW50cworICAgICAgICAgICAgICAgOzsgKGNhdXNlZCBieSBkZWxl dGlvbikgZm9yIHVuZG8sCisgICAgICAgICAgICAgICA7OyB3ZSBzaG91bGQgYWx3YXlzIGluc2Vy dCBhZnRlciBtYXJrZXJzLAorICAgICAgICAgICAgICAgOzsgc28gdGhhdCB1bmRvaW5nIHRoZSBt YXJrZXIgYWRqdXN0bWVudHMKKyAgICAgICAgICAgICAgIDs7IHB1dCB0aGUgbWFya2VycyBiYWNr IGluIHRoZSByaWdodCBwbGFjZS4KKyAgICAgICAgICAgICAgIChpbnNlcnQgc3RyaW5nKQorICAg ICAgICAgICAgICAgKGdvdG8tY2hhciBwb3MpKSkKKyAgICAgICAgICAgIDs7IChNQVJLRVIgLiBP RkZTRVQpIG1lYW5zIGEgbWFya2VyIE1BUktFUiB3YXMgYWRqdXN0ZWQgYnkgT0ZGU0VULgorICAg ICAgICAgICAgKGAoLChhbmQgbWFya2VyIChwcmVkIG1hcmtlcnApKSAuICwoYW5kIG9mZnNldCAo cHJlZCBpbnRlZ2VycCkpKQorICAgICAgICAgICAgICh3aGVuIChhbmQgZGVsLXBvcworICAgICAg ICAgICAgICAgICAgICAgICAgKGludGVnZXJwIChtYXJrZXItcG9zaXRpb24gbWFya2VyKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICg9IGRlbC1wb3MgbWFya2VyKQorICAgICAgICAgICAgICAg ICAgICAgICAgKG1hcmtlci1idWZmZXIgbWFya2VyKSkKKyAgICAgICAgICAgICAgIChzZXQtbWFy a2VyIG1hcmtlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgKC0gbWFya2VyIG9mZnNldCkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXJrZXItYnVmZmVyIG1hcmtlcikpKSkKKyAg ICAgICAgICAgIChfIChlcnJvciAiVW5yZWNvZ25pemVkIGVudHJ5IGluIHVuZG8gbGlzdCAlUyIg bmV4dCkpKSkpCiAgICAgICAoc2V0cSBhcmcgKDEtIGFyZykpKQogICAgIDs7IE1ha2Ugc3VyZSBh biBhcHBseSBlbnRyeSBwcm9kdWNlcyBhdCBsZWFzdCBvbmUgdW5kbyBlbnRyeSwKICAgICA7OyBz byB0aGUgdGVzdCBpbiBgdW5kbycgZm9yIGNvbnRpbnVpbmcgYW4gdW5kbyBzZXJpZXMKQEAgLTIz NDEsOCArMjM0Niw2IEBAIGFyZSBpZ25vcmVkLiAgSWYgQkVHIGFuZCBFTkQgYXJlIG5pbCwgYWxs IHVuZG8gZWxlbWVudHMgYXJlIHVzZWQuIgogCSAgICAodW5kby1tYWtlLXNlbGVjdGl2ZS1saXN0 IChtaW4gYmVnIGVuZCkgKG1heCBiZWcgZW5kKSkKIAkgIGJ1ZmZlci11bmRvLWxpc3QpKSkKIAot KGRlZnZhciB1bmRvLWFkanVzdGVkLW1hcmtlcnMpCi0KIChkZWZ1biB1bmRvLW1ha2Utc2VsZWN0 aXZlLWxpc3QgKHN0YXJ0IGVuZCkKICAgIlJldHVybiBhIGxpc3Qgb2YgdW5kbyBlbGVtZW50cyBm b3IgdGhlIHJlZ2lvbiBTVEFSVCB0byBFTkQuCiBUaGUgZWxlbWVudHMgY29tZSBmcm9tIGBidWZm ZXItdW5kby1saXN0JywgYnV0IHdlIGtlZXAgb25seQpAQCAtMjM1MSwxOCArMjM1NCwzMCBAQCBJ ZiB3ZSBmaW5kIGFuIGVsZW1lbnQgdGhhdCBjcm9zc2VzIGFuIGVkZ2Ugb2YgdGhpcyByZWdpb24s CiB3ZSBzdG9wIGFuZCBpZ25vcmUgYWxsIGZ1cnRoZXIgZWxlbWVudHMuIgogICAobGV0ICgodW5k by1saXN0LWNvcHkgKHVuZG8tY29weS1saXN0IGJ1ZmZlci11bmRvLWxpc3QpKQogCSh1bmRvLWxp c3QgKGxpc3QgbmlsKSkKLQl1bmRvLWFkanVzdGVkLW1hcmtlcnMKKyAgICAgICAgOzsgVGhlIHBv c2l0aW9uIG9mIGEgZGVsZXRpb24gcmVjb3JkIChURVhUIC4gUE9TSVRJT04pIG9mIHRoZQorICAg ICAgICA7OyBjdXJyZW50IGNoYW5nZSBncm91cC4KKyAgICAgICAgOzsKKyAgICAgICAgOzsgVGhp cyBpcyB1c2VkIHRvIGNoZWNrIHRoYXQgbWFya2VyIGFkanVzdG1lbmV0cyBhcmUgaW4gdGhlCisg ICAgICAgIDs7IHJlZ2lvbi4gIEJ1ZyAxNjgxOCBkZXNjcmliZXMgd2h5IHRoZSBtYXJrZXIncyBw b3NpdGlvbiBpcworICAgICAgICA7OyBub3Qgc3VpdGFibGUuCisgICAgICAgIGRlbC1wb3MKIAlz b21lLXJlamVjdGVkCiAJdW5kby1lbHQgdGVtcC11bmRvLWxpc3QgZGVsdGEpCiAgICAgKHdoaWxl IHVuZG8tbGlzdC1jb3B5CiAgICAgICAoc2V0cSB1bmRvLWVsdCAoY2FyIHVuZG8tbGlzdC1jb3B5 KSkKKyAgICAgIDs7IFVwZGF0ZSBkZWwtcG9zCisgICAgICAoaWYgdW5kby1lbHQKKyAgICAgICAg ICAod2hlbiAoYW5kIChjb25zcCB1bmRvLWVsdCkgKHN0cmluZ3AgKGNhciB1bmRvLWVsdCkpKQor ICAgICAgICAgICAgKHNldHEgZGVsLXBvcyAoY2RyIHVuZG8tZWx0KSkpCisgICAgICAgIDs7IFVu ZG8gYm91bmRhcnkgbWVhbnMgbmV3IGNoYW5nZSBncm91cCwgc28gdW5zZXQgZGVsLXBvcworICAg ICAgICAoc2V0cSBkZWwtcG9zIG5pbCkpCiAgICAgICAobGV0ICgoa2VlcC10aGlzCiAJICAgICAo Y29uZCAoKGFuZCAoY29uc3AgdW5kby1lbHQpIChlcSAoY2FyIHVuZG8tZWx0KSB0KSkKIAkJICAg IDs7IFRoaXMgaXMgYSAid2FzIHVubW9kaWZpZWQiIGVsZW1lbnQuCiAJCSAgICA7OyBLZWVwIGl0 IGlmIHdlIGhhdmUga2VwdCBldmVyeXRoaW5nIHRodXMgZmFyLgogCQkgICAgKG5vdCBzb21lLXJl amVjdGVkKSkKIAkJICAgKHQKLQkJICAgICh1bmRvLWVsdC1pbi1yZWdpb24gdW5kby1lbHQgc3Rh cnQgZW5kKSkpKSkKKwkJICAgICh1bmRvLWVsdC1pbi1yZWdpb24gdW5kby1lbHQgc3RhcnQgZW5k IGRlbC1wb3MpKSkpKQogCShpZiBrZWVwLXRoaXMKIAkgICAgKHByb2duCiAJICAgICAgKHNldHEg ZW5kICgrIGVuZCAoY2RyICh1bmRvLWRlbHRhIHVuZG8tZWx0KSkpKQpAQCAtMjQxNSw5ICsyNDMw LDEzIEBAIHdlIHN0b3AgYW5kIGlnbm9yZSBhbGwgZnVydGhlciBlbGVtZW50cy4iCiAgICAgICAo c2V0cSB1bmRvLWxpc3QtY29weSAoY2RyIHVuZG8tbGlzdC1jb3B5KSkpCiAgICAgKG5yZXZlcnNl IHVuZG8tbGlzdCkpKQogCi0oZGVmdW4gdW5kby1lbHQtaW4tcmVnaW9uICh1bmRvLWVsdCBzdGFy dCBlbmQpCisoZGVmdW4gdW5kby1lbHQtaW4tcmVnaW9uICh1bmRvLWVsdCBzdGFydCBlbmQgJm9w dGlvbmFsIG1hcmtlci12YWxpZGl0eS1wb3MpCiAgICJEZXRlcm1pbmUgd2hldGhlciBVTkRPLUVM VCBmYWxscyBpbnNpZGUgdGhlIHJlZ2lvbiBTVEFSVCAuLi4gRU5ELgotSWYgaXQgY3Jvc3NlcyB0 aGUgZWRnZSwgd2UgcmV0dXJuIG5pbC4iCitJZiBpdCBjcm9zc2VzIHRoZSBlZGdlLCB3ZSByZXR1 cm4gbmlsLgorCitJZiB1bmRvLWVsdCBpcyBhIChNQVJLRVIgLiBBREpVU1RNRU5UKSByZWNvcmQs IGVpdGhlcgorTUFSS0VSLVZBTElESVRZLVBPUyAoaWYgc3BlY2lmaWVkKSBvciB0aGUgbWFya2Vy J3MgcG9zaXRpb24gaXMKK3VzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgaXQgaXMgaW4gdGhlIHJl Z2lvbi4iCiAgIChjb25kICgoaW50ZWdlcnAgdW5kby1lbHQpCiAJIChhbmQgKD49IHVuZG8tZWx0 IHN0YXJ0KQogCSAgICAgICg8PSB1bmRvLWVsdCBlbmQpKSkKQEAgLTI0MzAsMTcgKzI0NDksOSBA QCBJZiBpdCBjcm9zc2VzIHRoZSBlZGdlLCB3ZSByZXR1cm4gbmlsLiIKIAkgKGFuZCAoPj0gKGFi cyAoY2RyIHVuZG8tZWx0KSkgc3RhcnQpCiAJICAgICAgKDw9IChhYnMgKGNkciB1bmRvLWVsdCkp IGVuZCkpKQogCSgoYW5kIChjb25zcCB1bmRvLWVsdCkgKG1hcmtlcnAgKGNhciB1bmRvLWVsdCkp KQotCSA7OyBUaGlzIGlzIGEgbWFya2VyLWFkanVzdG1lbnQgZWxlbWVudCAoTUFSS0VSIC4gQURK VVNUTUVOVCkuCi0JIDs7IFNlZSBpZiBNQVJLRVIgaXMgaW5zaWRlIHRoZSByZWdpb24uCi0JIChs ZXQgKChhbGlzdC1lbHQgKGFzc3EgKGNhciB1bmRvLWVsdCkgdW5kby1hZGp1c3RlZC1tYXJrZXJz KSkpCi0JICAgKHVubGVzcyBhbGlzdC1lbHQKLQkgICAgIChzZXRxIGFsaXN0LWVsdCAoY29ucyAo Y2FyIHVuZG8tZWx0KQotCQkJCSAgIChtYXJrZXItcG9zaXRpb24gKGNhciB1bmRvLWVsdCkpKSkK LQkgICAgIChzZXRxIHVuZG8tYWRqdXN0ZWQtbWFya2VycwotCQkgICAoY29ucyBhbGlzdC1lbHQg dW5kby1hZGp1c3RlZC1tYXJrZXJzKSkpCi0JICAgKGFuZCAoY2RyIGFsaXN0LWVsdCkKLQkJKD49 IChjZHIgYWxpc3QtZWx0KSBzdGFydCkKLQkJKDw9IChjZHIgYWxpc3QtZWx0KSBlbmQpKSkpCisJ IDs7IChNQVJLRVIgLiBBREpVU1RNRU5UKQorICAgICAgICAgKGxldCAoKG1wb3MgKG9yIG1hcmtl ci12YWxpZGl0eS1wb3MgKG1hcmtlci1wb3NpdGlvbiAoY2FyIHVuZG8tZWx0KSkpKSkKKyAgICAg ICAgICAgKGFuZCAoaW50ZWdlcnAgbXBvcykgKDw9IHN0YXJ0IG1wb3MgZW5kKSkpKQogCSgobnVs bCAoY2FyIHVuZG8tZWx0KSkKIAkgOzsgKG5pbCBQUk9QRVJUWSBWQUxVRSBCRUcgLiBFTkQpCiAJ IChsZXQgKCh0YWlsIChudGhjZHIgMyB1bmRvLWVsdCkpKQpkaWZmIC0tZ2l0IGEvdGVzdC9DaGFu Z2VMb2cgYi90ZXN0L0NoYW5nZUxvZwppbmRleCBjODcwMjJjLi5lN2VlMTRlIDEwMDY0NAotLS0g YS90ZXN0L0NoYW5nZUxvZworKysgYi90ZXN0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDExIEBACisy MDE0LTAzLTEzICBCYXJyeSBPJ1JlaWxseSAgPGd1bmRhZXRpYXBvQGdtYWlsLmNvbT4KKworCSog dW5kby10ZXN0cy5lbCAodW5kby10ZXN0LW1hcmtlci1hZGp1c3RtZW50LW5vbWluYWwpOiBOZXcg dGVzdCBvZgorCW1hcmtlciBhZGp1c3RtZW50cy4KKwkodW5kby10ZXN0LW1hcmtlci1hZGp1c3Rt ZW50LW1vdmVkKToKKwkodW5kby10ZXN0LXJlZ2lvbi1tYXJrLWFkanVzdG1lbnQpOiBUd28gbmV3 IHRlc3QgdG8gZGVtb25zdHJhdGUKKwlidWcjMTY4MTguCisKIDIwMTQtMDMtMDcgIE1pY2hhZWwg QWxiaW51cyAgPG1pY2hhZWwuYWxiaW51c0BnbXguZGU+CiAKIAkqIGF1dG9tYXRlZC90cmFtcC10 ZXN0cy5lbCAodHJhbXAtY29weS1zaXplLWxpbWl0KTogRGVjbGFyZS4KZGlmZiAtLWdpdCBhL3Rl c3QvYXV0b21hdGVkL3VuZG8tdGVzdHMuZWwgYi90ZXN0L2F1dG9tYXRlZC91bmRvLXRlc3RzLmVs CmluZGV4IDhhOTYzZjEuLmEzNDg1NDkgMTAwNjQ0Ci0tLSBhL3Rlc3QvYXV0b21hdGVkL3VuZG8t dGVzdHMuZWwKKysrIGIvdGVzdC9hdXRvbWF0ZWQvdW5kby10ZXN0cy5lbApAQCAtMjY4LDYgKzI2 OCw4MCBAQAogICAgIChzaG91bGQgKHN0cmluZz0gKGJ1ZmZlci1zdHJpbmcpCiAgICAgICAgICAg ICAgICAgICAgICAiVGhpcyBzZW50ZW5jZSBjb3JydXB0ZWQ/YWFhIikpKSkKIAorKGVydC1kZWZ0 ZXN0IHVuZG8tdGVzdC1tYXJrZXItYWRqdXN0bWVudC1ub21pbmFsICgpCisgICJUZXN0IG5vbWlu YWwgYmVoYXZpb3Igb2YgbWFya2VyIGFkanVzdG1lbnRzLiIKKyAgKHdpdGgtdGVtcC1idWZmZXIK KyAgICAoYnVmZmVyLWVuYWJsZS11bmRvKQorICAgIChpbnNlcnQgImFiY2RlZmciKQorICAgICh1 bmRvLWJvdW5kYXJ5KQorICAgIChsZXQgKChtIChtYWtlLW1hcmtlcikpKQorICAgICAgKHNldC1t YXJrZXIgbSAyIChjdXJyZW50LWJ1ZmZlcikpCisgICAgICAoZ290by1jaGFyIChwb2ludC1taW4p KQorICAgICAgKGRlbGV0ZS1mb3J3YXJkLWNoYXIgMykKKyAgICAgICh1bmRvLWJvdW5kYXJ5KQor ICAgICAgKHNob3VsZCAoPSAocG9pbnQtbWluKSAobWFya2VyLXBvc2l0aW9uIG0pKSkKKyAgICAg ICh1bmRvKQorICAgICAgKHVuZG8tYm91bmRhcnkpCisgICAgICAoc2hvdWxkICg9IDIgKG1hcmtl ci1wb3NpdGlvbiBtKSkpKSkpCisKKyhlcnQtZGVmdGVzdCB1bmRvLXRlc3QtbWFya2VyLWFkanVz dG1lbnQtbW92ZWQgKCkKKyAgIlRlc3QgbWFya2VyIGFkanVzdG1lbnQgYmVoYXZpb3Igd2hlbiB0 aGUgbWFya2VyIG1vdmVzLgorRGVtb25zdHJhdGVzIGJ1ZyAxNjgxOC4iCisgICh3aXRoLXRlbXAt YnVmZmVyCisgICAgKGJ1ZmZlci1lbmFibGUtdW5kbykKKyAgICAoaW5zZXJ0ICJhYmNkZWZnaGlq ayIpCisgICAgKHVuZG8tYm91bmRhcnkpCisgICAgKGxldCAoKG0gKG1ha2UtbWFya2VyKSkpCisg ICAgICAoc2V0LW1hcmtlciBtIDIgKGN1cnJlbnQtYnVmZmVyKSkgOyBtIGF0IGIKKyAgICAgIChn b3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgICAoZGVsZXRlLWZvcndhcmQtY2hhciAzKSA7IG0g YXQgZAorICAgICAgKHVuZG8tYm91bmRhcnkpCisgICAgICAoc2V0LW1hcmtlciBtIDQpIDsgbSBh dCBnCisgICAgICAodW5kbykKKyAgICAgICh1bmRvLWJvdW5kYXJ5KQorICAgICAgOzsgbSBzdGls bCBhdCBnLCBidXQgc2hpZnRlZCAzIGJlY2F1c2UgZGVsZXRpb24gdW5kb25lCisgICAgICAoc2hv dWxkICg9IDcgKG1hcmtlci1wb3NpdGlvbiBtKSkpKSkpCisKKyhlcnQtZGVmdGVzdCB1bmRvLXRl c3QtcmVnaW9uLW1hcmstYWRqdXN0bWVudCAoKQorICAiVGVzdCB0aGF0IHRoZSBtYXJrJ3MgbWFy a2VyIGFkanVzdG1lbnQgaW4gdW5kbyBoaXN0b3J5IGRvZXNuJ3QKK29ic3RydWN0IHVuZG8gaW4g cmVnaW9uIGZyb20gZmluZGluZyB0aGUgY29ycmVjdCBjaGFuZ2UgZ3JvdXAuCitEZW1vbnN0cmF0 ZXMgYnVnIDE2ODE4LiIKKyAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAoYnVmZmVyLWVuYWJsZS11 bmRvKQorICAgICh0cmFuc2llbnQtbWFyay1tb2RlIDEpCisgICAgKGluc2VydCAiRmlyc3QgbGlu ZVxuIikKKyAgICAoaW5zZXJ0ICJTZWNvbmQgbGluZVxuIikKKyAgICAodW5kby1ib3VuZGFyeSkK KworICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgKGluc2VydCAiYWFhIikKKyAgICAo dW5kby1ib3VuZGFyeSkKKworICAgICh1bmRvKQorICAgICh1bmRvLWJvdW5kYXJ5KQorCisgICAg KGdvdG8tY2hhciAocG9pbnQtbWF4KSkKKyAgICAoaW5zZXJ0ICJiYmIiKQorICAgICh1bmRvLWJv dW5kYXJ5KQorCisgICAgKHB1c2gtbWFyayAocG9pbnQpIHQgdCkKKyAgICAoc2V0cSBtYXJrLWFj dGl2ZSB0KQorICAgIChnb3RvLWNoYXIgKC0gKHBvaW50KSAzKSkKKyAgICAoZGVsZXRlLWZvcndh cmQtY2hhciAxKQorICAgICh1bmRvLWJvdW5kYXJ5KQorCisgICAgKGluc2VydCAiYmJiIikKKyAg ICAodW5kby1ib3VuZGFyeSkKKworICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgKHB1 c2gtbWFyayAocG9pbnQpIHQgdCkKKyAgICAoc2V0cSBtYXJrLWFjdGl2ZSB0KQorICAgIChnb3Rv LWNoYXIgKCsgKHBvaW50KSAzKSkKKyAgICAodW5kbykKKyAgICAodW5kby1ib3VuZGFyeSkKKwor ICAgIChzaG91bGQgKHN0cmluZz0gKGJ1ZmZlci1zdHJpbmcpICJhYWFGaXJzdCBsaW5lXG5TZWNv bmQgbGluZVxuYmJiIikpKSkKKwogKGRlZnVuIHVuZG8tdGVzdC1hbGwgKCZvcHRpb25hbCBpbnRl cmFjdGl2ZSkKICAgIlJ1biBhbGwgdGVzdHMgZm9yIFxcW3VuZG9dLiIKICAgKGludGVyYWN0aXZl ICJwIikK --001a11c1d7e000012604f4d57529-- From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 17 20:02:47 2014 Received: (at 16818) by debbugs.gnu.org; 18 Mar 2014 00:02:47 +0000 Received: from localhost ([127.0.0.1]:39352 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WPhUU-0001Dw-Fy for submit@debbugs.gnu.org; Mon, 17 Mar 2014 20:02:46 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:41672) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WPhUS-0001Do-NC for 16818@debbugs.gnu.org; Mon, 17 Mar 2014 20:02:45 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av8EABK/CFHO+KKg/2dsb2JhbABEuzWDWRdzgh4BAQQBViMQCzQSFBgNJIgeBsEtjQ2DfQOOGJZigV6DE4FK X-IPAS-Result: Av8EABK/CFHO+KKg/2dsb2JhbABEuzWDWRdzgh4BAQQBViMQCzQSFBgNJIgeBsEtjQ2DfQOOGJZigV6DE4FK X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="52406720" Received: from 206-248-162-160.dsl.teksavvy.com (HELO pastel.home) ([206.248.162.160]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 17 Mar 2014 20:02:43 -0400 Received: by pastel.home (Postfix, from userid 20848) id B01E26028B; Mon, 17 Mar 2014 20:02:43 -0400 (EDT) From: Stefan To: Barry OReilly Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) Message-ID: References: Date: Mon, 17 Mar 2014 20:02:43 -0400 In-Reply-To: (Barry OReilly's message of "Mon, 17 Mar 2014 19:05:34 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) >> The primitive-undo fix should be safe enough for 24.4, so if you >> want to code this up and install it, feel free. > I have attached the patch for this, which I'll install if nothing > comes up from review. Thanks. A few comments below. --- a/lisp/simple.el +++ b/lisp/simple.el @@ -2229,6 +2229,7 @@ (did-apply nil) (next nil)) (while (> arg 0) + (let (del-pos) (while (setq next (pop list)) ;Exit inner loop at undo boundary. ;; Handle an integer by setting point to that value. (pcase next @@ -2289,6 +2290,7 @@ (when (let ((apos (abs pos))) (or (< apos (point-min)) (> apos (point-max)))) (error "Changes to be undone are outside visible portion of buffer")) + (setq del-pos pos) (if (< pos 0) (progn (goto-char (- pos)) @@ -2303,11 +2305,14 @@ (goto-char pos))) ;; (MARKER . OFFSET) means a marker MARKER was adjusted by OFFSET. (`(,(and marker (pred markerp)) . ,(and offset (pred integerp))) - (when (marker-buffer marker) + (when (and del-pos + (integerp (marker-position marker)) + (= del-pos marker) + (marker-buffer marker)) (set-marker marker (- marker offset) (marker-buffer marker)))) - (_ (error "Unrecognized entry in undo list %S" next)))) + (_ (error "Unrecognized entry in undo list %S" next))))) (setq arg (1- arg))) ;; Make sure an apply entry produces at least one undo entry, ;; so the test in `undo' for continuing an undo series The "move-after" markers will be at (+ del-pos (length inserted-text)) rather than at del-pos. Also, a lone (MARKER . OFFSET) entry will arbitrarily use some unrelated earlier del-pos. Admittedly, such lone (MARKER . OFFSET) entries should/will never happen, but I'd rather we catch them and emit a warning than silently do something arbitrary. IOW, I think we should only change the entry corresponding to a deletion such that it directly handles all the immediately following marker-adjustments (it can check them before doing the insertion, hence using del-pos without having to care about insert-after vs insert-before). Then the current handling of marker-adjustments can be changed to emit a warning. > @@ -2351,18 +2354,30 @@ If we find an element that crosses an edge of this region, > we stop and ignore all further elements." > (let ((undo-list-copy (undo-copy-list buffer-undo-list)) > (undo-list (list nil)) > - undo-adjusted-markers > + ;; The position of a deletion record (TEXT . POSITION) of the > + ;; current change group. > + ;; > + ;; This is used to check that marker adjustmenets are in the > + ;; region. Bug 16818 describes why the marker's position is > + ;; not suitable. > + del-pos > some-rejected > undo-elt temp-undo-list delta) > (while undo-list-copy > (setq undo-elt (car undo-list-copy)) > + ;; Update del-pos > + (if undo-elt > + (when (and (consp undo-elt) (stringp (car undo-elt))) > + (setq del-pos (cdr undo-elt))) > + ;; Undo boundary means new change group, so unset del-pos > + (setq del-pos nil)) > (let ((keep-this > (cond ((and (consp undo-elt) (eq (car undo-elt) t)) > ;; This is a "was unmodified" element. > ;; Keep it if we have kept everything thus far. > (not some-rejected)) > (t > - (undo-elt-in-region undo-elt start end))))) > + (undo-elt-in-region undo-elt start end del-pos))))) > (if keep-this > (progn > (setq end (+ end (cdr (undo-delta undo-elt)))) I'd have the same comment here, but if we emit a warning for sole marker-adjustments in the "non-region" code, we don't really have to worry about them here. But this is also affected by the issue of "move-after" markers where `del-pos' is not sufficient info since those markers won't be at del-pos any more if they were at del-pos before we inserted the deleted text. Stefan From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 19 09:36:24 2014 Received: (at 16818) by debbugs.gnu.org; 19 Mar 2014 13:36:24 +0000 Received: from localhost ([127.0.0.1]:40837 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WQGfP-0003pi-9S for submit@debbugs.gnu.org; Wed, 19 Mar 2014 09:36:24 -0400 Received: from mail-oa0-f54.google.com ([209.85.219.54]:50059) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WQGfK-0003pY-HI for 16818@debbugs.gnu.org; Wed, 19 Mar 2014 09:36:19 -0400 Received: by mail-oa0-f54.google.com with SMTP id n16so8351973oag.13 for <16818@debbugs.gnu.org>; Wed, 19 Mar 2014 06:36:17 -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=yWBB22QAbCHN5znHxE4nGLUVn/Lv0eGULsVjbkegk/o=; b=iQn4uIpkDthYUBdp7Ryn8J3Ttpb/yxQVcdlSObvtXk4HsgvG0pGvYsXLQqYJAiZCvU Dj8R6Fwjg8DFhdGE6jZyAWU+BIhh2K8MRdVvfc6StcWJpv+/zAATaJ0/bCqSsrEd6IMk v0v2AZgq7rcrgphPxiD6y9a+t4VAU55gkKoG/ZpRiRGp59HU8M1T2UKGrp0xxgnci87d mfWaGjk2Zh+4neY5k5VbQaneD0pr4B3pkNUAeHtJtfQDM6tPUisGTJyBEsqaKeDSswQg UfwpTA/41LwY06VVEhf7KbUHxSnt+gTloPlmB77bxKviFC0jIveophHfd62pPSIwcIgE fuzg== MIME-Version: 1.0 X-Received: by 10.182.142.37 with SMTP id rt5mr445722obb.76.1395236177667; Wed, 19 Mar 2014 06:36:17 -0700 (PDT) Received: by 10.76.6.44 with HTTP; Wed, 19 Mar 2014 06:36:17 -0700 (PDT) In-Reply-To: References: Date: Wed, 19 Mar 2014 09:36:17 -0400 Message-ID: Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) From: Barry OReilly To: Stefan Content-Type: multipart/alternative; boundary=001a11c2ec9abf802704f4f5bcea X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --001a11c2ec9abf802704f4f5bcea Content-Type: text/plain; charset=ISO-8859-1 > The "move-after" markers will be at (+ del-pos (length > inserted-text)) rather than at del-pos. Right, thanks for catching that flaw. > I'd have the same comment here, but if we emit a warning for sole > marker-adjustments in the "non-region" code, we don't really have to > worry about them here. If you're saying changes under undo-make-selective-list are not necessary, remember that currently it can create a list like: (nil (# . -3) (# . -3) nil (aaa . 141) nil (141 . 144) nil) I don't think the original recipe of this bug report should generate a warning. Rather, I had undo-make-selective-list filter out the marker adjustments so as the above list would have (aaa . 141) at the head. > I think we should only change the entry corresponding to a deletion > such that it directly handles all the immediately following > marker-adjustments They don't always immediately follow. An integer record can be between them. For example, at the end of the undo-test-marker-adjustment-moved test I posted previously, buffer-undo-list is: (nil (1 . 4) nil (abc . 1) 12 (# . -1) nil (1 . 12) (t . 0)) Also, (t sec-high sec-low microsec picosec) entries can be in between. eg it was easy to bring about this buffer-undo-list: Value: (nil (#(" " 0 3 (fontified t)) . 12) (t 20985 26927 0 0) (# . -2) (# . -2) (# . -3) (# . -2)) I suppose some options are: * Implement your proposal but skip over the (t ...) and integer records * Restructure the C code so as marker adjustments are always immediately before deletion records * Revisit the approach of fixing markers that move to unrelated locations. Let me know and thank you for your guidance. --001a11c2ec9abf802704f4f5bcea Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
> The "move-after" markers will be at (+ del-= pos (length
> inserted-text)) rather than at del-pos.

Right, t= hanks for catching that flaw.

> I'd have the same comment her= e, but if we emit a warning for sole
> marker-adjustments in the "non-region" code, we don't re= ally have to
> worry about them here.

If you're saying cha= nges under undo-make-selective-list are not
necessary, remember that cur= rently it can create a list like:

  (nil (#<marker at 141 in *scratch*> . -3) (#<marker at = 190 in *scratch*>
. -3) nil (aaa . 141) nil (141 . 144) nil)

I= don't think the original recipe of this bug report should generate a warning. Rather, I had undo-make-selective-list filter out the marker
ad= justments so as the above list would have (aaa . 141) at the head.

&= gt; I think we should only change the entry corresponding to a deletion
> such that it directly handles all the immediately following
> ma= rker-adjustments

They don't always immediately follow. An intege= r record can be between
them. For example, at the end of the undo-test-m= arker-adjustment-moved
test I posted previously, buffer-undo-list is:

  (nil (1 . 4) n= il (abc . 1) 12 (#<marker at 7 in  *temp*-216909> . -1) nil (1 .= 12) (t . 0))

Also, (t sec-high sec-low microsec picosec) entries ca= n be in between.
eg it was easy to bring about this buffer-undo-list:

  Value: (= nil
   (#("   " 0 3
   &= nbsp;  (fontified t))
    . 12)
   (t 2= 0985 26927 0 0)
   (#<marker at 12 in foo.py> . -2)
&= nbsp;  (#<marker at 12 in foo.py> . -2)
   (#<marker in no buffer> . -3)
   (#<mark= er in no buffer> . -2))

I suppose some options are:

 = • Implement your proposal but skip over the (t ...) and integer
&n= bsp;   records
  • Restructure the C code so as mark= er adjustments are always
    immediately before deletion records
  • Rev= isit the approach of fixing markers that move to unrelated
  &= nbsp; locations.

Let me know and thank you for your guidance.
--001a11c2ec9abf802704f4f5bcea-- From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 19 09:46:02 2014 Received: (at 16818) by debbugs.gnu.org; 19 Mar 2014 13:46:02 +0000 Received: from localhost ([127.0.0.1]:40863 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WQGoj-00046i-VR for submit@debbugs.gnu.org; Wed, 19 Mar 2014 09:46:02 -0400 Received: from mail-ob0-f169.google.com ([209.85.214.169]:56244) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WQGoi-00046H-Fi for 16818@debbugs.gnu.org; Wed, 19 Mar 2014 09:46:01 -0400 Received: by mail-ob0-f169.google.com with SMTP id va2so8213560obc.0 for <16818@debbugs.gnu.org>; Wed, 19 Mar 2014 06:45:59 -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=tcA/Uv5Wnf8DlWypqizCSWO6Oi1utzkdO3Bx7eNfDM0=; b=IXvGnid0QPV+YwJWJcpkumTIgNsU4VN5xUlXkZk0b5X5mHYg5QOLL/VWKZMm0LnZbQ WTI926ZNkGAvw3NR4ElopuxxhLIzMMmsaLNcmDwCJ7HrODagdylMpLNPqNnl3ck33E6/ XI3Xeo1+V5iJivh49gcOgutDTUuM48nVljz7iHbxVkRFSqCDSeURqNRQrGvnRwOfaRAn W1ak4VNdT75LS/Vf6ccZbcacy3HYvdtZrnuq6npe1SFGaAvCRoRgpZ26xOxzOinE78Fe g+O+t5ZXHxSx97bYKWZo69safNLhtcQ0ekCq3RaII0FrBocAHMvZIDWPY7JmUCnB76WT oWNw== MIME-Version: 1.0 X-Received: by 10.60.142.229 with SMTP id rz5mr32515661oeb.1.1395236759724; Wed, 19 Mar 2014 06:45:59 -0700 (PDT) Received: by 10.76.6.44 with HTTP; Wed, 19 Mar 2014 06:45:59 -0700 (PDT) In-Reply-To: References: Date: Wed, 19 Mar 2014 09:45:59 -0400 Message-ID: Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) From: Barry OReilly To: Stefan Content-Type: multipart/alternative; boundary=047d7b414e6070e76c04f4f5df5c X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --047d7b414e6070e76c04f4f5df5c Content-Type: text/plain; charset=ISO-8859-1 Clarifications: > * Implement your proposal but skip over the (t ...) and integer records I mean "skip" only for the "look ahead to validate" part. Not to skip completely. > * Restructure the C code so as marker adjustments are always immediately before deletion records I meant "chronologically" before, not "before" in the list. I think the desired ordering would be: Value: (nil (#(" " 0 3 (fontified t)) . 12) (# . -2) (# . -2) (# . -3) (# . -2) (t 20985 26927 0 0)) --047d7b414e6070e76c04f4f5df5c Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Clarifications:

>  • Implement your pr= oposal but skip over the (t ...) and integer
    records<= br>
I mean "skip" only for the "look ahead to validate&qu= ot; part. Not to skip
completely.

>   • Restructure the C code so as mar= ker adjustments are always
    immediately before deletio= n records

I meant "chronologically" before, not "befo= re" in the list. I think
the desired ordering would be:

  Value: (nil
   (#= ("   " 0 3
      (fontified= t))
    . 12)
   (#<marker at 12 in foo.= py> . -2)
   (#<marker at 12 in foo.py> . -2)
&nbs= p;  (#<marker in no buffer> . -3)
   (#<marker in no buffer> . -2)
   (t 20985 2= 6927 0 0))

--047d7b414e6070e76c04f4f5df5c-- From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 19 14:52:44 2014 Received: (at 16818) by debbugs.gnu.org; 19 Mar 2014 18:52:44 +0000 Received: from localhost ([127.0.0.1]:41550 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WQLbX-00059l-Lg for submit@debbugs.gnu.org; Wed, 19 Mar 2014 14:52:44 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:40168) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WQLbV-00059d-G0 for 16818@debbugs.gnu.org; Wed, 19 Mar 2014 14:52:41 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4EABK/CFHO+KKg/2dsb2JhbABEvw4Xc4IeAQEEAVYjEAs0EhQYDSSIHgbBLY0Ng30DjhiWYoFegxOBSg X-IPAS-Result: Av4EABK/CFHO+KKg/2dsb2JhbABEvw4Xc4IeAQEEAVYjEAs0EhQYDSSIHgbBLY0Ng30DjhiWYoFegxOBSg X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="52639784" Received: from 206-248-162-160.dsl.teksavvy.com (HELO pastel.home) ([206.248.162.160]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 19 Mar 2014 14:52:40 -0400 Received: by pastel.home (Postfix, from userid 20848) id AE0FB60123; Wed, 19 Mar 2014 14:52:40 -0400 (EDT) From: Stefan To: Barry OReilly Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) Message-ID: References: Date: Wed, 19 Mar 2014 14:52:40 -0400 In-Reply-To: (Barry OReilly's message of "Wed, 19 Mar 2014 09:36:17 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) >> I'd have the same comment here, but if we emit a warning for sole >> marker-adjustments in the "non-region" code, we don't really have to >> worry about them here. > If you're saying changes under undo-make-selective-list are not > necessary, remember that currently it can create a list like: No, I mean that it's OK to *assume* that any marker-adjustment we find in the undo-region code is "right after a deletion". Of course, that's only relevant if that can help us simplify the code. >> I think we should only change the entry corresponding to a deletion >> such that it directly handles all the immediately following >> marker-adjustments > They don't always immediately follow. An integer record can be between > them. For example, at the end of the undo-test-marker-adjustment-moved > test I posted previously, buffer-undo-list is: > (nil (1 . 4) nil (abc . 1) 12 (# . -1) nil > (1 . 12) (t . 0)) Right, the integer record is indeed also added by the deletion, so we should still consider the marker adjustments to "immediately follow". > * Implement your proposal but skip over the (t ...) and integer > records > * Restructure the C code so as marker adjustments are always > immediately before deletion records > * Revisit the approach of fixing markers that move to unrelated > locations. I think the first option is best (hopefully, the set of "things that can come between the deletion and the marker adjustments" won't keep growing). Stefan From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 19 14:56:36 2014 Received: (at 16818) by debbugs.gnu.org; 19 Mar 2014 18:56:36 +0000 Received: from localhost ([127.0.0.1]:41555 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WQLfH-0005H6-IJ for submit@debbugs.gnu.org; Wed, 19 Mar 2014 14:56:35 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:13595) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WQLfE-0005Gu-TY for 16818@debbugs.gnu.org; Wed, 19 Mar 2014 14:56:33 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4EABK/CFHO+KKg/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLNBIUGA0kiB4GwS2RCgOOGJZigV6DEw X-IPAS-Result: Av4EABK/CFHO+KKg/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLNBIUGA0kiB4GwS2RCgOOGJZigV6DEw X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="52640462" Received: from 206-248-162-160.dsl.teksavvy.com (HELO pastel.home) ([206.248.162.160]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 19 Mar 2014 14:56:32 -0400 Received: by pastel.home (Postfix, from userid 20848) id 1D71660123; Wed, 19 Mar 2014 14:56:32 -0400 (EDT) From: Stefan To: Barry OReilly Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) Message-ID: References: Date: Wed, 19 Mar 2014 14:56:32 -0400 In-Reply-To: (Barry OReilly's message of "Wed, 19 Mar 2014 09:45:59 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) > I meant "chronologically" before, not "before" in the list. I think > the desired ordering would be: > Value: (nil > (#(" " 0 3 > (fontified t)) > . 12) > (# . -2) > (# . -2) > (# . -3) > (# . -2) > (t 20985 26927 0 0)) Oh, right. That would be good as well. At least as good as option 1. So I'd go with whichever of option 1 or 2 is simpler. > * Revisit the approach of fixing markers that move to unrelated > locations. Definitely not for 24.4. Stefan From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 23 18:49:42 2014 Received: (at 16818) by debbugs.gnu.org; 23 Mar 2014 22:49:42 +0000 Received: from localhost ([127.0.0.1]:46363 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WRrD2-0005A6-FH for submit@debbugs.gnu.org; Sun, 23 Mar 2014 18:49:42 -0400 Received: from mail-oa0-f50.google.com ([209.85.219.50]:44516) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WRrCv-00059q-Ak for 16818@debbugs.gnu.org; Sun, 23 Mar 2014 18:49:35 -0400 Received: by mail-oa0-f50.google.com with SMTP id i7so4956608oag.23 for <16818@debbugs.gnu.org>; Sun, 23 Mar 2014 15:49:32 -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=jTtj1HBtSl4GZ/QU+xEGmNoiInpVXWoUdPHjPARhfCo=; b=B02XqLEoCn15GzYq+326nNFXNYFjyaDS6lnYWpJUVjGRvWJFZ68eB5k3Osem1jvRyo LQG8tI8N6t2EnsLdjh0xW37lkC08fTEtPSRnQVYa88Yv7d+DW0vD26OkCcwHXOZAzK8Y UdMJJDLgclQ1WABNr9W+wlY9IFVhG/DxtG1QIR0jUv0eBrSzuBajuM3ojCyimaythGEV fbk9zxsxOpFFLzSOv4BMCg1VCG+I6uImXlHTrMYXLjwQ7crl2e3e5Ui01g+iXMe1KY+B a2QkYtYarrAJMlSw2p6JMtTDtJmuhwHxew3/QzKrVKzJgCglvo8BVi53JhG0qonnrp2K SK9g== MIME-Version: 1.0 X-Received: by 10.182.153.226 with SMTP id vj2mr23842068obb.26.1395614972454; Sun, 23 Mar 2014 15:49:32 -0700 (PDT) Received: by 10.76.6.44 with HTTP; Sun, 23 Mar 2014 15:49:32 -0700 (PDT) In-Reply-To: References: Date: Sun, 23 Mar 2014 18:49:32 -0400 Message-ID: Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) From: Barry OReilly To: Stefan Content-Type: multipart/mixed; boundary=089e013d0dc0ae3ddc04f54dee75 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --089e013d0dc0ae3ddc04f54dee75 Content-Type: multipart/alternative; boundary=089e013d0dc0ae3dd804f54dee73 --089e013d0dc0ae3dd804f54dee73 Content-Type: text/plain; charset=ISO-8859-1 >> Value: (nil >> (#(" " 0 3 >> (fontified t)) >> . 12) >> (# . -2) >> (# . -2) >> (# . -3) >> (# . -2) >> (t 20985 26927 0 0)) > Oh, right. That would be good as well. At least as good as option 1. > So I'd go with whichever of option 1 or 2 is simpler. Attached is the new patch to solve this, implementing option 2 and incorporating your feedback. --089e013d0dc0ae3dd804f54dee73 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
>>=A0=A0 Value: (nil
>>=A0=A0=A0 (#("= =A0=A0 " 0 3
>>=A0=A0=A0=A0=A0=A0 (fontified t))
>>= =A0=A0=A0=A0 . 12)
>>=A0=A0=A0 (#<marker at 12 in foo.py> . = -2)
>>=A0=A0=A0 (#<marker at 12 in foo.py> . -2)
>>=A0=A0=A0 (#<marker in no buffer> . -3)
>>=A0=A0=A0 = (#<marker in no buffer> . -2)
>>=A0=A0=A0 (t 20985 26927 0 0= ))

> Oh, right. That would be good as well. At least as good as o= ption 1.
> So I'd go with whichever of option 1 or 2 is simpler.<= br>
Attached is the new patch to solve this, implementing option 2 and
i= ncorporating your feedback.

--089e013d0dc0ae3dd804f54dee73-- --089e013d0dc0ae3ddc04f54dee75 Content-Type: text/plain; charset=US-ASCII; name="undo-marker-record.diff" Content-Disposition: attachment; filename="undo-marker-record.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ht4x3esd0 ZGlmZiAtLWdpdCBhL2RvYy9saXNwcmVmL0NoYW5nZUxvZyBiL2RvYy9saXNwcmVmL0NoYW5nZUxv ZwppbmRleCA2ZmZkODBiLi43NGE3NTZlIDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9DaGFuZ2VM b2cKKysrIGIvZG9jL2xpc3ByZWYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAgQEAKKzIwMTQtMDMt MTMgIEJhcnJ5IE8nUmVpbGx5ICA8Z3VuZGFldGlhcG9AZ21haWwuY29tPgorCSogbWFya2Vycy50 ZXhpIChNb3ZpbmcgTWFya2VyIFBvc2l0aW9ucyk6IFRoZSAyMDE0LTAzLTAyIGRvYworCWNoYW5n ZSBtZW50aW9uaW5nIHVuZG8ncyBpbmFiaWxpdHkgdG8gaGFuZGxlIHJlbG9jYXRlZCBtYXJrZXJz IG5vCisJbG9uZ2VyIGFwcGxpZXMuICBTZWUgYnVnIzE2ODE4LgorCSogdGV4dC50ZXhpIChVbmRv KTogRXhwYW5kIGRvY3VtZW50YXRpb24gb2YgKFRFWFQgLiBQT1MpIGFuZAorCShNQVJLRVIgLiBB REpVU1RNRU5UKSB1bmRvIGVsZW1lbnRzLgorCiAyMDE0LTAzLTA5ICBNYXJ0aW4gUnVkYWxpY3Mg IDxydWRhbGljc0BnbXguYXQ+CiAKIAkqIGVsaXNwLnRleGkgKFRvcCk6IFJlbmFtZSBzZWN0aW9u ICJXaWR0aCIgdG8gIlNpemUgb2YgRGlzcGxheWVkCmRpZmYgLS1naXQgYS9kb2MvbGlzcHJlZi9t YXJrZXJzLnRleGkgYi9kb2MvbGlzcHJlZi9tYXJrZXJzLnRleGkKaW5kZXggMTkzODZkNi4uNTFi ODdhYiAxMDA2NDQKLS0tIGEvZG9jL2xpc3ByZWYvbWFya2Vycy50ZXhpCisrKyBiL2RvYy9saXNw cmVmL21hcmtlcnMudGV4aQpAQCAtMzQ0LDEyICszNDQsMTAgQEAgc3BlY2lmeSB0aGUgaW5zZXJ0 aW9uIHR5cGUsIGNyZWF0ZSB0aGVtIHdpdGggaW5zZXJ0aW9uIHR5cGUKIEBzZWN0aW9uIE1vdmlu ZyBNYXJrZXIgUG9zaXRpb25zCiAKICAgVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBob3cgdG8gY2hh bmdlIHRoZSBwb3NpdGlvbiBvZiBhbiBleGlzdGluZwotbWFya2VyLiAgV2hlbiB5b3UgZG8gdGhp cywgYmUgc3VyZSB5b3Uga25vdyBob3cgdGhlIG1hcmtlciBpcyB1c2VkCi1vdXRzaWRlIG9mIHlv dXIgcHJvZ3JhbS4gIEZvciBleGFtcGxlLCBtb3ZpbmcgYSBtYXJrZXIgdG8gYW4gdW5yZWxhdGVk Ci1uZXcgcG9zaXRpb24gY2FuIGNhdXNlIHVuZG8gdG8gbGF0ZXIgYWRqdXN0IHRoZSBtYXJrZXIg aW5jb3JyZWN0bHkuCi1PZnRlbiB3aGVuIHlvdSB3aXNoIHRvIHJlbG9jYXRlIGEgbWFya2VyIHRv IGFuIHVucmVsYXRlZCBwb3NpdGlvbiwgaXQKLWlzIHByZWZlcmFibGUgdG8gbWFrZSBhIG5ldyBt YXJrZXIgYW5kIHNldCB0aGUgcHJpb3Igb25lIHRvIHBvaW50Ci1ub3doZXJlLgorbWFya2VyLiAg V2hlbiB5b3UgZG8gdGhpcywgYmUgc3VyZSB5b3Uga25vdyB3aGV0aGVyIHRoZSBtYXJrZXIgaXMg dXNlZAorb3V0c2lkZSBvZiB5b3VyIHByb2dyYW0sIGFuZCwgaWYgc28sIHdoYXQgZWZmZWN0cyB3 aWxsIHJlc3VsdCBmcm9tCittb3ZpbmcgaXQtLS1vdGhlcndpc2UsIGNvbmZ1c2luZyB0aGluZ3Mg bWF5IGhhcHBlbiBpbiBvdGhlciBwYXJ0cyBvZgorRW1hY3MuCiAKIEBkZWZ1biBzZXQtbWFya2Vy IG1hcmtlciBwb3NpdGlvbiAmb3B0aW9uYWwgYnVmZmVyCiBUaGlzIGZ1bmN0aW9uIG1vdmVzIEB2 YXJ7bWFya2VyfSB0byBAdmFye3Bvc2l0aW9ufQpkaWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYvdGV4 dC50ZXhpIGIvZG9jL2xpc3ByZWYvdGV4dC50ZXhpCmluZGV4IGQ5M2Y5MzcuLmQ5YmU4N2QgMTAw NjQ0Ci0tLSBhL2RvYy9saXNwcmVmL3RleHQudGV4aQorKysgYi9kb2MvbGlzcHJlZi90ZXh0LnRl eGkKQEAgLTEyNzAsNyArMTI3MCw4IEBAIFRoaXMga2luZCBvZiBlbGVtZW50IGluZGljYXRlcyBo b3cgdG8gcmVpbnNlcnQgdGV4dCB0aGF0IHdhcyBkZWxldGVkLgogVGhlIGRlbGV0ZWQgdGV4dCBp dHNlbGYgaXMgdGhlIHN0cmluZyBAdmFye3RleHR9LiAgVGhlIHBsYWNlIHRvCiByZWluc2VydCBp dCBpcyBAY29kZXsoYWJzIEB2YXJ7cG9zaXRpb259KX0uICBJZiBAdmFye3Bvc2l0aW9ufSBpcwog cG9zaXRpdmUsIHBvaW50IHdhcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBkZWxldGVkIHRleHQs IG90aGVyd2lzZSBpdAotd2FzIGF0IHRoZSBlbmQuCit3YXMgYXQgdGhlIGVuZC4gIFplcm8gb3Ig bW9yZSBAdmFye21hcmtlcn0gLiBAdmFye2FkanVzdG1lbnR9KQorZWxlbWVudHMgZm9sbG93IGlt bWVkaWF0ZWx5IGFmdGVyIHRoaXMgZWxlbWVudC4KIAogQGl0ZW0gKHQgLiBAdmFye3RpbWUtZmxh Z30pCiBUaGlzIGtpbmQgb2YgZWxlbWVudCBpbmRpY2F0ZXMgdGhhdCBhbiB1bm1vZGlmaWVkIGJ1 ZmZlciBiZWNhbWUKQEAgLTEyOTYsOCArMTI5NywxMCBAQCBIZXJlJ3MgaG93IHlvdSBtaWdodCB1 bmRvIHRoZSBjaGFuZ2U6CiBAaXRlbSAoQHZhcnttYXJrZXJ9IC4gQHZhcnthZGp1c3RtZW50fSkK IFRoaXMga2luZCBvZiBlbGVtZW50IHJlY29yZHMgdGhlIGZhY3QgdGhhdCB0aGUgbWFya2VyIEB2 YXJ7bWFya2VyfSB3YXMKIHJlbG9jYXRlZCBkdWUgdG8gZGVsZXRpb24gb2Ygc3Vycm91bmRpbmcg dGV4dCwgYW5kIHRoYXQgaXQgbW92ZWQKLUB2YXJ7YWRqdXN0bWVudH0gY2hhcmFjdGVyIHBvc2l0 aW9ucy4gIFVuZG9pbmcgdGhpcyBlbGVtZW50IG1vdmVzCi1AdmFye21hcmtlcn0gQG1pbnVze30g QHZhcnthZGp1c3RtZW50fSBjaGFyYWN0ZXJzLgorQHZhcnthZGp1c3RtZW50fSBjaGFyYWN0ZXIg cG9zaXRpb25zLiAgSWYgdGhlIG1hcmtlcidzIGxvY2F0aW9uIGlzCitjb25zaXN0ZW50IHdpdGgg dGhlIChAdmFye3RleHR9IC4gQHZhcntwb3NpdGlvbn0pIGVsZW1lbnQgcHJlY2VkaW5nIGl0Citp biB0aGUgdW5kbyBsaXN0LCB0aGVuIHVuZG9pbmcgdGhpcyBlbGVtZW50IG1vdmVzIEB2YXJ7bWFy a2VyfQorQG1pbnVze30gQHZhcnthZGp1c3RtZW50fSBjaGFyYWN0ZXJzLgogCiBAaXRlbSAoYXBw bHkgQHZhcntmdW5uYW1lfSAuIEB2YXJ7YXJnc30pCiBUaGlzIGlzIGFuIGV4dGVuc2libGUgdW5k byBpdGVtLCB3aGljaCBpcyB1bmRvbmUgYnkgY2FsbGluZwpkaWZmIC0tZ2l0IGEvbGlzcC9DaGFu Z2VMb2cgYi9saXNwL0NoYW5nZUxvZwppbmRleCBhMWVlNWJiLi40ZjJjMjU4IDEwMDY0NAotLS0g YS9saXNwL0NoYW5nZUxvZworKysgYi9saXNwL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy MDE0LTAzLTEzICBCYXJyeSBPJ1JlaWxseSAgPGd1bmRhZXRpYXBvQGdtYWlsLmNvbT4KKworCSog c2ltcGxlLmVsIChwcmltaXRpdmUtdW5kbyk6IE9ubHkgcHJvY2VzcyBtYXJrZXIgYWRqdXN0bWVu dHMKKwl2YWxpZGF0ZWQgYWdhaW5zdCB0aGVpciBjb3JyZXNwb25kaW5nIChURVhUIC4gUE9TKS4g IElzc3VlIHdhcm5pbmcKKwlmb3IgbG9uZSBtYXJrZXIgYWRqdXN0bWVudHMgaW4gdW5kbyBoaXN0 b3J5LiAgKEJ1ZyMxNjgxOCkKKwkodW5kby1tYWtlLXNlbGVjdGl2ZS1saXN0KTogQWRkIG1hcmtl ciBhZGp1c3RtZW50cyB0byBzZWxlY3RpdmUKKwl1bmRvIGxpc3QgYmFzZWQgb24gd2hldGhlciB0 aGVpciBjb3JyZXNwb25kaW5nIChURVhUIC4gUE9TKSBpcyBpbgorCXRoZSByZWdpb24uICBSZW1v dmUgdmFyaWFibGUgYWRqdXN0ZWQtbWFya2Vycywgd2hpY2ggd2FzIHVudXNlZAorCWFuZCBvbmx5 IG5vbiBuaWwgZHVyaW5nIHVuZG8tbWFrZS1zZWxlY3RpdmUtbGlzdC4KKwkodW5kby1lbHQtaW4t cmVnaW9uKTogUmV0dXJuIG5pbCB3aGVuIHBhc3NlZCBhIG1hcmtlciBhZGp1c3RtZW50CisJYW5k IGV4cGxhaW4gaW4gZnVuY3Rpb24gZG9jLgorCiAyMDE0LTAzLTEzICBEbWl0cnkgR3V0b3YgIDxk Z3V0b3ZAeWFuZGV4LnJ1PgogCiAJKiBwcm9nbW9kZXMvcnVieS1tb2RlLmVsIChydWJ5LWZvbnQt bG9jay1rZXl3b3Jkcyk6IEZvbnRpZnkKZGlmZiAtLWdpdCBhL2xpc3Avc2ltcGxlLmVsIGIvbGlz cC9zaW1wbGUuZWwKaW5kZXggODgxYTYzMy4uZWU3MDExMyAxMDA2NDQKLS0tIGEvbGlzcC9zaW1w bGUuZWwKKysrIGIvbGlzcC9zaW1wbGUuZWwKQEAgLTIyODksMjQgKzIyODksMzcgQEAgUmV0dXJu IHdoYXQgcmVtYWlucyBvZiB0aGUgbGlzdC4iCiAgICAgICAgICAgICh3aGVuIChsZXQgKChhcG9z IChhYnMgcG9zKSkpCiAgICAgICAgICAgICAgICAgICAgKG9yICg8IGFwb3MgKHBvaW50LW1pbikp ICg+IGFwb3MgKHBvaW50LW1heCkpKSkKICAgICAgICAgICAgICAoZXJyb3IgIkNoYW5nZXMgdG8g YmUgdW5kb25lIGFyZSBvdXRzaWRlIHZpc2libGUgcG9ydGlvbiBvZiBidWZmZXIiKSkKKyAgICAg ICAgICAgKGxldCAodmFsaWQtbWFya2VyLWFkanVzdG1lbnRzKQorICAgICAgICAgICAgIDs7IENo ZWNrIHRoYXQgbWFya2VyIGFkanVzdG1lbnRzIHdoaWNoIHdlcmUgcmVjb3JkZWQKKyAgICAgICAg ICAgICA7OyB3aXRoIHRoZSAoU1RSSU5HIC4gUE9TKSByZWNvcmQgYXJlIHN0aWxsIHZhbGlkLCBp ZQorICAgICAgICAgICAgIDs7IHRoZSBtYXJrZXJzIGhhdmVuJ3QgbW92ZWQuICBXZSBjaGVjayB0 aGVpciB2YWxpZGl0eQorICAgICAgICAgICAgIDs7IGJlZm9yZSByZWluc2VydGluZyB0aGUgc3Ry aW5nIHNvIGFzIHdlIGRvbid0IG5lZWQgdG8KKyAgICAgICAgICAgICA7OyBtaW5kIG1hcmtlciBp bnNlcnRpb24tdHlwZS4KKyAgICAgICAgICAgICAod2hpbGUgKGFuZCAoY29uc3AgKGNhciBsaXN0 KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWFya2VycCAoY2FhciBsaXN0KSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcnAgKGNkYXIgbGlzdCkpKQorICAgICAgICAgICAg ICAgKGFuZCAoZXEgKG1hcmtlci1idWZmZXIgKGNhYXIgbGlzdCkpCisgICAgICAgICAgICAgICAg ICAgICAgICAoY3VycmVudC1idWZmZXIpKQorICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcnAg KG1hcmtlci1wb3NpdGlvbiAoY2FhciBsaXN0KSkpCisgICAgICAgICAgICAgICAgICAgICg9IHBv cyAoY2FhciBsaXN0KSkKKyAgICAgICAgICAgICAgICAgICAgKHB1c2ggKGNhciBsaXN0KSB2YWxp ZC1tYXJrZXItYWRqdXN0bWVudHMpKQorICAgICAgICAgICAgICAgKHBvcCBsaXN0KSkKKyAgICAg ICAgICAgICA7OyBJbnNlcnQgc3RyaW5nIGFuZCBhZGp1c3QgcG9pbnQKICAgICAgICAgICAgKGlm ICg8IHBvcyAwKQogICAgICAgICAgICAgICAgKHByb2duCiAgICAgICAgICAgICAgICAgIChnb3Rv LWNoYXIgKC0gcG9zKSkKICAgICAgICAgICAgICAgICAgKGluc2VydCBzdHJpbmcpKQogICAgICAg ICAgICAgIChnb3RvLWNoYXIgcG9zKQotICAgICAgICAgICAgIDs7IE5vdyB0aGF0IHdlIHJlY29y ZCBtYXJrZXIgYWRqdXN0bWVudHMKLSAgICAgICAgICAgICA7OyAoY2F1c2VkIGJ5IGRlbGV0aW9u KSBmb3IgdW5kbywKLSAgICAgICAgICAgICA7OyB3ZSBzaG91bGQgYWx3YXlzIGluc2VydCBhZnRl ciBtYXJrZXJzLAotICAgICAgICAgICAgIDs7IHNvIHRoYXQgdW5kb2luZyB0aGUgbWFya2VyIGFk anVzdG1lbnRzCi0gICAgICAgICAgICAgOzsgcHV0IHRoZSBtYXJrZXJzIGJhY2sgaW4gdGhlIHJp Z2h0IHBsYWNlLgogICAgICAgICAgICAgIChpbnNlcnQgc3RyaW5nKQotICAgICAgICAgICAgIChn b3RvLWNoYXIgcG9zKSkpCisgICAgICAgICAgICAgICAoZ290by1jaGFyIHBvcykpCisgICAgICAg ICAgICAgOzsgQWRqdXN0IHRoZSB2YWxpZCBtYXJrZXIgYWRqdXN0bWVudHMKKyAgICAgICAgICAg ICAoZG9saXN0IChhZGogdmFsaWQtbWFya2VyLWFkanVzdG1lbnRzKQorICAgICAgICAgICAgICAg KHNldC1tYXJrZXIgKGNhciBhZGopCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoLSAoY2Fy IGFkaikgKGNkciBhZGopKSkpKSkKICAgICAgICAgICA7OyAoTUFSS0VSIC4gT0ZGU0VUKSBtZWFu cyBhIG1hcmtlciBNQVJLRVIgd2FzIGFkanVzdGVkIGJ5IE9GRlNFVC4KICAgICAgICAgICAoYCgs KGFuZCBtYXJrZXIgKHByZWQgbWFya2VycCkpIC4gLChhbmQgb2Zmc2V0IChwcmVkIGludGVnZXJw KSkpCi0gICAgICAgICAgICh3aGVuIChtYXJrZXItYnVmZmVyIG1hcmtlcikKLSAgICAgICAgICAg ICAoc2V0LW1hcmtlciBtYXJrZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAoLSBtYXJrZXIg b2Zmc2V0KQotICAgICAgICAgICAgICAgICAgICAgICAgIChtYXJrZXItYnVmZmVyIG1hcmtlcikp KSkKKyAgICAgICAgICAgKHdhcm4gIkVuY291bnRlcmVkICVTIGVudHJ5IGluIHVuZG8gbGlzdCB3 aXRoIG5vIG1hdGNoaW5nIChURVhUIC4gUE9TKSBlbnRyeSIKKyAgICAgICAgICAgICAgICAgbmV4 dCkpCiAgICAgICAgICAgKF8gKGVycm9yICJVbnJlY29nbml6ZWQgZW50cnkgaW4gdW5kbyBsaXN0 ICVTIiBuZXh0KSkpKQogICAgICAgKHNldHEgYXJnICgxLSBhcmcpKSkKICAgICA7OyBNYWtlIHN1 cmUgYW4gYXBwbHkgZW50cnkgcHJvZHVjZXMgYXQgbGVhc3Qgb25lIHVuZG8gZW50cnksCkBAIC0y MzQxLDggKzIzNTQsNiBAQCBhcmUgaWdub3JlZC4gIElmIEJFRyBhbmQgRU5EIGFyZSBuaWwsIGFs bCB1bmRvIGVsZW1lbnRzIGFyZSB1c2VkLiIKIAkgICAgKHVuZG8tbWFrZS1zZWxlY3RpdmUtbGlz dCAobWluIGJlZyBlbmQpIChtYXggYmVnIGVuZCkpCiAJICBidWZmZXItdW5kby1saXN0KSkpCiAK LShkZWZ2YXIgdW5kby1hZGp1c3RlZC1tYXJrZXJzKQotCiAoZGVmdW4gdW5kby1tYWtlLXNlbGVj dGl2ZS1saXN0IChzdGFydCBlbmQpCiAgICJSZXR1cm4gYSBsaXN0IG9mIHVuZG8gZWxlbWVudHMg Zm9yIHRoZSByZWdpb24gU1RBUlQgdG8gRU5ELgogVGhlIGVsZW1lbnRzIGNvbWUgZnJvbSBgYnVm ZmVyLXVuZG8tbGlzdCcsIGJ1dCB3ZSBrZWVwIG9ubHkKQEAgLTIzNTEsNyArMjM2Miw2IEBAIElm IHdlIGZpbmQgYW4gZWxlbWVudCB0aGF0IGNyb3NzZXMgYW4gZWRnZSBvZiB0aGlzIHJlZ2lvbiwK IHdlIHN0b3AgYW5kIGlnbm9yZSBhbGwgZnVydGhlciBlbGVtZW50cy4iCiAgIChsZXQgKCh1bmRv LWxpc3QtY29weSAodW5kby1jb3B5LWxpc3QgYnVmZmVyLXVuZG8tbGlzdCkpCiAJKHVuZG8tbGlz dCAobGlzdCBuaWwpKQotCXVuZG8tYWRqdXN0ZWQtbWFya2VycwogCXNvbWUtcmVqZWN0ZWQKIAl1 bmRvLWVsdCB0ZW1wLXVuZG8tbGlzdCBkZWx0YSkKICAgICAod2hpbGUgdW5kby1saXN0LWNvcHkK QEAgLTIzNjcsOSArMjM3NywyMiBAQCB3ZSBzdG9wIGFuZCBpZ25vcmUgYWxsIGZ1cnRoZXIgZWxl bWVudHMuIgogCSAgICAocHJvZ24KIAkgICAgICAoc2V0cSBlbmQgKCsgZW5kIChjZHIgKHVuZG8t ZGVsdGEgdW5kby1lbHQpKSkpCiAJICAgICAgOzsgRG9uJ3QgcHV0IHR3byBuaWxzIHRvZ2V0aGVy IGluIHRoZSBsaXN0Ci0JICAgICAgKGlmIChub3QgKGFuZCAoZXEgKGNhciB1bmRvLWxpc3QpIG5p bCkKKwkgICAgICAod2hlbiAobm90IChhbmQgKGVxIChjYXIgdW5kby1saXN0KSBuaWwpCiAJCQkg ICAgKGVxIHVuZG8tZWx0IG5pbCkpKQotCQkgIChzZXRxIHVuZG8tbGlzdCAoY29ucyB1bmRvLWVs dCB1bmRvLWxpc3QpKSkpCisgICAgICAgICAgICAgICAgKHNldHEgdW5kby1saXN0IChjb25zIHVu ZG8tZWx0IHVuZG8tbGlzdCkpCisgICAgICAgICAgICAgICAgOzsgSWYgKFRFWFQgLiBQT1MpLCAi a2VlcCIgaXRzIHN1YnNlcXVlbnQgKE1BUktFUgorICAgICAgICAgICAgICAgIDs7IC4gQURKVVNU TUVOVCkgd2hvc2UgbWFya2VycyBoYXZlbid0IG1vdmVkLgorICAgICAgICAgICAgICAgICh3aGVu IChhbmQgKGNvbnNwIHVuZG8tZWx0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmlu Z3AgKGNhciB1bmRvLWVsdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcnAg KGNkciB1bmRvLWVsdCkpKQorICAgICAgICAgICAgICAgICAgKGxldCAoKGxpc3QtaSAoY2RyIHVu ZG8tbGlzdC1jb3B5KSkpCisgICAgICAgICAgICAgICAgICAgICh3aGlsZSAobWFya2VycCAoY2Fh ciBsaXN0LWkpKQorICAgICAgICAgICAgICAgICAgICAgIChhbmQgKGVxIChtYXJrZXItYnVmZmVy IChjYWFyIGxpc3QtaSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQt YnVmZmVyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VycCAobWFya2VyLXBv c2l0aW9uIChjYWFyIGxpc3QtaSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKD0gKGNk ciB1bmRvLWVsdCkgKGNhYXIgbGlzdC1pKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChw dXNoIChjYXIgbGlzdC1pKSB1bmRvLWxpc3QpKQorICAgICAgICAgICAgICAgICAgICAgIChwb3Ag bGlzdC1pKSkpKSkpCiAJICAoaWYgKHVuZG8tZWx0LWNyb3NzZXMtcmVnaW9uIHVuZG8tZWx0IHN0 YXJ0IGVuZCkKIAkgICAgICAoc2V0cSB1bmRvLWxpc3QtY29weSBuaWwpCiAJICAgIChzZXRxIHNv bWUtcmVqZWN0ZWQgdCkKQEAgLTI0MTcsNyArMjQ0MCwxMiBAQCB3ZSBzdG9wIGFuZCBpZ25vcmUg YWxsIGZ1cnRoZXIgZWxlbWVudHMuIgogCiAoZGVmdW4gdW5kby1lbHQtaW4tcmVnaW9uICh1bmRv LWVsdCBzdGFydCBlbmQpCiAgICJEZXRlcm1pbmUgd2hldGhlciBVTkRPLUVMVCBmYWxscyBpbnNp ZGUgdGhlIHJlZ2lvbiBTVEFSVCAuLi4gRU5ELgotSWYgaXQgY3Jvc3NlcyB0aGUgZWRnZSwgd2Ug cmV0dXJuIG5pbC4iCitJZiBpdCBjcm9zc2VzIHRoZSBlZGdlLCB3ZSByZXR1cm4gbmlsLgorCitH ZW5lcmFsbHkgdGhpcyBmdW5jdGlvbiBpcyBub3QgdXNlZnVsIGZvciBkZXRlcm1pbmluZword2hl dGhlciAoTUFSS0VSIC4gQURKVVNUTUVOVCkgdW5kbyBlbGVtZW50cyBhcmUgaW4gdGhlIHJlZ2lv biwKK2JlY2F1c2UgbWFya2VycyBjYW4gYmUgYXJiaXRyYXJpbHkgcmVsb2NhdGVkLiAgSW5zdGVh ZCwgcGFzcyB0aGUKK21hcmtlciBhZGp1c3RtZW50J3MgY29ycmVzcG9uZGluZyAoVEVYVCAuIFBP UykgZWxlbWVudC4iCiAgIChjb25kICgoaW50ZWdlcnAgdW5kby1lbHQpCiAJIChhbmQgKD49IHVu ZG8tZWx0IHN0YXJ0KQogCSAgICAgICg8PSB1bmRvLWVsdCBlbmQpKSkKQEAgLTI0MzAsMTcgKzI0 NTgsOCBAQCBJZiBpdCBjcm9zc2VzIHRoZSBlZGdlLCB3ZSByZXR1cm4gbmlsLiIKIAkgKGFuZCAo Pj0gKGFicyAoY2RyIHVuZG8tZWx0KSkgc3RhcnQpCiAJICAgICAgKDw9IChhYnMgKGNkciB1bmRv LWVsdCkpIGVuZCkpKQogCSgoYW5kIChjb25zcCB1bmRvLWVsdCkgKG1hcmtlcnAgKGNhciB1bmRv LWVsdCkpKQotCSA7OyBUaGlzIGlzIGEgbWFya2VyLWFkanVzdG1lbnQgZWxlbWVudCAoTUFSS0VS IC4gQURKVVNUTUVOVCkuCi0JIDs7IFNlZSBpZiBNQVJLRVIgaXMgaW5zaWRlIHRoZSByZWdpb24u Ci0JIChsZXQgKChhbGlzdC1lbHQgKGFzc3EgKGNhciB1bmRvLWVsdCkgdW5kby1hZGp1c3RlZC1t YXJrZXJzKSkpCi0JICAgKHVubGVzcyBhbGlzdC1lbHQKLQkgICAgIChzZXRxIGFsaXN0LWVsdCAo Y29ucyAoY2FyIHVuZG8tZWx0KQotCQkJCSAgIChtYXJrZXItcG9zaXRpb24gKGNhciB1bmRvLWVs dCkpKSkKLQkgICAgIChzZXRxIHVuZG8tYWRqdXN0ZWQtbWFya2VycwotCQkgICAoY29ucyBhbGlz dC1lbHQgdW5kby1hZGp1c3RlZC1tYXJrZXJzKSkpCi0JICAgKGFuZCAoY2RyIGFsaXN0LWVsdCkK LQkJKD49IChjZHIgYWxpc3QtZWx0KSBzdGFydCkKLQkJKDw9IChjZHIgYWxpc3QtZWx0KSBlbmQp KSkpCisJIDs7IChNQVJLRVIgLiBBREpVU1RNRU5UKQorICAgICAgICAgbmlsKQogCSgobnVsbCAo Y2FyIHVuZG8tZWx0KSkKIAkgOzsgKG5pbCBQUk9QRVJUWSBWQUxVRSBCRUcgLiBFTkQpCiAJIChs ZXQgKCh0YWlsIChudGhjZHIgMyB1bmRvLWVsdCkpKQpkaWZmIC0tZ2l0IGEvc3JjL0NoYW5nZUxv ZyBiL3NyYy9DaGFuZ2VMb2cKaW5kZXggYzExNThmYy4uNDFmYTg5OCAxMDA2NDQKLS0tIGEvc3Jj L0NoYW5nZUxvZworKysgYi9zcmMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTQtMDMt MTMgIEJhcnJ5IE8nUmVpbGx5ICA8Z3VuZGFldGlhcG9AZ21haWwuY29tPgorCisJSGF2ZSAoTUFS S0VSIC4gQURKVVNUTUVOVCkgdW5kbyByZWNvcmRzIGFsd2F5cyBiZSBpbW1lZGlhdGVseQorCWFm dGVyIHRoZWlyIGNvcnJlc3BvbmRpbmcgKFRFWFQgLiBQT1MpIHJlY29yZCBpbiB1bmRvIGxpc3Qu CisJKEJ1ZyMxNjgxOCkKKwkqIGxpc3AuaCAocmVjb3JkLWRlbGV0ZSk6IE5ldyBhcmcgcmVjb3Jk X21hcmtlcnMuCisJKHJlY29yZF9tYXJrZXJfYWRqdXN0bWVudCk6IE5vIGxvbmdlciBuZWVkZWQg b3V0c2lkZSB1bmRvLmMuCisJKiBpbnNkZWwuYyAoYWRqdXN0X21hcmtlcnNfZm9yX2RlbGV0ZSk6 IE1vdmUgY2FsY3VsYXRpb24gb2YgbWFya2VyCisJYWRqdXN0bWVudHMgdG8gdW5kby5jJ3MgcmVj b3JkX21hcmtlcl9hZGp1c3RtZW50cy4gIE5vdGUgdGhhdAorCWZpbGVpby5jJ3MgZGVjaWRlX2Nv ZGluZ191bndpbmQgaXMgYW5vdGhlciBjYWxsZXIgdG8KKwlhZGp1c3RfbWFya2Vyc19mb3JfZGVs ZXRlLiAgQmVjYXVzZSBpdCBoYXMgdW5kbyBsaXN0IGJvdW5kIHRvIHQsCisJaXQgZG9lcyBub3Qg cmVseSBvbiBhZGp1c3RfbWFya2Vyc19mb3JfZGVsZXRlIHRvIHJlY29yZCBtYXJrZXIKKwlhZGp1 c3RtZW50cy4KKwkoZGVsX3JhbmdlXzIpOiBTd2FwIGNhbGwgdG8gcmVjb3JkX2RlbGV0ZSBhbmQK KwlhZGp1c3RfbWFya2Vyc19mb3JfZGVsZXRlIHNvIGFzIHVuZG8gbWFya2VyIGFkanVzdG1lbnRz IGFyZQorCXJlY29yZGVkIGJlZm9yZSBjdXJyZW50IGRlbGV0aW9uJ3MgYWRqdXN0bWVudHMsIGFz IGJlZm9yZS4KKwkoYWRqdXN0X2FmdGVyX3JlcGxhY2UpOgorCShyZXBsYWNlX3JhbmdlKTogUGFz cyB2YWx1ZSBmb3IgbmV3IHJlY29yZF9tYXJrZXJzIGFyZyB0bworCWRlbGV0ZV9yZWNvcmQuCisJ KiB1bmRvLmMgKHJlY29yZF9tYXJrZXJfYWRqdXN0bWVudCk6IFJlbmFtZWQgdG8KKwlyZWNvcmRf bWFya2VyX2FkanVzdG1lbnRzIGFuZCBtYWRlIHN0YXRpYy4KKwkocmVjb3JkX2RlbGV0ZSk6IENo ZWNrIHJlY29yZF9tYXJrZXJzIGFyZyBhbmQgY2FsbAorCXJlY29yZF9tYXJrZXJfYWRqdXN0bWVu dHMuCisJKHJlY29yZF9jaGFuZ2UpOiBQYXNzIHZhbHVlIGZvciBuZXcgcmVjb3JkX21hcmtlcnMg YXJnIHRvCisJZGVsZXRlX3JlY29yZC4KKwkocmVjb3JkX3BvaW50KTogYXRfYm91bmRhcnkgY2Fs Y3VsYXRpb24gbm8gbG9uZ2VyIG5lZWRzIHRvIGFjY291bnQKKwlmb3IgbWFya2VyIGFkanVzdG1l bnRzLgorCiAyMDE0LTAzLTEyICBNYXJ0aW4gUnVkYWxpY3MgIDxydWRhbGljc0BnbXguYXQ+CiAK IAkqIGZyYW1lLmMgKHhfc2V0X2ZyYW1lX3BhcmFtZXRlcnMpOiBBbHdheXMgY2FsY3VsYXRlIG5l dyBzaXplcwpkaWZmIC0tZ2l0IGEvc3JjL2luc2RlbC5jIGIvc3JjL2luc2RlbC5jCmluZGV4IDFj OWJhZmQuLmViMWFkNjIgMTAwNjQ0Ci0tLSBhL3NyYy9pbnNkZWwuYworKysgYi9zcmMvaW5zZGVs LmMKQEAgLTIzMywzNCArMjMzLDkgQEAgYWRqdXN0X21hcmtlcnNfZm9yX2RlbGV0ZSAocHRyZGlm Zl90IGZyb20sIHB0cmRpZmZfdCBmcm9tX2J5dGUsCiAgICAgICAvKiBIZXJlJ3MgdGhlIGNhc2Ug d2hlcmUgYSBtYXJrZXIgaXMgaW5zaWRlIHRleHQgYmVpbmcgZGVsZXRlZC4gICovCiAgICAgICBl bHNlIGlmIChjaGFycG9zID4gZnJvbSkKIAl7Ci0JICBpZiAoISBtLT5pbnNlcnRpb25fdHlwZSkK LQkgICAgeyAvKiBOb3JtYWwgbWFya2VycyB3aWxsIGVuZCB1cCBhdCB0aGUgYmVnaW5uaW5nIG9m IHRoZQotCSAgICAgICByZS1pbnNlcnRlZCB0ZXh0IGFmdGVyIHVuZG9pbmcgYSBkZWxldGlvbiwg YW5kIG11c3QgYmUKLQkgICAgICAgYWRqdXN0ZWQgdG8gbW92ZSB0aGVtIHRvIHRoZSBjb3JyZWN0 IHBsYWNlLiAgKi8KLQkgICAgICBYU0VUTUlTQyAobWFya2VyLCBtKTsKLQkgICAgICByZWNvcmRf bWFya2VyX2FkanVzdG1lbnQgKG1hcmtlciwgZnJvbSAtIGNoYXJwb3MpOwotCSAgICB9Ci0JICBl bHNlIGlmIChjaGFycG9zIDwgdG8pCi0JICAgIHsgLyogQmVmb3JlLWluc2VydGlvbiBtYXJrZXJz IHdpbGwgYXV0b21hdGljYWxseSBtb3ZlIGZvcndhcmQKLQkgICAgICAgdXBvbiByZS1pbnNlcnRp bmcgdGhlIGRlbGV0ZWQgdGV4dCwgc28gd2UgaGF2ZSB0byBhcnJhbmdlCi0JICAgICAgIGZvciB0 aGVtIHRvIG1vdmUgYmFja3dhcmQgdG8gdGhlIGNvcnJlY3QgcG9zaXRpb24uICAqLwotCSAgICAg IFhTRVRNSVNDIChtYXJrZXIsIG0pOwotCSAgICAgIHJlY29yZF9tYXJrZXJfYWRqdXN0bWVudCAo bWFya2VyLCB0byAtIGNoYXJwb3MpOwotCSAgICB9CiAJICBtLT5jaGFycG9zID0gZnJvbTsKIAkg IG0tPmJ5dGVwb3MgPSBmcm9tX2J5dGU7CiAJfQotICAgICAgLyogSGVyZSdzIHRoZSBjYXNlIHdo ZXJlIGEgYmVmb3JlLWluc2VydGlvbiBtYXJrZXIgaXMgaW1tZWRpYXRlbHkKLQkgYmVmb3JlIHRo ZSBkZWxldGVkIHJlZ2lvbi4gICovCi0gICAgICBlbHNlIGlmIChjaGFycG9zID09IGZyb20gJiYg bS0+aW5zZXJ0aW9uX3R5cGUpCi0JewotCSAgLyogVW5kb2luZyB0aGUgY2hhbmdlIHVzZXMgbm9y bWFsIGluc2VydGlvbiwgd2hpY2ggd2lsbAotCSAgICAgaW5jb3JyZWN0bHkgbWFrZSBNQVJLRVIg bW92ZSBmb3J3YXJkLCBzbyB3ZSBhcnJhbmdlIGZvciBpdAotCSAgICAgdG8gdGhlbiBtb3ZlIGJh Y2t3YXJkIHRvIHRoZSBjb3JyZWN0IHBsYWNlIGF0IHRoZSBiZWdpbm5pbmcKLQkgICAgIG9mIHRo ZSBkZWxldGVkIHJlZ2lvbi4gICovCi0JICBYU0VUTUlTQyAobWFya2VyLCBtKTsKLQkgIHJlY29y ZF9tYXJrZXJfYWRqdXN0bWVudCAobWFya2VyLCB0byAtIGZyb20pOwotCX0KICAgICB9CiB9CiAK QEAgLTEyMTksNyArMTE5NCw3IEBAIGFkanVzdF9hZnRlcl9yZXBsYWNlIChwdHJkaWZmX3QgZnJv bSwgcHRyZGlmZl90IGZyb21fYnl0ZSwKIAkJCSAgICAgICBmcm9tICsgbGVuLCBmcm9tX2J5dGUg KyBsZW5fYnl0ZSwgMCk7CiAKICAgaWYgKG5jaGFyc19kZWwgPiAwKQotICAgIHJlY29yZF9kZWxl dGUgKGZyb20sIHByZXZfdGV4dCk7CisgICAgcmVjb3JkX2RlbGV0ZSAoZnJvbSwgcHJldl90ZXh0 LCBmYWxzZSk7CiAgIHJlY29yZF9pbnNlcnQgKGZyb20sIGxlbik7CiAKICAgaWYgKGxlbiA+IG5j aGFyc19kZWwpCkBAIC0xMzg0LDcgKzEzNTksNyBAQCByZXBsYWNlX3JhbmdlIChwdHJkaWZmX3Qg ZnJvbSwgcHRyZGlmZl90IHRvLCBMaXNwX09iamVjdCBuZXcsCiAgIGlmICghTklMUCAoZGVsZXRp b24pKQogICAgIHsKICAgICAgIHJlY29yZF9pbnNlcnQgKGZyb20gKyBTQ0hBUlMgKGRlbGV0aW9u KSwgaW5zY2hhcnMpOwotICAgICAgcmVjb3JkX2RlbGV0ZSAoZnJvbSwgZGVsZXRpb24pOworICAg ICAgcmVjb3JkX2RlbGV0ZSAoZnJvbSwgZGVsZXRpb24sIGZhbHNlKTsKICAgICB9CiAKICAgR0FQ X1NJWkUgLT0gb3V0Z29pbmdfaW5zYnl0ZXM7CkBAIC0xNzE2LDEzICsxNjkxLDE0IEBAIGRlbF9y YW5nZV8yIChwdHJkaWZmX3QgZnJvbSwgcHRyZGlmZl90IGZyb21fYnl0ZSwKICAgZWxzZQogICAg IGRlbGV0aW9uID0gUW5pbDsKIAotICAvKiBSZWxvY2F0ZSBhbGwgbWFya2VycyBwb2ludGluZyBp bnRvIHRoZSBuZXcsIGxhcmdlciBnYXAKLSAgICAgdG8gcG9pbnQgYXQgdGhlIGVuZCBvZiB0aGUg dGV4dCBiZWZvcmUgdGhlIGdhcC4KLSAgICAgRG8gdGhpcyBiZWZvcmUgcmVjb3JkaW5nIHRoZSBk ZWxldGlvbiwKLSAgICAgc28gdGhhdCB1bmRvIGhhbmRsZXMgdGhpcyBhZnRlciByZWluc2VydGlu ZyB0aGUgdGV4dC4gICovCisgIC8qIFJlY29yZCBtYXJrZXIgYWRqdXN0bWVudHMsIGFuZCB0ZXh0 IGRlbGV0aW9uIGludG8gdW5kbworICAgICBoaXN0b3J5LiAgKi8KKyAgcmVjb3JkX2RlbGV0ZSAo ZnJvbSwgZGVsZXRpb24sIHRydWUpOworCisgIC8qIFJlbG9jYXRlIGFsbCBtYXJrZXJzIHBvaW50 aW5nIGludG8gdGhlIG5ldywgbGFyZ2VyIGdhcCB0byBwb2ludAorICAgICBhdCB0aGUgZW5kIG9m IHRoZSB0ZXh0IGJlZm9yZSB0aGUgZ2FwLiAgKi8KICAgYWRqdXN0X21hcmtlcnNfZm9yX2RlbGV0 ZSAoZnJvbSwgZnJvbV9ieXRlLCB0bywgdG9fYnl0ZSk7CiAKLSAgcmVjb3JkX2RlbGV0ZSAoZnJv bSwgZGVsZXRpb24pOwogICBNT0RJRkYrKzsKICAgQ0hBUlNfTU9ESUZGID0gTU9ESUZGOwogCmRp ZmYgLS1naXQgYS9zcmMvbGlzcC5oIGIvc3JjL2xpc3AuaAppbmRleCAyZjlhMzBmLi4zMGY1MmI5 IDEwMDY0NAotLS0gYS9zcmMvbGlzcC5oCisrKyBiL3NyYy9saXNwLmgKQEAgLTQxOTgsOSArNDE5 OCw4IEBAIGV4dGVybiB2b2lkIHN5bXNfb2ZfbWFjcm9zICh2b2lkKTsKIGV4dGVybiBMaXNwX09i amVjdCBRYXBwbHk7CiBleHRlcm4gTGlzcF9PYmplY3QgUWluaGliaXRfcmVhZF9vbmx5OwogZXh0 ZXJuIHZvaWQgdHJ1bmNhdGVfdW5kb19saXN0IChzdHJ1Y3QgYnVmZmVyICopOwotZXh0ZXJuIHZv aWQgcmVjb3JkX21hcmtlcl9hZGp1c3RtZW50IChMaXNwX09iamVjdCwgcHRyZGlmZl90KTsKIGV4 dGVybiB2b2lkIHJlY29yZF9pbnNlcnQgKHB0cmRpZmZfdCwgcHRyZGlmZl90KTsKLWV4dGVybiB2 b2lkIHJlY29yZF9kZWxldGUgKHB0cmRpZmZfdCwgTGlzcF9PYmplY3QpOworZXh0ZXJuIHZvaWQg cmVjb3JkX2RlbGV0ZSAocHRyZGlmZl90LCBMaXNwX09iamVjdCwgYm9vbCk7CiBleHRlcm4gdm9p ZCByZWNvcmRfZmlyc3RfY2hhbmdlICh2b2lkKTsKIGV4dGVybiB2b2lkIHJlY29yZF9jaGFuZ2Ug KHB0cmRpZmZfdCwgcHRyZGlmZl90KTsKIGV4dGVybiB2b2lkIHJlY29yZF9wcm9wZXJ0eV9jaGFu Z2UgKHB0cmRpZmZfdCwgcHRyZGlmZl90LApkaWZmIC0tZ2l0IGEvc3JjL3VuZG8uYyBiL3NyYy91 bmRvLmMKaW5kZXggNzI4NmQ0MC4uYjAxMzc2MyAxMDA2NDQKLS0tIGEvc3JjL3VuZG8uYworKysg Yi9zcmMvdW5kby5jCkBAIC03NSwyNyArNzUsOCBAQCByZWNvcmRfcG9pbnQgKHB0cmRpZmZfdCBw dCkKICAgICBGdW5kb19ib3VuZGFyeSAoKTsKICAgbGFzdF91bmRvX2J1ZmZlciA9IGN1cnJlbnRf YnVmZmVyOwogCi0gIGlmIChDT05TUCAoQlZBUiAoY3VycmVudF9idWZmZXIsIHVuZG9fbGlzdCkp KQotICAgIHsKLSAgICAgIC8qIFNldCBBVF9CT1VOREFSWSBvbmx5IHdoZW4gd2UgaGF2ZSBub3Ro aW5nIG90aGVyIHRoYW4KLSAgICAgICAgIG1hcmtlciBhZGp1c3RtZW50IGJlZm9yZSB1bmRvIGJv dW5kYXJ5LiAgKi8KLQotICAgICAgTGlzcF9PYmplY3QgdGFpbCA9IEJWQVIgKGN1cnJlbnRfYnVm ZmVyLCB1bmRvX2xpc3QpLCBlbHQ7Ci0KLSAgICAgIHdoaWxlICgxKQotCXsKLQkgIGlmIChOSUxQ ICh0YWlsKSkKLQkgICAgZWx0ID0gUW5pbDsKLQkgIGVsc2UKLQkgICAgZWx0ID0gWENBUiAodGFp bCk7Ci0JICBpZiAoTklMUCAoZWx0KSB8fCAhIChDT05TUCAoZWx0KSAmJiBNQVJLRVJQIChYQ0FS IChlbHQpKSkpCi0JICAgIGJyZWFrOwotCSAgdGFpbCA9IFhDRFIgKHRhaWwpOwotCX0KLSAgICAg IGF0X2JvdW5kYXJ5ID0gTklMUCAoZWx0KTsKLSAgICB9Ci0gIGVsc2UKLSAgICBhdF9ib3VuZGFy eSA9IDE7CisgIGF0X2JvdW5kYXJ5ID0gISBDT05TUCAoQlZBUiAoY3VycmVudF9idWZmZXIsIHVu ZG9fbGlzdCkpCisgICAgICAgICAgICAgICAgfHwgTklMUCAoWENBUiAoQlZBUiAoY3VycmVudF9i dWZmZXIsIHVuZG9fbGlzdCkpKTsKIAogICBpZiAoTU9ESUZGIDw9IFNBVkVfTU9ESUZGKQogICAg IHJlY29yZF9maXJzdF9jaGFuZ2UgKCk7CkBAIC0xNDcsMTEgKzEyOCw2MCBAQCByZWNvcmRfaW5z ZXJ0IChwdHJkaWZmX3QgYmVnLCBwdHJkaWZmX3QgbGVuZ3RoKQogCQkgIEZjb25zIChGY29ucyAo bGJlZywgbGVuZCksIEJWQVIgKGN1cnJlbnRfYnVmZmVyLCB1bmRvX2xpc3QpKSk7CiB9CiAKLS8q IFJlY29yZCB0aGF0IGEgZGVsZXRpb24gaXMgYWJvdXQgdG8gdGFrZSBwbGFjZSwKLSAgIG9mIHRo ZSBjaGFyYWN0ZXJzIGluIFNUUklORywgYXQgbG9jYXRpb24gQkVHLiAgKi8KKy8qIFJlY29yZCB0 aGUgZmFjdCB0aGF0IE1BUktFUiBpcyBhYm91dCB0byBiZSBhZGp1c3RlZCBieSBBREpVU1RNRU5U LgorICAgVGhpcyBpcyBkb25lIG9ubHkgd2hlbiBhIG1hcmtlciBwb2ludHMgd2l0aGluIHRleHQg YmVpbmcgZGVsZXRlZCwKKyAgIGJlY2F1c2UgdGhhdCdzIHRoZSBvbmx5IGNhc2Ugd2hlcmUgYW4g YXV0b21hdGljIG1hcmtlciBhZGp1c3RtZW50CisgICB3b24ndCBiZSBpbnZlcnRlZCBhdXRvbWF0 aWNhbGx5IGJ5IHVuZG9pbmcgdGhlIGJ1ZmZlciBtb2RpZmljYXRpb24uICAqLworCitzdGF0aWMg dm9pZAorcmVjb3JkX21hcmtlcl9hZGp1c3RtZW50cyAocHRyZGlmZl90IGZyb20sIHB0cmRpZmZf dCB0bykKK3sKKyAgTGlzcF9PYmplY3QgbWFya2VyOworICByZWdpc3RlciBzdHJ1Y3QgTGlzcF9N YXJrZXIgKm07CisgIHJlZ2lzdGVyIHB0cmRpZmZfdCBjaGFycG9zLCBhZGp1c3RtZW50OworCisg IC8qIEFsbG9jYXRlIGEgY29ucyBjZWxsIHRvIGJlIHRoZSB1bmRvIGJvdW5kYXJ5IGFmdGVyIHRo aXMgY29tbWFuZC4gICovCisgIGlmIChOSUxQIChwZW5kaW5nX2JvdW5kYXJ5KSkKKyAgICBwZW5k aW5nX2JvdW5kYXJ5ID0gRmNvbnMgKFFuaWwsIFFuaWwpOworCisgIGlmIChjdXJyZW50X2J1ZmZl ciAhPSBsYXN0X3VuZG9fYnVmZmVyKQorICAgIEZ1bmRvX2JvdW5kYXJ5ICgpOworICBsYXN0X3Vu ZG9fYnVmZmVyID0gY3VycmVudF9idWZmZXI7CisKKyAgZm9yIChtID0gQlVGX01BUktFUlMgKGN1 cnJlbnRfYnVmZmVyKTsgbTsgbSA9IG0tPm5leHQpCisgICAgeworICAgICAgY2hhcnBvcyA9IG0t PmNoYXJwb3M7CisgICAgICBlYXNzZXJ0IChjaGFycG9zIDw9IFopOworICAgICAgYWRqdXN0bWVu dCA9IDA7CisKKyAgICAgIC8qIE5vcm1hbCBtYXJrZXJzIHdpbGwgZW5kIHVwIGF0IHRoZSBiZWdp bm5pbmcgb2YgdGhlCisJcmUtaW5zZXJ0ZWQgdGV4dCBhZnRlciB1bmRvaW5nIGEgZGVsZXRpb24s IGFuZCBtdXN0IGJlCisJYWRqdXN0ZWQgdG8gbW92ZSB0aGVtIHRvIHRoZSBjb3JyZWN0IHBsYWNl LiAgKi8KKyAgICAgIGlmICghIG0tPmluc2VydGlvbl90eXBlICYmIGZyb20gPCBjaGFycG9zICYm IGNoYXJwb3MgPD0gdG8pCisgICAgICAgIGFkanVzdG1lbnQgPSBmcm9tIC0gY2hhcnBvczsKKyAg ICAgIC8qIEJlZm9yZS1pbnNlcnRpb24gbWFya2VycyB3aWxsIGF1dG9tYXRpY2FsbHkgbW92ZSBm b3J3YXJkIHVwb24KKwlyZS1pbnNlcnRpbmcgdGhlIGRlbGV0ZWQgdGV4dCwgc28gd2UgaGF2ZSB0 byBhcnJhbmdlIGZvciB0aGVtCisJdG8gbW92ZSBiYWNrd2FyZCB0byB0aGUgY29ycmVjdCBwb3Np dGlvbi4gICovCisgICAgICBlbHNlIGlmIChtLT5pbnNlcnRpb25fdHlwZSAmJiBmcm9tIDw9IGNo YXJwb3MgJiYgY2hhcnBvcyA8IHRvKQorICAgICAgICBhZGp1c3RtZW50ID0gdG8gLSBjaGFycG9z OworCisgICAgICBpZiAoYWRqdXN0bWVudCkKKyAgICAgICAgeworICAgICAgICAgIFhTRVRNSVND IChtYXJrZXIsIG0pOworICAgICAgICAgIGJzZXRfdW5kb19saXN0CisgICAgICAgICAgICAoY3Vy cmVudF9idWZmZXIsCisgICAgICAgICAgICAgRmNvbnMgKEZjb25zIChtYXJrZXIsIG1ha2VfbnVt YmVyIChhZGp1c3RtZW50KSksCisgICAgICAgICAgICAgICAgICAgIEJWQVIgKGN1cnJlbnRfYnVm ZmVyLCB1bmRvX2xpc3QpKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qIFJlY29yZCB0aGF0 IGEgZGVsZXRpb24gaXMgYWJvdXQgdG8gdGFrZSBwbGFjZSwgb2YgdGhlIGNoYXJhY3RlcnMgaW4K KyAgIFNUUklORywgYXQgbG9jYXRpb24gQkVHLiAgT3B0aW9uYWxseSByZWNvcmQgYWRqdXN0bWVu dHMgZm9yIG1hcmtlcnMKKyAgIGluIHRoZSByZWdpb24gU1RSSU5HIG9jY3VwaWVzIGluIHRoZSBj dXJyZW50IGJ1ZmZlci4gICovCiAKIHZvaWQKLXJlY29yZF9kZWxldGUgKHB0cmRpZmZfdCBiZWcs IExpc3BfT2JqZWN0IHN0cmluZykKK3JlY29yZF9kZWxldGUgKHB0cmRpZmZfdCBiZWcsIExpc3Bf T2JqZWN0IHN0cmluZywgYm9vbCByZWNvcmRfbWFya2VycykKIHsKICAgTGlzcF9PYmplY3Qgc2Jl ZzsKIApAQCAtMTY5LDM0ICsxOTksMTUgQEAgcmVjb3JkX2RlbGV0ZSAocHRyZGlmZl90IGJlZywg TGlzcF9PYmplY3Qgc3RyaW5nKQogICAgICAgcmVjb3JkX3BvaW50IChiZWcpOwogICAgIH0KIAot ICBic2V0X3VuZG9fbGlzdAotICAgIChjdXJyZW50X2J1ZmZlciwKLSAgICAgRmNvbnMgKEZjb25z IChzdHJpbmcsIHNiZWcpLCBCVkFSIChjdXJyZW50X2J1ZmZlciwgdW5kb19saXN0KSkpOwotfQot Ci0vKiBSZWNvcmQgdGhlIGZhY3QgdGhhdCBNQVJLRVIgaXMgYWJvdXQgdG8gYmUgYWRqdXN0ZWQg YnkgQURKVVNUTUVOVC4KLSAgIFRoaXMgaXMgZG9uZSBvbmx5IHdoZW4gYSBtYXJrZXIgcG9pbnRz IHdpdGhpbiB0ZXh0IGJlaW5nIGRlbGV0ZWQsCi0gICBiZWNhdXNlIHRoYXQncyB0aGUgb25seSBj YXNlIHdoZXJlIGFuIGF1dG9tYXRpYyBtYXJrZXIgYWRqdXN0bWVudAotICAgd29uJ3QgYmUgaW52 ZXJ0ZWQgYXV0b21hdGljYWxseSBieSB1bmRvaW5nIHRoZSBidWZmZXIgbW9kaWZpY2F0aW9uLiAg Ki8KLQotdm9pZAotcmVjb3JkX21hcmtlcl9hZGp1c3RtZW50IChMaXNwX09iamVjdCBtYXJrZXIs IHB0cmRpZmZfdCBhZGp1c3RtZW50KQotewotICBpZiAoRVEgKEJWQVIgKGN1cnJlbnRfYnVmZmVy LCB1bmRvX2xpc3QpLCBRdCkpCi0gICAgcmV0dXJuOwotCi0gIC8qIEFsbG9jYXRlIGEgY29ucyBj ZWxsIHRvIGJlIHRoZSB1bmRvIGJvdW5kYXJ5IGFmdGVyIHRoaXMgY29tbWFuZC4gICovCi0gIGlm IChOSUxQIChwZW5kaW5nX2JvdW5kYXJ5KSkKLSAgICBwZW5kaW5nX2JvdW5kYXJ5ID0gRmNvbnMg KFFuaWwsIFFuaWwpOwotCi0gIGlmIChjdXJyZW50X2J1ZmZlciAhPSBsYXN0X3VuZG9fYnVmZmVy KQotICAgIEZ1bmRvX2JvdW5kYXJ5ICgpOwotICBsYXN0X3VuZG9fYnVmZmVyID0gY3VycmVudF9i dWZmZXI7CisgIC8qIHByaW1pdGl2ZS11bmRvIGFzc3VtZXMgbWFya2VyIGFkanVzdG1lbnRzIGFy ZSByZWNvcmRlZAorICAgICBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIGRlbGV0aW9uIGlzIHJlY29y ZGVkLiAgU2VlIGJ1ZyAxNjgxOAorICAgICBkaXNjdXNzaW9uLiAgKi8KKyAgaWYgKHJlY29yZF9t YXJrZXJzKQorICAgIHJlY29yZF9tYXJrZXJfYWRqdXN0bWVudHMgKGJlZywgYmVnICsgU0NIQVJT IChzdHJpbmcpKTsKIAogICBic2V0X3VuZG9fbGlzdAogICAgIChjdXJyZW50X2J1ZmZlciwKLSAg ICAgRmNvbnMgKEZjb25zIChtYXJrZXIsIG1ha2VfbnVtYmVyIChhZGp1c3RtZW50KSksCi0JICAg IEJWQVIgKGN1cnJlbnRfYnVmZmVyLCB1bmRvX2xpc3QpKSk7CisgICAgIEZjb25zIChGY29ucyAo c3RyaW5nLCBzYmVnKSwgQlZBUiAoY3VycmVudF9idWZmZXIsIHVuZG9fbGlzdCkpKTsKIH0KIAog LyogUmVjb3JkIHRoYXQgYSByZXBsYWNlbWVudCBpcyBhYm91dCB0byB0YWtlIHBsYWNlLApAQCAt MjA2LDcgKzIxNyw3IEBAIHJlY29yZF9tYXJrZXJfYWRqdXN0bWVudCAoTGlzcF9PYmplY3QgbWFy a2VyLCBwdHJkaWZmX3QgYWRqdXN0bWVudCkKIHZvaWQKIHJlY29yZF9jaGFuZ2UgKHB0cmRpZmZf dCBiZWcsIHB0cmRpZmZfdCBsZW5ndGgpCiB7Ci0gIHJlY29yZF9kZWxldGUgKGJlZywgbWFrZV9i dWZmZXJfc3RyaW5nIChiZWcsIGJlZyArIGxlbmd0aCwgMSkpOworICByZWNvcmRfZGVsZXRlIChi ZWcsIG1ha2VfYnVmZmVyX3N0cmluZyAoYmVnLCBiZWcgKyBsZW5ndGgsIDEpLCBmYWxzZSk7CiAg IHJlY29yZF9pbnNlcnQgKGJlZywgbGVuZ3RoKTsKIH0KIAwKZGlmZiAtLWdpdCBhL3Rlc3QvQ2hh bmdlTG9nIGIvdGVzdC9DaGFuZ2VMb2cKaW5kZXggYzg3MDIyYy4uY2JmOWVhYSAxMDA2NDQKLS0t IGEvdGVzdC9DaGFuZ2VMb2cKKysrIGIvdGVzdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMSBAQAor MjAxNC0wMy0xMyAgQmFycnkgTydSZWlsbHkgIDxndW5kYWV0aWFwb0BnbWFpbC5jb20+CisKKwkq IHVuZG8tdGVzdHMuZWwgKHVuZG8tdGVzdC1tYXJrZXItYWRqdXN0bWVudC1ub21pbmFsKToKKwko dW5kby10ZXN0LXJlZ2lvbi10LW1hcmtlcik6IE5ldyB0ZXN0cyBvZiBtYXJrZXIgYWRqdXN0bWVu dHMuCisJKHVuZG8tdGVzdC1tYXJrZXItYWRqdXN0bWVudC1tb3ZlZCk6CisJKHVuZG8tdGVzdC1y ZWdpb24tbWFyay1hZGp1c3RtZW50KTogTmV3IHRlc3RzIHRvIGRlbW9uc3RyYXRlCisJYnVnIzE2 ODE4LCB3aGljaCBmYWlsIHdpdGhvdXQgdGhlIGZpeC4KKwogMjAxNC0wMy0wNyAgTWljaGFlbCBB bGJpbnVzICA8bWljaGFlbC5hbGJpbnVzQGdteC5kZT4KIAogCSogYXV0b21hdGVkL3RyYW1wLXRl c3RzLmVsICh0cmFtcC1jb3B5LXNpemUtbGltaXQpOiBEZWNsYXJlLgpkaWZmIC0tZ2l0IGEvdGVz dC9hdXRvbWF0ZWQvdW5kby10ZXN0cy5lbCBiL3Rlc3QvYXV0b21hdGVkL3VuZG8tdGVzdHMuZWwK aW5kZXggOGE5NjNmMS4uNmVjYWMzNiAxMDA2NDQKLS0tIGEvdGVzdC9hdXRvbWF0ZWQvdW5kby10 ZXN0cy5lbAorKysgYi90ZXN0L2F1dG9tYXRlZC91bmRvLXRlc3RzLmVsCkBAIC0yNjgsNiArMjY4 LDEwNCBAQAogICAgIChzaG91bGQgKHN0cmluZz0gKGJ1ZmZlci1zdHJpbmcpCiAgICAgICAgICAg ICAgICAgICAgICAiVGhpcyBzZW50ZW5jZSBjb3JydXB0ZWQ/YWFhIikpKSkKIAorKGVydC1kZWZ0 ZXN0IHVuZG8tdGVzdC1tYXJrZXItYWRqdXN0bWVudC1ub21pbmFsICgpCisgICJUZXN0IG5vbWlu YWwgYmVoYXZpb3Igb2YgbWFya2VyIGFkanVzdG1lbnRzLiIKKyAgKHdpdGgtdGVtcC1idWZmZXIK KyAgICAoYnVmZmVyLWVuYWJsZS11bmRvKQorICAgIChpbnNlcnQgImFiY2RlZmciKQorICAgICh1 bmRvLWJvdW5kYXJ5KQorICAgIChsZXQgKChtIChtYWtlLW1hcmtlcikpKQorICAgICAgKHNldC1t YXJrZXIgbSAyIChjdXJyZW50LWJ1ZmZlcikpCisgICAgICAoZ290by1jaGFyIChwb2ludC1taW4p KQorICAgICAgKGRlbGV0ZS1mb3J3YXJkLWNoYXIgMykKKyAgICAgICh1bmRvLWJvdW5kYXJ5KQor ICAgICAgKHNob3VsZCAoPSAocG9pbnQtbWluKSAobWFya2VyLXBvc2l0aW9uIG0pKSkKKyAgICAg ICh1bmRvKQorICAgICAgKHVuZG8tYm91bmRhcnkpCisgICAgICAoc2hvdWxkICg9IDIgKG1hcmtl ci1wb3NpdGlvbiBtKSkpKSkpCisKKyhlcnQtZGVmdGVzdCB1bmRvLXRlc3QtcmVnaW9uLXQtbWFy a2VyICgpCisgICJUZXN0IHVuZG8gaW4gcmVnaW9uIGNvbnRhaW5pbmcgbWFya2VyIHdpdGggdCBp bnNlcnRpb24tdHlwZS4iCisgICh3aXRoLXRlbXAtYnVmZmVyCisgICAgKGJ1ZmZlci1lbmFibGUt dW5kbykKKyAgICAodHJhbnNpZW50LW1hcmstbW9kZSAxKQorICAgIChpbnNlcnQgImFiY2RlZmci KQorICAgICh1bmRvLWJvdW5kYXJ5KQorICAgIChsZXQgKChtIChtYWtlLW1hcmtlcikpKQorICAg ICAgKHNldC1tYXJrZXItaW5zZXJ0aW9uLXR5cGUgbSB0KQorICAgICAgKHNldC1tYXJrZXIgbSAo cG9pbnQtbWluKSAoY3VycmVudC1idWZmZXIpKSA7IG0gYXQgYQorICAgICAgKGdvdG8tY2hhciAo KyAyIChwb2ludC1taW4pKSkKKyAgICAgIChwdXNoLW1hcmsgKHBvaW50KSB0IHQpCisgICAgICAo c2V0cSBtYXJrLWFjdGl2ZSB0KQorICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAg IChkZWxldGUtZm9yd2FyZC1jaGFyIDEpIDs7IGRlbGV0ZSByZWdpb24gY292ZXJpbmcgImFiIgor ICAgICAgKHVuZG8tYm91bmRhcnkpCisgICAgICAoc2hvdWxkICg9IChwb2ludC1taW4pIChtYXJr ZXItcG9zaXRpb24gbSkpKQorICAgICAgOzsgUmVzdXJyZWN0ICJhYiIuIG0ncyBpbnNlcnRpb24g dHlwZSBtZWFucyB0aGUgcmVpbnNlcnRpb24KKyAgICAgIDs7IG1vdmVzIGl0IGZvcndhcmQgMiwg YW5kIHRoZW4gdGhlIG1hcmtlciBhZGp1c3RtZW50IHJldHVybnMgaXQKKyAgICAgIDs7IHRvIGl0 cyByaWdodGZ1bCBwbGFjZS4KKyAgICAgICh1bmRvKQorICAgICAgKHVuZG8tYm91bmRhcnkpCisg ICAgICAoc2hvdWxkICg9IChwb2ludC1taW4pIChtYXJrZXItcG9zaXRpb24gbSkpKSkpKQorCiso ZXJ0LWRlZnRlc3QgdW5kby10ZXN0LW1hcmtlci1hZGp1c3RtZW50LW1vdmVkICgpCisgICJUZXN0 IG1hcmtlciBhZGp1c3RtZW50IGJlaGF2aW9yIHdoZW4gdGhlIG1hcmtlciBtb3Zlcy4KK0RlbW9u c3RyYXRlcyBidWcgMTY4MTguIgorICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgIChidWZmZXItZW5h YmxlLXVuZG8pCisgICAgKGluc2VydCAiYWJjZGVmZ2hpamsiKQorICAgICh1bmRvLWJvdW5kYXJ5 KQorICAgIChsZXQgKChtIChtYWtlLW1hcmtlcikpKQorICAgICAgKHNldC1tYXJrZXIgbSAyIChj dXJyZW50LWJ1ZmZlcikpIDsgbSBhdCBiCisgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQor ICAgICAgKGRlbGV0ZS1mb3J3YXJkLWNoYXIgMykgOyBtIGF0IGQKKyAgICAgICh1bmRvLWJvdW5k YXJ5KQorICAgICAgKHNldC1tYXJrZXIgbSA0KSA7IG0gYXQgZworICAgICAgKHVuZG8pCisgICAg ICAodW5kby1ib3VuZGFyeSkKKyAgICAgIDs7IG0gc3RpbGwgYXQgZywgYnV0IHNoaWZ0ZWQgMyBi ZWNhdXNlIGRlbGV0aW9uIHVuZG9uZQorICAgICAgKHNob3VsZCAoPSA3IChtYXJrZXItcG9zaXRp b24gbSkpKSkpKQorCisoZXJ0LWRlZnRlc3QgdW5kby10ZXN0LXJlZ2lvbi1tYXJrLWFkanVzdG1l bnQgKCkKKyAgIlRlc3QgdGhhdCB0aGUgbWFyaydzIG1hcmtlciBhZGp1c3RtZW50IGluIHVuZG8g aGlzdG9yeSBkb2Vzbid0CitvYnN0cnVjdCB1bmRvIGluIHJlZ2lvbiBmcm9tIGZpbmRpbmcgdGhl IGNvcnJlY3QgY2hhbmdlIGdyb3VwLgorRGVtb25zdHJhdGVzIGJ1ZyAxNjgxOC4iCisgICh3aXRo LXRlbXAtYnVmZmVyCisgICAgKGJ1ZmZlci1lbmFibGUtdW5kbykKKyAgICAodHJhbnNpZW50LW1h cmstbW9kZSAxKQorICAgIChpbnNlcnQgIkZpcnN0IGxpbmVcbiIpCisgICAgKGluc2VydCAiU2Vj b25kIGxpbmVcbiIpCisgICAgKHVuZG8tYm91bmRhcnkpCisKKyAgICAoZ290by1jaGFyIChwb2lu dC1taW4pKQorICAgIChpbnNlcnQgImFhYSIpCisgICAgKHVuZG8tYm91bmRhcnkpCisKKyAgICAo dW5kbykKKyAgICAodW5kby1ib3VuZGFyeSkKKworICAgIChnb3RvLWNoYXIgKHBvaW50LW1heCkp CisgICAgKGluc2VydCAiYmJiIikKKyAgICAodW5kby1ib3VuZGFyeSkKKworICAgIChwdXNoLW1h cmsgKHBvaW50KSB0IHQpCisgICAgKHNldHEgbWFyay1hY3RpdmUgdCkKKyAgICAoZ290by1jaGFy ICgtIChwb2ludCkgMykpCisgICAgKGRlbGV0ZS1mb3J3YXJkLWNoYXIgMSkKKyAgICAodW5kby1i b3VuZGFyeSkKKworICAgIChpbnNlcnQgImJiYiIpCisgICAgKHVuZG8tYm91bmRhcnkpCisKKyAg ICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgIChwdXNoLW1hcmsgKHBvaW50KSB0IHQpCisg ICAgKHNldHEgbWFyay1hY3RpdmUgdCkKKyAgICAoZ290by1jaGFyICgrIChwb2ludCkgMykpCisg ICAgKHVuZG8pCisgICAgKHVuZG8tYm91bmRhcnkpCisKKyAgICAoc2hvdWxkIChzdHJpbmc9IChi dWZmZXItc3RyaW5nKSAiYWFhRmlyc3QgbGluZVxuU2Vjb25kIGxpbmVcbmJiYiIpKSkpCisKIChk ZWZ1biB1bmRvLXRlc3QtYWxsICgmb3B0aW9uYWwgaW50ZXJhY3RpdmUpCiAgICJSdW4gYWxsIHRl c3RzIGZvciBcXFt1bmRvXS4iCiAgIChpbnRlcmFjdGl2ZSAicCIpCg== --089e013d0dc0ae3ddc04f54dee75-- From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 24 09:03:55 2014 Received: (at 16818) by debbugs.gnu.org; 24 Mar 2014 13:03:55 +0000 Received: from localhost ([127.0.0.1]:46787 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WS4Xi-0001RL-UT for submit@debbugs.gnu.org; Mon, 24 Mar 2014 09:03:55 -0400 Received: from chene.dit.umontreal.ca ([132.204.246.20]:54659) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WS4Xg-0001RB-IS for 16818@debbugs.gnu.org; Mon, 24 Mar 2014 09:03:53 -0400 Received: from pastel.home (lechon.iro.umontreal.ca [132.204.27.242]) by chene.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id s2OD48FZ026700; Mon, 24 Mar 2014 09:04:08 -0400 Received: by pastel.home (Postfix, from userid 20848) id 4AF55600A2; Mon, 24 Mar 2014 09:03:50 -0400 (EDT) From: Stefan To: Barry OReilly Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) Message-ID: References: Date: Mon, 24 Mar 2014 09:03:50 -0400 In-Reply-To: (Barry OReilly's message of "Sun, 23 Mar 2014 18:49:32 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-NAI-Spam-Flag: NO X-NAI-Spam-Level: X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0.2 X-NAI-Spam-Rules: 2 Rules triggered NOFROM_SGMAIL=0.2, RV4891=0 X-NAI-Spam-Version: 2.3.0.9362 : core <4891> : inlines <634> : streams <1143843> : uri <1708516> X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) > Attached is the new patch to solve this, implementing option 2 and > incorporating your feedback. Looks good, thank you very much. Feel free to install into emacs-24, but please see my comments below. Stefan > +2014-03-13 Barry O'Reilly > + * markers.texi (Moving Marker Positions): The 2014-03-02 doc Missing empty line between the two. > + (while (and (consp (car list)) > + (markerp (caar list)) (markerp (car-safe (car list))) > + (and (eq (marker-buffer (caar list)) > + (current-buffer)) > + (integerp (marker-position (caar list))) I think this `integerp' test is redundant (marker-position can only return nil or an integer and if it returns nil, then marker-buffer also returns nil). > ;; (MARKER . OFFSET) means a marker MARKER was adjusted by OFFSET. > (`(,(and marker (pred markerp)) . ,(and offset (pred integerp))) > - (when (marker-buffer marker) > - (set-marker marker > - (- marker offset) > - (marker-buffer marker)))) > + (warn "Encountered %S entry in undo list with no matching (TEXT . POS) entry" > + next)) I think I'd add the warning without removing the `set-marker', just to be conservative. > + (when (and (consp undo-elt) > + (stringp (car undo-elt)) (stringp (car-safe undo-elt)) > + (integerp (cdr undo-elt))) > + (let ((list-i (cdr undo-list-copy))) > + (while (markerp (caar list-i)) I think you need (markerp (car-safe (car list-i))) because (car list-i) may be an integer. Also, I'd try to avoid repeatedly calling (car list-i) in the body of the `while' loop(s) by let-binding it. I'd probably do it via `pop', as in (while (...) (let ((elem (pop undo-list))) ...)) > ((and (consp undo-elt) (markerp (car undo-elt))) > - ;; This is a marker-adjustment element (MARKER . ADJUSTMENT). > - ;; See if MARKER is inside the region. > - (let ((alist-elt (assq (car undo-elt) undo-adjusted-markers))) > - (unless alist-elt > - (setq alist-elt (cons (car undo-elt) > - (marker-position (car undo-elt)))) > - (setq undo-adjusted-markers > - (cons alist-elt undo-adjusted-markers))) > - (and (cdr alist-elt) > - (>= (cdr alist-elt) start) > - (<= (cdr alist-elt) end)))) > + ;; (MARKER . ADJUSTMENT) > + nil) It would also be more conservative to keep this unchanged, but I think I agree with you here that we don't need to be *that* conservative. > - record_delete (beg, make_buffer_string (beg, beg + length, 1)); > + record_delete (beg, make_buffer_string (beg, beg + length, 1), false); Begs the question: why didn't (don't) we record marker adjustments here (and other similar places)? Stefan From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 24 18:10:42 2014 Received: (at 16818) by debbugs.gnu.org; 24 Mar 2014 22:10:42 +0000 Received: from localhost ([127.0.0.1]:48132 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WSD4o-0003v6-7u for submit@debbugs.gnu.org; Mon, 24 Mar 2014 18:10:40 -0400 Received: from mail-oa0-f48.google.com ([209.85.219.48]:54049) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WSD4j-0003ut-Gy for 16818@debbugs.gnu.org; Mon, 24 Mar 2014 18:10:36 -0400 Received: by mail-oa0-f48.google.com with SMTP id m1so6663399oag.35 for <16818@debbugs.gnu.org>; Mon, 24 Mar 2014 15:10:33 -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=WEr8889b8/2Js03ZYAJz3KeRD0hhgmdCSiyCiRh3OTA=; b=S0vzrs1UWSYiHQj/6lB2jpENxK7+Nq5e5TmudiYnQIlk255D9F44JjB0ndh1qhyToI HbsCa5vetuEZrkgNea42Fy0VUOiD/RfTjDnF2fB4/jdgexOYB8mfzoGAnnUS5y5jU33U 0cFAXwz2AVa9pjLfmq5eIFrg4G07wBPuCNm9ypGIDxElRKIbC91sgHo7nf4fJ8WZ/35U tds/JD3pPhZWOsWzhoKBDxNHdeyzn4Do7aiwTDAQDTFxxX2ABZZQrKOXhqi+pSMDzog+ W+q0AK/U7zu9dsBoPmyJ85RdjneNyueqvVrgAv16AaAiLv9DWQ60oxj0bJr2tgmC8Z8K 02cw== MIME-Version: 1.0 X-Received: by 10.60.83.234 with SMTP id t10mr58739828oey.4.1395699032974; Mon, 24 Mar 2014 15:10:32 -0700 (PDT) Received: by 10.76.6.44 with HTTP; Mon, 24 Mar 2014 15:10:30 -0700 (PDT) In-Reply-To: References: Date: Mon, 24 Mar 2014 18:10:30 -0400 Message-ID: Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) From: Barry OReilly To: Stefan , toby-undo-tree@dr-qubit.org Content-Type: multipart/mixed; boundary=089e0116019c131fcc04f5618169 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --089e0116019c131fcc04f5618169 Content-Type: multipart/alternative; boundary=089e0116019c131fc604f5618167 --089e0116019c131fc604f5618167 Content-Type: text/plain; charset=ISO-8859-1 [Adding Toby, since I mention undo-tree.] > It would also be more conservative to keep this unchanged, but I > think I agree with you here that we don't need to be *that* > conservative. This is how I addressed that: diff --git a/lisp/simple.el b/lisp/simple.el index 4a3a89c..6b5031e 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -2375,6 +2375,10 @@ we stop and ignore all further elements." ;; This is a "was unmodified" element. ;; Keep it if we have kept everything thus far. (not some-rejected)) + ;; Skip over marker adjustments, instead relying on + ;; finding them after (TEXT . POS) elements + ((markerp (car-safe undo-elt)) + nil) (t (undo-elt-in-region undo-elt start end))))) (if keep-this @@ -2461,7 +2465,7 @@ marker adjustment's corresponding (TEXT . POS) element." (<= (abs (cdr undo-elt)) end))) ((and (consp undo-elt) (markerp (car undo-elt))) ;; (MARKER . ADJUSTMENT) - nil) + (<= start (car undo-elt) end)) ((null (car undo-elt)) ;; (nil PROPERTY VALUE BEG . END) (let ((tail (nthcdr 3 undo-elt))) It maintains the same return from undo-elt-in-region for marker adjustments as before. I took a look at undo-tree. It doesn't use undo-make-selective-list, but does use undo-elt-in-region. I guess that means this particular bug won't be fixed in undo-tree for regional undos, until it also scans forward from (TEXT . POS) as this patch's undo-make-selective-list does. > Begs the question: why didn't (don't) we record marker adjustments > here (and other similar places)? I considered pursuing that question earlier, but opted for those callers to behave as before, at least for now. There's a related comment nearby one of the callers: /* Note that this does not yet handle markers quite right. Also it needs to record a single undo-entry that does a replacement rather than a separate delete and insert. That way, undo will also handle markers properly. But if MARKERS is 0, don't relocate markers. */ I've attached the updated patch with your comments incorporated. I'll install soon. --089e0116019c131fc604f5618167 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
[Adding Toby, since I mention undo-tree.]

> It w= ould also be more conservative to keep this unchanged, but I
> think = I agree with you here that we don't need to be *that*
> conservat= ive.

This is how I addressed that:

diff --git a/lisp/simple.el b/lisp= /simple.el
index 4a3a89c..6b5031e 100644
--- a/lisp/simple.el
+++ = b/lisp/simple.el
@@ -2375,6 +2375,10 @@ we stop and ignore all further e= lements."
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 ;; This is a &quo= t;was unmodified" element.
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 ;; Keep it if we have kept everything thus far.
=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (not some-rejected))=
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 ;; Skip over ma= rker adjustments, instead relying on
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 ;; finding them aft= er (TEXT . POS) elements
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0 ((markerp (car-safe undo-elt))
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0 nil)
=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 (undo-elt-in-region undo-elt start end)))))
=A0=A0=A0=A0=A0=A0=A0 (if keep-this
@@ -2461,7 +2465,7 @@ marker adjustm= ent's corresponding (TEXT . POS) element."
=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0 (<=3D (abs (cdr undo-elt)) end)))
=A0=A0=A0=A0= =A0=A0=A0 ((and (consp undo-elt) (markerp (car undo-elt)))
=A0=A0=A0=A0=A0=A0=A0=A0 ;; (MARKER . ADJUSTMENT)
-=A0=A0=A0=A0=A0=A0=A0= =A0 nil)
+=A0=A0=A0=A0=A0=A0=A0=A0 (<=3D start (car undo-elt) end))=A0=A0=A0=A0=A0=A0=A0 ((null (car undo-elt))
=A0=A0=A0=A0=A0=A0=A0=A0 = ;; (nil PROPERTY VALUE BEG . END)
=A0=A0=A0=A0=A0=A0=A0=A0 (let ((tail (= nthcdr 3 undo-elt)))

It maintains the same return from undo-elt-in-region for marker
adju= stments as before.

I took a look at undo-tree. It doesn't use un= do-make-selective-list,
but does use undo-elt-in-region. I guess that me= ans this particular
bug won't be fixed in undo-tree for regional undos, until it also
sc= ans forward from (TEXT . POS) as this patch's
undo-make-selective-li= st does.

> Begs the question: why didn't (don't) we recor= d marker adjustments
> here (and other similar places)?

I considered pursuing that que= stion earlier, but opted for those
callers to behave as before, at least= for now.

There's a related comment nearby one of the callers:
/* Note that this does not yet handle markers quite right.
=A0=A0 Al= so it needs to record a single undo-entry that does a replacement
=A0=A0= rather than a separate delete and insert.
=A0=A0 That way, undo will al= so handle markers properly.

=A0=A0 But if MARKERS is 0, don't relocate markers.=A0 */

I&= #39;ve attached the updated patch with your comments incorporated. I'll=
install soon.

--089e0116019c131fc604f5618167-- --089e0116019c131fcc04f5618169 Content-Type: text/plain; charset=US-ASCII; name="undo-marker-record-20140324.diff" Content-Disposition: attachment; filename="undo-marker-record-20140324.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ht6b4c0p0 ZGlmZiAtLWdpdCBhL2RvYy9saXNwcmVmL0NoYW5nZUxvZyBiL2RvYy9saXNwcmVmL0NoYW5nZUxv ZwppbmRleCA2ZmZkODBiLi43MDRhYTQ4IDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9DaGFuZ2VM b2cKKysrIGIvZG9jL2xpc3ByZWYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTEgQEAKKzIwMTQtMDMt MTMgIEJhcnJ5IE8nUmVpbGx5ICA8Z3VuZGFldGlhcG9AZ21haWwuY29tPgorCisJKiBtYXJrZXJz LnRleGkgKE1vdmluZyBNYXJrZXIgUG9zaXRpb25zKTogVGhlIDIwMTQtMDMtMDIgZG9jCisJY2hh bmdlIG1lbnRpb25pbmcgdW5kbydzIGluYWJpbGl0eSB0byBoYW5kbGUgcmVsb2NhdGVkIG1hcmtl cnMgbm8KKwlsb25nZXIgYXBwbGllcy4gIFNlZSBidWcjMTY4MTguCisJKiB0ZXh0LnRleGkgKFVu ZG8pOiBFeHBhbmQgZG9jdW1lbnRhdGlvbiBvZiAoVEVYVCAuIFBPUykgYW5kCisJKE1BUktFUiAu IEFESlVTVE1FTlQpIHVuZG8gZWxlbWVudHMuCisKIDIwMTQtMDMtMDkgIE1hcnRpbiBSdWRhbGlj cyAgPHJ1ZGFsaWNzQGdteC5hdD4KIAogCSogZWxpc3AudGV4aSAoVG9wKTogUmVuYW1lIHNlY3Rp b24gIldpZHRoIiB0byAiU2l6ZSBvZiBEaXNwbGF5ZWQKZGlmZiAtLWdpdCBhL2RvYy9saXNwcmVm L21hcmtlcnMudGV4aSBiL2RvYy9saXNwcmVmL21hcmtlcnMudGV4aQppbmRleCAxOTM4NmQ2Li41 MWI4N2FiIDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9tYXJrZXJzLnRleGkKKysrIGIvZG9jL2xp c3ByZWYvbWFya2Vycy50ZXhpCkBAIC0zNDQsMTIgKzM0NCwxMCBAQCBzcGVjaWZ5IHRoZSBpbnNl cnRpb24gdHlwZSwgY3JlYXRlIHRoZW0gd2l0aCBpbnNlcnRpb24gdHlwZQogQHNlY3Rpb24gTW92 aW5nIE1hcmtlciBQb3NpdGlvbnMKIAogICBUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIGhvdyB0byBj aGFuZ2UgdGhlIHBvc2l0aW9uIG9mIGFuIGV4aXN0aW5nCi1tYXJrZXIuICBXaGVuIHlvdSBkbyB0 aGlzLCBiZSBzdXJlIHlvdSBrbm93IGhvdyB0aGUgbWFya2VyIGlzIHVzZWQKLW91dHNpZGUgb2Yg eW91ciBwcm9ncmFtLiAgRm9yIGV4YW1wbGUsIG1vdmluZyBhIG1hcmtlciB0byBhbiB1bnJlbGF0 ZWQKLW5ldyBwb3NpdGlvbiBjYW4gY2F1c2UgdW5kbyB0byBsYXRlciBhZGp1c3QgdGhlIG1hcmtl ciBpbmNvcnJlY3RseS4KLU9mdGVuIHdoZW4geW91IHdpc2ggdG8gcmVsb2NhdGUgYSBtYXJrZXIg dG8gYW4gdW5yZWxhdGVkIHBvc2l0aW9uLCBpdAotaXMgcHJlZmVyYWJsZSB0byBtYWtlIGEgbmV3 IG1hcmtlciBhbmQgc2V0IHRoZSBwcmlvciBvbmUgdG8gcG9pbnQKLW5vd2hlcmUuCittYXJrZXIu ICBXaGVuIHlvdSBkbyB0aGlzLCBiZSBzdXJlIHlvdSBrbm93IHdoZXRoZXIgdGhlIG1hcmtlciBp cyB1c2VkCitvdXRzaWRlIG9mIHlvdXIgcHJvZ3JhbSwgYW5kLCBpZiBzbywgd2hhdCBlZmZlY3Rz IHdpbGwgcmVzdWx0IGZyb20KK21vdmluZyBpdC0tLW90aGVyd2lzZSwgY29uZnVzaW5nIHRoaW5n cyBtYXkgaGFwcGVuIGluIG90aGVyIHBhcnRzIG9mCitFbWFjcy4KIAogQGRlZnVuIHNldC1tYXJr ZXIgbWFya2VyIHBvc2l0aW9uICZvcHRpb25hbCBidWZmZXIKIFRoaXMgZnVuY3Rpb24gbW92ZXMg QHZhcnttYXJrZXJ9IHRvIEB2YXJ7cG9zaXRpb259CmRpZmYgLS1naXQgYS9kb2MvbGlzcHJlZi90 ZXh0LnRleGkgYi9kb2MvbGlzcHJlZi90ZXh0LnRleGkKaW5kZXggZDkzZjkzNy4uMWQ1NTBhMCAx MDA2NDQKLS0tIGEvZG9jL2xpc3ByZWYvdGV4dC50ZXhpCisrKyBiL2RvYy9saXNwcmVmL3RleHQu dGV4aQpAQCAtMTI3MCw3ICsxMjcwLDggQEAgVGhpcyBraW5kIG9mIGVsZW1lbnQgaW5kaWNhdGVz IGhvdyB0byByZWluc2VydCB0ZXh0IHRoYXQgd2FzIGRlbGV0ZWQuCiBUaGUgZGVsZXRlZCB0ZXh0 IGl0c2VsZiBpcyB0aGUgc3RyaW5nIEB2YXJ7dGV4dH0uICBUaGUgcGxhY2UgdG8KIHJlaW5zZXJ0 IGl0IGlzIEBjb2RleyhhYnMgQHZhcntwb3NpdGlvbn0pfS4gIElmIEB2YXJ7cG9zaXRpb259IGlz CiBwb3NpdGl2ZSwgcG9pbnQgd2FzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRlbGV0ZWQgdGV4 dCwgb3RoZXJ3aXNlIGl0Ci13YXMgYXQgdGhlIGVuZC4KK3dhcyBhdCB0aGUgZW5kLiAgWmVybyBv ciBtb3JlIChAdmFye21hcmtlcn0gLiBAdmFye2FkanVzdG1lbnR9KQorZWxlbWVudHMgZm9sbG93 IGltbWVkaWF0ZWx5IGFmdGVyIHRoaXMgZWxlbWVudC4KIAogQGl0ZW0gKHQgLiBAdmFye3RpbWUt ZmxhZ30pCiBUaGlzIGtpbmQgb2YgZWxlbWVudCBpbmRpY2F0ZXMgdGhhdCBhbiB1bm1vZGlmaWVk IGJ1ZmZlciBiZWNhbWUKQEAgLTEyOTYsOCArMTI5NywxMCBAQCBIZXJlJ3MgaG93IHlvdSBtaWdo dCB1bmRvIHRoZSBjaGFuZ2U6CiBAaXRlbSAoQHZhcnttYXJrZXJ9IC4gQHZhcnthZGp1c3RtZW50 fSkKIFRoaXMga2luZCBvZiBlbGVtZW50IHJlY29yZHMgdGhlIGZhY3QgdGhhdCB0aGUgbWFya2Vy IEB2YXJ7bWFya2VyfSB3YXMKIHJlbG9jYXRlZCBkdWUgdG8gZGVsZXRpb24gb2Ygc3Vycm91bmRp bmcgdGV4dCwgYW5kIHRoYXQgaXQgbW92ZWQKLUB2YXJ7YWRqdXN0bWVudH0gY2hhcmFjdGVyIHBv c2l0aW9ucy4gIFVuZG9pbmcgdGhpcyBlbGVtZW50IG1vdmVzCi1AdmFye21hcmtlcn0gQG1pbnVz e30gQHZhcnthZGp1c3RtZW50fSBjaGFyYWN0ZXJzLgorQHZhcnthZGp1c3RtZW50fSBjaGFyYWN0 ZXIgcG9zaXRpb25zLiAgSWYgdGhlIG1hcmtlcidzIGxvY2F0aW9uIGlzCitjb25zaXN0ZW50IHdp dGggdGhlIChAdmFye3RleHR9IC4gQHZhcntwb3NpdGlvbn0pIGVsZW1lbnQgcHJlY2VkaW5nIGl0 CitpbiB0aGUgdW5kbyBsaXN0LCB0aGVuIHVuZG9pbmcgdGhpcyBlbGVtZW50IG1vdmVzIEB2YXJ7 bWFya2VyfQorQG1pbnVze30gQHZhcnthZGp1c3RtZW50fSBjaGFyYWN0ZXJzLgogCiBAaXRlbSAo YXBwbHkgQHZhcntmdW5uYW1lfSAuIEB2YXJ7YXJnc30pCiBUaGlzIGlzIGFuIGV4dGVuc2libGUg dW5kbyBpdGVtLCB3aGljaCBpcyB1bmRvbmUgYnkgY2FsbGluZwpkaWZmIC0tZ2l0IGEvbGlzcC9D aGFuZ2VMb2cgYi9saXNwL0NoYW5nZUxvZwppbmRleCBhMWVlNWJiLi40ZjJjMjU4IDEwMDY0NAot LS0gYS9saXNwL0NoYW5nZUxvZworKysgYi9saXNwL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA CisyMDE0LTAzLTEzICBCYXJyeSBPJ1JlaWxseSAgPGd1bmRhZXRpYXBvQGdtYWlsLmNvbT4KKwor CSogc2ltcGxlLmVsIChwcmltaXRpdmUtdW5kbyk6IE9ubHkgcHJvY2VzcyBtYXJrZXIgYWRqdXN0 bWVudHMKKwl2YWxpZGF0ZWQgYWdhaW5zdCB0aGVpciBjb3JyZXNwb25kaW5nIChURVhUIC4gUE9T KS4gIElzc3VlIHdhcm5pbmcKKwlmb3IgbG9uZSBtYXJrZXIgYWRqdXN0bWVudHMgaW4gdW5kbyBo aXN0b3J5LiAgKEJ1ZyMxNjgxOCkKKwkodW5kby1tYWtlLXNlbGVjdGl2ZS1saXN0KTogQWRkIG1h cmtlciBhZGp1c3RtZW50cyB0byBzZWxlY3RpdmUKKwl1bmRvIGxpc3QgYmFzZWQgb24gd2hldGhl ciB0aGVpciBjb3JyZXNwb25kaW5nIChURVhUIC4gUE9TKSBpcyBpbgorCXRoZSByZWdpb24uICBS ZW1vdmUgdmFyaWFibGUgYWRqdXN0ZWQtbWFya2Vycywgd2hpY2ggd2FzIHVudXNlZAorCWFuZCBv bmx5IG5vbiBuaWwgZHVyaW5nIHVuZG8tbWFrZS1zZWxlY3RpdmUtbGlzdC4KKwkodW5kby1lbHQt aW4tcmVnaW9uKTogUmV0dXJuIG5pbCB3aGVuIHBhc3NlZCBhIG1hcmtlciBhZGp1c3RtZW50CisJ YW5kIGV4cGxhaW4gaW4gZnVuY3Rpb24gZG9jLgorCiAyMDE0LTAzLTEzICBEbWl0cnkgR3V0b3Yg IDxkZ3V0b3ZAeWFuZGV4LnJ1PgogCiAJKiBwcm9nbW9kZXMvcnVieS1tb2RlLmVsIChydWJ5LWZv bnQtbG9jay1rZXl3b3Jkcyk6IEZvbnRpZnkKZGlmZiAtLWdpdCBhL2xpc3Avc2ltcGxlLmVsIGIv bGlzcC9zaW1wbGUuZWwKaW5kZXggODgxYTYzMy4uNmI1MDMxZSAxMDA2NDQKLS0tIGEvbGlzcC9z aW1wbGUuZWwKKysrIGIvbGlzcC9zaW1wbGUuZWwKQEAgLTIyODksMjQgKzIyODksNDEgQEAgUmV0 dXJuIHdoYXQgcmVtYWlucyBvZiB0aGUgbGlzdC4iCiAgICAgICAgICAgICh3aGVuIChsZXQgKChh cG9zIChhYnMgcG9zKSkpCiAgICAgICAgICAgICAgICAgICAgKG9yICg8IGFwb3MgKHBvaW50LW1p bikpICg+IGFwb3MgKHBvaW50LW1heCkpKSkKICAgICAgICAgICAgICAoZXJyb3IgIkNoYW5nZXMg dG8gYmUgdW5kb25lIGFyZSBvdXRzaWRlIHZpc2libGUgcG9ydGlvbiBvZiBidWZmZXIiKSkKLSAg ICAgICAgICAgKGlmICg8IHBvcyAwKQotICAgICAgICAgICAgICAgKHByb2duCi0gICAgICAgICAg ICAgICAgIChnb3RvLWNoYXIgKC0gcG9zKSkKLSAgICAgICAgICAgICAgICAgKGluc2VydCBzdHJp bmcpKQotICAgICAgICAgICAgIChnb3RvLWNoYXIgcG9zKQotICAgICAgICAgICAgIDs7IE5vdyB0 aGF0IHdlIHJlY29yZCBtYXJrZXIgYWRqdXN0bWVudHMKLSAgICAgICAgICAgICA7OyAoY2F1c2Vk IGJ5IGRlbGV0aW9uKSBmb3IgdW5kbywKLSAgICAgICAgICAgICA7OyB3ZSBzaG91bGQgYWx3YXlz IGluc2VydCBhZnRlciBtYXJrZXJzLAotICAgICAgICAgICAgIDs7IHNvIHRoYXQgdW5kb2luZyB0 aGUgbWFya2VyIGFkanVzdG1lbnRzCi0gICAgICAgICAgICAgOzsgcHV0IHRoZSBtYXJrZXJzIGJh Y2sgaW4gdGhlIHJpZ2h0IHBsYWNlLgotICAgICAgICAgICAgIChpbnNlcnQgc3RyaW5nKQotICAg ICAgICAgICAgIChnb3RvLWNoYXIgcG9zKSkpCisgICAgICAgICAgIChsZXQgKHZhbGlkLW1hcmtl ci1hZGp1c3RtZW50cykKKyAgICAgICAgICAgICA7OyBDaGVjayB0aGF0IG1hcmtlciBhZGp1c3Rt ZW50cyB3aGljaCB3ZXJlIHJlY29yZGVkCisgICAgICAgICAgICAgOzsgd2l0aCB0aGUgKFNUUklO RyAuIFBPUykgcmVjb3JkIGFyZSBzdGlsbCB2YWxpZCwgaWUKKyAgICAgICAgICAgICA7OyB0aGUg bWFya2VycyBoYXZlbid0IG1vdmVkLiAgV2UgY2hlY2sgdGhlaXIgdmFsaWRpdHkKKyAgICAgICAg ICAgICA7OyBiZWZvcmUgcmVpbnNlcnRpbmcgdGhlIHN0cmluZyBzbyBhcyB3ZSBkb24ndCBuZWVk IHRvCisgICAgICAgICAgICAgOzsgbWluZCBtYXJrZXIgaW5zZXJ0aW9uLXR5cGUuCisgICAgICAg ICAgICAgKHdoaWxlIChhbmQgKG1hcmtlcnAgKGNhci1zYWZlIChjYXIgbGlzdCkpKQorICAgICAg ICAgICAgICAgICAgICAgICAgIChpbnRlZ2VycCAoY2RyLXNhZmUgKGNhciBsaXN0KSkpKQorICAg ICAgICAgICAgICAgKGxldCogKChtYXJrZXItYWRqIChwb3AgbGlzdCkpCisgICAgICAgICAgICAg ICAgICAgICAgKG0gKGNhciBtYXJrZXItYWRqKSkpCisgICAgICAgICAgICAgICAgIChhbmQgKGVx IChtYXJrZXItYnVmZmVyIG0pIChjdXJyZW50LWJ1ZmZlcikpCisgICAgICAgICAgICAgICAgICAg ICAgKD0gcG9zIG0pCisgICAgICAgICAgICAgICAgICAgICAgKHB1c2ggbWFya2VyLWFkaiB2YWxp ZC1tYXJrZXItYWRqdXN0bWVudHMpKSkpCisgICAgICAgICAgICAgOzsgSW5zZXJ0IHN0cmluZyBh bmQgYWRqdXN0IHBvaW50CisgICAgICAgICAgICAgKGlmICg8IHBvcyAwKQorICAgICAgICAgICAg ICAgICAocHJvZ24KKyAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICgtIHBvcykpCisgICAg ICAgICAgICAgICAgICAgKGluc2VydCBzdHJpbmcpKQorICAgICAgICAgICAgICAgKGdvdG8tY2hh ciBwb3MpCisgICAgICAgICAgICAgICAoaW5zZXJ0IHN0cmluZykKKyAgICAgICAgICAgICAgIChn b3RvLWNoYXIgcG9zKSkKKyAgICAgICAgICAgICA7OyBBZGp1c3QgdGhlIHZhbGlkIG1hcmtlciBh ZGp1c3RtZW50cworICAgICAgICAgICAgIChkb2xpc3QgKGFkaiB2YWxpZC1tYXJrZXItYWRqdXN0 bWVudHMpCisgICAgICAgICAgICAgICAoc2V0LW1hcmtlciAoY2FyIGFkaikKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICgtIChjYXIgYWRqKSAoY2RyIGFkaikpKSkpKQogICAgICAgICAgIDs7 IChNQVJLRVIgLiBPRkZTRVQpIG1lYW5zIGEgbWFya2VyIE1BUktFUiB3YXMgYWRqdXN0ZWQgYnkg T0ZGU0VULgogICAgICAgICAgIChgKCwoYW5kIG1hcmtlciAocHJlZCBtYXJrZXJwKSkgLiAsKGFu ZCBvZmZzZXQgKHByZWQgaW50ZWdlcnApKSkKLSAgICAgICAgICAgKHdoZW4gKG1hcmtlci1idWZm ZXIgbWFya2VyKQotICAgICAgICAgICAgIChzZXQtbWFya2VyIG1hcmtlcgotICAgICAgICAgICAg ICAgICAgICAgICAgICgtIG1hcmtlciBvZmZzZXQpCi0gICAgICAgICAgICAgICAgICAgICAgICAg KG1hcmtlci1idWZmZXIgbWFya2VyKSkpKQorICAgICAgICAgICAod2FybiAiRW5jb3VudGVyZWQg JVMgZW50cnkgaW4gdW5kbyBsaXN0IHdpdGggbm8gbWF0Y2hpbmcgKFRFWFQgLiBQT1MpIGVudHJ5 IgorICAgICAgICAgICAgICAgICBuZXh0KQorICAgICAgICAgICA7OyBFdmVuIHRob3VnaCB0aGVz ZSBlbGVtZW50cyBhcmUgbm90IGV4cGVjdGVkIGluIHRoZSB1bmRvCisgICAgICAgICAgIDs7IGxp c3QsIGFkanVzdCB0aGVtIHRvIGJlIGNvbnNlcnZhdGl2ZSBmb3IgdGhlIDI0LjQKKyAgICAgICAg ICAgOzsgcmVsZWFzZS4gIChCdWcjMTY4MTgpCisgICAgICAgICAgIChzZXQtbWFya2VyIG1hcmtl cgorICAgICAgICAgICAgICAgICAgICAgICAoLSBtYXJrZXIgb2Zmc2V0KQorICAgICAgICAgICAg ICAgICAgICAgICAobWFya2VyLWJ1ZmZlciBtYXJrZXIpKSkKICAgICAgICAgICAoXyAoZXJyb3Ig IlVucmVjb2duaXplZCBlbnRyeSBpbiB1bmRvIGxpc3QgJVMiIG5leHQpKSkpCiAgICAgICAoc2V0 cSBhcmcgKDEtIGFyZykpKQogICAgIDs7IE1ha2Ugc3VyZSBhbiBhcHBseSBlbnRyeSBwcm9kdWNl cyBhdCBsZWFzdCBvbmUgdW5kbyBlbnRyeSwKQEAgLTIzNDEsOCArMjM1OCw2IEBAIGFyZSBpZ25v cmVkLiAgSWYgQkVHIGFuZCBFTkQgYXJlIG5pbCwgYWxsIHVuZG8gZWxlbWVudHMgYXJlIHVzZWQu IgogCSAgICAodW5kby1tYWtlLXNlbGVjdGl2ZS1saXN0IChtaW4gYmVnIGVuZCkgKG1heCBiZWcg ZW5kKSkKIAkgIGJ1ZmZlci11bmRvLWxpc3QpKSkKIAotKGRlZnZhciB1bmRvLWFkanVzdGVkLW1h cmtlcnMpCi0KIChkZWZ1biB1bmRvLW1ha2Utc2VsZWN0aXZlLWxpc3QgKHN0YXJ0IGVuZCkKICAg IlJldHVybiBhIGxpc3Qgb2YgdW5kbyBlbGVtZW50cyBmb3IgdGhlIHJlZ2lvbiBTVEFSVCB0byBF TkQuCiBUaGUgZWxlbWVudHMgY29tZSBmcm9tIGBidWZmZXItdW5kby1saXN0JywgYnV0IHdlIGtl ZXAgb25seQpAQCAtMjM1MSw3ICsyMzY2LDYgQEAgSWYgd2UgZmluZCBhbiBlbGVtZW50IHRoYXQg Y3Jvc3NlcyBhbiBlZGdlIG9mIHRoaXMgcmVnaW9uLAogd2Ugc3RvcCBhbmQgaWdub3JlIGFsbCBm dXJ0aGVyIGVsZW1lbnRzLiIKICAgKGxldCAoKHVuZG8tbGlzdC1jb3B5ICh1bmRvLWNvcHktbGlz dCBidWZmZXItdW5kby1saXN0KSkKIAkodW5kby1saXN0IChsaXN0IG5pbCkpCi0JdW5kby1hZGp1 c3RlZC1tYXJrZXJzCiAJc29tZS1yZWplY3RlZAogCXVuZG8tZWx0IHRlbXAtdW5kby1saXN0IGRl bHRhKQogICAgICh3aGlsZSB1bmRvLWxpc3QtY29weQpAQCAtMjM2MSwxNSArMjM3NSwzMCBAQCB3 ZSBzdG9wIGFuZCBpZ25vcmUgYWxsIGZ1cnRoZXIgZWxlbWVudHMuIgogCQkgICAgOzsgVGhpcyBp cyBhICJ3YXMgdW5tb2RpZmllZCIgZWxlbWVudC4KIAkJICAgIDs7IEtlZXAgaXQgaWYgd2UgaGF2 ZSBrZXB0IGV2ZXJ5dGhpbmcgdGh1cyBmYXIuCiAJCSAgICAobm90IHNvbWUtcmVqZWN0ZWQpKQor ICAgICAgICAgICAgICAgICAgIDs7IFNraXAgb3ZlciBtYXJrZXIgYWRqdXN0bWVudHMsIGluc3Rl YWQgcmVseWluZyBvbgorICAgICAgICAgICAgICAgICAgIDs7IGZpbmRpbmcgdGhlbSBhZnRlciAo VEVYVCAuIFBPUykgZWxlbWVudHMKKyAgICAgICAgICAgICAgICAgICAoKG1hcmtlcnAgKGNhci1z YWZlIHVuZG8tZWx0KSkKKyAgICAgICAgICAgICAgICAgICAgbmlsKQogCQkgICAodAogCQkgICAg KHVuZG8tZWx0LWluLXJlZ2lvbiB1bmRvLWVsdCBzdGFydCBlbmQpKSkpKQogCShpZiBrZWVwLXRo aXMKIAkgICAgKHByb2duCiAJICAgICAgKHNldHEgZW5kICgrIGVuZCAoY2RyICh1bmRvLWRlbHRh IHVuZG8tZWx0KSkpKQogCSAgICAgIDs7IERvbid0IHB1dCB0d28gbmlscyB0b2dldGhlciBpbiB0 aGUgbGlzdAotCSAgICAgIChpZiAobm90IChhbmQgKGVxIChjYXIgdW5kby1saXN0KSBuaWwpCi0J CQkgICAgKGVxIHVuZG8tZWx0IG5pbCkpKQotCQkgIChzZXRxIHVuZG8tbGlzdCAoY29ucyB1bmRv LWVsdCB1bmRvLWxpc3QpKSkpCisJICAgICAgKHdoZW4gKG5vdCAoYW5kIChlcSAoY2FyIHVuZG8t bGlzdCkgbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxIHVuZG8tZWx0IG5p bCkpKQorICAgICAgICAgICAgICAgIChzZXRxIHVuZG8tbGlzdCAoY29ucyB1bmRvLWVsdCB1bmRv LWxpc3QpKQorICAgICAgICAgICAgICAgIDs7IElmIChURVhUIC4gUE9TKSwgImtlZXAiIGl0cyBz dWJzZXF1ZW50IChNQVJLRVIKKyAgICAgICAgICAgICAgICA7OyAuIEFESlVTVE1FTlQpIHdob3Nl IG1hcmtlcnMgaGF2ZW4ndCBtb3ZlZC4KKyAgICAgICAgICAgICAgICAod2hlbiAoYW5kIChzdHJp bmdwIChjYXItc2FmZSB1bmRvLWVsdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50 ZWdlcnAgKGNkci1zYWZlIHVuZG8tZWx0KSkpCisgICAgICAgICAgICAgICAgICAobGV0ICgobGlz dC1pIChjZHIgdW5kby1saXN0LWNvcHkpKSkKKyAgICAgICAgICAgICAgICAgICAgKHdoaWxlICht YXJrZXJwIChjYXItc2FmZSAoY2FyIGxpc3QtaSkpKQorICAgICAgICAgICAgICAgICAgICAgIChs ZXQqICgoYWRqLWVsdCAocG9wIGxpc3QtaSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChtIChjYXIgYWRqLWVsdCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAoZXEgKG1h cmtlci1idWZmZXIgbSkgKGN1cnJlbnQtYnVmZmVyKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKD0gKGNkciB1bmRvLWVsdCkgbSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHB1c2ggYWRqLWVsdCB1bmRvLWxpc3QpKSkpKSkpKQogCSAgKGlmICh1bmRvLWVsdC1jcm9zc2Vz LXJlZ2lvbiB1bmRvLWVsdCBzdGFydCBlbmQpCiAJICAgICAgKHNldHEgdW5kby1saXN0LWNvcHkg bmlsKQogCSAgICAoc2V0cSBzb21lLXJlamVjdGVkIHQpCkBAIC0yNDE3LDcgKzI0NDYsMTIgQEAg d2Ugc3RvcCBhbmQgaWdub3JlIGFsbCBmdXJ0aGVyIGVsZW1lbnRzLiIKIAogKGRlZnVuIHVuZG8t ZWx0LWluLXJlZ2lvbiAodW5kby1lbHQgc3RhcnQgZW5kKQogICAiRGV0ZXJtaW5lIHdoZXRoZXIg VU5ETy1FTFQgZmFsbHMgaW5zaWRlIHRoZSByZWdpb24gU1RBUlQgLi4uIEVORC4KLUlmIGl0IGNy b3NzZXMgdGhlIGVkZ2UsIHdlIHJldHVybiBuaWwuIgorSWYgaXQgY3Jvc3NlcyB0aGUgZWRnZSwg d2UgcmV0dXJuIG5pbC4KKworR2VuZXJhbGx5IHRoaXMgZnVuY3Rpb24gaXMgbm90IHVzZWZ1bCBm b3IgZGV0ZXJtaW5pbmcKK3doZXRoZXIgKE1BUktFUiAuIEFESlVTVE1FTlQpIHVuZG8gZWxlbWVu dHMgYXJlIGluIHRoZSByZWdpb24sCitiZWNhdXNlIG1hcmtlcnMgY2FuIGJlIGFyYml0cmFyaWx5 IHJlbG9jYXRlZC4gIEluc3RlYWQsIHBhc3MgdGhlCittYXJrZXIgYWRqdXN0bWVudCdzIGNvcnJl c3BvbmRpbmcgKFRFWFQgLiBQT1MpIGVsZW1lbnQuIgogICAoY29uZCAoKGludGVnZXJwIHVuZG8t ZWx0KQogCSAoYW5kICg+PSB1bmRvLWVsdCBzdGFydCkKIAkgICAgICAoPD0gdW5kby1lbHQgZW5k KSkpCkBAIC0yNDMwLDE3ICsyNDY0LDggQEAgSWYgaXQgY3Jvc3NlcyB0aGUgZWRnZSwgd2UgcmV0 dXJuIG5pbC4iCiAJIChhbmQgKD49IChhYnMgKGNkciB1bmRvLWVsdCkpIHN0YXJ0KQogCSAgICAg ICg8PSAoYWJzIChjZHIgdW5kby1lbHQpKSBlbmQpKSkKIAkoKGFuZCAoY29uc3AgdW5kby1lbHQp IChtYXJrZXJwIChjYXIgdW5kby1lbHQpKSkKLQkgOzsgVGhpcyBpcyBhIG1hcmtlci1hZGp1c3Rt ZW50IGVsZW1lbnQgKE1BUktFUiAuIEFESlVTVE1FTlQpLgotCSA7OyBTZWUgaWYgTUFSS0VSIGlz IGluc2lkZSB0aGUgcmVnaW9uLgotCSAobGV0ICgoYWxpc3QtZWx0IChhc3NxIChjYXIgdW5kby1l bHQpIHVuZG8tYWRqdXN0ZWQtbWFya2VycykpKQotCSAgICh1bmxlc3MgYWxpc3QtZWx0Ci0JICAg ICAoc2V0cSBhbGlzdC1lbHQgKGNvbnMgKGNhciB1bmRvLWVsdCkKLQkJCQkgICAobWFya2VyLXBv c2l0aW9uIChjYXIgdW5kby1lbHQpKSkpCi0JICAgICAoc2V0cSB1bmRvLWFkanVzdGVkLW1hcmtl cnMKLQkJICAgKGNvbnMgYWxpc3QtZWx0IHVuZG8tYWRqdXN0ZWQtbWFya2VycykpKQotCSAgIChh bmQgKGNkciBhbGlzdC1lbHQpCi0JCSg+PSAoY2RyIGFsaXN0LWVsdCkgc3RhcnQpCi0JCSg8PSAo Y2RyIGFsaXN0LWVsdCkgZW5kKSkpKQorCSA7OyAoTUFSS0VSIC4gQURKVVNUTUVOVCkKKyAgICAg ICAgICg8PSBzdGFydCAoY2FyIHVuZG8tZWx0KSBlbmQpKQogCSgobnVsbCAoY2FyIHVuZG8tZWx0 KSkKIAkgOzsgKG5pbCBQUk9QRVJUWSBWQUxVRSBCRUcgLiBFTkQpCiAJIChsZXQgKCh0YWlsIChu dGhjZHIgMyB1bmRvLWVsdCkpKQpkaWZmIC0tZ2l0IGEvc3JjL0NoYW5nZUxvZyBiL3NyYy9DaGFu Z2VMb2cKaW5kZXggYzExNThmYy4uNDFmYTg5OCAxMDA2NDQKLS0tIGEvc3JjL0NoYW5nZUxvZwor KysgYi9zcmMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTQtMDMtMTMgIEJhcnJ5IE8n UmVpbGx5ICA8Z3VuZGFldGlhcG9AZ21haWwuY29tPgorCisJSGF2ZSAoTUFSS0VSIC4gQURKVVNU TUVOVCkgdW5kbyByZWNvcmRzIGFsd2F5cyBiZSBpbW1lZGlhdGVseQorCWFmdGVyIHRoZWlyIGNv cnJlc3BvbmRpbmcgKFRFWFQgLiBQT1MpIHJlY29yZCBpbiB1bmRvIGxpc3QuCisJKEJ1ZyMxNjgx OCkKKwkqIGxpc3AuaCAocmVjb3JkLWRlbGV0ZSk6IE5ldyBhcmcgcmVjb3JkX21hcmtlcnMuCisJ KHJlY29yZF9tYXJrZXJfYWRqdXN0bWVudCk6IE5vIGxvbmdlciBuZWVkZWQgb3V0c2lkZSB1bmRv LmMuCisJKiBpbnNkZWwuYyAoYWRqdXN0X21hcmtlcnNfZm9yX2RlbGV0ZSk6IE1vdmUgY2FsY3Vs YXRpb24gb2YgbWFya2VyCisJYWRqdXN0bWVudHMgdG8gdW5kby5jJ3MgcmVjb3JkX21hcmtlcl9h ZGp1c3RtZW50cy4gIE5vdGUgdGhhdAorCWZpbGVpby5jJ3MgZGVjaWRlX2NvZGluZ191bndpbmQg aXMgYW5vdGhlciBjYWxsZXIgdG8KKwlhZGp1c3RfbWFya2Vyc19mb3JfZGVsZXRlLiAgQmVjYXVz ZSBpdCBoYXMgdW5kbyBsaXN0IGJvdW5kIHRvIHQsCisJaXQgZG9lcyBub3QgcmVseSBvbiBhZGp1 c3RfbWFya2Vyc19mb3JfZGVsZXRlIHRvIHJlY29yZCBtYXJrZXIKKwlhZGp1c3RtZW50cy4KKwko ZGVsX3JhbmdlXzIpOiBTd2FwIGNhbGwgdG8gcmVjb3JkX2RlbGV0ZSBhbmQKKwlhZGp1c3RfbWFy a2Vyc19mb3JfZGVsZXRlIHNvIGFzIHVuZG8gbWFya2VyIGFkanVzdG1lbnRzIGFyZQorCXJlY29y ZGVkIGJlZm9yZSBjdXJyZW50IGRlbGV0aW9uJ3MgYWRqdXN0bWVudHMsIGFzIGJlZm9yZS4KKwko YWRqdXN0X2FmdGVyX3JlcGxhY2UpOgorCShyZXBsYWNlX3JhbmdlKTogUGFzcyB2YWx1ZSBmb3Ig bmV3IHJlY29yZF9tYXJrZXJzIGFyZyB0bworCWRlbGV0ZV9yZWNvcmQuCisJKiB1bmRvLmMgKHJl Y29yZF9tYXJrZXJfYWRqdXN0bWVudCk6IFJlbmFtZWQgdG8KKwlyZWNvcmRfbWFya2VyX2FkanVz dG1lbnRzIGFuZCBtYWRlIHN0YXRpYy4KKwkocmVjb3JkX2RlbGV0ZSk6IENoZWNrIHJlY29yZF9t YXJrZXJzIGFyZyBhbmQgY2FsbAorCXJlY29yZF9tYXJrZXJfYWRqdXN0bWVudHMuCisJKHJlY29y ZF9jaGFuZ2UpOiBQYXNzIHZhbHVlIGZvciBuZXcgcmVjb3JkX21hcmtlcnMgYXJnIHRvCisJZGVs ZXRlX3JlY29yZC4KKwkocmVjb3JkX3BvaW50KTogYXRfYm91bmRhcnkgY2FsY3VsYXRpb24gbm8g bG9uZ2VyIG5lZWRzIHRvIGFjY291bnQKKwlmb3IgbWFya2VyIGFkanVzdG1lbnRzLgorCiAyMDE0 LTAzLTEyICBNYXJ0aW4gUnVkYWxpY3MgIDxydWRhbGljc0BnbXguYXQ+CiAKIAkqIGZyYW1lLmMg KHhfc2V0X2ZyYW1lX3BhcmFtZXRlcnMpOiBBbHdheXMgY2FsY3VsYXRlIG5ldyBzaXplcwpkaWZm IC0tZ2l0IGEvc3JjL2luc2RlbC5jIGIvc3JjL2luc2RlbC5jCmluZGV4IDFjOWJhZmQuLmViMWFk NjIgMTAwNjQ0Ci0tLSBhL3NyYy9pbnNkZWwuYworKysgYi9zcmMvaW5zZGVsLmMKQEAgLTIzMywz NCArMjMzLDkgQEAgYWRqdXN0X21hcmtlcnNfZm9yX2RlbGV0ZSAocHRyZGlmZl90IGZyb20sIHB0 cmRpZmZfdCBmcm9tX2J5dGUsCiAgICAgICAvKiBIZXJlJ3MgdGhlIGNhc2Ugd2hlcmUgYSBtYXJr ZXIgaXMgaW5zaWRlIHRleHQgYmVpbmcgZGVsZXRlZC4gICovCiAgICAgICBlbHNlIGlmIChjaGFy cG9zID4gZnJvbSkKIAl7Ci0JICBpZiAoISBtLT5pbnNlcnRpb25fdHlwZSkKLQkgICAgeyAvKiBO b3JtYWwgbWFya2VycyB3aWxsIGVuZCB1cCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZQotCSAgICAg ICByZS1pbnNlcnRlZCB0ZXh0IGFmdGVyIHVuZG9pbmcgYSBkZWxldGlvbiwgYW5kIG11c3QgYmUK LQkgICAgICAgYWRqdXN0ZWQgdG8gbW92ZSB0aGVtIHRvIHRoZSBjb3JyZWN0IHBsYWNlLiAgKi8K LQkgICAgICBYU0VUTUlTQyAobWFya2VyLCBtKTsKLQkgICAgICByZWNvcmRfbWFya2VyX2FkanVz dG1lbnQgKG1hcmtlciwgZnJvbSAtIGNoYXJwb3MpOwotCSAgICB9Ci0JICBlbHNlIGlmIChjaGFy cG9zIDwgdG8pCi0JICAgIHsgLyogQmVmb3JlLWluc2VydGlvbiBtYXJrZXJzIHdpbGwgYXV0b21h dGljYWxseSBtb3ZlIGZvcndhcmQKLQkgICAgICAgdXBvbiByZS1pbnNlcnRpbmcgdGhlIGRlbGV0 ZWQgdGV4dCwgc28gd2UgaGF2ZSB0byBhcnJhbmdlCi0JICAgICAgIGZvciB0aGVtIHRvIG1vdmUg YmFja3dhcmQgdG8gdGhlIGNvcnJlY3QgcG9zaXRpb24uICAqLwotCSAgICAgIFhTRVRNSVNDICht YXJrZXIsIG0pOwotCSAgICAgIHJlY29yZF9tYXJrZXJfYWRqdXN0bWVudCAobWFya2VyLCB0byAt IGNoYXJwb3MpOwotCSAgICB9CiAJICBtLT5jaGFycG9zID0gZnJvbTsKIAkgIG0tPmJ5dGVwb3Mg PSBmcm9tX2J5dGU7CiAJfQotICAgICAgLyogSGVyZSdzIHRoZSBjYXNlIHdoZXJlIGEgYmVmb3Jl LWluc2VydGlvbiBtYXJrZXIgaXMgaW1tZWRpYXRlbHkKLQkgYmVmb3JlIHRoZSBkZWxldGVkIHJl Z2lvbi4gICovCi0gICAgICBlbHNlIGlmIChjaGFycG9zID09IGZyb20gJiYgbS0+aW5zZXJ0aW9u X3R5cGUpCi0JewotCSAgLyogVW5kb2luZyB0aGUgY2hhbmdlIHVzZXMgbm9ybWFsIGluc2VydGlv biwgd2hpY2ggd2lsbAotCSAgICAgaW5jb3JyZWN0bHkgbWFrZSBNQVJLRVIgbW92ZSBmb3J3YXJk LCBzbyB3ZSBhcnJhbmdlIGZvciBpdAotCSAgICAgdG8gdGhlbiBtb3ZlIGJhY2t3YXJkIHRvIHRo ZSBjb3JyZWN0IHBsYWNlIGF0IHRoZSBiZWdpbm5pbmcKLQkgICAgIG9mIHRoZSBkZWxldGVkIHJl Z2lvbi4gICovCi0JICBYU0VUTUlTQyAobWFya2VyLCBtKTsKLQkgIHJlY29yZF9tYXJrZXJfYWRq dXN0bWVudCAobWFya2VyLCB0byAtIGZyb20pOwotCX0KICAgICB9CiB9CiAKQEAgLTEyMTksNyAr MTE5NCw3IEBAIGFkanVzdF9hZnRlcl9yZXBsYWNlIChwdHJkaWZmX3QgZnJvbSwgcHRyZGlmZl90 IGZyb21fYnl0ZSwKIAkJCSAgICAgICBmcm9tICsgbGVuLCBmcm9tX2J5dGUgKyBsZW5fYnl0ZSwg MCk7CiAKICAgaWYgKG5jaGFyc19kZWwgPiAwKQotICAgIHJlY29yZF9kZWxldGUgKGZyb20sIHBy ZXZfdGV4dCk7CisgICAgcmVjb3JkX2RlbGV0ZSAoZnJvbSwgcHJldl90ZXh0LCBmYWxzZSk7CiAg IHJlY29yZF9pbnNlcnQgKGZyb20sIGxlbik7CiAKICAgaWYgKGxlbiA+IG5jaGFyc19kZWwpCkBA IC0xMzg0LDcgKzEzNTksNyBAQCByZXBsYWNlX3JhbmdlIChwdHJkaWZmX3QgZnJvbSwgcHRyZGlm Zl90IHRvLCBMaXNwX09iamVjdCBuZXcsCiAgIGlmICghTklMUCAoZGVsZXRpb24pKQogICAgIHsK ICAgICAgIHJlY29yZF9pbnNlcnQgKGZyb20gKyBTQ0hBUlMgKGRlbGV0aW9uKSwgaW5zY2hhcnMp OwotICAgICAgcmVjb3JkX2RlbGV0ZSAoZnJvbSwgZGVsZXRpb24pOworICAgICAgcmVjb3JkX2Rl bGV0ZSAoZnJvbSwgZGVsZXRpb24sIGZhbHNlKTsKICAgICB9CiAKICAgR0FQX1NJWkUgLT0gb3V0 Z29pbmdfaW5zYnl0ZXM7CkBAIC0xNzE2LDEzICsxNjkxLDE0IEBAIGRlbF9yYW5nZV8yIChwdHJk aWZmX3QgZnJvbSwgcHRyZGlmZl90IGZyb21fYnl0ZSwKICAgZWxzZQogICAgIGRlbGV0aW9uID0g UW5pbDsKIAotICAvKiBSZWxvY2F0ZSBhbGwgbWFya2VycyBwb2ludGluZyBpbnRvIHRoZSBuZXcs IGxhcmdlciBnYXAKLSAgICAgdG8gcG9pbnQgYXQgdGhlIGVuZCBvZiB0aGUgdGV4dCBiZWZvcmUg dGhlIGdhcC4KLSAgICAgRG8gdGhpcyBiZWZvcmUgcmVjb3JkaW5nIHRoZSBkZWxldGlvbiwKLSAg ICAgc28gdGhhdCB1bmRvIGhhbmRsZXMgdGhpcyBhZnRlciByZWluc2VydGluZyB0aGUgdGV4dC4g ICovCisgIC8qIFJlY29yZCBtYXJrZXIgYWRqdXN0bWVudHMsIGFuZCB0ZXh0IGRlbGV0aW9uIGlu dG8gdW5kbworICAgICBoaXN0b3J5LiAgKi8KKyAgcmVjb3JkX2RlbGV0ZSAoZnJvbSwgZGVsZXRp b24sIHRydWUpOworCisgIC8qIFJlbG9jYXRlIGFsbCBtYXJrZXJzIHBvaW50aW5nIGludG8gdGhl IG5ldywgbGFyZ2VyIGdhcCB0byBwb2ludAorICAgICBhdCB0aGUgZW5kIG9mIHRoZSB0ZXh0IGJl Zm9yZSB0aGUgZ2FwLiAgKi8KICAgYWRqdXN0X21hcmtlcnNfZm9yX2RlbGV0ZSAoZnJvbSwgZnJv bV9ieXRlLCB0bywgdG9fYnl0ZSk7CiAKLSAgcmVjb3JkX2RlbGV0ZSAoZnJvbSwgZGVsZXRpb24p OwogICBNT0RJRkYrKzsKICAgQ0hBUlNfTU9ESUZGID0gTU9ESUZGOwogCmRpZmYgLS1naXQgYS9z cmMvbGlzcC5oIGIvc3JjL2xpc3AuaAppbmRleCAyZjlhMzBmLi4zMGY1MmI5IDEwMDY0NAotLS0g YS9zcmMvbGlzcC5oCisrKyBiL3NyYy9saXNwLmgKQEAgLTQxOTgsOSArNDE5OCw4IEBAIGV4dGVy biB2b2lkIHN5bXNfb2ZfbWFjcm9zICh2b2lkKTsKIGV4dGVybiBMaXNwX09iamVjdCBRYXBwbHk7 CiBleHRlcm4gTGlzcF9PYmplY3QgUWluaGliaXRfcmVhZF9vbmx5OwogZXh0ZXJuIHZvaWQgdHJ1 bmNhdGVfdW5kb19saXN0IChzdHJ1Y3QgYnVmZmVyICopOwotZXh0ZXJuIHZvaWQgcmVjb3JkX21h cmtlcl9hZGp1c3RtZW50IChMaXNwX09iamVjdCwgcHRyZGlmZl90KTsKIGV4dGVybiB2b2lkIHJl Y29yZF9pbnNlcnQgKHB0cmRpZmZfdCwgcHRyZGlmZl90KTsKLWV4dGVybiB2b2lkIHJlY29yZF9k ZWxldGUgKHB0cmRpZmZfdCwgTGlzcF9PYmplY3QpOworZXh0ZXJuIHZvaWQgcmVjb3JkX2RlbGV0 ZSAocHRyZGlmZl90LCBMaXNwX09iamVjdCwgYm9vbCk7CiBleHRlcm4gdm9pZCByZWNvcmRfZmly c3RfY2hhbmdlICh2b2lkKTsKIGV4dGVybiB2b2lkIHJlY29yZF9jaGFuZ2UgKHB0cmRpZmZfdCwg cHRyZGlmZl90KTsKIGV4dGVybiB2b2lkIHJlY29yZF9wcm9wZXJ0eV9jaGFuZ2UgKHB0cmRpZmZf dCwgcHRyZGlmZl90LApkaWZmIC0tZ2l0IGEvc3JjL3VuZG8uYyBiL3NyYy91bmRvLmMKaW5kZXgg NzI4NmQ0MC4uMmRkZTAyYiAxMDA2NDQKLS0tIGEvc3JjL3VuZG8uYworKysgYi9zcmMvdW5kby5j CkBAIC03NSwyNyArNzUsOCBAQCByZWNvcmRfcG9pbnQgKHB0cmRpZmZfdCBwdCkKICAgICBGdW5k b19ib3VuZGFyeSAoKTsKICAgbGFzdF91bmRvX2J1ZmZlciA9IGN1cnJlbnRfYnVmZmVyOwogCi0g IGlmIChDT05TUCAoQlZBUiAoY3VycmVudF9idWZmZXIsIHVuZG9fbGlzdCkpKQotICAgIHsKLSAg ICAgIC8qIFNldCBBVF9CT1VOREFSWSBvbmx5IHdoZW4gd2UgaGF2ZSBub3RoaW5nIG90aGVyIHRo YW4KLSAgICAgICAgIG1hcmtlciBhZGp1c3RtZW50IGJlZm9yZSB1bmRvIGJvdW5kYXJ5LiAgKi8K LQotICAgICAgTGlzcF9PYmplY3QgdGFpbCA9IEJWQVIgKGN1cnJlbnRfYnVmZmVyLCB1bmRvX2xp c3QpLCBlbHQ7Ci0KLSAgICAgIHdoaWxlICgxKQotCXsKLQkgIGlmIChOSUxQICh0YWlsKSkKLQkg ICAgZWx0ID0gUW5pbDsKLQkgIGVsc2UKLQkgICAgZWx0ID0gWENBUiAodGFpbCk7Ci0JICBpZiAo TklMUCAoZWx0KSB8fCAhIChDT05TUCAoZWx0KSAmJiBNQVJLRVJQIChYQ0FSIChlbHQpKSkpCi0J ICAgIGJyZWFrOwotCSAgdGFpbCA9IFhDRFIgKHRhaWwpOwotCX0KLSAgICAgIGF0X2JvdW5kYXJ5 ID0gTklMUCAoZWx0KTsKLSAgICB9Ci0gIGVsc2UKLSAgICBhdF9ib3VuZGFyeSA9IDE7CisgIGF0 X2JvdW5kYXJ5ID0gISBDT05TUCAoQlZBUiAoY3VycmVudF9idWZmZXIsIHVuZG9fbGlzdCkpCisg ICAgICAgICAgICAgICAgfHwgTklMUCAoWENBUiAoQlZBUiAoY3VycmVudF9idWZmZXIsIHVuZG9f bGlzdCkpKTsKIAogICBpZiAoTU9ESUZGIDw9IFNBVkVfTU9ESUZGKQogICAgIHJlY29yZF9maXJz dF9jaGFuZ2UgKCk7CkBAIC0xNDcsMTEgKzEyOCw2MSBAQCByZWNvcmRfaW5zZXJ0IChwdHJkaWZm X3QgYmVnLCBwdHJkaWZmX3QgbGVuZ3RoKQogCQkgIEZjb25zIChGY29ucyAobGJlZywgbGVuZCks IEJWQVIgKGN1cnJlbnRfYnVmZmVyLCB1bmRvX2xpc3QpKSk7CiB9CiAKLS8qIFJlY29yZCB0aGF0 IGEgZGVsZXRpb24gaXMgYWJvdXQgdG8gdGFrZSBwbGFjZSwKLSAgIG9mIHRoZSBjaGFyYWN0ZXJz IGluIFNUUklORywgYXQgbG9jYXRpb24gQkVHLiAgKi8KKy8qIFJlY29yZCB0aGUgZmFjdCB0aGF0 IG1hcmtlcnMgaW4gdGhlIHJlZ2lvbiBvZiBGUk9NLCBUTyBhcmUgYWJvdXQgdG8KKyAgIGJlIGFk anVzdGVkLiAgVGhpcyBpcyBkb25lIG9ubHkgd2hlbiBhIG1hcmtlciBwb2ludHMgd2l0aGluIHRl eHQKKyAgIGJlaW5nIGRlbGV0ZWQsIGJlY2F1c2UgdGhhdCdzIHRoZSBvbmx5IGNhc2Ugd2hlcmUg YW4gYXV0b21hdGljCisgICBtYXJrZXIgYWRqdXN0bWVudCB3b24ndCBiZSBpbnZlcnRlZCBhdXRv bWF0aWNhbGx5IGJ5IHVuZG9pbmcgdGhlCisgICBidWZmZXIgbW9kaWZpY2F0aW9uLiAgKi8KKwor c3RhdGljIHZvaWQKK3JlY29yZF9tYXJrZXJfYWRqdXN0bWVudHMgKHB0cmRpZmZfdCBmcm9tLCBw dHJkaWZmX3QgdG8pCit7CisgIExpc3BfT2JqZWN0IG1hcmtlcjsKKyAgcmVnaXN0ZXIgc3RydWN0 IExpc3BfTWFya2VyICptOworICByZWdpc3RlciBwdHJkaWZmX3QgY2hhcnBvcywgYWRqdXN0bWVu dDsKKworICAvKiBBbGxvY2F0ZSBhIGNvbnMgY2VsbCB0byBiZSB0aGUgdW5kbyBib3VuZGFyeSBh ZnRlciB0aGlzIGNvbW1hbmQuICAqLworICBpZiAoTklMUCAocGVuZGluZ19ib3VuZGFyeSkpCisg ICAgcGVuZGluZ19ib3VuZGFyeSA9IEZjb25zIChRbmlsLCBRbmlsKTsKKworICBpZiAoY3VycmVu dF9idWZmZXIgIT0gbGFzdF91bmRvX2J1ZmZlcikKKyAgICBGdW5kb19ib3VuZGFyeSAoKTsKKyAg bGFzdF91bmRvX2J1ZmZlciA9IGN1cnJlbnRfYnVmZmVyOworCisgIGZvciAobSA9IEJVRl9NQVJL RVJTIChjdXJyZW50X2J1ZmZlcik7IG07IG0gPSBtLT5uZXh0KQorICAgIHsKKyAgICAgIGNoYXJw b3MgPSBtLT5jaGFycG9zOworICAgICAgZWFzc2VydCAoY2hhcnBvcyA8PSBaKTsKKworICAgICAg aWYgKGZyb20gPD0gY2hhcnBvcyAmJiBjaGFycG9zIDw9IHRvKQorICAgICAgICB7CisgICAgICAg ICAgLyogaW5zZXJ0aW9uX3R5cGUgbmlsIG1hcmtlcnMgd2lsbCBlbmQgdXAgYXQgdGhlIGJlZ2lu bmluZyBvZgorICAgICAgICAgICAgIHRoZSByZS1pbnNlcnRlZCB0ZXh0IGFmdGVyIHVuZG9pbmcg YSBkZWxldGlvbiwgYW5kIG11c3QgYmUKKyAgICAgICAgICAgICBhZGp1c3RlZCB0byBtb3ZlIHRo ZW0gdG8gdGhlIGNvcnJlY3QgcGxhY2UuCisKKyAgICAgICAgICAgICBpbnNlcnRpb25fdHlwZSB0 IG1hcmtlcnMgd2lsbCBhdXRvbWF0aWNhbGx5IG1vdmUgZm9yd2FyZAorICAgICAgICAgICAgIHVw b24gcmUtaW5zZXJ0aW5nIHRoZSBkZWxldGVkIHRleHQsIHNvIHdlIGhhdmUgdG8gYXJyYW5nZQor ICAgICAgICAgICAgIGZvciB0aGVtIHRvIG1vdmUgYmFja3dhcmQgdG8gdGhlIGNvcnJlY3QgcG9z aXRpb24uICAqLworICAgICAgICAgIGFkanVzdG1lbnQgPSAobS0+aW5zZXJ0aW9uX3R5cGUgPyB0 byA6IGZyb20pIC0gY2hhcnBvczsKKworICAgICAgICAgIGlmIChhZGp1c3RtZW50KQorICAgICAg ICAgICAgeworICAgICAgICAgICAgICBYU0VUTUlTQyAobWFya2VyLCBtKTsKKyAgICAgICAgICAg ICAgYnNldF91bmRvX2xpc3QKKyAgICAgICAgICAgICAgICAoY3VycmVudF9idWZmZXIsCisgICAg ICAgICAgICAgICAgIEZjb25zIChGY29ucyAobWFya2VyLCBtYWtlX251bWJlciAoYWRqdXN0bWVu dCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgQlZBUiAoY3VycmVudF9idWZmZXIsIHVuZG9f bGlzdCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworLyogUmVjb3Jk IHRoYXQgYSBkZWxldGlvbiBpcyBhYm91dCB0byB0YWtlIHBsYWNlLCBvZiB0aGUgY2hhcmFjdGVy cyBpbgorICAgU1RSSU5HLCBhdCBsb2NhdGlvbiBCRUcuICBPcHRpb25hbGx5IHJlY29yZCBhZGp1 c3RtZW50cyBmb3IgbWFya2VycworICAgaW4gdGhlIHJlZ2lvbiBTVFJJTkcgb2NjdXBpZXMgaW4g dGhlIGN1cnJlbnQgYnVmZmVyLiAgKi8KIAogdm9pZAotcmVjb3JkX2RlbGV0ZSAocHRyZGlmZl90 IGJlZywgTGlzcF9PYmplY3Qgc3RyaW5nKQorcmVjb3JkX2RlbGV0ZSAocHRyZGlmZl90IGJlZywg TGlzcF9PYmplY3Qgc3RyaW5nLCBib29sIHJlY29yZF9tYXJrZXJzKQogewogICBMaXNwX09iamVj dCBzYmVnOwogCkBAIC0xNjksMzQgKzIwMCwxNSBAQCByZWNvcmRfZGVsZXRlIChwdHJkaWZmX3Qg YmVnLCBMaXNwX09iamVjdCBzdHJpbmcpCiAgICAgICByZWNvcmRfcG9pbnQgKGJlZyk7CiAgICAg fQogCi0gIGJzZXRfdW5kb19saXN0Ci0gICAgKGN1cnJlbnRfYnVmZmVyLAotICAgICBGY29ucyAo RmNvbnMgKHN0cmluZywgc2JlZyksIEJWQVIgKGN1cnJlbnRfYnVmZmVyLCB1bmRvX2xpc3QpKSk7 Ci19Ci0KLS8qIFJlY29yZCB0aGUgZmFjdCB0aGF0IE1BUktFUiBpcyBhYm91dCB0byBiZSBhZGp1 c3RlZCBieSBBREpVU1RNRU5ULgotICAgVGhpcyBpcyBkb25lIG9ubHkgd2hlbiBhIG1hcmtlciBw b2ludHMgd2l0aGluIHRleHQgYmVpbmcgZGVsZXRlZCwKLSAgIGJlY2F1c2UgdGhhdCdzIHRoZSBv bmx5IGNhc2Ugd2hlcmUgYW4gYXV0b21hdGljIG1hcmtlciBhZGp1c3RtZW50Ci0gICB3b24ndCBi ZSBpbnZlcnRlZCBhdXRvbWF0aWNhbGx5IGJ5IHVuZG9pbmcgdGhlIGJ1ZmZlciBtb2RpZmljYXRp b24uICAqLwotCi12b2lkCi1yZWNvcmRfbWFya2VyX2FkanVzdG1lbnQgKExpc3BfT2JqZWN0IG1h cmtlciwgcHRyZGlmZl90IGFkanVzdG1lbnQpCi17Ci0gIGlmIChFUSAoQlZBUiAoY3VycmVudF9i dWZmZXIsIHVuZG9fbGlzdCksIFF0KSkKLSAgICByZXR1cm47Ci0KLSAgLyogQWxsb2NhdGUgYSBj b25zIGNlbGwgdG8gYmUgdGhlIHVuZG8gYm91bmRhcnkgYWZ0ZXIgdGhpcyBjb21tYW5kLiAgKi8K LSAgaWYgKE5JTFAgKHBlbmRpbmdfYm91bmRhcnkpKQotICAgIHBlbmRpbmdfYm91bmRhcnkgPSBG Y29ucyAoUW5pbCwgUW5pbCk7Ci0KLSAgaWYgKGN1cnJlbnRfYnVmZmVyICE9IGxhc3RfdW5kb19i dWZmZXIpCi0gICAgRnVuZG9fYm91bmRhcnkgKCk7Ci0gIGxhc3RfdW5kb19idWZmZXIgPSBjdXJy ZW50X2J1ZmZlcjsKKyAgLyogcHJpbWl0aXZlLXVuZG8gYXNzdW1lcyBtYXJrZXIgYWRqdXN0bWVu dHMgYXJlIHJlY29yZGVkCisgICAgIGltbWVkaWF0ZWx5IGJlZm9yZSB0aGUgZGVsZXRpb24gaXMg cmVjb3JkZWQuICBTZWUgYnVnIDE2ODE4CisgICAgIGRpc2N1c3Npb24uICAqLworICBpZiAocmVj b3JkX21hcmtlcnMpCisgICAgcmVjb3JkX21hcmtlcl9hZGp1c3RtZW50cyAoYmVnLCBiZWcgKyBT Q0hBUlMgKHN0cmluZykpOwogCiAgIGJzZXRfdW5kb19saXN0CiAgICAgKGN1cnJlbnRfYnVmZmVy LAotICAgICBGY29ucyAoRmNvbnMgKG1hcmtlciwgbWFrZV9udW1iZXIgKGFkanVzdG1lbnQpKSwK LQkgICAgQlZBUiAoY3VycmVudF9idWZmZXIsIHVuZG9fbGlzdCkpKTsKKyAgICAgRmNvbnMgKEZj b25zIChzdHJpbmcsIHNiZWcpLCBCVkFSIChjdXJyZW50X2J1ZmZlciwgdW5kb19saXN0KSkpOwog fQogCiAvKiBSZWNvcmQgdGhhdCBhIHJlcGxhY2VtZW50IGlzIGFib3V0IHRvIHRha2UgcGxhY2Us CkBAIC0yMDYsNyArMjE4LDcgQEAgcmVjb3JkX21hcmtlcl9hZGp1c3RtZW50IChMaXNwX09iamVj dCBtYXJrZXIsIHB0cmRpZmZfdCBhZGp1c3RtZW50KQogdm9pZAogcmVjb3JkX2NoYW5nZSAocHRy ZGlmZl90IGJlZywgcHRyZGlmZl90IGxlbmd0aCkKIHsKLSAgcmVjb3JkX2RlbGV0ZSAoYmVnLCBt YWtlX2J1ZmZlcl9zdHJpbmcgKGJlZywgYmVnICsgbGVuZ3RoLCAxKSk7CisgIHJlY29yZF9kZWxl dGUgKGJlZywgbWFrZV9idWZmZXJfc3RyaW5nIChiZWcsIGJlZyArIGxlbmd0aCwgMSksIGZhbHNl KTsKICAgcmVjb3JkX2luc2VydCAoYmVnLCBsZW5ndGgpOwogfQogDApkaWZmIC0tZ2l0IGEvdGVz dC9DaGFuZ2VMb2cgYi90ZXN0L0NoYW5nZUxvZwppbmRleCBjODcwMjJjLi5jYmY5ZWFhIDEwMDY0 NAotLS0gYS90ZXN0L0NoYW5nZUxvZworKysgYi90ZXN0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEx IEBACisyMDE0LTAzLTEzICBCYXJyeSBPJ1JlaWxseSAgPGd1bmRhZXRpYXBvQGdtYWlsLmNvbT4K KworCSogdW5kby10ZXN0cy5lbCAodW5kby10ZXN0LW1hcmtlci1hZGp1c3RtZW50LW5vbWluYWwp OgorCSh1bmRvLXRlc3QtcmVnaW9uLXQtbWFya2VyKTogTmV3IHRlc3RzIG9mIG1hcmtlciBhZGp1 c3RtZW50cy4KKwkodW5kby10ZXN0LW1hcmtlci1hZGp1c3RtZW50LW1vdmVkKToKKwkodW5kby10 ZXN0LXJlZ2lvbi1tYXJrLWFkanVzdG1lbnQpOiBOZXcgdGVzdHMgdG8gZGVtb25zdHJhdGUKKwli dWcjMTY4MTgsIHdoaWNoIGZhaWwgd2l0aG91dCB0aGUgZml4LgorCiAyMDE0LTAzLTA3ICBNaWNo YWVsIEFsYmludXMgIDxtaWNoYWVsLmFsYmludXNAZ214LmRlPgogCiAJKiBhdXRvbWF0ZWQvdHJh bXAtdGVzdHMuZWwgKHRyYW1wLWNvcHktc2l6ZS1saW1pdCk6IERlY2xhcmUuCmRpZmYgLS1naXQg YS90ZXN0L2F1dG9tYXRlZC91bmRvLXRlc3RzLmVsIGIvdGVzdC9hdXRvbWF0ZWQvdW5kby10ZXN0 cy5lbAppbmRleCA4YTk2M2YxLi42ZWNhYzM2IDEwMDY0NAotLS0gYS90ZXN0L2F1dG9tYXRlZC91 bmRvLXRlc3RzLmVsCisrKyBiL3Rlc3QvYXV0b21hdGVkL3VuZG8tdGVzdHMuZWwKQEAgLTI2OCw2 ICsyNjgsMTA0IEBACiAgICAgKHNob3VsZCAoc3RyaW5nPSAoYnVmZmVyLXN0cmluZykKICAgICAg ICAgICAgICAgICAgICAgICJUaGlzIHNlbnRlbmNlIGNvcnJ1cHRlZD9hYWEiKSkpKQogCisoZXJ0 LWRlZnRlc3QgdW5kby10ZXN0LW1hcmtlci1hZGp1c3RtZW50LW5vbWluYWwgKCkKKyAgIlRlc3Qg bm9taW5hbCBiZWhhdmlvciBvZiBtYXJrZXIgYWRqdXN0bWVudHMuIgorICAod2l0aC10ZW1wLWJ1 ZmZlcgorICAgIChidWZmZXItZW5hYmxlLXVuZG8pCisgICAgKGluc2VydCAiYWJjZGVmZyIpCisg ICAgKHVuZG8tYm91bmRhcnkpCisgICAgKGxldCAoKG0gKG1ha2UtbWFya2VyKSkpCisgICAgICAo c2V0LW1hcmtlciBtIDIgKGN1cnJlbnQtYnVmZmVyKSkKKyAgICAgIChnb3RvLWNoYXIgKHBvaW50 LW1pbikpCisgICAgICAoZGVsZXRlLWZvcndhcmQtY2hhciAzKQorICAgICAgKHVuZG8tYm91bmRh cnkpCisgICAgICAoc2hvdWxkICg9IChwb2ludC1taW4pIChtYXJrZXItcG9zaXRpb24gbSkpKQor ICAgICAgKHVuZG8pCisgICAgICAodW5kby1ib3VuZGFyeSkKKyAgICAgIChzaG91bGQgKD0gMiAo bWFya2VyLXBvc2l0aW9uIG0pKSkpKSkKKworKGVydC1kZWZ0ZXN0IHVuZG8tdGVzdC1yZWdpb24t dC1tYXJrZXIgKCkKKyAgIlRlc3QgdW5kbyBpbiByZWdpb24gY29udGFpbmluZyBtYXJrZXIgd2l0 aCB0IGluc2VydGlvbi10eXBlLiIKKyAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAoYnVmZmVyLWVu YWJsZS11bmRvKQorICAgICh0cmFuc2llbnQtbWFyay1tb2RlIDEpCisgICAgKGluc2VydCAiYWJj ZGVmZyIpCisgICAgKHVuZG8tYm91bmRhcnkpCisgICAgKGxldCAoKG0gKG1ha2UtbWFya2VyKSkp CisgICAgICAoc2V0LW1hcmtlci1pbnNlcnRpb24tdHlwZSBtIHQpCisgICAgICAoc2V0LW1hcmtl ciBtIChwb2ludC1taW4pIChjdXJyZW50LWJ1ZmZlcikpIDsgbSBhdCBhCisgICAgICAoZ290by1j aGFyICgrIDIgKHBvaW50LW1pbikpKQorICAgICAgKHB1c2gtbWFyayAocG9pbnQpIHQgdCkKKyAg ICAgIChzZXRxIG1hcmstYWN0aXZlIHQpCisgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQor ICAgICAgKGRlbGV0ZS1mb3J3YXJkLWNoYXIgMSkgOzsgZGVsZXRlIHJlZ2lvbiBjb3ZlcmluZyAi YWIiCisgICAgICAodW5kby1ib3VuZGFyeSkKKyAgICAgIChzaG91bGQgKD0gKHBvaW50LW1pbikg KG1hcmtlci1wb3NpdGlvbiBtKSkpCisgICAgICA7OyBSZXN1cnJlY3QgImFiIi4gbSdzIGluc2Vy dGlvbiB0eXBlIG1lYW5zIHRoZSByZWluc2VydGlvbgorICAgICAgOzsgbW92ZXMgaXQgZm9yd2Fy ZCAyLCBhbmQgdGhlbiB0aGUgbWFya2VyIGFkanVzdG1lbnQgcmV0dXJucyBpdAorICAgICAgOzsg dG8gaXRzIHJpZ2h0ZnVsIHBsYWNlLgorICAgICAgKHVuZG8pCisgICAgICAodW5kby1ib3VuZGFy eSkKKyAgICAgIChzaG91bGQgKD0gKHBvaW50LW1pbikgKG1hcmtlci1wb3NpdGlvbiBtKSkpKSkp CisKKyhlcnQtZGVmdGVzdCB1bmRvLXRlc3QtbWFya2VyLWFkanVzdG1lbnQtbW92ZWQgKCkKKyAg IlRlc3QgbWFya2VyIGFkanVzdG1lbnQgYmVoYXZpb3Igd2hlbiB0aGUgbWFya2VyIG1vdmVzLgor RGVtb25zdHJhdGVzIGJ1ZyAxNjgxOC4iCisgICh3aXRoLXRlbXAtYnVmZmVyCisgICAgKGJ1ZmZl ci1lbmFibGUtdW5kbykKKyAgICAoaW5zZXJ0ICJhYmNkZWZnaGlqayIpCisgICAgKHVuZG8tYm91 bmRhcnkpCisgICAgKGxldCAoKG0gKG1ha2UtbWFya2VyKSkpCisgICAgICAoc2V0LW1hcmtlciBt IDIgKGN1cnJlbnQtYnVmZmVyKSkgOyBtIGF0IGIKKyAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1p bikpCisgICAgICAoZGVsZXRlLWZvcndhcmQtY2hhciAzKSA7IG0gYXQgZAorICAgICAgKHVuZG8t Ym91bmRhcnkpCisgICAgICAoc2V0LW1hcmtlciBtIDQpIDsgbSBhdCBnCisgICAgICAodW5kbykK KyAgICAgICh1bmRvLWJvdW5kYXJ5KQorICAgICAgOzsgbSBzdGlsbCBhdCBnLCBidXQgc2hpZnRl ZCAzIGJlY2F1c2UgZGVsZXRpb24gdW5kb25lCisgICAgICAoc2hvdWxkICg9IDcgKG1hcmtlci1w b3NpdGlvbiBtKSkpKSkpCisKKyhlcnQtZGVmdGVzdCB1bmRvLXRlc3QtcmVnaW9uLW1hcmstYWRq dXN0bWVudCAoKQorICAiVGVzdCB0aGF0IHRoZSBtYXJrJ3MgbWFya2VyIGFkanVzdG1lbnQgaW4g dW5kbyBoaXN0b3J5IGRvZXNuJ3QKK29ic3RydWN0IHVuZG8gaW4gcmVnaW9uIGZyb20gZmluZGlu ZyB0aGUgY29ycmVjdCBjaGFuZ2UgZ3JvdXAuCitEZW1vbnN0cmF0ZXMgYnVnIDE2ODE4LiIKKyAg KHdpdGgtdGVtcC1idWZmZXIKKyAgICAoYnVmZmVyLWVuYWJsZS11bmRvKQorICAgICh0cmFuc2ll bnQtbWFyay1tb2RlIDEpCisgICAgKGluc2VydCAiRmlyc3QgbGluZVxuIikKKyAgICAoaW5zZXJ0 ICJTZWNvbmQgbGluZVxuIikKKyAgICAodW5kby1ib3VuZGFyeSkKKworICAgIChnb3RvLWNoYXIg KHBvaW50LW1pbikpCisgICAgKGluc2VydCAiYWFhIikKKyAgICAodW5kby1ib3VuZGFyeSkKKwor ICAgICh1bmRvKQorICAgICh1bmRvLWJvdW5kYXJ5KQorCisgICAgKGdvdG8tY2hhciAocG9pbnQt bWF4KSkKKyAgICAoaW5zZXJ0ICJiYmIiKQorICAgICh1bmRvLWJvdW5kYXJ5KQorCisgICAgKHB1 c2gtbWFyayAocG9pbnQpIHQgdCkKKyAgICAoc2V0cSBtYXJrLWFjdGl2ZSB0KQorICAgIChnb3Rv LWNoYXIgKC0gKHBvaW50KSAzKSkKKyAgICAoZGVsZXRlLWZvcndhcmQtY2hhciAxKQorICAgICh1 bmRvLWJvdW5kYXJ5KQorCisgICAgKGluc2VydCAiYmJiIikKKyAgICAodW5kby1ib3VuZGFyeSkK KworICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgKHB1c2gtbWFyayAocG9pbnQpIHQg dCkKKyAgICAoc2V0cSBtYXJrLWFjdGl2ZSB0KQorICAgIChnb3RvLWNoYXIgKCsgKHBvaW50KSAz KSkKKyAgICAodW5kbykKKyAgICAodW5kby1ib3VuZGFyeSkKKworICAgIChzaG91bGQgKHN0cmlu Zz0gKGJ1ZmZlci1zdHJpbmcpICJhYWFGaXJzdCBsaW5lXG5TZWNvbmQgbGluZVxuYmJiIikpKSkK KwogKGRlZnVuIHVuZG8tdGVzdC1hbGwgKCZvcHRpb25hbCBpbnRlcmFjdGl2ZSkKICAgIlJ1biBh bGwgdGVzdHMgZm9yIFxcW3VuZG9dLiIKICAgKGludGVyYWN0aXZlICJwIikK --089e0116019c131fcc04f5618169-- From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 24 21:29:04 2014 Received: (at 16818) by debbugs.gnu.org; 25 Mar 2014 01:29:04 +0000 Received: from localhost ([127.0.0.1]:48242 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WSGAq-0001gh-0a for submit@debbugs.gnu.org; Mon, 24 Mar 2014 21:29:04 -0400 Received: from chene.dit.umontreal.ca ([132.204.246.20]:53232) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WSGAn-0001gK-Lx for 16818@debbugs.gnu.org; Mon, 24 Mar 2014 21:29:02 -0400 Received: from pastel.home (lechon.iro.umontreal.ca [132.204.27.242]) by chene.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id s2P1TIjE012732; Mon, 24 Mar 2014 21:29:18 -0400 Received: by pastel.home (Postfix, from userid 20848) id D9DD1600AF; Mon, 24 Mar 2014 21:28:59 -0400 (EDT) From: Stefan To: Barry OReilly Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) Message-ID: References: Date: Mon, 24 Mar 2014 21:28:59 -0400 In-Reply-To: (Barry OReilly's message of "Mon, 24 Mar 2014 18:10:30 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-NAI-Spam-Flag: NO X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0 X-NAI-Spam-Rules: 1 Rules triggered RV4891=0 X-NAI-Spam-Version: 2.3.0.9362 : core <4891> : inlines <642> : streams <1144126> : uri <1708957> X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org, toby-undo-tree@dr-qubit.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) >> Begs the question: why didn't (don't) we record marker adjustments >> here (and other similar places)? > I considered pursuing that question earlier, but opted for those > callers to behave as before, at least for now. Yes, it's definitely not for `emacs-24' in any case. > I've attached the updated patch with your comments incorporated. I'll > install soon. Thank you, Stefan From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 24 22:32:16 2014 Received: (at 16818) by debbugs.gnu.org; 25 Mar 2014 02:32:16 +0000 Received: from localhost ([127.0.0.1]:48290 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WSH9z-0004IT-Po for submit@debbugs.gnu.org; Mon, 24 Mar 2014 22:32:16 -0400 Received: from mail-oa0-f52.google.com ([209.85.219.52]:57804) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WSH9x-0004II-KS for 16818@debbugs.gnu.org; Mon, 24 Mar 2014 22:32:14 -0400 Received: by mail-oa0-f52.google.com with SMTP id l6so6768517oag.25 for <16818@debbugs.gnu.org>; Mon, 24 Mar 2014 19:32:12 -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=Gx6i3P5bRJBqMujpsVghLZcdfiI9XvWyITkBwxVMAAI=; b=nAtOhc+h8rYhQXi4nfVuYlpa42fIxlydRfQll4oq1CNiQIX+U19IDkMHqtEISnrZCe bdKVo8JDMQ+YBvmv1eI78r/yO/urZZFnAdnaNV7zgpWmUeO6k3HntHIehQy/Vo1OH8bw 8lFCRLFYuAN/696feEtNAeXC5aAwP04SH+0dq/1xxpqOP3cFzoN1rA3IrovSo481YYur FDUd0hCTz0+SoW/80WjqP2X9PuRVUrctX/pKfzrO4BX3T0TSdZm8RhjeSTWX5KgHbYrR g1WacLtOMsVv4r3P6h7un4aY0nfVfv7EkMsVDfT4/aPCZs2t9A764G+sDkjbfznXZYU5 XBQA== MIME-Version: 1.0 X-Received: by 10.182.2.170 with SMTP id 10mr5114698obv.50.1395714732865; Mon, 24 Mar 2014 19:32:12 -0700 (PDT) Received: by 10.76.6.44 with HTTP; Mon, 24 Mar 2014 19:32:12 -0700 (PDT) In-Reply-To: References: Date: Mon, 24 Mar 2014 22:32:12 -0400 Message-ID: Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) From: Barry OReilly To: Stefan Content-Type: multipart/alternative; boundary=f46d0444ea99dc3e7404f5652806 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org, toby-undo-tree@dr-qubit.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --f46d0444ea99dc3e7404f5652806 Content-Type: text/plain; charset=ISO-8859-1 Rev 116855. Leaving bug open because of mark ring issue. --f46d0444ea99dc3e7404f5652806 Content-Type: text/html; charset=ISO-8859-1
Rev 116855. Leaving bug open because of mark ring issue.

--f46d0444ea99dc3e7404f5652806-- From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 09 08:25:15 2020 Received: (at 16818) by debbugs.gnu.org; 9 Sep 2020 12:25:15 +0000 Received: from localhost ([127.0.0.1]:57660 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kFzA3-0001Ut-BP for submit@debbugs.gnu.org; Wed, 09 Sep 2020 08:25:15 -0400 Received: from quimby.gnus.org ([95.216.78.240]:53512) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kFzA0-0001Uc-No for 16818@debbugs.gnu.org; Wed, 09 Sep 2020 08:25:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=xxJQFqeg4VMDL5mwzdqU3XjrSmzeYBESSZ03cE/jIi4=; b=rtFCUGPl4PhIQXQ4wWQTSguOIi DHeFBfgIuTcUuSRQ6o3UbHXUDC7zMZv+d3kNkUZKk3S4Oyw79lQpTAmu1NZcRZuJXoE9bD3M8M/iV YZ2ESlYqIKYwdpq2tf9MhSiYAFO4cINN4oYkDNNTqgzm155KVYidx/bF/dKwPmacGfYI=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kFz9q-0002TZ-Iw; Wed, 09 Sep 2020 14:25:05 +0200 From: Lars Ingebrigtsen To: Barry OReilly Subject: Re: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) References: X-Now-Playing: Jay Glass Dubs's _Epitaph_: "A New Model For Emulation" Date: Wed, 09 Sep 2020 14:25:00 +0200 In-Reply-To: (Barry OReilly's message of "Mon, 24 Mar 2014 22:32:12 -0400") Message-ID: <87lfhjb0ir.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Barry OReilly writes: > Rev 116855. Leaving bug open because of mark ring issue. Skimming this bug report, it's not quite clear what the "mark ring" issue is. Is there more to be fixed here, or should the bug report be closed? Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org, Stefan , toby-undo-tree@dr-qubit.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Barry OReilly writes: > Rev 116855. Leaving bug open because of mark ring issue. Skimming this bug report, it's not quite clear what the "mark ring" issue is. Is there more to be fixed here, or should the bug report be closed? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 09 08:25:19 2020 Received: (at control) by debbugs.gnu.org; 9 Sep 2020 12:25:19 +0000 Received: from localhost ([127.0.0.1]:57663 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kFzA6-0001VG-MB for submit@debbugs.gnu.org; Wed, 09 Sep 2020 08:25:18 -0400 Received: from quimby.gnus.org ([95.216.78.240]:53526) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kFzA5-0001Uk-2y for control@debbugs.gnu.org; Wed, 09 Sep 2020 08:25:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=6GEuzw1AKRUgyTrQwY+3oXCyW5m+rcS19Ey1hGeJ6d0=; b=irKYril55iDp6n5ZaOinBJhFg0 gZUm0qqIHeNux6tAwml58+PltJRoQ7PYY3p7vaMjo+E5ZMGcRViIrLDl7WD8aqWODsSnIvKik+KpZ nzrI8p2ZaFpewoxOVmq7OzL6HsuakLu+PLL/4gA0GqYFCmb9uML+xP0v4YMuwCzjoTZg=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kFz9x-0002Tk-7z for control@debbugs.gnu.org; Wed, 09 Sep 2020 14:25:11 +0200 Date: Wed, 09 Sep 2020 14:25:08 +0200 Message-Id: <87k0x3b0ij.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #16818 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: tags 16818 + moreinfo quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) tags 16818 + moreinfo quit From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 06 10:57:40 2020 Received: (at 16818) by debbugs.gnu.org; 6 Dec 2020 15:57:40 +0000 Received: from localhost ([127.0.0.1]:50875 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1klwPs-0001Fs-Fs for submit@debbugs.gnu.org; Sun, 06 Dec 2020 10:57:40 -0500 Received: from quimby.gnus.org ([95.216.78.240]:54778) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1klwPq-0001FO-C0 for 16818@debbugs.gnu.org; Sun, 06 Dec 2020 10:57:38 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=TMK2+XNsbZ44U9W31xGSuiLLwOI9FF8C93Xj1USacYQ=; b=gnPeodXiv6GX8FCqOtacmKJh5y Tg/ivZWNl79eUEvSYIXx7mLjQWzYmGG6oFV9VCvJoTulOOqCzzBiiuDqb+fuw4J2rqz4dl0ZXtjsp uebyg3tWwv5iOj3TFa+ROLml8O1tMQOVGvFL5m4GA9wtzMHqNd9wd8wN+xDPR7RUICE8=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1klwPa-0005kX-E3; Sun, 06 Dec 2020 16:57:25 +0100 From: Lars Ingebrigtsen To: Barry OReilly Subject: Re: bug#16818: Undo in region after markers in undo history relocated References: <87lfhjb0ir.fsf@gnus.org> X-Now-Playing: Magnus Granberg & Skogen's _Let Pass My Weary Guiltless Ghost_: "Let Pass My Weary Guiltless Ghost" Date: Sun, 06 Dec 2020 16:57:21 +0100 In-Reply-To: <87lfhjb0ir.fsf@gnus.org> (Lars Ingebrigtsen's message of "Wed, 09 Sep 2020 14:25:00 +0200") Message-ID: <87360j7wri.fsf_-_@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Lars Ingebrigtsen writes: > Barry OReilly writes: > >> Rev 116855. Leaving bug open because of mark ring issue. > > Skimming this bug report, it's not quite clear what the "mark ring" > issue is. Is the [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 16818 Cc: 16818@debbugs.gnu.org, Stefan , toby-undo-tree@dr-qubit.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Lars Ingebrigtsen writes: > Barry OReilly writes: > >> Rev 116855. Leaving bug open because of mark ring issue. > > Skimming this bug report, it's not quite clear what the "mark ring" > issue is. Is there more to be fixed here, or should the bug report be > closed? More information was requested, but none was received, so I'm closing this bug report. If this is still an issue, please respond to the debbugs address and we'll reopen the report. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 06 10:57:38 2020 Received: (at control) by debbugs.gnu.org; 6 Dec 2020 15:57:38 +0000 Received: from localhost ([127.0.0.1]:50872 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1klwPq-0001Fe-5l for submit@debbugs.gnu.org; Sun, 06 Dec 2020 10:57:38 -0500 Received: from quimby.gnus.org ([95.216.78.240]:54776) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1klwPo-0001FM-ND for control@debbugs.gnu.org; Sun, 06 Dec 2020 10:57:37 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=ixsRWUn9B/cGPPOOolrzkVS5Mbmfsu8IBgEb+wdjC4M=; b=gQveEGVUMfLe2hHtItQzRt54v2 7DyitxCII3/mOUqGiu9GKj/Aa5v+6LgPejAVCU2dOElT/7A5zoMbyd4LpIDWOOEMb0k/fqomTzJJR cmDygYkBkOc10WbQZDLjbhsINyP/nI75jLwW1r3YdUPMZAUX1oPW2R8m1iO18gAoK1Pk=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1klwPg-0005ke-Sd for control@debbugs.gnu.org; Sun, 06 Dec 2020 16:57:31 +0100 Date: Sun, 06 Dec 2020 16:57:27 +0100 Message-Id: <871rg37wrc.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #16818 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: close 16818 quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) close 16818 quit From unknown Mon Jun 23 07:47:42 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 04 Jan 2021 12:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator