-;;; macros.el --- non-primitive commands for keyboard macros.
+;;; macros.el --- non-primitive commands for keyboard macros
;; Copyright (C) 1985, 86, 87, 92, 94, 95 Free Software Foundation, Inc.
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to
-;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+;; along with GNU Emacs; see the file COPYING. If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
;;; Commentary:
(and (fboundp symbol)
(not (stringp (symbol-function symbol)))
(not (vectorp (symbol-function symbol)))
- (error "Function %s is already defined and not a keyboard macro."
+ (error "Function %s is already defined and not a keyboard macro"
symbol))
+ (if (string-equal symbol "")
+ (error "No command name given"))
(fset symbol last-kbd-macro))
;;;###autoload
(setq mods (cdr mods)))
(cond ((= char ?\\)
(insert "\\\\"))
+ ((= char ?\")
+ (insert "\\\""))
+ ((= char ?\;)
+ (insert "\\;"))
((= char 127)
(insert "\\C-?"))
((< char 127)
\\[recenter] Redisplay the screen, then ask again.
\\[edit] Enter recursive edit; ask again when you exit from that."
(interactive "P")
- (or executing-macro
+ (or executing-kbd-macro
defining-kbd-macro
(error "Not defining or executing kbd macro"))
(if flag
- (let (executing-macro defining-kbd-macro)
+ (let (executing-kbd-macro defining-kbd-macro)
(recursive-edit))
- (if (not executing-macro)
+ (if (not executing-kbd-macro)
nil
(let ((loop t)
(msg (substitute-command-keys
"Proceed with macro?\\<query-replace-map>\
(\\[act], \\[skip], \\[exit], \\[recenter], \\[edit]) ")))
(while loop
- (let ((key (let ((executing-macro nil)
+ (let ((key (let ((executing-kbd-macro nil)
(defining-kbd-macro nil))
- (message msg)
+ (message "%s" msg)
(read-event)))
def)
(setq key (vector key))
(setq loop nil))
((eq def 'skip)
(setq loop nil)
- (setq executing-macro ""))
+ (setq executing-kbd-macro ""))
((eq def 'exit)
(setq loop nil)
- (setq executing-macro t))
+ (setq executing-kbd-macro t))
((eq def 'recenter)
(recenter nil))
((eq def 'edit)
- (let (executing-macro defining-kbd-macro)
+ (let (executing-kbd-macro defining-kbd-macro)
(recursive-edit)))
((eq def 'quit)
(setq quit-flag t))
Suppose you wanted to build a keyword table in C where each entry
looked like this:
- { \"foo\", foo_data, foo_function },
+ { \"foo\", foo_data, foo_function },
{ \"bar\", bar_data, bar_function },
{ \"baz\", baz_data, baz_function },
(or macro
(progn
(if (null last-kbd-macro)
- (error "No keyboard macro has been defined."))
+ (error "No keyboard macro has been defined"))
(setq macro last-kbd-macro)))
(save-excursion
(let ((end-marker (progn
(forward-line 1)
(set-marker next-line-marker (point)))
(save-excursion
- (execute-kbd-macro (or macro last-kbd-macro))))
+ (let ((mark-active nil))
+ (execute-kbd-macro (or macro last-kbd-macro)))))
(set-marker end-marker nil)
(set-marker next-line-marker nil))))
;;;###autoload (define-key ctl-x-map "q" 'kbd-macro-query)
+(provide 'macros)
+
+;;; arch-tag: 346ed1a5-1220-4bc8-b533-961ee704361f
;;; macros.el ends here