From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Tom Willemse Newsgroups: gmane.emacs.bugs Subject: bug#19505: 25.0.50; Defining a chomp function breaks electric pairing Date: Tue, 06 Jan 2015 21:09:20 +0100 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1420575069 25701 80.91.229.3 (6 Jan 2015 20:11:09 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 6 Jan 2015 20:11:09 +0000 (UTC) Cc: 19505@debbugs.gnu.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Jan 06 21:11:00 2015 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 1Y8aSF-0006xm-Pr for geb-bug-gnu-emacs@m.gmane.org; Tue, 06 Jan 2015 21:10:16 +0100 Original-Received: from localhost ([::1]:38064 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y8aSE-0004F7-Qg for geb-bug-gnu-emacs@m.gmane.org; Tue, 06 Jan 2015 15:10:14 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52190) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y8aS7-0004CA-R2 for bug-gnu-emacs@gnu.org; Tue, 06 Jan 2015 15:10:12 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y8aS3-000813-OS for bug-gnu-emacs@gnu.org; Tue, 06 Jan 2015 15:10:07 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:57786) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y8aS3-00080P-GY for bug-gnu-emacs@gnu.org; Tue, 06 Jan 2015 15:10:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1Y8aS2-000053-Nr for bug-gnu-emacs@gnu.org; Tue, 06 Jan 2015 15:10:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Tom Willemse Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 06 Jan 2015 20:10:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 19505 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 19505-submit@debbugs.gnu.org id=B19505.142057497232735 (code B ref 19505); Tue, 06 Jan 2015 20:10:02 +0000 Original-Received: (at 19505) by debbugs.gnu.org; 6 Jan 2015 20:09:32 +0000 Original-Received: from localhost ([127.0.0.1]:38919 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Y8aRX-0008Vu-8l for submit@debbugs.gnu.org; Tue, 06 Jan 2015 15:09:31 -0500 Original-Received: from r0.smtpout1.alwaysdata.com ([176.31.58.0]:49992) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Y8aRU-0008Vl-8i for 19505@debbugs.gnu.org; Tue, 06 Jan 2015 15:09:29 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=alwaysdata.net; s=ryuslash; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:References:Subject:Cc:To:From; bh=44n1Y3e29fNpNErVOUQSF8ODJd6nvgve9FPuyFquc8k=; b=ZtOKv74sGpXZ985FU4nDQRRs0EwVoRd57fwN0/myPyV9K4IQRTOEXFgHKwrmO7ZYbu1pD3+QVFhNyzHRmysHx7rcfAQdununktnUzagYsMCaOZqQSqSMwSySEo32eQK2nRg7vmQ3lcVgsu6pEtaWXV/ihSqNsq0ToEpuPgJDwX0=; Original-Received: from [2a02:1812:2518:ce00:f24d:a2ff:fede:451c] (helo=localhost) by smtpout1.alwaysdata.com with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.77) (envelope-from ) id 1Y8aRM-00079N-Uw; Tue, 06 Jan 2015 21:09:20 +0100 In-Reply-To: (Stefan Monnier's message of "Sun, 04 Jan 2015 15:14:08 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) X-alwaysdata-ID: 43271617 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.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:98070 Archived-At: --=-=-= Content-Type: text/plain Stefan Monnier writes: >> The attached patch fixes the situation where a function `chomp' exists >> and `electric-pair-skip-whitespace' has the value `chomp'. Since that >> specific symbol is mentioned as a special case for this variable, it >> seems that it shouldn't try to call a function named as such. > > Maybe a better option is to use the value `:chomp' instead of `chomp', > since defining a function `:chomp' should be considered an error anyway, I've attached a patch with the change as you suggested. It seems to me this change might need an entry in the NEWS file, since it changes the value of `electric-pair-skip-whitespace' from a symbol to a keyword, people might be confused that their configuration suddenly stopped working. I just had no idea how to describe this in a NEWS-friendly way. Perhaps a test should be written for this as well? If someone could suggest where to put such a test I would happily (try to) write it. --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-Use-a-keyword-not-symbol-to-delete-whitespace.patch >From c9dfaff53b11f6db401d8ed7a7d25e1efb45c461 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Tue, 6 Jan 2015 20:37:29 +0100 Subject: [PATCH] Use a keyword, not symbol, to delete whitespace * elec-pair.el (electric-pair-skip-whitespace): Use `:chomp' instead of `chomp'. (electric-pair-post-self-insert-function): Check for a keyword `:chomp' instead of the symbol `chomp' to prevent naming conflicts. --- lisp/ChangeLog | 8 ++++++++ lisp/elec-pair.el | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 76ba2cd..cd7cd2a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2015-01-06 Tom Willemse + + * elec-pair.el (electric-pair-skip-whitespace): Use `:chomp' + instead of `chomp'. + (electric-pair-post-self-insert-function): Check for a keyword + `:chomp' instead of the symbol `chomp' to prevent naming + conflicts. + 2015-01-05 Dmitry Gutov * progmodes/xref.el (xref--insert-xrefs): Add `help-echo' property diff --git a/lisp/elec-pair.el b/lisp/elec-pair.el index 2cede62..270f4a3 100644 --- a/lisp/elec-pair.el +++ b/lisp/elec-pair.el @@ -129,7 +129,7 @@ (defcustom electric-pair-skip-whitespace The specific kind of whitespace skipped is given by the variable `electric-pair-skip-whitespace-chars'. -The symbol `chomp' specifies that the skipped-over whitespace +The keyword `:chomp' specifies that the skipped-over whitespace should be deleted. Can also be a function of no arguments, in which case that function's @@ -138,7 +138,7 @@ (defcustom electric-pair-skip-whitespace :group 'electricity :type '(choice (const :tag "Yes, jump over whitespace" t) - (const :tag "Yes, and delete whitespace" chomp) + (const :tag "Yes, and delete whitespace" :chomp) (const :tag "No, no whitespace skipping" nil) function)) @@ -487,7 +487,7 @@ (defun electric-pair-post-self-insert-function ;; live with it for now. (when skip-whitespace-info (electric-pair--skip-whitespace)) - (delete-region (1- pos) (if (eq skip-whitespace-info 'chomp) + (delete-region (1- pos) (if (eq skip-whitespace-info :chomp) (point) pos)) (forward-char)) -- 2.2.1 --=-=-=--