From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Barry OReilly Newsgroups: gmane.emacs.bugs Subject: bug#14281: 24.3; replace-match leaves point at wrong place Date: Fri, 10 May 2013 14:19:24 -0400 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=047d7b47249ef55abd04dc6134ad X-Trace: ger.gmane.org 1368209999 15429 80.91.229.3 (10 May 2013 18:19:59 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 10 May 2013 18:19:59 +0000 (UTC) To: 14281@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri May 10 20:19:57 2013 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UarvB-0003Ag-Cg for geb-bug-gnu-emacs@m.gmane.org; Fri, 10 May 2013 20:19:57 +0200 Original-Received: from localhost ([::1]:34719 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UarvA-00085I-Vt for geb-bug-gnu-emacs@m.gmane.org; Fri, 10 May 2013 14:19:56 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:57374) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uarv6-00082s-P5 for bug-gnu-emacs@gnu.org; Fri, 10 May 2013 14:19:53 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Uarv5-00079v-I4 for bug-gnu-emacs@gnu.org; Fri, 10 May 2013 14:19:52 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:60008) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uarv5-00079n-EF for bug-gnu-emacs@gnu.org; Fri, 10 May 2013 14:19:51 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1UarvG-0001ZS-0e for bug-gnu-emacs@gnu.org; Fri, 10 May 2013 14:20:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Barry OReilly Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 10 May 2013 18:20:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14281 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 14281-submit@debbugs.gnu.org id=B14281.13682099795983 (code B ref 14281); Fri, 10 May 2013 18:20:01 +0000 Original-Received: (at 14281) by debbugs.gnu.org; 10 May 2013 18:19:39 +0000 Original-Received: from localhost ([127.0.0.1]:35884 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Uarut-0001YS-86 for submit@debbugs.gnu.org; Fri, 10 May 2013 14:19:39 -0400 Original-Received: from mail-oa0-f43.google.com ([209.85.219.43]:35381) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Uarur-0001YL-0R for 14281@debbugs.gnu.org; Fri, 10 May 2013 14:19:38 -0400 Original-Received: by mail-oa0-f43.google.com with SMTP id o6so5308990oag.30 for <14281@debbugs.gnu.org>; Fri, 10 May 2013 11:19:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:content-type; bh=rlejcMfobetbUqB0dZIER62F3teZr0+5cZyPAiCdpfM=; b=m5vD8Jd1mlVadyE7hLklFwH16e4AHbK8OossQQ9OaJkwPVSwbmdROlOCsGuxM05LaY lYwu30Pqbhbw2uDKWm0/xdOrNwZKFUXO4mNKx0/VTBvm31TugsK1gEFAcDzc07qrZ/HG LQvw0YNCfta9EcFXTcp3Zvj0XXGiMGz688xzoa07XGbUm4gFztySt3YvpoycI8Is3DPF 6JWZ1HHNa2L+RiL1RqYd9uKUg1q1hdnSQ2tKS1QcODhJvGgcxOiOciaXZN6FRIgrEZdV 7wY7DfttfNaXRQCD58zg09+Fu5N/p7nSXwn2jcbLqLdoYbLMLXzDIgZ7vyTKXpAw817W isng== X-Received: by 10.60.133.134 with SMTP id pc6mr7587941oeb.87.1368209965274; Fri, 10 May 2013 11:19:25 -0700 (PDT) Original-Received: by 10.76.93.68 with HTTP; Fri, 10 May 2013 11:19:24 -0700 (PDT) In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:74135 Archived-At: --047d7b47249ef55abd04dc6134ad Content-Type: multipart/alternative; boundary=047d7b47249ef55aba04dc6134ab --047d7b47249ef55aba04dc6134ab Content-Type: text/plain; charset=ISO-8859-1 > Maybe we could add code that saves just the (match-beginning 0) and > signals an error if it was not properly preserved. This would still > require change-functions to save the match-data if they use it, but it > might catch the offenders earlier. I made a crack at it. It was necessary to use save-match-data in a couple of around advices and disable undo-tree to get some basic commands to work. I imagine there would be more cases to resolve. Are the changes in the .diff what you had in mind roughly? --047d7b47249ef55aba04dc6134ab Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable > Maybe we could add code that saves just the (match-beginning 0) and> signals an error if it was not properly preserved.=A0 This would stil= l
> require change-functions to save the match-data if they use it, b= ut it
> might catch the offenders earlier.

I made a crack at it. It was= necessary to use save-match-data in a couple of around advices and disable= undo-tree to get some basic commands to work. I imagine there would be mor= e cases to resolve.

Are the changes in the .diff what you had in mind roughly?

--047d7b47249ef55aba04dc6134ab-- --047d7b47249ef55abd04dc6134ad Content-Type: application/octet-stream; name="match-data-corrupted-error.diff" Content-Disposition: attachment; filename="match-data-corrupted-error.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hgjov9g20 ZGlmZiAtLWdpdCBhL3NyYy9pbnNkZWwuYyBiL3NyYy9pbnNkZWwuYwppbmRleCA4MDI5MjkxLi5m ZjkwYTkzIDEwMDY0NAotLS0gYS9zcmMvaW5zZGVsLmMKKysrIGIvc3JjL2luc2RlbC5jCkBAIC01 Myw2ICs1Myw5IEBAIHN0YXRpYyBMaXNwX09iamVjdCBjb21iaW5lX2FmdGVyX2NoYW5nZV9idWZm ZXI7CiAKIExpc3BfT2JqZWN0IFFpbmhpYml0X21vZGlmaWNhdGlvbl9ob29rczsKIAorLyogRXJy b3IgY29uZGl0aW9uIHVzZWQgd2hlbiBjaGFuZ2UgaG9va3MgaW5hcHByb3ByaWF0ZWx5IGNoYW5n ZSBtYXRjaC1kYXRhLiAqLworc3RhdGljIExpc3BfT2JqZWN0IFFtYXRjaF9kYXRhX2NvcnJ1cHRl ZDsKKwogc3RhdGljIHZvaWQgc2lnbmFsX2JlZm9yZV9jaGFuZ2UgKHB0cmRpZmZfdCwgcHRyZGlm Zl90LCBwdHJkaWZmX3QgKik7CiAKIC8qIEFsc28gdXNlZCBpbiBtYXJrZXIuYyB0byBlbmFibGUg ZXhwZW5zaXZlIG1hcmtlciBjaGVja3MuICAqLwpAQCAtMjAzNCw2ICsyMDM3LDEwIEBAIHNpZ25h bF9hZnRlcl9jaGFuZ2UgKHB0cmRpZmZfdCBjaGFycG9zLCBwdHJkaWZmX3QgbGVuZGVsLCBwdHJk aWZmX3QgbGVuaW5zKQogCiAgIHNwZWNiaW5kIChRaW5oaWJpdF9tb2RpZmljYXRpb25faG9va3Ms IFF0KTsKIAorICAvKiBDaGFuZ2UgaG9vayBmdW5jdGlvbnMgYXJlIGV4cGVjdGVkIHRvIHVzZSBz YXZlLW1hdGNoLWRhdGEgaWYgdXNpbmcgcmVnZXhwcy4KKyAgICAgQ2hlY2sgKG1hdGNoLWJlZ2lu bmluZyAwKSB0byB2ZXJpZnkgaG9va3MgZG8gbm90IGNvcnJ1cHQgbWF0Y2gtZGF0YS4gKi8KKyAg TGlzcF9PYmplY3QgbWF0Y2hfYmVnaW5uaW5nID0gbWF0Y2hfbGltaXQobWFrZV9udW1iZXIoMCks IDEpOworCiAgIGlmICghTklMUCAoVmFmdGVyX2NoYW5nZV9mdW5jdGlvbnMpKQogICAgIHsKICAg ICAgIExpc3BfT2JqZWN0IGFyZ3NbNF07CkBAIC0yMDUzLDYgKzIwNjAsOSBAQCBzaWduYWxfYWZ0 ZXJfY2hhbmdlIChwdHJkaWZmX3QgY2hhcnBvcywgcHRyZGlmZl90IGxlbmRlbCwgcHRyZGlmZl90 IGxlbmlucykKICAgICAgIFhTRVRDRFIgKHJ2b2VfYXJnLCBRdCk7CiAgICAgfQogCisgIGlmKCAh IEVRKG1hdGNoX2JlZ2lubmluZywgbWF0Y2hfbGltaXQobWFrZV9udW1iZXIoMCksIDEpKSApCisg ICAgeHNpZ25hbDEgKFFtYXRjaF9kYXRhX2NvcnJ1cHRlZCwgYnVpbGRfc3RyaW5nICgiTWF0Y2gg ZGF0YSBjb3JydXB0ZWQgaW4gYWZ0ZXItY2hhbmdlLWZ1bmN0aW9uczsgY29uc2lkZXIgdXNpbmcg c2F2ZS1tYXRjaC1kYXRhIikpOworCiAgIGlmIChidWZmZXJfaGFzX292ZXJsYXlzICgpKQogICAg IHJlcG9ydF9vdmVybGF5X21vZGlmaWNhdGlvbiAobWFrZV9udW1iZXIgKGNoYXJwb3MpLAogCQkJ CSBtYWtlX251bWJlciAoY2hhcnBvcyArIGxlbmlucyksCkBAIC0yMDYxLDEyICsyMDcxLDE4IEBA IHNpZ25hbF9hZnRlcl9jaGFuZ2UgKHB0cmRpZmZfdCBjaGFycG9zLCBwdHJkaWZmX3QgbGVuZGVs LCBwdHJkaWZmX3QgbGVuaW5zKQogCQkJCSBtYWtlX251bWJlciAoY2hhcnBvcyArIGxlbmlucyks CiAJCQkJIG1ha2VfbnVtYmVyIChsZW5kZWwpKTsKIAorICBpZiggISBFUShtYXRjaF9iZWdpbm5p bmcsIG1hdGNoX2xpbWl0KG1ha2VfbnVtYmVyKDApLCAxKSkgKQorICAgIHhzaWduYWwxIChRbWF0 Y2hfZGF0YV9jb3JydXB0ZWQsIGJ1aWxkX3N0cmluZyAoIk1hdGNoIGRhdGEgY29ycnVwdGVkIGlu IG92ZXJsYXkgbW9kaWZpY2F0aW9uIGhvb2tzOyBjb25zaWRlciB1c2luZyBzYXZlLW1hdGNoLWRh dGEiKSk7CisKICAgLyogQWZ0ZXIgYW4gaW5zZXJ0aW9uLCBjYWxsIHRoZSB0ZXh0IHByb3BlcnRp ZXMKICAgICAgaW5zZXJ0LWJlaGluZC1ob29rcyBvciBpbnNlcnQtaW4tZnJvbnQtaG9va3MuICAq LwogICBpZiAobGVuZGVsID09IDApCiAgICAgcmVwb3J0X2ludGVydmFsX21vZGlmaWNhdGlvbiAo bWFrZV9udW1iZXIgKGNoYXJwb3MpLAogCQkJCSAgbWFrZV9udW1iZXIgKGNoYXJwb3MgKyBsZW5p bnMpKTsKIAorICBpZiggISBFUShtYXRjaF9iZWdpbm5pbmcsIG1hdGNoX2xpbWl0KG1ha2VfbnVt YmVyKDApLCAxKSkgKQorICAgIHhzaWduYWwxIChRbWF0Y2hfZGF0YV9jb3JydXB0ZWQsIGJ1aWxk X3N0cmluZyAoIk1hdGNoIGRhdGEgY29ycnVwdGVkIGluIHRleHQgcHJvcGVydHkgaW5zZXJ0aW9u IGhvb2tzOyBjb25zaWRlciB1c2luZyBzYXZlLW1hdGNoLWRhdGEiKSk7CisKICAgdW5iaW5kX3Rv IChjb3VudCwgUW5pbCk7CiB9CiAKQEAgLTIxODEsNSArMjE5NywxMiBAQCBhcyB3ZWxsIGFzIGhv b2tzIGF0dGFjaGVkIHRvIHRleHQgcHJvcGVydGllcyBhbmQgb3ZlcmxheXMuICAqLyk7CiAgIGlu aGliaXRfbW9kaWZpY2F0aW9uX2hvb2tzID0gMDsKICAgREVGU1lNIChRaW5oaWJpdF9tb2RpZmlj YXRpb25faG9va3MsICJpbmhpYml0LW1vZGlmaWNhdGlvbi1ob29rcyIpOwogCisgIERFRlNZTSAo UW1hdGNoX2RhdGFfY29ycnVwdGVkLCAibWF0Y2gtZGF0YS1jb3JydXB0ZWQiKTsKKworICBGcHV0 IChRbWF0Y2hfZGF0YV9jb3JydXB0ZWQsIFFlcnJvcl9jb25kaXRpb25zLAorCWxpc3RuIChDT05T VFlQRV9QVVJFLCAyLCBRbWF0Y2hfZGF0YV9jb3JydXB0ZWQsIFFlcnJvcikpOworICBGcHV0IChR bWF0Y2hfZGF0YV9jb3JydXB0ZWQsIFFlcnJvcl9tZXNzYWdlLAorCWJ1aWxkX3B1cmVfY19zdHJp bmcgKCJNYXRjaCBkYXRhIGNvcnJ1cHRlZCIpKTsKKwogICBkZWZzdWJyICgmU2NvbWJpbmVfYWZ0 ZXJfY2hhbmdlX2V4ZWN1dGUpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2xpc3AuaCBiL3NyYy9saXNw LmgKaW5kZXggZTJjMjRlZS4uODU5NmZhMCAxMDA2NDQKLS0tIGEvc3JjL2xpc3AuaAorKysgYi9z cmMvbGlzcC5oCkBAIC0zNDE0LDYgKzM0MTQsNyBAQCBleHRlcm4gYm9vbCBjaGVja19leGlzdGlu ZyAoY29uc3QgY2hhciAqKTsKIAogLyogRGVmaW5lZCBpbiBzZWFyY2guYy4gICovCiBleHRlcm4g dm9pZCBzaHJpbmtfcmVnZXhwX2NhY2hlICh2b2lkKTsKK2V4dGVybiBMaXNwX09iamVjdCBtYXRj aF9saW1pdCAoTGlzcF9PYmplY3QsIGJvb2wpOwogZXh0ZXJuIHZvaWQgcmVzdG9yZV9zZWFyY2hf cmVncyAodm9pZCk7CiBleHRlcm4gdm9pZCByZWNvcmRfdW53aW5kX3NhdmVfbWF0Y2hfZGF0YSAo dm9pZCk7CiBzdHJ1Y3QgcmVfcmVnaXN0ZXJzOwpkaWZmIC0tZ2l0IGEvc3JjL3NlYXJjaC5jIGIv c3JjL3NlYXJjaC5jCmluZGV4IGVhMzYxMzMuLmM1YTUwY2IgMTAwNjQ0Ci0tLSBhL3NyYy9zZWFy Y2guYworKysgYi9zcmMvc2VhcmNoLmMKQEAgLTI2OTUsOCArMjY5NSw4IEBAIHNpbmNlIG9ubHkg cmVndWxhciBleHByZXNzaW9ucyBoYXZlIGRpc3Rpbmd1aXNoZWQgc3ViZXhwcmVzc2lvbnMuICAq LykKIAogICByZXR1cm4gUW5pbDsKIH0KLQwKLXN0YXRpYyBMaXNwX09iamVjdAorCitMaXNwX09i amVjdAogbWF0Y2hfbGltaXQgKExpc3BfT2JqZWN0IG51bSwgYm9vbCBiZWdpbm5pbmdwKQogewog ICBFTUFDU19JTlQgbjsK --047d7b47249ef55abd04dc6134ad--