From 6f1325ed926ed455398021377a10160ac695c0d6 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 23 Oct 2016 01:14:23 -0700 Subject: [PATCH] electric-quote mode no longer worries about coding * doc/emacs/text.texi (Quotation Marks), etc/NEWS: Document this. * lisp/electric.el (electric--insertable-p): Remove. All uses removed (Bug#24759). --- doc/emacs/text.texi | 4 +--- etc/NEWS | 6 ++++++ lisp/electric.el | 21 ++++----------------- 3 files changed, 11 insertions(+), 20 deletions(-) diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi index 579f7880cfe..7fa0804d270 100644 --- a/doc/emacs/text.texi +++ b/doc/emacs/text.texi @@ -422,9 +422,7 @@ portable; curved quotes are less ambiguous and typically look nicer. Electric Quote mode makes it easier to type curved quotes. As you type characters it optionally converts @t{`} to @t{‘}, @t{'} to @t{’}, -@t{``} to @t{“}, and @t{''} to @t{”}. These conversions are -suppressed in buffers whose coding systems cannot represent curved -quote characters. +@t{``} to @t{“}, and @t{''} to @t{”}. @vindex electric-quote-paragraph @vindex electric-quote-comment diff --git a/etc/NEWS b/etc/NEWS index 5b89639440d..a5bcb8dabdc 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -38,6 +38,12 @@ fontsets if the default font supports these characters. Set this variable to nil to disable the new behavior and get back the old behavior. ++++ +** 'electric-quote-mode' is no longer suppressed in a buffer whose +whose coding system cannot represent curved quote characters. +Instead, users can deal with the unrepresentable characters in the +usual way when they save the buffer. + --- ** New variable 'inhibit-compacting-font-caches'. Set this variable to a non-nil value to speed up display of characters diff --git a/lisp/electric.el b/lisp/electric.el index b6697e0736a..ab9770b0bbb 100644 --- a/lisp/electric.el +++ b/lisp/electric.el @@ -430,12 +430,6 @@ The variable `electric-layout-rules' says when and how to insert newlines." :version "25.1" :type 'boolean :safe 'booleanp :group 'electricity) -(defun electric--insertable-p (string) - (or (not buffer-file-coding-system) - (eq (coding-system-base buffer-file-coding-system) 'undecided) - (not (unencodable-char-position nil nil buffer-file-coding-system - nil string)))) - (defun electric-quote-post-self-insert-function () "Function that `electric-quote-mode' adds to `post-self-insert-hook'. This requotes when a quoting key is typed." @@ -460,8 +454,7 @@ This requotes when a quoting key is typed." (when start (save-excursion (if (eq last-command-event ?\`) - (cond ((and (electric--insertable-p "“") - (search-backward "‘`" (- (point) 2) t)) + (cond ((search-backward "‘`" (- (point) 2) t) (replace-match "“") (when (and electric-pair-mode (eq (cdr-safe @@ -469,16 +462,13 @@ This requotes when a quoting key is typed." (char-after))) (delete-char 1)) (setq last-command-event ?“)) - ((and (electric--insertable-p "‘") - (search-backward "`" (1- (point)) t)) + ((search-backward "`" (1- (point)) t) (replace-match "‘") (setq last-command-event ?‘))) - (cond ((and (electric--insertable-p "”") - (search-backward "’'" (- (point) 2) t)) + (cond ((search-backward "’'" (- (point) 2) t) (replace-match "”") (setq last-command-event ?”)) - ((and (electric--insertable-p "’") - (search-backward "'" (1- (point)) t)) + ((search-backward "'" (1- (point)) t) (replace-match "’") (setq last-command-event ?’))))))))) @@ -497,9 +487,6 @@ and text paragraphs, and these are selectively controlled with `electric-quote-comment', `electric-quote-string', and `electric-quote-paragraph'. -Electric quoting is suppressed in a buffer whose coding system -cannot represent the replacement characters. - This is a global minor mode. To toggle the mode in a single buffer, use `electric-quote-local-mode'." :global t :group 'electricity -- 2.11.4.GIT