Subject: RE: bug#12232: 24.1.50; regression: repeat.el commit 2012-05-05 breaks repeating commands

From: "Drew Adams" <[email-masked]>
Date: Mon, 3 Sep 2012 08:33:12 -0700

ping.

Stefan, could you please take a look at this?

I diff'd the change you made on 2012-05-05, but the code and the change is not
easy (for me) to fathom.

This comment in the version of repeat.el before your change might be pertinent,
as it refers to a symptom (nesting exceeding `max-lisp-eval-depth') similar to
what I am seeing now:

      ;; A simple recursion here gets into trouble with max-lisp-eval-depth
      ;; on long sequences of repetitions of a command like `forward-word'
      ;; (only 32 repetitions are possible given the default value of 200 for
      ;; max-lisp-eval-depth), but if I now locally disable the repeat char I
      ;; can iterate indefinitely here around a single level of recursion.

Thx - Drew

> ping.
> 
> > I believe this regression was introduced by the following commit:
> > Stefan Monnier2012-05-05 02:50:20Revision ID: 
> > [email-masked]=
> > 0505025020-ihjvoqehkrxkfxw8
> >  
> > Use set-temporary-overlay-map.
> > * lisp/repeat.el: Use lexical-binding.
> > (repeat-last-self-insert, repeat-num-input-keys-at-self-insert)
> > (repeat-undo-count): Remove.
> > (repeat):
...
Debugger entered--Lisp error: (error "Lisp nesting exceeds `max-lisp-eval-d=
epth'")
  repeat(nil)
  call-interactively(repeat)
  #[0 "..." [ignore repeat-message-function this-command repeat call-intera=
ctively] 2 "\n\n(fn)" nil]()
  call-interactively(#[0 "..." [ignore repeat-message-function this-command=
 repeat call-interactively] 2 "\n\n(fn)" nil])
  repeat(nil)
  call-interactively(repeat)
  #[0 "..." [ignore repeat-message-function this-command repeat call-intera=
ctively] 2 "\n\n(fn)" nil]()
  call-interactively(#[0 "..." [ignore
  repeat-message-function this-command repeat call-interactively] 2
  "\n\n(fn)" nil])
...
  repeat(nil)
  call-interactively(repeat)
...