i hereby withdraw my change, and the associated news file entry:
** The variable `kill-whole-line' now only takes effect interactively.
(This variable controls the behavior of `kill-line'.) Although this
is a departure from a previous behavior in the case of setting this
variable `kill-whole-line' to t, it is almost certainly what has
always been intended, and most likely the old way of doing things
after my previous kill-line change was withdrawn, there's no point to this one
Hrvoje Niksic wrote:
Ben, I believe one of your changes to kill-line broke its execution in
For some time now I've been witnessing a strange discrepancy in the
behavior of keyboard macros during recording and execution. Finally
I've narrowed it down to `kill-line' misbehaving. The problem is that
the variable `kill-whole-line' is not respected when `kill-line' is
executed as part of a keyboard macro.
Start `xemacs -vanilla', set `kill-whole-line' to t. See that
kill-line at BOL kills the entire line. Now record a macro solely
consisting of C-k:
C-x ( C-k C-x )
Try executing it with `C-x e' and you'll see that it no longer kills
the whole line, but only the part up to the newline, as if
kill-whole-line were set to nil.
I haven't had the time to investigate this properly, but I suspect the
problem is in this change:
If called interactively, may kill the entire line when given no
argument at the beginning of a line; see `kill-whole-line'.
Apparently functions bound to keys executed in keyboard macros get
call non-interactively. In the case of kill-line, it makes a big
difference, thus causing the macro weirdness.
I'm working around the problem by redefining kill-line in my .emacs,
but a real fix would be to make macro execution execute commands with
`call-interactively', as God intended. (But this may cause other side
This is easy to test by creating a dummy command that prints a message
if (interactive-p) and binding it to a key. And indeed, I confirmed
that such a command prints its message on a key press, but not when
invoked as part of macro execution!
I'm sometimes slow in getting around to reading my mail, so if you
want to reach me faster, call 520-661-6661.
for the hell I've been