GNU bug report logs -
#3907
bad result for insert-kbd-macro
Previous Next
Reported by: Francesco Potorti` <pot <at> gnu.org>
Date: Thu, 23 Jul 2009 16:10:06 UTC
Severity: normal
Done: Chong Yidong <cyd <at> stupidchicken.com>
Bug is archived. No further changes may be made.
Full log
Message #10 received at 3907 <at> emacsbugs.donarmstrong.com (full text, mbox):
> I created a macro and called insert-kbd-macro on it. This is the
> result:
> (fset 'allegati
> [?e ?\C-[ ?< ?\C-s ?t ?e ?x ?t ?/ ?h ?t ?m ?l ?\C-m ?\C-[ ?{ ?\C-[ ?{ ?\C-[ ?} ?\C-x ?q ?\C-[ ?x ?k ?e ?e ?p ?\C-m ?f ?i ?l ?e ?n ?a ?m ?e ?= ?\C-m ?\C-m ?\C-m ?\C-[ ?% ?. ?* ?f ?i ?l ?e ?n ?a ?m ?e ?= ?\" ?\\ ?( ?[ ?^ ?\" ?] ?+ ?\\ ?) ?\" ?\C-m ? ?[ ? ?\\ ?1 ? ?] ?\C-m ?! ?\C-m ?\C-m ?\C-m ?\C-x ?q ?\C-c ?\C-c ?o ?\C-[ ?\C-? ?i ?s ?i ?\C-m ?\C-[ ?p ? ?d ?\C-[ ?> up ?\C-c ?\C-c ?\C-m])
> 1) first, if I go to the end of the macro and hit C-x C-e, it appears
> that the sexp is not correctly evaluated, as the parser sees
> unbalanced parentheses
This is a bug in the emacs-lisp-mode, mostly. But indeed, the printer
should also be more careful to escape the chars that cause problem for
the emacs-lisp-mode (i.e. print ?\[ rather than ?[ in your above
example).
This said, IIUC the printer used in Emacs-23 does pay attention this
problem and insert-kbd-macro gave me (for example):
(setq last-kbd-macro
[?a left ?\[])
so the problem seems to be fixed in Emacs-23. Can you confirm?
> 2) second, insert-kbd-macro used to write the strings between double
> quotes, which is generally more readable and allows for easy editing;
> I do not know wht it used the vector style here
There's an `up' symbol in there, which couldn't fit in a string.
In general an event is not a char any more (it used to be, back in the
tty days when bytes and chars were the same thing), so a sequence of
events should preferably always be represented as an array of events,
rather than as a string (although, insert-kbd-macro still appears to use
a string when possible).
Stefan
This bug report was last modified 15 years and 280 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.