annotate lisp/macros.el @ 110410:f2e111723c3a

Merge changes made in Gnus trunk. Reimplement nnimap, and do tweaks to the rest of the code to support that. * gnus-int.el (gnus-finish-retrieve-group-infos) (gnus-retrieve-group-data-early): New functions. * gnus-range.el (gnus-range-nconcat): New function. * gnus-start.el (gnus-get-unread-articles): Support early retrieval of data. (gnus-read-active-for-groups): Support finishing the early retrieval of data. * gnus-sum.el (gnus-summary-move-article): Pass the move-to group name if the move is internal, so that nnimap can do fast internal moves. * gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for nnimap usage. * nnimap.el: Rewritten. * nnmail.el (nnmail-inhibit-default-split-group): New internal variable to allow the mail splitting to not return a default group. This is useful for nnimap, which will leave unmatched mail in the inbox. * utf7.el (utf7-encode): Autoload. Implement shell connection. * nnimap.el (nnimap-open-shell-stream): New function. (nnimap-open-connection): Use it. Get the number of lines by using BODYSTRUCTURE. (nnimap-transform-headers): Get the number of lines in each message. (nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the number of lines. Not all servers return UIDNEXT. Work past this problem. Remove junk from end of file. Fix typo in "bogus" section. Make capabilties be case-insensitive. Require cl when compiling. Don't bug out if the LIST command doesn't have any parameters. 2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change) * nnimap.el (nnimap-get-groups): Don't bug out if the LIST command doesn't have any parameters. (mm-text-html-renderer): Document gnus-article-html. 2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix) * mm-decode.el (mm-text-html-renderer): Document gnus-article-html. * dgnushack.el: Define netrc-credentials. If the user doesn't have a /etc/services, supply some sensible port defaults. Have `unseen-or-unread' select an unread unseen article first. (nntp-open-server): Return whether the open was successful or not. Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ). Save result so that it doesn't say "failed" all the time. Add ~/.authinfo to the default, since that's probably most useful for users. Don't use the "finish" method when we're reading from the agent. Add some more nnimap-relevant agent stuff to nnagent.el. * nnimap.el (nnimap-with-process-buffer): Removed. Revert one line that was changed by mistake in the last checkin. (nnimap-open-connection): Don't error out when we can't make a connection nnimap-related changes to avoid bugging out if we can't contact a server. * gnus-start.el (gnus-get-unread-articles): Don't try to scan groups from methods that are denied. * nnimap.el (nnimap-possibly-change-group): Return nil if we can't log in. (nnimap-finish-retrieve-group-infos): Make sure we're not waiting for nothing. * gnus-sum.el (gnus-select-newsgroup): Indent.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sat, 18 Sep 2010 10:02:19 +0000
parents 280c8ae2476d
children 417b1e4d63cd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38412
253f761ad37b Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents: 33281
diff changeset
1 ;;; macros.el --- non-primitive commands for keyboard macros
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 427
diff changeset
2
74442
b2e5081b9320 Update copyright years.
Glenn Morris <rgm@gnu.org>
parents: 74235
diff changeset
3 ;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1995, 2001, 2002, 2003,
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 105994
diff changeset
4 ;; 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
845
213978acbc1e entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
5
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
6 ;; Maintainer: FSF
2247
2c7997f249eb Add or correct keywords
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1470
diff changeset
7 ;; Keywords: abbrev
110015
280c8ae2476d Add "Package:" file headers to denote built-in packages.
Chong Yidong <cyd@stupidchicken.com>
parents: 107332
diff changeset
8 ;; Package: emacs
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
9
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
10 ;; This file is part of GNU Emacs.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
11
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
12 ;; GNU Emacs is free software: you can redistribute it and/or modify
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
13 ;; it under the terms of the GNU General Public License as published by
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
14 ;; the Free Software Foundation, either version 3 of the License, or
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
15 ;; (at your option) any later version.
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
16
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
17 ;; GNU Emacs is distributed in the hope that it will be useful,
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
20 ;; GNU General Public License for more details.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
21
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
22 ;; You should have received a copy of the GNU General Public License
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
23 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
24
2307
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2247
diff changeset
25 ;;; Commentary:
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2247
diff changeset
26
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2247
diff changeset
27 ;; Extension commands for keyboard macros. These permit you to assign
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2247
diff changeset
28 ;; a name to the last-defined keyboard macro, expand and insert the
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2247
diff changeset
29 ;; lisp corresponding to a macro, query the user from within a macro,
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2247
diff changeset
30 ;; or apply a macro to each line in the reason.
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2247
diff changeset
31
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
32 ;;; Code:
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
33
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 217
diff changeset
34 ;;;###autoload
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
35 (defun name-last-kbd-macro (symbol)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
36 "Assign a name to the last keyboard macro defined.
216
2c663336acaf *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 36
diff changeset
37 Argument SYMBOL is the name to define.
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
38 The symbol's function definition becomes the keyboard macro string.
217
8977ce293397 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 216
diff changeset
39 Such a \"function\" cannot be called from Lisp, but it is a valid editor command."
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
40 (interactive "SName for last kbd macro: ")
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
41 (or last-kbd-macro
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
42 (error "No keyboard macro defined"))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
43 (and (fboundp symbol)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
44 (not (stringp (symbol-function symbol)))
4331
c75a5c7d4f39 (name-last-kbd-macro): Handle macros that are vectors.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
45 (not (vectorp (symbol-function symbol)))
38412
253f761ad37b Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents: 33281
diff changeset
46 (error "Function %s is already defined and not a keyboard macro"
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
47 symbol))
14398
ad30f677493e (name-last-kbd-macro): Reject empty cmd name.
Richard M. Stallman <rms@gnu.org>
parents: 14321
diff changeset
48 (if (string-equal symbol "")
ad30f677493e (name-last-kbd-macro): Reject empty cmd name.
Richard M. Stallman <rms@gnu.org>
parents: 14321
diff changeset
49 (error "No command name given"))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
50 (fset symbol last-kbd-macro))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
51
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 217
diff changeset
52 ;;;###autoload
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
53 (defun insert-kbd-macro (macroname &optional keys)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
54 "Insert in buffer the definition of kbd macro NAME, as Lisp code.
217
8977ce293397 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 216
diff changeset
55 Optional second arg KEYS means also record the keys it is on
1469
af4fe5e670f2 (insert-kbd-macro): Replace nonprinting chars with escapes.
Richard M. Stallman <rms@gnu.org>
parents: 845
diff changeset
56 \(this is the prefix argument, when calling interactively).
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
57
217
8977ce293397 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 216
diff changeset
58 This Lisp code will, when executed, define the kbd macro with the same
8977ce293397 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 216
diff changeset
59 definition it has now. If you say to record the keys, the Lisp code
8977ce293397 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 216
diff changeset
60 will also rebind those keys to the macro. Only global key bindings
8977ce293397 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 216
diff changeset
61 are recorded since executing this Lisp code always makes global
8977ce293397 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 216
diff changeset
62 bindings.
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
63
1469
af4fe5e670f2 (insert-kbd-macro): Replace nonprinting chars with escapes.
Richard M. Stallman <rms@gnu.org>
parents: 845
diff changeset
64 To save a kbd macro, visit a file of Lisp code such as your `~/.emacs',
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
65 use this command, and then save the file."
58609
d6d7c44e2b68 (insert-kbd-macro): Handle kmacro functions.
Kim F. Storm <storm@cua.dk>
parents: 57969
diff changeset
66 (interactive (list (intern (completing-read "Insert kbd macro (name): "
d6d7c44e2b68 (insert-kbd-macro): Handle kmacro functions.
Kim F. Storm <storm@cua.dk>
parents: 57969
diff changeset
67 obarray
57969
e661f2202106 (insert-kbd-macro): Do completions based on macros,
Eli Zaretskii <eliz@gnu.org>
parents: 56857
diff changeset
68 (lambda (elt)
e661f2202106 (insert-kbd-macro): Do completions based on macros,
Eli Zaretskii <eliz@gnu.org>
parents: 56857
diff changeset
69 (and (fboundp elt)
e661f2202106 (insert-kbd-macro): Do completions based on macros,
Eli Zaretskii <eliz@gnu.org>
parents: 56857
diff changeset
70 (or (stringp (symbol-function elt))
58609
d6d7c44e2b68 (insert-kbd-macro): Handle kmacro functions.
Kim F. Storm <storm@cua.dk>
parents: 57969
diff changeset
71 (vectorp (symbol-function elt))
d6d7c44e2b68 (insert-kbd-macro): Handle kmacro functions.
Kim F. Storm <storm@cua.dk>
parents: 57969
diff changeset
72 (get elt 'kmacro))))
57969
e661f2202106 (insert-kbd-macro): Do completions based on macros,
Eli Zaretskii <eliz@gnu.org>
parents: 56857
diff changeset
73 t))
e661f2202106 (insert-kbd-macro): Do completions based on macros,
Eli Zaretskii <eliz@gnu.org>
parents: 56857
diff changeset
74 current-prefix-arg))
1470
eb4043bd65ef (insert-kbd-macros): If arg is empty, use last macro as default.
Richard M. Stallman <rms@gnu.org>
parents: 1469
diff changeset
75 (let (definition)
eb4043bd65ef (insert-kbd-macros): If arg is empty, use last macro as default.
Richard M. Stallman <rms@gnu.org>
parents: 1469
diff changeset
76 (if (string= (symbol-name macroname) "")
eb4043bd65ef (insert-kbd-macros): If arg is empty, use last macro as default.
Richard M. Stallman <rms@gnu.org>
parents: 1469
diff changeset
77 (progn
eb4043bd65ef (insert-kbd-macros): If arg is empty, use last macro as default.
Richard M. Stallman <rms@gnu.org>
parents: 1469
diff changeset
78 (setq macroname 'last-kbd-macro definition last-kbd-macro)
eb4043bd65ef (insert-kbd-macros): If arg is empty, use last macro as default.
Richard M. Stallman <rms@gnu.org>
parents: 1469
diff changeset
79 (insert "(setq "))
eb4043bd65ef (insert-kbd-macros): If arg is empty, use last macro as default.
Richard M. Stallman <rms@gnu.org>
parents: 1469
diff changeset
80 (setq definition (symbol-function macroname))
eb4043bd65ef (insert-kbd-macros): If arg is empty, use last macro as default.
Richard M. Stallman <rms@gnu.org>
parents: 1469
diff changeset
81 (insert "(fset '"))
eb4043bd65ef (insert-kbd-macros): If arg is empty, use last macro as default.
Richard M. Stallman <rms@gnu.org>
parents: 1469
diff changeset
82 (prin1 macroname (current-buffer))
eb4043bd65ef (insert-kbd-macros): If arg is empty, use last macro as default.
Richard M. Stallman <rms@gnu.org>
parents: 1469
diff changeset
83 (insert "\n ")
11170
4d33c7615a5c (insert-kbd-macro): Do something reasonable for vectors.
Karl Heuer <kwzh@gnu.org>
parents: 10153
diff changeset
84 (if (stringp definition)
4d33c7615a5c (insert-kbd-macro): Do something reasonable for vectors.
Karl Heuer <kwzh@gnu.org>
parents: 10153
diff changeset
85 (let ((beg (point)) end)
4d33c7615a5c (insert-kbd-macro): Do something reasonable for vectors.
Karl Heuer <kwzh@gnu.org>
parents: 10153
diff changeset
86 (prin1 definition (current-buffer))
4d33c7615a5c (insert-kbd-macro): Do something reasonable for vectors.
Karl Heuer <kwzh@gnu.org>
parents: 10153
diff changeset
87 (setq end (point-marker))
4d33c7615a5c (insert-kbd-macro): Do something reasonable for vectors.
Karl Heuer <kwzh@gnu.org>
parents: 10153
diff changeset
88 (goto-char beg)
10153
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
89 (while (< (point) end)
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
90 (let ((char (following-char)))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
91 (cond ((= char 0)
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
92 (delete-region (point) (1+ (point)))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
93 (insert "\\C-@"))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
94 ((< char 27)
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
95 (delete-region (point) (1+ (point)))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
96 (insert "\\C-" (+ 96 char)))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
97 ((= char ?\C-\\)
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
98 (delete-region (point) (1+ (point)))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
99 (insert "\\C-\\\\"))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
100 ((< char 32)
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
101 (delete-region (point) (1+ (point)))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
102 (insert "\\C-" (+ 64 char)))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
103 ((< char 127)
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
104 (forward-char 1))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
105 ((= char 127)
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
106 (delete-region (point) (1+ (point)))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
107 (insert "\\C-?"))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
108 ((= char 128)
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
109 (delete-region (point) (1+ (point)))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
110 (insert "\\M-\\C-@"))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
111 ((= char (aref "\M-\C-\\" 0))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
112 (delete-region (point) (1+ (point)))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
113 (insert "\\M-\\C-\\\\"))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
114 ((< char 155)
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
115 (delete-region (point) (1+ (point)))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
116 (insert "\\M-\\C-" (- char 32)))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
117 ((< char 160)
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
118 (delete-region (point) (1+ (point)))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
119 (insert "\\M-\\C-" (- char 64)))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
120 ((= char (aref "\M-\\" 0))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
121 (delete-region (point) (1+ (point)))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
122 (insert "\\M-\\\\"))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
123 ((< char 255)
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
124 (delete-region (point) (1+ (point)))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
125 (insert "\\M-" (- char 128)))
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
126 ((= char 255)
2279074cd821 (insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
Richard M. Stallman <rms@gnu.org>
parents: 9851
diff changeset
127 (delete-region (point) (1+ (point)))
11170
4d33c7615a5c (insert-kbd-macro): Do something reasonable for vectors.
Karl Heuer <kwzh@gnu.org>
parents: 10153
diff changeset
128 (insert "\\M-\\C-?"))))))
4d33c7615a5c (insert-kbd-macro): Do something reasonable for vectors.
Karl Heuer <kwzh@gnu.org>
parents: 10153
diff changeset
129 (if (vectorp definition)
12923
f1e05398634b (insert-kbd-macro): Express vector char modifiers with
Richard M. Stallman <rms@gnu.org>
parents: 11235
diff changeset
130 (let ((len (length definition)) (i 0) char mods)
11170
4d33c7615a5c (insert-kbd-macro): Do something reasonable for vectors.
Karl Heuer <kwzh@gnu.org>
parents: 10153
diff changeset
131 (while (< i len)
74235
1807458bff39 (insert-kbd-macro): "?\ " -> "?\s".
Juanma Barranquero <lekktu@gmail.com>
parents: 68651
diff changeset
132 (insert (if (zerop i) ?\[ ?\s))
11170
4d33c7615a5c (insert-kbd-macro): Do something reasonable for vectors.
Karl Heuer <kwzh@gnu.org>
parents: 10153
diff changeset
133 (setq char (aref definition i)
4d33c7615a5c (insert-kbd-macro): Do something reasonable for vectors.
Karl Heuer <kwzh@gnu.org>
parents: 10153
diff changeset
134 i (1+ i))
95148
97ef76fbfb23 (insert-kbd-macro): Use prin1-char.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
135 (if (not (numberp char))
97ef76fbfb23 (insert-kbd-macro): Use prin1-char.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
136 (prin1 char (current-buffer))
97ef76fbfb23 (insert-kbd-macro): Use prin1-char.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 94678
diff changeset
137 (princ (prin1-char char) (current-buffer))))
11170
4d33c7615a5c (insert-kbd-macro): Do something reasonable for vectors.
Karl Heuer <kwzh@gnu.org>
parents: 10153
diff changeset
138 (insert ?\]))
4d33c7615a5c (insert-kbd-macro): Do something reasonable for vectors.
Karl Heuer <kwzh@gnu.org>
parents: 10153
diff changeset
139 (prin1 definition (current-buffer))))
1470
eb4043bd65ef (insert-kbd-macros): If arg is empty, use last macro as default.
Richard M. Stallman <rms@gnu.org>
parents: 1469
diff changeset
140 (insert ")\n")
eb4043bd65ef (insert-kbd-macros): If arg is empty, use last macro as default.
Richard M. Stallman <rms@gnu.org>
parents: 1469
diff changeset
141 (if keys
107332
e09a216f2aab Fix keyboard macro key lookup (Bug#5481).
Chong Yidong <cyd@stupidchicken.com>
parents: 107082
diff changeset
142 (let ((keys (where-is-internal (symbol-function macroname)
e09a216f2aab Fix keyboard macro key lookup (Bug#5481).
Chong Yidong <cyd@stupidchicken.com>
parents: 107082
diff changeset
143 '(keymap))))
1470
eb4043bd65ef (insert-kbd-macros): If arg is empty, use last macro as default.
Richard M. Stallman <rms@gnu.org>
parents: 1469
diff changeset
144 (while keys
eb4043bd65ef (insert-kbd-macros): If arg is empty, use last macro as default.
Richard M. Stallman <rms@gnu.org>
parents: 1469
diff changeset
145 (insert "(global-set-key ")
eb4043bd65ef (insert-kbd-macros): If arg is empty, use last macro as default.
Richard M. Stallman <rms@gnu.org>
parents: 1469
diff changeset
146 (prin1 (car keys) (current-buffer))
eb4043bd65ef (insert-kbd-macros): If arg is empty, use last macro as default.
Richard M. Stallman <rms@gnu.org>
parents: 1469
diff changeset
147 (insert " '")
eb4043bd65ef (insert-kbd-macros): If arg is empty, use last macro as default.
Richard M. Stallman <rms@gnu.org>
parents: 1469
diff changeset
148 (prin1 macroname (current-buffer))
eb4043bd65ef (insert-kbd-macros): If arg is empty, use last macro as default.
Richard M. Stallman <rms@gnu.org>
parents: 1469
diff changeset
149 (insert ")\n")
eb4043bd65ef (insert-kbd-macros): If arg is empty, use last macro as default.
Richard M. Stallman <rms@gnu.org>
parents: 1469
diff changeset
150 (setq keys (cdr keys)))))))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
151
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 217
diff changeset
152 ;;;###autoload
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
153 (defun kbd-macro-query (flag)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
154 "Query user during kbd macro execution.
217
8977ce293397 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 216
diff changeset
155 With prefix argument, enters recursive edit, reading keyboard
8977ce293397 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 216
diff changeset
156 commands even within a kbd macro. You can give different commands
8977ce293397 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 216
diff changeset
157 each time the macro executes.
2708
a9d400ee1c0e Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 2707
diff changeset
158 Without prefix argument, asks whether to continue running the macro.
a9d400ee1c0e Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 2707
diff changeset
159 Your options are: \\<query-replace-map>
a9d400ee1c0e Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 2707
diff changeset
160 \\[act] Finish this iteration normally and continue with the next.
a9d400ee1c0e Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 2707
diff changeset
161 \\[skip] Skip the rest of this iteration, and start the next.
a9d400ee1c0e Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 2707
diff changeset
162 \\[exit] Stop the macro entirely right now.
a9d400ee1c0e Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 2707
diff changeset
163 \\[recenter] Redisplay the screen, then ask again.
a9d400ee1c0e Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 2707
diff changeset
164 \\[edit] Enter recursive edit; ask again when you exit from that."
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
165 (interactive "P")
15302
c23c9712ef5c Use executing-kbd-macro, not executing-macro.
Karl Heuer <kwzh@gnu.org>
parents: 14398
diff changeset
166 (or executing-kbd-macro
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
167 defining-kbd-macro
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
168 (error "Not defining or executing kbd macro"))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
169 (if flag
15302
c23c9712ef5c Use executing-kbd-macro, not executing-macro.
Karl Heuer <kwzh@gnu.org>
parents: 14398
diff changeset
170 (let (executing-kbd-macro defining-kbd-macro)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
171 (recursive-edit))
15302
c23c9712ef5c Use executing-kbd-macro, not executing-macro.
Karl Heuer <kwzh@gnu.org>
parents: 14398
diff changeset
172 (if (not executing-kbd-macro)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
173 nil
2707
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
174 (let ((loop t)
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
175 (msg (substitute-command-keys
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
176 "Proceed with macro?\\<query-replace-map>\
2753
c824ba373cc2 (kbd-macro-query): Fix prompt string.
Richard M. Stallman <rms@gnu.org>
parents: 2708
diff changeset
177 (\\[act], \\[skip], \\[exit], \\[recenter], \\[edit]) ")))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
178 (while loop
15302
c23c9712ef5c Use executing-kbd-macro, not executing-macro.
Karl Heuer <kwzh@gnu.org>
parents: 14398
diff changeset
179 (let ((key (let ((executing-kbd-macro nil)
2707
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
180 (defining-kbd-macro nil))
14321
24189cc67176 (kbd-macro-query): Pass proper format string to message.
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
181 (message "%s" msg)
2707
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
182 (read-event)))
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
183 def)
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
184 (setq key (vector key))
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
185 (setq def (lookup-key query-replace-map key))
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
186 (cond ((eq def 'act)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
187 (setq loop nil))
2707
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
188 ((eq def 'skip)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
189 (setq loop nil)
15302
c23c9712ef5c Use executing-kbd-macro, not executing-macro.
Karl Heuer <kwzh@gnu.org>
parents: 14398
diff changeset
190 (setq executing-kbd-macro ""))
2707
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
191 ((eq def 'exit)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
192 (setq loop nil)
15302
c23c9712ef5c Use executing-kbd-macro, not executing-macro.
Karl Heuer <kwzh@gnu.org>
parents: 14398
diff changeset
193 (setq executing-kbd-macro t))
2707
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
194 ((eq def 'recenter)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
195 (recenter nil))
2707
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
196 ((eq def 'edit)
15302
c23c9712ef5c Use executing-kbd-macro, not executing-macro.
Karl Heuer <kwzh@gnu.org>
parents: 14398
diff changeset
197 (let (executing-kbd-macro defining-kbd-macro)
2707
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
198 (recursive-edit)))
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
199 ((eq def 'quit)
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
200 (setq quit-flag t))
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
201 (t
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
202 (or (eq def 'help)
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
203 (ding))
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
204 (with-output-to-temp-buffer "*Help*"
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
205 (princ
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
206 (substitute-command-keys
3591
507f64624555 Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents: 2753
diff changeset
207 "Specify how to proceed with keyboard macro execution.
2707
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
208 Possibilities: \\<query-replace-map>
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
209 \\[act] Finish this iteration normally and continue with the next.
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
210 \\[skip] Skip the rest of this iteration, and start the next.
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
211 \\[exit] Stop the macro entirely right now.
4661157d5c60 (kbd-macro-query): Use query-replace-map to define answers.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
212 \\[recenter] Redisplay the screen, then ask again.
9851
0e1748cc2f32 (kbd-macro-query): Set help-mode in *Help* buffer.
Karl Heuer <kwzh@gnu.org>
parents: 7300
diff changeset
213 \\[edit] Enter recursive edit; ask again when you exit from that."))
105994
009383a57ce8 * x-dnd.el (x-dnd-maybe-call-test-function):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 100908
diff changeset
214 (with-current-buffer standard-output
9851
0e1748cc2f32 (kbd-macro-query): Set help-mode in *Help* buffer.
Karl Heuer <kwzh@gnu.org>
parents: 7300
diff changeset
215 (help-mode)))))))))))
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 217
diff changeset
216
268
2dd411fe2f72 *** empty log message ***
Brian Preble <rassilon@gnu.org>
parents: 256
diff changeset
217 ;;;###autoload
273
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
218 (defun apply-macro-to-region-lines (top bottom &optional macro)
56857
be5ab1230982 (apply-macro-to-region-lines): Make it operate on all lines that begin
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
219 "Apply last keyboard macro to all lines in the region.
be5ab1230982 (apply-macro-to-region-lines): Make it operate on all lines that begin
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
220 For each line that begins in the region, move to the beginning of
be5ab1230982 (apply-macro-to-region-lines): Make it operate on all lines that begin
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
221 the line, and run the last keyboard macro.
273
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
222
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
223 When called from lisp, this function takes two arguments TOP and
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
224 BOTTOM, describing the current region. TOP must be before BOTTOM.
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
225 The optional third argument MACRO specifies a keyboard macro to
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
226 execute.
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
227
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
228 This is useful for quoting or unquoting included text, adding and
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
229 removing comments, or producing tables where the entries are regular.
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
230
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
231 For example, in Usenet articles, sections of text quoted from another
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
232 author are indented, or have each line start with `>'. To quote a
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
233 section of text, define a keyboard macro which inserts `>', put point
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
234 and mark at opposite ends of the quoted section, and use
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
235 `\\[apply-macro-to-region-lines]' to mark the entire section.
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
236
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
237 Suppose you wanted to build a keyword table in C where each entry
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
238 looked like this:
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
239
49597
e88404e8f2cf Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47352
diff changeset
240 { \"foo\", foo_data, foo_function },
273
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
241 { \"bar\", bar_data, bar_function },
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
242 { \"baz\", baz_data, baz_function },
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
243
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
244 You could enter the names in this format:
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
245
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
246 foo
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
247 bar
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
248 baz
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
249
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
250 and write a macro to massage a word into a table entry:
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
251
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
252 \\C-x (
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
253 \\M-d { \"\\C-y\", \\C-y_data, \\C-y_function },
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
254 \\C-x )
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
255
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
256 and then select the region of un-tablified names and use
56857
be5ab1230982 (apply-macro-to-region-lines): Make it operate on all lines that begin
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
257 `\\[apply-macro-to-region-lines]' to build the table from the names."
273
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
258 (interactive "r")
391
4b1d23627759 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 274
diff changeset
259 (or macro
4b1d23627759 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 274
diff changeset
260 (progn
4b1d23627759 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 274
diff changeset
261 (if (null last-kbd-macro)
38412
253f761ad37b Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents: 33281
diff changeset
262 (error "No keyboard macro has been defined"))
391
4b1d23627759 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 274
diff changeset
263 (setq macro last-kbd-macro)))
273
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
264 (save-excursion
56857
be5ab1230982 (apply-macro-to-region-lines): Make it operate on all lines that begin
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
265 (let ((end-marker (copy-marker bottom))
427
1507978a453c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 391
diff changeset
266 next-line-marker)
273
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
267 (goto-char top)
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
268 (if (not (bolp))
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
269 (forward-line 1))
427
1507978a453c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 391
diff changeset
270 (setq next-line-marker (point-marker))
1507978a453c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 391
diff changeset
271 (while (< next-line-marker end-marker)
1507978a453c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 391
diff changeset
272 (goto-char next-line-marker)
274
7121f18e0114 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 273
diff changeset
273 (save-excursion
427
1507978a453c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 391
diff changeset
274 (forward-line 1)
1507978a453c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 391
diff changeset
275 (set-marker next-line-marker (point)))
1507978a453c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 391
diff changeset
276 (save-excursion
47352
d817d0837c74 (apply-macro-to-region-lines): Let-bind mark-active to
Kim F. Storm <storm@cua.dk>
parents: 38412
diff changeset
277 (let ((mark-active nil))
107082
e8f9df14b15b Close bug#5485.
Glenn Morris <rgm@gnu.org>
parents: 106815
diff changeset
278 (execute-kbd-macro macro))))
427
1507978a453c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 391
diff changeset
279 (set-marker end-marker nil)
1507978a453c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 391
diff changeset
280 (set-marker next-line-marker nil))))
273
0740875c024a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
281
5307
069c54e77fd1 Don't repeat at load time any bindings that are autoloaded.
Richard M. Stallman <rms@gnu.org>
parents: 4331
diff changeset
282 ;;;###autoload (define-key ctl-x-map "q" 'kbd-macro-query)
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 427
diff changeset
283
18383
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 15302
diff changeset
284 (provide 'macros)
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 15302
diff changeset
285
93975
1e3a407766b9 Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 79721
diff changeset
286 ;; arch-tag: 346ed1a5-1220-4bc8-b533-961ee704361f
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 427
diff changeset
287 ;;; macros.el ends here