Subject: bug#37472: 26.2; completion-kill-region breaks rectangle-mark-mode

From: Jens Lautenbacher <[email-masked]>
Date: Sat, 21 Sep 2019 02:14:04 +0200

When using dynamic completion, rectangle-mark-mode is broken, in so far
as C-w no longer respects just killing the rectangle but instead kills
the usual full (non-rectangular) region.

M-w on the other hand works, because it is the original function, while
C-w is overloaded with completion-kill-region.

To test: try C-w after C-x SPC once bound to kill-region and once bound
to completion-kill-region (or simply M-x the two functions with an
active rectangular region).

I have "fixed" it in my init.el in the following hackish way:

(add-hook 'rectangle-mark-mode-hook
      (lambda ()
        (if rectangle-mark-mode ;; entering...
            (if (not dynamic-completion-mode)
                (setq restore--dyncomplete nil)
              (setq restore--dyncomplete t)
              (dynamic-completion-mode -1))
          ;; ...else leaving
          (if restore--dyncomplete
              (dynamic-completion-mode t)))))

but this seems pretty clumpsy - actually so much that I removed it
again
and just shut off dynamic completion completely...

In GNU Emacs 26.2 (build 1, x86_64-redhat-linux-gnu, GTK+ Version
3.24.10)
 of 2019-07-25 built on buildvm-26.phx2.fedoraproject.org
Windowing system distributor 'Fedora Project', version 11.0.12005000
System Description:	Fedora release 31 (Thirty One)

Recent messages:
Overriding package-menu-mode with paradox-menu-mode
Loading desktop...done
Loading recentf...done
Loading saveplace...done
Loading paren...done
Loading /home/jtl/.emacs.d/recentf...done
Cleaning up the recentf list...done (0 removed)
Wrote /home/jtl/.emacs.d/.emacs.desktop.lock
Desktop: 1 frame, 1 buffer restored.
For information about GNU Emacs and the GNU system, type C-h C-a.

Configured using:
 'configure --build=x86_64-redhat-linux-gnu
 --host=x86_64-redhat-linux-gnu --program-prefix=
 --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
 --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
 --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
 --libexecdir=/usr/libexec --localstatedir=/var
 --sharedstatedir=/var/lib --mandir=/usr/share/man
 --infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-
png
 --with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3
 --with-gpm=no --with-xwidgets --with-modules
 build_alias=x86_64-redhat-linux-gnu host_alias=x86_64-redhat-linux-gnu
 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g -pipe -Wall -Werror=format-security
 -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions
 -fstack-protector-strong -grecord-gcc-switches
 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection'
 LDFLAGS=-Wl,-z,relro
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GSETTINGS GLIB NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS XWIDGETS LCMS2

Important settings:
  value of $LC_MONETARY: de_DE.UTF-8
  value of $LC_NUMERIC: de_DE.UTF-8
  value of $LC_TIME: de_DE.UTF-8
  value of $LANG: en_GB.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp

Minor modes in effect:
  show-paren-mode: t
  save-place-mode: t
  recentf-mode: t
  desktop-save-mode: t
  csv-field-index-mode: t
  dap-ui-mode: t
  dap-mode: t
  treemacs-filewatch-mode: t
  treemacs-follow-mode: t
  treemacs-git-mode: simple
  treemacs-fringe-indicator-mode: t
  counsel-projectile-mode: t
  projectile-mode: t
  electric-pair-mode: t
  flycheck-posframe-mode: t
  global-flycheck-mode: t
  flycheck-mode: t
  global-company-mode: t
  company-mode: t
  ivy-prescient-mode: t
  prescient-persist-mode: t
  ivy-mode: t
  delete-selection-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-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
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow mail-extr emacsbug message format-spec rfc822 mml mml-sec epa
derived epg gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-
encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr init paren saveplace recentf
desktop frameset csv-mode sort treemacs-projectile paradox paradox-menu
paradox-commit-list paradox-execute paradox-github paradox-core dap-
java
dap-ui gdb-mi gud bui bui-list bui-info bui-entry bui-core bui-history
bui-button bui-utils cus-edit cus-start cus-load tree-mode dap-mode
dap-overlays lsp-java request mail-utils url url-proxy url-privacy
url-expand url-methods url-history url-cookie url-domsuf mailcap cc-
mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs lsp lsp-treemacs treemacs treemacs-compatibility treemacs-mode
treemacs-interface treemacs-extensions treemacs-persistence
treemacs-mouse-interface treemacs-tag-follow-mode
treemacs-filewatch-mode treemacs-tags treemacs-follow-mode
treemacs-rendering treemacs-async treemacs-faces treemacs-icons
treemacs-workspaces treemacs-dom treemacs-visuals
treemacs-fringe-indicator pulse treemacs-themes treemacs-core-utils
pfuture ace-window avy hl-line treemacs-macros treemacs-customization
company-lsp lsp-mode ewoc markdown-mode noutline outline tree-widget
wid-edit url-util spinner network-stream puny nsm rmc starttls tls
gnutls inline imenu ht filenotify f s em-glob esh-util dash-functional
bindat flymake-proc flymake warnings company-jedi jedi-core
python-environment epc ctable cl concurrent deferred counsel-projectile
projectile grep ibuf-ext ibuffer ibuffer-loaddefs thingatpt counsel xdg
compile comint ansi-color swiper yasnippet-snippets yasnippet elec-pair
flycheck-posframe posframe flycheck json find-func rx dash powerline
advice powerline-separators powerline-themes ivy-hydra hydra lv
all-the-icons all-the-icons-faces data-material data-weathericons
data-octicons data-fileicons data-faicons data-alltheicons memoize
dired-hide-dotfiles dired dired-loaddefs company-prescient
company-oddmuse company-keywords company-etags etags xref project
company-gtags company-dabbrev-code company-dabbrev company-files
company-capf company-cmake company-xcode company-clang company-semantic
company-eclim company-template company-bbdb company pcase ivy-prescient
prescient subr-x ivy delsel ring colir color ivy-overlay map
tangotango-theme use-package-diminish diminish edmacro kmacro cl-extra
help-mode use-package-bind-key bind-key easy-mmode use-package-ensure
use-package-core finder-inf tex-site info package easymenu epg-config
url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache url-vars seq byte-opt gv bytecomp
byte-compile cconv cl-loaddefs cl-lib time-date mule-util tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win
x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt
fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-
readable
backquote threads dbusbind inotify lcms2 dynamic-setting
system-font-setting font-render-setting xwidget-internal move-toolbar
gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 347270 14535)
 (symbols 48 44566 1)
 (miscs 40 658 215)
 (strings 32 111942 3502)
 (string-bytes 1 3283026)
 (vectors 16 49513)
 (vector-slots 8 871282 17716)
 (floats 8 1083 499)
 (intervals 56 940 115)
 (buffers 992 12))