[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#12232: 24.1.50; regression: repeat.el commit 2012-05-05 breaks repea
From: |
Drew Adams |
Subject: |
bug#12232: 24.1.50; regression: repeat.el commit 2012-05-05 breaks repeating commands |
Date: |
Sun, 16 Sep 2012 16:31:10 -0700 |
> > Stefan, could you please take a look at this?
> >
> > 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.
>
> The problem arises when I add this binding to the let:
> (repeat-message-function 'ignore)
>
> I.e.,
> (defun repeat-command (command)
> "Repeat COMMAND."
> (interactive)
> (let ((repeat-previous-repeated-command command)
> (repeat-message-function 'ignore) ; <=====
> (last-repeatable-command 'repeat))
> (repeat nil)))
>
> (defun backward-char-repeat ()
> "Like `backward-char'..."
> (interactive)
> (repeat-command 'backward-char))
>
> (define-key ctl-x-map [up] 'backward-char-repeat)
>
> The binding of `repeat-message-function' to `ignore' is to
> suppress a repeat message. If I need to do that differently
> from now on, please advise how - IOW, how to work around
> this `max-lisp-eval-depth' bug. Thx.
ping