[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: |
Mon, 3 Sep 2012 20:53:43 -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.
I did not send quite the correct code to repro the problem.
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.