From unknown Fri Jun 20 07:16:00 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#23387 <23387@debbugs.gnu.org> To: bug#23387 <23387@debbugs.gnu.org> Subject: Status: 25.0.93; Unicode quote inserted in Python mode outside of strings Reply-To: bug#23387 <23387@debbugs.gnu.org> Date: Fri, 20 Jun 2025 14:16:00 +0000 retitle 23387 25.0.93; Unicode quote inserted in Python mode outside of str= ings reassign 23387 emacs submitter 23387 Philipp Stephani severity 23387 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 27 10:15:17 2016 Received: (at submit) by debbugs.gnu.org; 27 Apr 2016 14:15:17 +0000 Received: from localhost ([127.0.0.1]:50154 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1avQFI-0003Mw-KL for submit@debbugs.gnu.org; Wed, 27 Apr 2016 10:15:17 -0400 Received: from eggs.gnu.org ([208.118.235.92]:41146) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1avQFH-0003Mh-0e for submit@debbugs.gnu.org; Wed, 27 Apr 2016 10:15:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1avQF5-0000X9-PN for submit@debbugs.gnu.org; Wed, 27 Apr 2016 10:15:09 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: * X-Spam-Status: No, score=1.1 required=5.0 tests=BAYES_50, FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:38115) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1avQF5-0000X5-MF for submit@debbugs.gnu.org; Wed, 27 Apr 2016 10:15:03 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60345) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1avQF4-0005U5-9l for bug-gnu-emacs@gnu.org; Wed, 27 Apr 2016 10:15:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1avQF2-0000WI-T1 for bug-gnu-emacs@gnu.org; Wed, 27 Apr 2016 10:15:02 -0400 Received: from mail-wm0-x22b.google.com ([2a00:1450:400c:c09::22b]:38723) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1avQF2-0000Vg-GX for bug-gnu-emacs@gnu.org; Wed, 27 Apr 2016 10:15:00 -0400 Received: by mail-wm0-x22b.google.com with SMTP id u206so51624594wme.1 for ; Wed, 27 Apr 2016 07:15:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=ViiOkfYEC+kKAPdJZiNHJ9tA4OMLZj/VS5ls4xkgkN8=; b=fjczUDJ7vTGaYeBTZxtpiUTXWOuDVTWwfRG2n/b+EOmn77NccqtsS5WZAJ9FX5UDOk jUzSZ17DXQqaMSGuSoWG3x/Cvm1b5cDNr/CAFtbqrLbwrtJl3UtS1M/k0XhRw/Wkj0T1 0PuINf4u1/DhwXOtKlY3yWM8Ui2U4FonXTUlxrvt6JeE0TJW4K2e1upbB52qdJ3zMF+e uHQVuC87m6J/Nng0A1IuuFulYtxliQ84vdYsPnBk6FFKt9JsAKhHo9BohKjgx0wqsRd8 572o7NYZPLL2n2UzIZZqQzut2yq4IcSR5mczyYV1gcmcRW/+W7dQABBLC4exUYUpliz1 aymw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=ViiOkfYEC+kKAPdJZiNHJ9tA4OMLZj/VS5ls4xkgkN8=; b=KVpa+iJNHwHrYBTgnpSbRVFukJny3ipT8HiZ8sBV8I7bplslCK3elmCVbJAKs67Rtg Cfiald/y/7YMQIf4K/ko3TYUdLNscmqKadDGCyhxDIHMGA2HulfkGdQjYLQe4c3Owo1o kk9mOZWW1KJur4wB7XcgH15pBZXWHg1jR2rk638mi/fs2Fqg0p1ztBME7JA7p90x1ZNk vOxvmdWaeRIcK7Ccd1XegwMqJDMYc4gwR8TxtLCRtDcQ6fYvQr64qmz7GR7TWSxGlcfp 7dt1ZrTyMeZ/77Wo/cEF0mxl4sCJAlP+YhEUjCiCLh9xoifV8UaxYgWOAzzR+Odbr7aF Xsdw== X-Gm-Message-State: AOPr4FW/0LjglRyo160pkbz5y3FL64qmnVGr1rU4viq8Aco3/3JOKISP54TlpZRYIQ3ppw== X-Received: by 10.28.31.73 with SMTP id f70mr10835974wmf.77.1461766499530; Wed, 27 Apr 2016 07:14:59 -0700 (PDT) Received: from a.muc.corp.google.com ([2a00:79e0:15:4:453b:c3b3:e6f3:4183]) by smtp.gmail.com with ESMTPSA id w79sm29631036wme.19.2016.04.27.07.14.58 for (version=TLS1_2 cipher=AES128-SHA bits=128/128); Wed, 27 Apr 2016 07:14:58 -0700 (PDT) From: Philipp Stephani To: bug-gnu-emacs@gnu.org Subject: 25.0.93; Unicode quote inserted in Python mode outside of strings Date: Wed, 27 Apr 2016 16:14:57 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -3.8 (---) X-Debbugs-Envelope-To: submit 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: -3.8 (---) 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. In GNU Emacs 25.0.93.5 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8) of 2016-04-24 built on localhost Repository revision: 0cd2e923dba8d8c7128b0c084ce6af22069e8db5 Windowing system distributor 'The X.Org Foundation', version 11.0.11501000 System Description: Ubuntu 14.04 LTS Configured using: 'configure --with-modules LDFLAGS=3D-Wl,-fuse-ld=3Dgold,--export-dynamic-symbol=3D__google_auxv' Configured features: XPM JPEG TIFF GIF PNG SOUND GSETTINGS NOTIFY FREETYPE XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 MODULES Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Python Minor modes in effect: shell-dirtrack-mode: t tooltip-mode: t global-eldoc-mode: t electric-quote-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent messages: Electric-Quote mode enabled Quit Creating customization items... Creating customization items ...done Resetting customization items...done Creating customization setup...done To install your edits, invoke [State] and choose the Set operation Source file =E2=80=98/usr/local/google/home/phst/ThirdParty/Emacs/lisp/prog= modes/python.el=E2=80=99 newer than byte-compiled file Can=E2=80=99t guess python-indent-offset, using defaults: 4 Source file =E2=80=98/usr/local/google/home/phst/ThirdParty/Emacs/lisp/dire= d.el=E2=80=99 newer than byte-compiled file Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message dired rfc822 mml mml-sec epg epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mail-utils python tramp-sh tramp tramp-compat auth-source cl-seq eieio eieio-core cl-macs gnus-util mm-util mail-prsvr password-cache tramp-loaddefs trampver ucs-normalize shell pcomplete format-spec advice json map seq byte-opt gv bytecomp byte-compile cl-extra cconv comint ring ansi-color cus-edit wid-edit thingatpt help-fns help-mode easymenu cl-loaddefs pcase cl-lib cus-start cus-load time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote inotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 239874 9745) (symbols 48 24466 0) (miscs 40 400 230) (strings 32 29068 7264) (string-bytes 1 922223) (vectors 16 39237) (vector-slots 8 730263 4252) (floats 8 240 60) (intervals 56 261 0) (buffers 976 14) (heap 1024 32672 1237)) --=20 Google Germany GmbH Erika-Mann-Stra=C3=9Fe 33 80636 M=C3=BCnchen Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Gesch=C3=A4ftsf=C3=BChrer: Matthew Scott Sucherman, Paul Terence Manicle Diese E-Mail ist vertraulich. Wenn Sie nicht der richtige Adressat sind, leiten Sie diese bitte nicht weiter, informieren Sie den Absender und l=C3= =B6schen Sie die E-Mail und alle Anh=C3=A4nge. Vielen Dank. This e-mail is confidential. If you are not the right addressee please do = not forward it, please inform the sender, and please erase this e-mail including any attachments. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 28 13:12:11 2016 Received: (at 23387) by debbugs.gnu.org; 28 Apr 2016 17:12:11 +0000 Received: from localhost ([127.0.0.1]:53458 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1avpU2-0007zS-Qo for submit@debbugs.gnu.org; Thu, 28 Apr 2016 13:12:10 -0400 Received: from mail-lf0-f44.google.com ([209.85.215.44]:34129) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1avpU1-0007zD-8q for 23387@debbugs.gnu.org; Thu, 28 Apr 2016 13:12:09 -0400 Received: by mail-lf0-f44.google.com with SMTP id j11so103533185lfb.1 for <23387@debbugs.gnu.org>; Thu, 28 Apr 2016 10:12:09 -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=ROMHT64RG5ITotXwIrRmGakI3/XgyhuXqnobZO4vgPU=; b=OkmAKhtH9RWG11GCCfM6hDo8zoIKBLbA0xf5RxQKLAeTC3Xi5AYuBjatoiSXS8ddDT H4EEcFv+kg8imH0YKT9vQ/IKo9GUNjTzsvT4OwNufuuZkXQWYIsgWDvkevz/pOcMPRtT +oMKwFrRwvOSxQCn31LcSUGy5JBykhpIGFyLSI//MvmLTeiBFk+t7FBQcKmwKV8bj2Iv l3jklz3rrm/rlTz0vAaT9qjCaasyF6fN40G8HBXDmnmaxNgz1rrWH7hZEdb4C4TBwfXg ju2VA6BDiIWhfJsMHF0ZQr/e7TJyzkctwRe15+dIQnjhQfloJt4eCOFFK9oYJGWRQZq+ 9J1w== 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=ROMHT64RG5ITotXwIrRmGakI3/XgyhuXqnobZO4vgPU=; b=Yb0IPmJluNEn5XSYBSgF7UOCfOTweZ3rLvHQgPIwbmwUjf7Jrh2SPuahOkPIj0WP8L r1PgSHsJNQiQXBlnTLEOPFME2vOE5xdK+BNN8TgtQ6CyuzwzAaa80vwWGed00CE6RZDC 8I/OM9RmWHlAabwnlptv77RXucWgJkv3bsDdfrkIJnfYoVyaxUGpngzMYW7tycUwVasv CsNXHdzsBwD5iCLlwByRKoo1zVjA0N2K5R0uFGA1uKWxh0O2LmoLPF+fsjqqLd5Xlf/o Jl4/BTpBo1RqUw1e9qpevAFdQINbOglZjgApkKD1Q57N4SdHFUkz7ZOF47wG9GmoddkX 37sA== X-Gm-Message-State: AOPr4FWMaoZJJbjrTJ/5wavqzRIC4xiWylRhpx+cFOUFO9VrlIo3lOouOhJaKWTQC7TeZXIgTj0pkvqNikSoGw== X-Received: by 10.25.18.102 with SMTP id h99mr6819837lfi.127.1461863523363; Thu, 28 Apr 2016 10:12:03 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Philipp Stephani Date: Thu, 28 Apr 2016 17:11:53 +0000 Message-ID: Subject: Re: bug#23387: 25.0.93; Unicode quote inserted in Python mode outside of strings To: 23387@debbugs.gnu.org Content-Type: multipart/alternative; boundary=001a113fb2ec05335305318ea0ff X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 23387 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: -0.5 (/) --001a113fb2ec05335305318ea0ff Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 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. --001a113fb2ec05335305318ea0ff Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


Philip= p Stephani <p.stephani2@gmail.c= om> schrieb am Mi., 27. Apr. 2016 um 16:16=C2=A0Uhr:

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 s= tring
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.=C2=A0
--001a113fb2ec05335305318ea0ff-- From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 28 13:22:24 2016 Received: (at 23387) by debbugs.gnu.org; 28 Apr 2016 17:22:24 +0000 Received: from localhost ([127.0.0.1]:53475 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1avpdv-0008FN-Vt for submit@debbugs.gnu.org; Thu, 28 Apr 2016 13:22:24 -0400 Received: from mail-lf0-f54.google.com ([209.85.215.54]:33409) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1avpdt-0008F8-QC for 23387@debbugs.gnu.org; Thu, 28 Apr 2016 13:22:22 -0400 Received: by mail-lf0-f54.google.com with SMTP id y84so91777855lfc.0 for <23387@debbugs.gnu.org>; Thu, 28 Apr 2016 10:22:21 -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=bXDds70Giq8452mn3QTuxPvgc7VQGYWtlvRKIqy4ACI=; b=Yfk7HbcTDN1/TUpEXM+nelT3fQbfnXJLhwnwH/mtAGtRMYIRscGcEzfwB66LGpMTg+ 7hxECvR29zqGDErR2EQIlo4cl3FtjNa/v8tqGYVQboaXh3QQybpU6U5LcRjTpuAPak40 s1sCZL2KLmwur7qKFE7xqAST3FIec9+ZJetoUFSqiixfOLa/zjAotIyPTSIhCo5R5hIX jDI9Opo7z61X6lxRxP7DEQPwGgEcCAp4567ROsSYbxdbUCC6QL3HfmXw89jkud2LE2I7 DFF8wkyMhpfhRU1npVQwvWw6gYEW+5Ww8H487ZQ4UlLuY4Ffu9JUh5IPn3HYZ5yjuJCN 434Q== 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=bXDds70Giq8452mn3QTuxPvgc7VQGYWtlvRKIqy4ACI=; b=hpRz32Tw3pGUyikXzvhJccH7X8YK3fjVeFnPst/11sLM6roEhev3/XqTEvf8oc4Grc 6UkTN9WEZrgGIxcilhqG8i3olmH2l4273VAA6PC0a+fgZyIjvdx3DjO+htVBUsmiK/jl 71MA74jL4Sjwuiglk9bHiIvrq2dW+PqLwyadbQ43o+n506v7DoaLTER/ewFuvsXpnUcD OOrWCiNXq2MupxTpi60E478MR8jtrOaIvFHjdZA81SbcA9DRotxSnMRHdVmIO5ElkKqd UXaCItRKsW9CEEtzgcpnQBTrsr8AJak3MuZnMgI58P20bqcjPPMqj3m2uIA1YB+Z7IK9 x+rQ== X-Gm-Message-State: AOPr4FVBs1t5HreRdsoiOsYl5FvvgkjTYXyYn6hCHUq1xR9lfLLc8bupFmdJXwpwUva0IqgNVey84foOH9CCzA== X-Received: by 10.112.198.132 with SMTP id jc4mr7041373lbc.120.1461864135989; Thu, 28 Apr 2016 10:22:15 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Philipp Stephani Date: Thu, 28 Apr 2016 17:22:06 +0000 Message-ID: Subject: Re: bug#23387: 25.0.93; Unicode quote inserted in Python mode outside of strings To: 23387@debbugs.gnu.org Content-Type: multipart/alternative; boundary=001a11c32940891f5a05318ec473 X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 23387 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: -0.5 (/) --001a11c32940891f5a05318ec473 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 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. --001a11c32940891f5a05318ec473 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


Philip= p Stephani <p.stephani2@gmail.c= om> schrieb am Do., 28. Apr. 2016 um 19:11=C2=A0Uhr:
Philipp Stephani <p.stephani2@gmail.com> schrieb am Mi., 27. Apr. 2016= um 16:16=C2=A0Uhr:

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 s= tring
Actual: =E2=80=99 (Unicode quote) is inserted

This seems to happen only in Python mode, not in e.g. emacs-lisp-mode.

A= lso happens in C++ mode, and probably others.=C2=A0

The root cause is that electric-quote-post-self-= insert-function uses syntax-ppss to check whether point is in a string or c= omment. Before it makes any replacement, the ASCII apostrophe is still in t= he buffer, so syntax-ppss considers point to be inside a string. It looks l= ike calling syntax-ppss with (forward-point -1) as argument instead of (poi= nt) should fix it, but I'm not sure whether that's the right way.
--001a11c32940891f5a05318ec473-- From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 30 07:59:34 2016 Received: (at 23387) by debbugs.gnu.org; 30 Apr 2016 11:59:34 +0000 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 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 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) MIME-Version: 1.0 References: In-Reply-To: From: Philipp Stephani Date: Sat, 30 Apr 2016 11:59:16 +0000 Message-ID: Subject: Re: bug#23387: 25.0.93; Unicode quote inserted in Python mode outside of strings To: 23387@debbugs.gnu.org Content-Type: multipart/mixed; boundary=001a113fb2ecb1e15e0531b27d94 X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 23387 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: -0.5 (/) --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-- From debbugs-submit-bounces@debbugs.gnu.org Mon May 02 12:04:26 2016 Received: (at 23387-done) by debbugs.gnu.org; 2 May 2016 16:04:27 +0000 Received: from localhost ([127.0.0.1]:34043 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1axGKg-00061O-PB for submit@debbugs.gnu.org; Mon, 02 May 2016 12:04:26 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:33968) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1axGKf-000619-8T for 23387-done@debbugs.gnu.org; Mon, 02 May 2016 12:04:25 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 573D31601AA; Mon, 2 May 2016 09:04:19 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id jYqOuNj2TbGj; Mon, 2 May 2016 09:04:18 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id A54D116125B; Mon, 2 May 2016 09:04:18 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id wHW8MMD1xrwx; Mon, 2 May 2016 09:04:18 -0700 (PDT) Received: from penguin.cs.ucla.edu (Penguin.CS.UCLA.EDU [131.179.64.200]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 84B411601AA; Mon, 2 May 2016 09:04:18 -0700 (PDT) To: Philipp Stephani From: Paul Eggert Subject: Re: 25.0.93; Unicode quote inserted in Python mode outside of strings Organization: UCLA Computer Science Department Message-ID: Date: Mon, 2 May 2016 09:04:18 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------C2A27BCC3D8E44BCD0F36A65" X-Spam-Score: -1.0 (-) X-Debbugs-Envelope-To: 23387-done Cc: 23387-done@debbugs.gnu.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 (-) This is a multi-part message in MIME format. --------------C2A27BCC3D8E44BCD0F36A65 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Thanks for the bug report and patch, but I ran into a problem with the=20 patch. Suppose I do this: emacs -Q M-x electric-quote-mode M-x customize-variable RET electric-quote-string, set it to t, save M-x python-mode 'abc' That is, I type apostrophe-a-b-c-apostrophe in Python mode. With the=20 patch, the buffer will contain: 'abc=E2=80=99 The opening apostrophe is OK, but the closing apostrophe is considered=20 to be inside a string so it is transmogrified into a right single=20 quotation mark. A Python programmer would want both to be apostrophes. I installed the attached patches into emacs-25 instead, as they should=20 address this problem too. Please give it a try. --------------C2A27BCC3D8E44BCD0F36A65 Content-Type: application/x-patch; name="0001-Don-t-electrically-quote-in-Python.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Don-t-electrically-quote-in-Python.patch" RnJvbSA2NjVmOGQyMjBjNWI2MWExMmVlNDM3N2YzOGY4N2NlMzMxNjliNjE4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBNb24sIDIgTWF5IDIwMTYgMDg6NTY6MDIgLTA3MDAKU3ViamVjdDogW1BBVENI IDEvMl0gPT9VVEYtOD9xP0Rvbj1FMj04MD05OXQ9MjBlbGVjdHJpY2FsbHk9MjBxdW90ZT0y MD89CiA9P1VURi04P3E/PUUyPTgwPTk4Jz1FMj04MD05OT0yMGluPTIwUHl0aG9uPz0KTUlN RS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04 CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClByb2JsZW0gcmVwb3J0ZWQgYnkg UGhpbGlwcCBTdGVwaGFuaSAoQnVnIzIzMzg3KS4KKiBsaXNwL2VsZWN0cmljLmVsIChlbGVj dHJpYy1xdW90ZS1wb3N0LXNlbGYtaW5zZXJ0LWZ1bmN0aW9uKToKRG8gbm90IHJlcXVvdGUg YSBzdHJpbmcgc3RhcnRlciBvciBlbmRlci4KLS0tCiBsaXNwL2VsZWN0cmljLmVsIHwgMTEg KysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9lbGVjdHJpYy5lbCBiL2xpc3AvZWxlY3RyaWMu ZWwKaW5kZXggYWI3OTk0My4uZTI4OTYwMSAxMDA2NDQKLS0tIGEvbGlzcC9lbGVjdHJpYy5l bAorKysgYi9saXNwL2VsZWN0cmljLmVsCkBAIC00NDQsMTAgKzQ0NCwxNSBAQCBlbGVjdHJp Yy1xdW90ZS1wb3N0LXNlbGYtaW5zZXJ0LWZ1bmN0aW9uCiAgICAgKGxldCAoKHN0YXJ0CiAg ICAgICAgICAgIChpZiAoYW5kIGNvbW1lbnQtc3RhcnQgY29tbWVudC11c2Utc3ludGF4KQog ICAgICAgICAgICAgICAgKHdoZW4gKG9yIGVsZWN0cmljLXF1b3RlLWNvbW1lbnQgZWxlY3Ry aWMtcXVvdGUtc3RyaW5nKQotICAgICAgICAgICAgICAgICAobGV0ICgoc3ludGF4IChzeW50 YXgtcHBzcykpKQotICAgICAgICAgICAgICAgICAgIChhbmQgKG9yIChhbmQgZWxlY3RyaWMt cXVvdGUtY29tbWVudCAobnRoIDQgc3ludGF4KSkKKyAgICAgICAgICAgICAgICAgKGxldCog KChzeW50YXggKHN5bnRheC1wcHNzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChiZWcg KG50aCA4IHN5bnRheCkpKQorICAgICAgICAgICAgICAgICAgIChhbmQgYmVnCisgICAgICAg ICAgICAgICAgICAgICAgICAob3IgKGFuZCBlbGVjdHJpYy1xdW90ZS1jb21tZW50IChudGgg NCBzeW50YXgpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgZWxlY3RyaWMt cXVvdGUtc3RyaW5nIChudGggMyBzeW50YXgpKSkKLSAgICAgICAgICAgICAgICAgICAgICAg IChudGggOCBzeW50YXgpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICA7OyBEbyBub3Qg cmVxdW90ZSBhIHF1b3RlIHRoYXQgc3RhcnRzIG9yIGVuZHMKKyAgICAgICAgICAgICAgICAg ICAgICAgIDs7IGEgY29tbWVudCBvciBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAgICAg ICAoZXEgYmVnIChudGggOCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHN5bnRheC1wcHNzICgxLSAocG9pbnQpKSkpKSkpKSkK ICAgICAgICAgICAgICAoYW5kIGVsZWN0cmljLXF1b3RlLXBhcmFncmFwaAogICAgICAgICAg ICAgICAgICAgKGRlcml2ZWQtbW9kZS1wICd0ZXh0LW1vZGUpCiAgICAgICAgICAgICAgICAg ICAob3IgKGVxIGxhc3QtY29tbWFuZC1ldmVudCA/XGApCi0tIAoyLjUuNQoK --------------C2A27BCC3D8E44BCD0F36A65 Content-Type: application/x-patch; name="0002-Add-electric-quote-string-unit-test.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0002-Add-electric-quote-string-unit-test.patch" RnJvbSAxMzRhYzkxMDUyYzE0MTkxMDE1MDcwMWU4NDc4MTBhNjlhODU1MThiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwIFN0ZXBoYW5pIDxwaHN0QGdvb2dsZS5j b20+CkRhdGU6IE1vbiwgMiBNYXkgMjAxNiAwODo1NzozMCAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMi8yXSBBZGQgZWxlY3RyaWMtcXVvdGUtc3RyaW5nIHVuaXQgdGVzdAoKKiB0ZXN0L2F1 dG9tYXRlZC9lbGVjdHJpYy10ZXN0cy5lbCAoZWxlY3RyaWMtcXVvdGUtc3RyaW5nKTogTmV3 IHRlc3QuCi0tLQogdGVzdC9hdXRvbWF0ZWQvZWxlY3RyaWMtdGVzdHMuZWwgfCA4ICsrKysr KysrCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdGVz dC9hdXRvbWF0ZWQvZWxlY3RyaWMtdGVzdHMuZWwgYi90ZXN0L2F1dG9tYXRlZC9lbGVjdHJp Yy10ZXN0cy5lbAppbmRleCAxMDdiMmU3Li5hZmQ3MDc2IDEwMDY0NAotLS0gYS90ZXN0L2F1 dG9tYXRlZC9lbGVjdHJpYy10ZXN0cy5lbAorKysgYi90ZXN0L2F1dG9tYXRlZC9lbGVjdHJp Yy10ZXN0cy5lbApAQCAtNTg0LDUgKzU4NCwxMyBAQCBhdXRvd3JhcHBpbmctNwogICAgICAg ICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIlwiIikKICAgICAgICAgICAgICAg ICAgIChtYXJrLXNleHAgLTEpKSkKIAorDAorOzs7IEVsZWN0cmljIHF1b3RlcworKGRlZmlu ZS1lbGVjdHJpYy1wYWlyLXRlc3QgZWxlY3RyaWMtcXVvdGUtc3RyaW5nCisgICIiICInIiA6 ZXhwZWN0ZWQtc3RyaW5nICInIiA6ZXhwZWN0ZWQtcG9pbnQgMgorICA6Zml4dHVyZS1mbiAj J2VsZWN0cmljLXF1b3RlLWxvY2FsLW1vZGUKKyAgOmJpbmRpbmdzICcoKGVsZWN0cmljLXF1 b3RlLXN0cmluZyAuIHQpKQorICA6dGVzdC1pbi1jb21tZW50cyBuaWwgOnRlc3QtaW4tc3Ry aW5ncyBuaWwpCisKIChwcm92aWRlICdlbGVjdHJpYy10ZXN0cykKIDs7OyBlbGVjdHJpYy10 ZXN0cy5lbCBlbmRzIGhlcmUKLS0gCjIuNS41Cgo= --------------C2A27BCC3D8E44BCD0F36A65-- From debbugs-submit-bounces@debbugs.gnu.org Tue May 03 16:44:45 2016 Received: (at 23387) by debbugs.gnu.org; 3 May 2016 20:44:45 +0000 Received: from localhost ([127.0.0.1]:35832 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1axhBV-00038n-4X for submit@debbugs.gnu.org; Tue, 03 May 2016 16:44:45 -0400 Received: from mail-lf0-f47.google.com ([209.85.215.47]:34968) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1axhBT-00038U-8f; Tue, 03 May 2016 16:44:43 -0400 Received: by mail-lf0-f47.google.com with SMTP id j8so36517687lfd.2; Tue, 03 May 2016 13:44:43 -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 :cc; bh=dOJtGPhXZGXG8i9zgKzFjTrrvknXARY7n0v600in8B0=; b=M7aXDUi2QfzjugHiGVjEcz47w369UqRyupXl1bAM7NJ2HeDfM5A8HRm4/+By2K8AL4 jKetpWqLf3etARilEAupbx7GBMngP6KGwiFmO3uQXt+JLc8ng0gJU7RBGO+lmYx4Hbyi M6gFFMK2L3knxpJUPL5eWSVpp1NBRyHqHdHkQAV4aE6PPk/NRAJHMpdN4hlNMCZ8TI+d yN2Y+Nms866nZ4Es8VTIu2g5BkTffM1cSMmg6jJgBL9BJVsIFKtEg4UlL/jfcCcl3JuI ouw6BgEyr8Y0ARrldsoFRf66Jpz0nZZgGO6c8q4Zbib6IGJMQwiuqZgnECo2nNx55mlu 4MyQ== 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:cc; bh=dOJtGPhXZGXG8i9zgKzFjTrrvknXARY7n0v600in8B0=; b=CkYQWL8iAtPo+umeKYep3x3ZCtsNcavuzuDK9DyQOPO66CvMBWfHY8ZqJRhYkKlv3J cgMn3rnAsTF+jKcnAQTki1BeH/Nh5L6l3ZpfvGMjeXHSkF4ogv0fXPdcpL1icQPUEc/g IQfIHy+O8j4f17N+2oV1q6uKfswppm4WMZV7fyg8Kq1gsV+v31imUsJEpfG2USzqJpzd Jxlhxg2HMSBX+6km4h3mkCTaQogPQwzw9oL3IXU4hUV2MqE/5jhAazp5YK/XJb5B9yjt tTSXfezrTAa2FHnN+lKod63tRG9LCN7ObdcOkAy/wBtPQL7j/BwTNbyHZpYFoOmSPojd lh1Q== X-Gm-Message-State: AOPr4FVCam+7BkQsGvvn2F5BidAT5TvyTAEI+Q76SQ+qgbkT5oyU/qLYn4HXJSBZlosuwAirTku/xg7mcOfGeg== X-Received: by 10.25.18.102 with SMTP id h99mr2223081lfi.127.1462308277409; Tue, 03 May 2016 13:44:37 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Philipp Stephani Date: Tue, 03 May 2016 20:44:27 +0000 Message-ID: Subject: Re: bug#23387: 25.0.93; Unicode quote inserted in Python mode outside of strings To: 23387@debbugs.gnu.org, eggert@cs.ucla.edu Content-Type: multipart/alternative; boundary=001a113fb2ec6d5ccc0531f62dcb X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 23387 Cc: 23387-done@debbugs.gnu.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: -0.5 (/) --001a113fb2ec6d5ccc0531f62dcb Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Paul Eggert schrieb am Mo., 2. Mai 2016 um 18:05 Uhr: > Thanks for the bug report and patch, but I ran into a problem with the > patch. Suppose I do this: > > emacs -Q > M-x electric-quote-mode > M-x customize-variable RET electric-quote-string, set it to t, save > M-x python-mode > 'abc' > > That is, I type apostrophe-a-b-c-apostrophe in Python mode. With the > patch, the buffer will contain: > > 'abc=E2=80=99 > > The opening apostrophe is OK, but the closing apostrophe is considered > to be inside a string so it is transmogrified into a right single > quotation mark. A Python programmer would want both to be apostrophes. > I'm not sure, I think if a user has electric-quote-string enabled, that's the behavior they want, because it's inside a string. However, I can see that both approaches are valid. There is probably no good way that would work in all circumstances. --001a113fb2ec6d5ccc0531f62dcb Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


Paul E= ggert <eggert@cs.ucla.edu> = schrieb am Mo., 2. Mai 2016 um 18:05=C2=A0Uhr:
Thanks for the bug report and patch, but I ran into a problem= with the
patch. Suppose I do this:

emacs -Q
M-x electric-quote-mode
M-x customize-variable RET electric-quote-string, set it to t, save
M-x python-mode
'abc'

That is, I type apostrophe-a-b-c-apostrophe in Python mode. With the
patch, the buffer will contain:

'abc=E2=80=99

The opening apostrophe is OK, but the closing apostrophe is considered
to be inside a string so it is transmogrified into a right single
quotation mark. A Python programmer would want both to be apostrophes.
<= /blockquote>

I'm not sure, I think if a user has ele= ctric-quote-string enabled, that's the behavior they want, because it&#= 39;s inside a string. However, I can see that both approaches are valid. Th= ere is probably no good way that would work in all circumstances.
--001a113fb2ec6d5ccc0531f62dcb-- From unknown Fri Jun 20 07:16:00 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 01 Jun 2016 11: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