GNU bug report logs -
#12232
24.1.50; regression: repeat.el commit 2012-05-05 breaks repeating commands
Previous Next
Reported by: "Drew Adams" <drew.adams <at> oracle.com>
Date: Sun, 19 Aug 2012 02:57:02 UTC
Severity: important
Found in version 24.1.50
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
> 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.
This bug report was last modified 12 years and 269 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.