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.
>
> 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
This bug report was last modified 12 years and 268 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.