[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bug: "C-x z" ("repeat") no longer works correctly with M-x

From: Chong Yidong
Subject: Re: bug: "C-x z" ("repeat") no longer works correctly with M-x
Date: Sat, 02 Jun 2012 14:44:46 +0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux)

"Aaron S. Hawley" <address@hidden> writes:

> I had given a more literal translation of the C command to the
> gnu-emacs-sources mailing list back in March.  Stefan and I discussed
> it but hadn't run across this issue with repeat.  He later made some
> modifications to my submission and committed it in May.  I have only
> now run it and can confirm this bug with repeat.  I'm not sure what's
> causing it though, but found the following fixes it.  Again, I'm not
> sure why.  Nor am I sure if it's a wholly appropriate fix.

No, tweaking the interactive spec does not really fix the problem.

The problem is that the old execute-extended-command sets the
real_this_command internal variable, which causes the Emacs command loop
to record the command that was actually executed into real-last-command
and last-repeatable-command.

In other words, it's not just the fact that `C-x z' doesn't work
properly.  Moving execute-extended-command to Lisp produces a
backward-incompatible change in the values of the real-last-command and
last-repeatable-command variables for M-x.  I suspect this may break
things other than `C-x z'.  I guess we could fix this by exposing
real_this_command to Lisp too, but that kinda defeats the point of that

Is there a strong rationale for moving execute-extended-command to Lisp,
other than the general principle that we want as much functionality
implemented Lisp as possible?  If not, it may not be worth making this
change, at least in Emacs 24.2, due to the risk of gratuitous

reply via email to

[Prev in Thread] Current Thread [Next in Thread]