Subject: bug#955: edmacro stores illegal macro

From: [email-masked]
Date: Wed, 10 Sep 2008 17:25:08 +0900

Hi, all.

When I save the macro by typing `C-c C-c' in *Edit Macro*, edmacro doesn't store the macro correctly.

Reproduce:
  M-: (setq last-kbd-macro
        [?\M-x ?e ?v ?a ?l ?- ?e ?x ?p ?r ?e ?s ?s ?i ?o ?n ?\C-m])
  C-x C-k e RET C-c C-c
  M-x insert-kbd-macro
  => (setq last-kbd-macro
       [<eval-expression ?>]) ;; this macro is incorrect
  
I've fixed this problem like that:

--- edmacro.el.orig     2008-09-10 17:01:42.000000000 +0900
+++ edmacro.el  2008-09-10 17:04:05.000000000 +0900
@@ -697,7 +697,7 @@
             (times 1)
             key)
        ;; Try to catch events of the form "<as df>".
-       (if (string-match "^<[^ >\t\n\f][^>\t\n\f]*>" word)
+       (if (string-match "^<[^ >\t\n\f][^>\t\n\f]*>?>" word)
            (setq word (match-string 0 word)
                  pos (+ word-beg (match-end 0)))
          (setq word (substring string word-beg word-end)

After applying this patch, `M-x insert-kbd-macro' works fine.

  M-x insert-kbd-macro
  => (setq last-kbd-macro
       [?\M-x ?e ?v ?a ?l ?- ?e ?x ?p ?r ?e ?s ?s ?i ?o ?n ?\C-m])
       ;; now correct

Thanks.

MATSUYAMA