Subject: bug#23295: 24.5; in cc-mode, '(' replaces selection with '(' when electric-pair-mode and cua-mode are active

From: [email-masked]
Date: Fri, 15 Apr 2016 15:43:09 +0200

When editing a C source file while cua-mode and electric-pair-mode are
both active, typing '(' replaces selected text with '(' instead of
wrapping it in '(' and ')'.

Steps to reproduce (in `emacs -Q`):
- C-x C-f foo.c RET
- M-x cua-mode RET
- M-x electric-pair-mode RET
- Type: #define FOO(x) x + 42
- Select "x + 42"
- Type: (

Expected result:
- Text should read: #define FOO(x) (x + 42)

Actual result:
- Text reads: #define FOO(x) (

Remarks:
- Turning off cua-mode, marking the selection with C-SPC and movement
keys, then typing '(' works as expected.
- The problem appears to only occur in cc-mode.

In GNU Emacs 24.5.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.16.6)
 of 2015-09-10 on foutrelis
Windowing system distributor `The X.Org Foundation', version 11.0.11803000
Configured using:
 `configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --with-x-toolkit=gtk3 --with-xft
 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong
 --param=ssp-buffer-size=4' CPPFLAGS=-D_FORTIFY_SOURCE=2
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro'

Important settings:
  value of $LC_MESSAGES: en_US.utf8
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: Debbugs

Minor modes in effect:
  global-speechd-speak-map-mode: t
  speechd-speak-map-mode: t
  erc-list-mode: t
  erc-menu-mode: t
  erc-autojoin-mode: t
  erc-ring-mode: t
  erc-networks-mode: t
  erc-pcomplete-mode: t
  erc-track-mode: t
  erc-track-minor-mode: t
  erc-match-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-netsplit-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  delete-selection-mode: t
  winner-mode: t
  show-paren-mode: t
  msb-mode: t
  icomplete-mode: t
  global-whitespace-mode: t
  electric-pair-mode: t
  cua-mode: t
  multi-web-global-mode: t
  global-flycheck-mode: t
  shell-dirtrack-mode: t
  global-company-mode: t
  company-mode: t
  override-global-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-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
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
Mark set
Mark saved where search started
Mark set [2 times]
Quit
Mark set
line-move-visual: Beginning of buffer [2 times]
Searched 1 buffer; 7 matches for `electric'
You can run the command `occur' with M-s o
Searched 1 buffer; 7 matches for `electric'
Auto-saving...done

Load-path shadows:
/usr/share/emacs/site-lisp/SuperCollider/tree-widget hides /usr/share/emacs/24.5/lisp/tree-widget
/home/miki/.emacs.d/elpa/soap-client-3.1.1/soap-client hides /usr/share/emacs/24.5/lisp/net/soap-client
/home/miki/.emacs.d/elpa/soap-client-3.1.1/soap-inspect hides /usr/share/emacs/24.5/lisp/net/soap-inspect

Features:
(shadow sort mail-extr emacsbug sendmail misearch multi-isearch
mm-archive message idna ...)

Memory information:
((conses 16 1059803 115597)
 (symbols 48 52062 1)
 (miscs 40 587 1906)
 (strings 32 156314 39234)
 (string-bytes 1 4107708)
 (vectors 16 76553)
 (vector-slots 8 1364662 26333)
 (floats 8 4166 1393)
 (intervals 56 45695 1436)
 (buffers 960 31)
 ...)