From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Philipp Stephani Newsgroups: gmane.emacs.bugs Subject: bug#23387: 25.0.93; Unicode quote inserted in Python mode outside of strings Date: Sat, 30 Apr 2016 11:59:16 +0000 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a113fb2ecb1e15e0531b27d94 X-Trace: ger.gmane.org 1462017644 30059 80.91.229.3 (30 Apr 2016 12:00:44 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 30 Apr 2016 12:00:44 +0000 (UTC) To: 23387@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Apr 30 14:00:35 2016 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 1awTZY-0003pO-EH for geb-bug-gnu-emacs@m.gmane.org; Sat, 30 Apr 2016 14:00:32 +0200 Original-Received: from localhost ([::1]:58253 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1awTZU-00084R-Lu for geb-bug-gnu-emacs@m.gmane.org; Sat, 30 Apr 2016 08:00:28 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:49711) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1awTZK-0007nZ-V3 for bug-gnu-emacs@gnu.org; Sat, 30 Apr 2016 08:00:25 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1awTZ9-0006XI-9k for bug-gnu-emacs@gnu.org; Sat, 30 Apr 2016 08:00:13 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:44086) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1awTZ8-0006T8-3u for bug-gnu-emacs@gnu.org; Sat, 30 Apr 2016 08:00:07 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1awTZ4-0003Ib-WE for bug-gnu-emacs@gnu.org; Sat, 30 Apr 2016 08:00:03 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Philipp Stephani Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 30 Apr 2016 12:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 23387 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 23387-submit@debbugs.gnu.org id=B23387.146201757412614 (code B ref 23387); Sat, 30 Apr 2016 12:00:02 +0000 Original-Received: (at 23387) by debbugs.gnu.org; 30 Apr 2016 11:59:34 +0000 Original-Received: from localhost ([127.0.0.1]:56421 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1awTYb-0003HO-Ov for submit@debbugs.gnu.org; Sat, 30 Apr 2016 07:59:33 -0400 Original-Received: from mail-lf0-f41.google.com ([209.85.215.41]:33341) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1awTYa-0003HA-6w for 23387@debbugs.gnu.org; Sat, 30 Apr 2016 07:59:32 -0400 Original-Received: by mail-lf0-f41.google.com with SMTP id y84so144243460lfc.0 for <23387@debbugs.gnu.org>; Sat, 30 Apr 2016 04:59:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=s9dVuALTFlauBmGZ4NynOYU7n0mjXgChvaMKV7x2SIE=; b=fyFD8xeKxLNyOlN0/KH+ojnN6HfuJYn1GFqywSPvgdAcHsHb1aLsjt4+5CFWIt7Ib+ VS0N2npPGqjmIFY3ljhtLaCx3l7ViqWGmh2y0hPzTaZbFhF3pMgvtnM+f7aj3vVZZg1y PPYFzHE1QTmhfrWuWwaPkWTvFeW/+uRkF9oNXNAJ2twMwfTSCeLM6OI2hdd3uqGJte5J K2HSc6H4n5xIAc8qpv3UA8PFb1o0eLGJca68C6Ql3S7P/a7AjcwrzrBdsRsPptNaB+xx HjWpTwNSM2yEVaoGiEJ/IxsyFgef7jUcDZpbZkmBJcGohqtADP8oEkYIp7MSNrCU/Fgw yzOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=s9dVuALTFlauBmGZ4NynOYU7n0mjXgChvaMKV7x2SIE=; b=h0zrI7teXsWmaftanBPGrm4/gTeM6WWXXn0Qcp6H1BDkgvUV7PpR0d3drKIq5dwWCC aj+F4RRU3nA8wBYJvKzHxElMdSTcH3verGletbJJYoHGmPgOkfdQ7Q0GqMNvrzfSyXhG 8zLcjYHnhlXME5oVyT6ZIV56EyN13TmKIEfm5AKN04o7rPbfK+MyBRqbMwkoa34oVtY2 DflBnnQmdyv8f904vQm3dnk1b3gdq/UT0q5MTGJiYplPBIiNbKuY6AgcfNJivPABhn8f QzfKdBjwcvdbIY+OKKHGicjUNTHcHgKgxRBbclICjO4VftcrNPhLkb9igCZj6M2WSM+l iUeQ== X-Gm-Message-State: AOPr4FUdU3Fzz0JZDE9es+5A9ThTtnOpxoiRNZvZGjC2hZyg5xlYMXF8PFoNPx7UOeZvzOeWTbT/HW51uJOilg== X-Received: by 10.25.18.102 with SMTP id h99mr11134065lfi.127.1462017566160; Sat, 30 Apr 2016 04:59:26 -0700 (PDT) In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.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" Xref: news.gmane.org gmane.emacs.bugs:117316 Archived-At: --001a113fb2ecb1e15e0531b27d94 Content-Type: multipart/alternative; boundary=001a113fb2ecb1e15a0531b27d92 --001a113fb2ecb1e15a0531b27d92 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Philipp Stephani schrieb am Do., 28. Apr. 2016 um 19:22 Uhr: > Philipp Stephani schrieb am Do., 28. Apr. 2016 um > 19:11 Uhr: > >> Philipp Stephani schrieb am Mi., 27. Apr. 2016 >> um 16:16 Uhr: >> >>> >>> emacs -Q >>> M-x electric-quote-mode >>> M-x customize-variable RET electric-quote-string, set it to t, save >>> M-x python-mode >>> Hit ' >>> >>> Expected: ' (ASCII apostrophe) is inserted because point is outside a >>> string >>> Actual: =E2=80=99 (Unicode quote) is inserted >>> >>> This seems to happen only in Python mode, not in e.g. emacs-lisp-mode. >>> >>> Also happens in C++ mode, and probably others. >> > > The root cause is that electric-quote-post-self-insert-function uses > syntax-ppss to check whether point is in a string or comment. Before it > makes any replacement, the ASCII apostrophe is still in the buffer, so > syntax-ppss considers point to be inside a string. It looks like calling > syntax-ppss with (forward-point -1) as argument instead of (point) should > fix it, but I'm not sure whether that's the right way. > I've attached a patch. --001a113fb2ecb1e15a0531b27d92 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

<= /div> --001a113fb2ecb1e15a0531b27d92-- --001a113fb2ecb1e15e0531b27d94 Content-Type: application/octet-stream; name="0001-Fix-insertion-of-Unicode-quotes-in-strings.patch" Content-Disposition: attachment; filename="0001-Fix-insertion-of-Unicode-quotes-in-strings.patch" Content-Transfer-Encoding: base64 Content-ID: <154670925515f3a48c61> X-Attachment-Id: 154670925515f3a48c61 RnJvbSBjZDdjMTcwNzljN2VmZGQwMGZhZGMwMWM2NjIyZGIzYmFhYjlkNDhhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwIFN0ZXBoYW5pIDxwaHN0QGdvb2dsZS5jb20+CkRh dGU6IFNhdCwgMzAgQXByIDIwMTYgMTI6NDU6MjIgKzAyMDAKU3ViamVjdDogW1BBVENIXSBGaXgg aW5zZXJ0aW9uIG9mIFVuaWNvZGUgcXVvdGVzIGluIHN0cmluZ3MuCgoqIGxpc3AvZWxlY3RyaWMu ZWwgKGVsZWN0cmljLXF1b3RlLXBvc3Qtc2VsZi1pbnNlcnQtZnVuY3Rpb24pOiBQYXJzZQp1bnRp bCBiZWZvcmUgcG9pbnQgdG8gZml4IEJ1ZyMyMzM4Ny4KKiB0ZXN0L2F1dG9tYXRlZC9lbGVjdHJp Yy10ZXN0cy5lbCAoZWxlY3RyaWMtcXVvdGUtc3RyaW5nKTogQWRkIHVuaXQKdGVzdCBmb3IgZWxl Y3RyaWMtcXVvdGUtc3RyaW5nLgotLS0KIGxpc3AvZWxlY3RyaWMuZWwgICAgICAgICAgICAgICAg IHwgNSArKysrLQogdGVzdC9hdXRvbWF0ZWQvZWxlY3RyaWMtdGVzdHMuZWwgfCA4ICsrKysrKysr CiAyIGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9saXNwL2VsZWN0cmljLmVsIGIvbGlzcC9lbGVjdHJpYy5lbAppbmRleCBhYjc5OTQz Li43NGI0ZTkxIDEwMDY0NAotLS0gYS9saXNwL2VsZWN0cmljLmVsCisrKyBiL2xpc3AvZWxlY3Ry aWMuZWwKQEAgLTQ0NCw3ICs0NDQsMTAgQEAgZWxlY3RyaWMtcXVvdGUtcG9zdC1zZWxmLWluc2Vy dC1mdW5jdGlvbgogICAgIChsZXQgKChzdGFydAogICAgICAgICAgICAoaWYgKGFuZCBjb21tZW50 LXN0YXJ0IGNvbW1lbnQtdXNlLXN5bnRheCkKICAgICAgICAgICAgICAgICh3aGVuIChvciBlbGVj dHJpYy1xdW90ZS1jb21tZW50IGVsZWN0cmljLXF1b3RlLXN0cmluZykKLSAgICAgICAgICAgICAg ICAgKGxldCAoKHN5bnRheCAoc3ludGF4LXBwc3MpKSkKKyAgICAgICAgICAgICAgICAgOzsgSGVy ZSB0aGUgcXVvdGUgaGFzIGFscmVhZHkgYmVlbiBpbnNlcnRlZCwgc28gd2UKKyAgICAgICAgICAg ICAgICAgOzsgbWlnaHQgYmUgaW5zaWRlIGEgc3RyaW5nLiAgVGhlcmVmb3JlIHVzZSB0aGUKKyAg ICAgICAgICAgICAgICAgOzsgcG9zaXRpb24gYmVmb3JlIHBvaW50IGZvciBzeW50YWN0aWMgcGFy c2luZy4KKyAgICAgICAgICAgICAgICAgKGxldCAoKHN5bnRheCAoc2F2ZS1leGN1cnNpb24gKHN5 bnRheC1wcHNzICgxLSAocG9pbnQpKSkpKSkKICAgICAgICAgICAgICAgICAgICAoYW5kIChvciAo YW5kIGVsZWN0cmljLXF1b3RlLWNvbW1lbnQgKG50aCA0IHN5bnRheCkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGFuZCBlbGVjdHJpYy1xdW90ZS1zdHJpbmcgKG50aCAzIHN5bnRheCkp KQogICAgICAgICAgICAgICAgICAgICAgICAgKG50aCA4IHN5bnRheCkpKSkKZGlmZiAtLWdpdCBh L3Rlc3QvYXV0b21hdGVkL2VsZWN0cmljLXRlc3RzLmVsIGIvdGVzdC9hdXRvbWF0ZWQvZWxlY3Ry aWMtdGVzdHMuZWwKaW5kZXggMTA3YjJlNy4uYWZkNzA3NiAxMDA2NDQKLS0tIGEvdGVzdC9hdXRv bWF0ZWQvZWxlY3RyaWMtdGVzdHMuZWwKKysrIGIvdGVzdC9hdXRvbWF0ZWQvZWxlY3RyaWMtdGVz dHMuZWwKQEAgLTU4NCw1ICs1ODQsMTMgQEAgYXV0b3dyYXBwaW5nLTcKICAgICAgICAgICAgICAg ICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICJcIiIpCiAgICAgICAgICAgICAgICAgICAobWFyay1z ZXhwIC0xKSkpCiAKKwwKKzs7OyBFbGVjdHJpYyBxdW90ZXMKKyhkZWZpbmUtZWxlY3RyaWMtcGFp ci10ZXN0IGVsZWN0cmljLXF1b3RlLXN0cmluZworICAiIiAiJyIgOmV4cGVjdGVkLXN0cmluZyAi JyIgOmV4cGVjdGVkLXBvaW50IDIKKyAgOmZpeHR1cmUtZm4gIydlbGVjdHJpYy1xdW90ZS1sb2Nh bC1tb2RlCisgIDpiaW5kaW5ncyAnKChlbGVjdHJpYy1xdW90ZS1zdHJpbmcgLiB0KSkKKyAgOnRl c3QtaW4tY29tbWVudHMgbmlsIDp0ZXN0LWluLXN0cmluZ3MgbmlsKQorCiAocHJvdmlkZSAnZWxl Y3RyaWMtdGVzdHMpCiA7OzsgZWxlY3RyaWMtdGVzdHMuZWwgZW5kcyBoZXJlCi0tIAoyLjguMQoK --001a113fb2ecb1e15e0531b27d94--