Subject: 25.0.50; Flyspell minor mode produces weird effects on keyboard macros

From: Mark Karpov <[email-masked]>
Date: Sun, 23 Aug 2015 17:57:44 +0600

❧

This is really strange. Here is how to reproduce it in development
version of Emacs:

1. Start Emacs with ‘-Q’ flag.

2. Enable ‘flyspell-mode’ (M-x flyspell-mode RET).

3. Start recording keyboard macro with F3.

4. Type (pick one of these, they all produce different effects):

   * abc
   * prop_

5. Finish recording of the keyboard macro with F4.

6. Hit F4 again to run the macro.

If you chose “abc”, you will get:

abcabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbccabbcca

And in ‘*Messages*’:

For information about GNU Emacs and the GNU system, type C-h C-a.
completing-read-default: Command attempted to use minibuffer while in minibuffer
Quit
Starting new Ispell process /usr/bin/aspell with default dictionary...
Defining kbd macro...
Keyboard macro defined
After 0 kbd macro iterations: run-hook-with-args: Variable binding depth exceeds max-specpdl-size

If you rather preferred “prop_”:

prop_prroopp__

Well. Some letters (all expect for the first one) are duplicated…

In GNU Emacs 25.0.50.18 (x86_64-unknown-linux-gnu, GTK+ Version 3.16.6)
 of 2015-08-19 on arch
Repository revision: 62661fe759dfc826f31b032e49f0f15b40a207d5
Windowing system distributor `The X.Org Foundation', version 11.0.11702000
Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11

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

Major mode: iε

Minor modes in effect:
  rainbow-delimiters-mode: t
  hl-todo-mode: t
  flycheck-mode: t
  flyspell-mode: t
  whitespace-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  show-paren-mode: t
  minibuffer-electric-default-mode: t
  ido-vertical-mode: t
  ido-ubiquitous-mode: t
  ido-everywhere: t
  highlight-line-mode: t
  global-auto-revert-mode: t
  global-aggressive-indent-mode: t
  aggressive-indent-mode: t
  display-time-mode: t
  delete-selection-mode: t
  ace-popup-menu-mode: t
  smartparens-global-mode: t
  smartparens-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  auto-fill-function: do-auto-fill
  transient-mark-mode: t
  auto-fill-mode: 1

Recent messages:
ad-handle-definition: `ido-completing-read' got redefined
[yas] Loading compiled snippets from /home/mark/.emacs.d/elpa/common-lisp-snippets-20150603.944/snippets/lisp-mode [2 times]
[yas] Prepared just-in-time loading for /home/mark/.emacs.d/snippets
[yas] Prepared just-in-time loading for /home/mark/.emacs.d/elpa/common-lisp-snippets-20150603.944/snippets
[yas] Reloaded everything (snippets will load just-in-time)....
Starting new Ispell process /usr/bin/aspell with en dictionary...
[yas] Loading for `emacs-lisp-mode', just-in-time: (lambda nil (yas--load-directory-1 (quote /home/mark/.emacs.d/snippets/emacs-lisp-mode) (quote emacs-lisp-mode)))!
[yas] Loading compiled snippets from /home/mark/.emacs.d/snippets/emacs-lisp-mode
Sunday, 23 August 2015

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message dired format-spec
rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util help-fns mail-prsvr mail-utils rainbow-delimiters hl-todo
flycheck-haskell haskell-cabal haskell-utils haskell-customize flycheck
find-func rx flyspell ispell whitespace mk-visual solarized-dark-theme
solarized mk-texinfo mk-tex mk-python mk-prolog mk-org mk-markdown
mk-man mk-magit mk-lisp mk-ibuffer mk-haskell mk-gnus mk-eshell mk-erc
mk-elisp mk-dired mk-diff mk-clojure kill-or-bury-alive mk-calendar mk-c
mk-bookmark mk-minor-modes common-lisp-snippets yasnippet cl
whole-line-or-region paren minibuf-eldef ido-vertical-mode
ido-ubiquitous ido-completing-read+ cl-macs gv ido highlight-line
autorevert filenotify cl-seq aggressive-indent easy-mmode time delsel
ace-popup-menu smartparens-config smartparens byte-opt thingatpt
mk-global edmacro kmacro ace-link avy ring misc server mk-utils subr-x f
dash s ucs-normalize finder-inf tex-site fix-word advice slime-autoloads
info bytecomp byte-compile cl-extra help-mode seq cl-loaddefs pcase
cl-lib cconv package easymenu epg-config time-date mule-util tooltip
eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core 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 charscript case-table epa-hook jka-cmpr-hook help
simple abbrev 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
dbusbind inotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 350582 106916)
 (symbols 48 31571 7)
 (miscs 40 66 212)
 (strings 32 54146 56214)
 (string-bytes 1 1538038)
 (vectors 16 45028)
 (vector-slots 8 781772 45990)
 (floats 8 283 405)
 (intervals 56 248 35)
 (buffers 976 12)
 (heap 1024 60596 4785))