From mboxrd@z Thu Jan 1 00:00:00 1970
Path: news.gmane.org!.POSTED!not-for-mail
From: Philipp Stephani
Newsgroups: gmane.emacs.bugs
Subject: bug#29812: [PATCH] Ignore escape characters for context-sensitive
quotes (Bug#29812)
Date: Sun, 31 Dec 2017 17:51:04 +0100
Message-ID: <20171231165104.68136-1-phst__36000.5086790354$1514739026$gmane$org@google.com>
References:
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: blaine.gmane.org 1514739026 29296 195.159.176.226 (31 Dec 2017 16:50:26 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Sun, 31 Dec 2017 16:50:26 +0000 (UTC)
Cc: Philipp Stephani
To: emacs-devel@gnu.org, 29812@debbugs.gnu.org
Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Dec 31 17:50:22 2017
Return-path:
Envelope-to: geb-bug-gnu-emacs@m.gmane.org
Original-Received: from lists.gnu.org ([208.118.235.17])
by blaine.gmane.org with esmtp (Exim 4.84_2)
(envelope-from )
id 1eVgoP-0006vU-R9
for geb-bug-gnu-emacs@m.gmane.org; Sun, 31 Dec 2017 17:50:14 +0100
Original-Received: from localhost ([::1]:44975 helo=lists.gnu.org)
by lists.gnu.org with esmtp (Exim 4.71)
(envelope-from )
id 1eVgqO-000126-Tj
for geb-bug-gnu-emacs@m.gmane.org; Sun, 31 Dec 2017 11:52:16 -0500
Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:49182)
by lists.gnu.org with esmtp (Exim 4.71)
(envelope-from ) id 1eVgqD-000113-7V
for bug-gnu-emacs@gnu.org; Sun, 31 Dec 2017 11:52:07 -0500
Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
(envelope-from ) id 1eVgqA-0001lM-5W
for bug-gnu-emacs@gnu.org; Sun, 31 Dec 2017 11:52:05 -0500
Original-Received: from debbugs.gnu.org ([208.118.235.43]:50248)
by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
(Exim 4.71) (envelope-from )
id 1eVgqA-0001l7-1J
for bug-gnu-emacs@gnu.org; Sun, 31 Dec 2017 11:52:02 -0500
Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2)
(envelope-from ) id 1eVgq9-000294-Mw
for bug-gnu-emacs@gnu.org; Sun, 31 Dec 2017 11:52:01 -0500
X-Loop: help-debbugs@gnu.org
Resent-From: Philipp Stephani
Original-Sender: "Debbugs-submit"
Resent-CC: bug-gnu-emacs@gnu.org
Resent-Date: Sun, 31 Dec 2017 16:52:01 +0000
Resent-Message-ID:
Resent-Sender: help-debbugs@gnu.org
X-GNU-PR-Message: followup 29812
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords:
Original-Received: via spool by 29812-submit@debbugs.gnu.org id=B29812.15147390858204
(code B ref 29812); Sun, 31 Dec 2017 16:52:01 +0000
Original-Received: (at 29812) by debbugs.gnu.org; 31 Dec 2017 16:51:25 +0000
Original-Received: from localhost ([127.0.0.1]:58929 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from )
id 1eVgpZ-00028G-58
for submit@debbugs.gnu.org; Sun, 31 Dec 2017 11:51:25 -0500
Original-Received: from mail-wm0-f46.google.com ([74.125.82.46]:41520)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from ) id 1eVgpW-000280-Rk
for 29812@debbugs.gnu.org; Sun, 31 Dec 2017 11:51:23 -0500
Original-Received: by mail-wm0-f46.google.com with SMTP id g75so55533931wme.0
for <29812@debbugs.gnu.org>; Sun, 31 Dec 2017 08:51:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
h=from:to:cc:subject:date:message-id:in-reply-to:references
:mime-version:content-transfer-encoding;
bh=LD2PFd6hIdb+aUao2hLk6kKsbceC6nILivwqsvImQHo=;
b=hvm+YturBfWX2iYDvq1RwQNtjixLpWtZINBhVQlU/uZ9w8HMy5MS3CSsDKdmX3gcP0
GFO2q08BL4wv1XUfNL0Q3LKWKmEcdS9K8JIg31hgYqXW3SPtHVHCqLq8rH8zspI2jpaD
+Sn0le9yK8foh2O0ao2vqb0D/sXkmCdQIXIngGu6y1dWP9r4u6cB7Hf/WuKwS9Wg4CvP
EIGl5UGYGgefOUf7S9GS3T/bAvGWYKk7RCpsyL9qZFLaSMgtRun5RBahtiE14EgtK5UW
9lDXhhhD1Mztjab7xDx6da1ta9LWFEknnBXfSVnicMlJQ+v8K1jEvzkzW5w8oQDYKe5Y
h7dA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20161025;
h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
:references:mime-version:content-transfer-encoding;
bh=LD2PFd6hIdb+aUao2hLk6kKsbceC6nILivwqsvImQHo=;
b=Je0toNuDyvDlHxkcPHa+p5BEi9uT+pP2K15wx5zsb9iS3D0sOIY+iA4Pnl78JzD1tw
DYcD0nSU2NnQ6qBd0UhnT5WfP0DzNI/JONHZ8jS6evlud2+kkBXwZMm44r5NDvfrQ43g
c0zBlpdSgdN5+LiK3voFGgQCao242cSWJJIqqtoHKgbUrOEB9MtZpe+3kTUmltoln+sJ
yJELfeM4s2ujOUni6HF9vvmBKofYChoVGwtMlc2orinU4q3AeHiepYOOBLvFMcu2qE0s
v7vfOY/679haANUgnCwieG05R633qilj6FdZpvVu5LM+PevLExyLm9mncauUyGnyiTOb
d/ZQ==
X-Gm-Message-State: AKGB3mJoGNqvWYfb1710Bk4VPm51Cax1TFhZYstDaU50Ze+3pYuTi1cm
JJM8EXEvbcLPvnW2iwgNF38=
X-Google-Smtp-Source: ACJfBot+VpZhmJSNe25tPzrS4slGfW2TLJ2+vT1a8twUrDAnKyEC3j4m2jZFE5dwzY+Sze48X5ELYQ==
X-Received: by 10.28.5.198 with SMTP id 189mr32333278wmf.29.1514739076895;
Sun, 31 Dec 2017 08:51:16 -0800 (PST)
Original-Received: from p.fritz.box (p57AAFA54.dip0.t-ipconnect.de. [87.170.250.84])
by smtp.gmail.com with ESMTPSA id
x88sm13216383wrb.4.2017.12.31.08.51.16
(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
Sun, 31 Dec 2017 08:51:16 -0800 (PST)
X-Google-Original-From: Philipp Stephani
X-Mailer: git-send-email 2.15.1
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:141650
Archived-At:
* lisp/electric.el (electric-quote-post-self-insert-function): Skip
over escape characters when determining whether a context-sensitive
quote should be opening or closing.
* test/lisp/electric-tests.el
(electric-quote-replace-double-escaped-open)
(electric-quote-replace-double-escaped-close): New unit tests.
---
lisp/electric.el | 1 +
test/lisp/electric-tests.el | 18 ++++++++++++++++++
2 files changed, 19 insertions(+)
diff --git a/lisp/electric.el b/lisp/electric.el
index cee3562139..9473ef374d 100644
--- a/lisp/electric.el
+++ b/lisp/electric.el
@@ -504,6 +504,7 @@ electric-quote-post-self-insert-function
electric-quote-replace-double)
(save-excursion
(backward-char)
+ (skip-syntax-backward "\\")
(or (bobp) (bolp)
(memq (char-before) (list q< q<<))
(memq (char-syntax (char-before))
diff --git a/test/lisp/electric-tests.el b/test/lisp/electric-tests.el
index 7df2449b9e..793cd7c5d3 100644
--- a/test/lisp/electric-tests.el
+++ b/test/lisp/electric-tests.el
@@ -735,6 +735,24 @@ electric-quote-replace-double-after-paren
:bindings '((electric-quote-replace-double . t))
:test-in-comments nil :test-in-strings nil)
+(define-electric-pair-test electric-quote-replace-double-escaped-open
+ "foo \\" "-----\"" :expected-string "foo \\“"
+ :expected-point 7 :modes '(emacs-lisp-mode c-mode)
+ :fixture-fn #'electric-quote-local-mode
+ :bindings '((electric-quote-replace-double . t)
+ (electric-quote-comment . t)
+ (electric-quote-string . t))
+ :test-in-comments t :test-in-strings t :test-in-code nil)
+
+(define-electric-pair-test electric-quote-replace-double-escaped-close
+ "foo \\“foo\\" "----------\"" :expected-string "foo \\“foo\\”"
+ :expected-point 12 :modes '(emacs-lisp-mode c-mode)
+ :fixture-fn #'electric-quote-local-mode
+ :bindings '((electric-quote-replace-double . t)
+ (electric-quote-comment . t)
+ (electric-quote-string . t))
+ :test-in-comments t :test-in-strings t :test-in-code nil)
+
;; Simulate ‘markdown-mode’: it sets both ‘comment-start’ and
;; ‘comment-use-syntax’, but derives from ‘text-mode’.
(define-electric-pair-test electric-quote-markdown-in-text
--
2.15.1