GNU bug report logs - #12232
24.1.50; regression: repeat.el commit 2012-05-05 breaks repeating commands

Previous Next

Package: emacs;

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


Message #14 received at 12232 <at> debbugs.gnu.org (full text, mbox):

From: "Drew Adams" <drew.adams <at> oracle.com>
To: <12232 <at> debbugs.gnu.org>
Cc: Stefan Monnier <monnier <at> iro.umontreal.ca>
Subject: RE: 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.





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.