Subject: RE: bug#14095: 24.3.50; REGRESSION: `repeat' broken by use of `set-temporary-overlay-map'

From: Drew Adams <[email-masked]>
Date: Thu, 13 Jun 2013 20:42:04 -0700 (PDT)

> > C-s  C-y  C-e  C-e  C-e
> > That works if the old definition of `repeat' is used.  It does not work
> 
> This should work now, thank you,

I want to say thank you!  But unfortunately there is still a problem,
in this build (which I believe includes your fix):

In GNU Emacs 24.3.50.1 (i686-pc-mingw32)
 of 2013-06-13 on ODIEONE
Bzr revision: 112978 [email-masked]
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --prefix=/c/Devel/emacs/binary --enable-checking=yes,glyphs
 CFLAGS='-O0 -g3' CPPFLAGS='-Ic:/Devel/emacs/include'
 LDFLAGS='-Lc:/Devel/emacs/lib''

>From `emacs -Q', I do this:

(defun isearchp-repeat-command (command)
  "..."
  (let ((repeat-message-function  'ignore))
    (setq last-repeatable-command  command)
    (repeat nil)))

(defun isearchp-yank-line ()
  "..."
  (interactive)
  (require 'repeat nil t)
  (isearchp-repeat-command 'isearch-yank-line))

(define-key isearch-mode-map "\C-y" nil)
(define-key isearch-mode-map (kbd "C-y C-e") 'isearchp-yank-line)

Things seem to work pretty much as they should, but if you do
`C-s C-y C-e C-e' then as soon as you hit the second `C-e' you
see this error msg: "Stack overflow in equal", which comes from
`set-temporary-overlay-map'.

With non-nil `debug-on-error' you get a backtrace like this:

Debugger entered--Lisp error: (error "Stack overflow in equal")
  add-hook(pre-command-hook #[0 "... [(keymap (5 . #[0 "..."
   [ignore repeat-message-function this-command real-this-command
    repeat call-interactively] 3 "\n\n(fn)" nil])) nil nil (#0)
    this-command nil t lookup-key this-command-keys-vector
    remove-hook pre-command-hook internal-pop-keymap
    overriding-terminal-local-map] 4 "\n\n(fn)"])

(I copied that backtrace from a session using my setup, not
emacs -Q, but it looks, superficially at least, the same as what
I see with emacs -Q.)

Hope this helps.  I will leave the bug closed for now.  Thanks
for working on this.