From: Chong Yidong Date: Sat, 14 Jul 2012 05:32:23 +0000 (+0800) Subject: Fix electric-pair-mode/delete-selection-mode interaction. X-Git-Tag: emacs-24.2.90~1199^2 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b5cf7fc45c625b312ab88fb3fa13eef2f25acbce;p=emacs.git Fix electric-pair-mode/delete-selection-mode interaction. * lisp/electric.el (electric-pair-post-self-insert-function): Fix pair insertion in empty-region case. Fixes: debbugs:11520 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index fb1eae49dba..15ed6d89943 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-07-14 Chong Yidong + + * electric.el (electric-pair-post-self-insert-function): Fix pair + insertion in empty-region case (Bug#11520). + 2012-07-14 Chong Yidong * bindings.el: Consolidate ctl-x-r-map bindings. Bind diff --git a/lisp/electric.el b/lisp/electric.el index 5f1445577e9..3108a0ed4c0 100644 --- a/lisp/electric.el +++ b/lisp/electric.el @@ -322,12 +322,13 @@ This can be convenient for people who find it easier to hit ) than C-f." ((and (memq syntax '(?\( ?\" ?\$)) (use-region-p)) (if (> (mark) (point)) (goto-char (mark)) - ;; We already inserted the open-paren but at the end of the region, - ;; so we have to remove it and start over. - (delete-char -1) - (save-excursion + ;; We already inserted the open-paren but at the end of the + ;; region, so we have to remove it and start over. + (delete-char -1) + (save-excursion (goto-char (mark)) - (insert last-command-event))) + ;; Do not insert after `save-excursion' marker (Bug#11520). + (insert-before-markers last-command-event))) (insert closer)) ;; Backslash-escaped: no pairing, no skipping. ((save-excursion