annotate lisp/autoarg.el @ 90043:e24e2e78deda

Revision: miles@gnu.org--gnu-2004/emacs--unicode--0--patch-69 Merge from emacs--cvs-trunk--0 Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-643 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-649 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-650 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-651 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-655 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-656 Update from CVS: lisp/man.el (Man-xref-normal-file): Fix help-echo. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-657 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-658 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-659 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-660 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-661 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-667 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-61 - miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-68 Update from CVS
author Miles Bader <miles@gnu.org>
date Thu, 04 Nov 2004 08:55:40 +0000
parents 68c22ea6027c
children f9a65d7ebd29
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28908
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
1 ;;; autoarg.el --- make digit keys supply prefix args
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
2
29382
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
3 ;; Copyright (C) 1998, 2000 Free Software Foundation, Inc.
28908
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
4
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
5 ;; Author: Dave Love <fx@gnu.org>
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
6 ;; Created: 1998-09-04
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
7 ;; Keywords: abbrev, emulations
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
8
29087
d6e90113152f Fix boilerplate comments.
Dave Love <fx@gnu.org>
parents: 28956
diff changeset
9 ;; This file is part of GNU Emacs.
d6e90113152f Fix boilerplate comments.
Dave Love <fx@gnu.org>
parents: 28956
diff changeset
10
d6e90113152f Fix boilerplate comments.
Dave Love <fx@gnu.org>
parents: 28956
diff changeset
11 ;; GNU Emacs is free software; you can redistribute it and/or modify
28908
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
12 ;; it under the terms of the GNU General Public License as published by
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
13 ;; the Free Software Foundation; either version 2, or (at your option)
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
14 ;; any later version.
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
15
29087
d6e90113152f Fix boilerplate comments.
Dave Love <fx@gnu.org>
parents: 28956
diff changeset
16 ;; GNU Emacs is distributed in the hope that it will be useful,
28908
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
19 ;; GNU General Public License for more details.
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
20
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
22 ;; along with GNU Emacs; see the file COPYING. If not, write to the
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
24 ;; Boston, MA 02111-1307, USA.
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
25
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
26 ;;; Commentary:
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
27
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
28 ;; This provides `autoarg-mode', a global minor mode meant to emulate
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
29 ;; a facility reported from Twenex Emacs whereby digit keys supplied
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
30 ;; prefix args rather than self inserting, with a digit sequence
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
31 ;; terminated by space acting to insert the digits.
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
32
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
33 ;; The bindings of DIGIT and C-DIGIT are swapped and a command bound
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
34 ;; to SPC deals with a numeric prefix arg or acts normally without
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
35 ;; such an arg. (In the absence of a suitable terminal, you'd
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
36 ;; probably want to swap DIGIT and M-DIGIT.) See the mode doc.
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
37
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
38 ;; You probably don't really want to use this.
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
39
29382
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
40 ;; Also provides `autoarg-kp-mode' which is similar, but leaves the
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
41 ;; digit keys alone and redefines the `keypad' keys, `kp-1' &c as
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
42 ;; digit arguments. (Use `NumLock' if necessary to generate kp-N.)
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
43 ;; You're more likely to want to use this.
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
44
28908
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
45 ;;; Code:
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
46
29382
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
47 (defvar autoarg-mode-map
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
48 (let ((map (make-sparse-keymap)))
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
49 ;; Loop over digit characters to set up keymap.
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
50 (dotimes (i 10)
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
51 (define-key map `[,(+ ?0 i)] 'digit-argument)
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
52 (define-key map `[(control ,(+ ?0 i))] 'self-insert-command))
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
53 (define-key map " " 'autoarg-terminate)
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
54 map)
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
55 "Keymap for Autoarg mode.")
28908
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
56
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
57 ;; Logical additions:
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
58 ;; (define-key autoarg-mode-map [?-] 'negative-argument)
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
59 ;; (define-key autoarg-mode-map [(control ?-)] 'self-insert-command)
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
60 ;; A sensible/addition?
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
61 ;; (define-key autoarg-mode-map [?\r] 'autoarg-terminate)
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
62
29382
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
63 (defvar autoarg-kp-digits
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
64 (let (alist)
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
65 (dotimes (i 10 alist)
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
66 (push (cons (intern (format "kp-%d" i)) i) alist))))
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
67
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
68 (defun autoarg-kp-digit-argument (arg)
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
69 "Part of the numeric argument for the next command, like `digit-argument'."
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
70 (interactive "P")
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
71 (let ((digit (cdr (assq last-command-char autoarg-kp-digits))))
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
72 (cond ((integerp arg)
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
73 (setq prefix-arg (+ (* arg 10)
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
74 (if (< arg 0) (- digit) digit))))
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
75 ((eq arg '-)
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
76 ;; Treat -0 as just -, so that -01 will work.
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
77 (setq prefix-arg (if (zerop digit) '- (- digit))))
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
78 (t
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
79 (setq prefix-arg digit))))
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
80 (setq universal-argument-num-events (length (this-command-keys)))
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
81 (setq overriding-terminal-local-map universal-argument-map))
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
82
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
83 (defvar autoarg-kp-mode-map
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
84 (let ((map (make-sparse-keymap)))
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
85 ;; Loop over digit characters to set up keymap.
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
86 (dotimes (i 10)
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
87 (let ((sym (intern (format "kp-%d" i))))
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
88 (define-key map (vector sym) 'autoarg-kp-digit-argument)))
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
89 (define-key map [kp-subtract] 'negative-argument)
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
90 map)
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
91 "Keymap for Autoarg-KP mode.")
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
92
28908
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
93 ;;;###autoload
29382
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
94 (define-minor-mode autoarg-mode
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
95 "Toggle Autoarg minor mode globally.
28908
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
96 With ARG, turn Autoarg mode on if ARG is positive, off otherwise.
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
97 \\<autoarg-mode-map>
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
98 In Autoarg mode digits are bound to `digit-argument' -- i.e. they
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
99 supply prefix arguments as C-DIGIT and M-DIGIT normally do -- and
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
100 C-DIGIT inserts DIGIT. \\[autoarg-terminate] terminates the prefix sequence
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
101 and inserts the digits of the autoarg sequence into the buffer.
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
102 Without a numeric prefix arg the normal binding of \\[autoarg-terminate] is
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
103 invoked, i.e. what it would be with Autoarg mode off.
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
104
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
105 For example:
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
106 `6 9 \\[autoarg-terminate]' inserts `69' into the buffer, as does `C-6 C-9'.
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
107 `6 9 a' inserts 69 `a's into the buffer.
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
108 `6 9 \\[autoarg-terminate] \\[autoarg-terminate]' inserts `69' into the buffer and
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
109 then invokes the normal binding of \\[autoarg-terminate].
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
110 `C-u \\[autoarg-terminate]' invokes the normal binding of \\[autoarg-terminate] four times.
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
111
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
112 \\{autoarg-mode-map}"
48598
2645c533c1fc (autoarg-mode): Give it a :group.
Dave Love <fx@gnu.org>
parents: 29425
diff changeset
113 nil " Aarg" autoarg-mode-map :global t :group 'keyboard)
29382
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
114
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
115 ;;;###autoload
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
116 (define-minor-mode autoarg-kp-mode
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
117 "Toggle Autoarg-KP minor mode globally.
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
118 With ARG, turn Autoarg mode on if ARG is positive, off otherwise.
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
119 \\<autoarg-kp-mode-map>
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
120 This is similar to \\[autoarg-mode] but rebinds the keypad keys `kp-1'
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
121 &c to supply digit arguments.
28908
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
122
29382
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
123 \\{autoarg-kp-mode-map}"
48613
e771680828e5 (autoarg-kp-mode): Give it a :group.
Dave Love <fx@gnu.org>
parents: 48598
diff changeset
124 nil " Aakp" autoarg-kp-mode-map :global t :group 'keyboard
29382
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
125 (if autoarg-kp-mode
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
126 (dotimes (i 10)
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
127 (let ((sym (intern (format "kp-%d" i))))
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
128 (define-key universal-argument-map (vector sym)
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
129 'autoarg-kp-digit-argument)))
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
130 (dotimes (i 10)
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
131 (let ((sym (intern (format "kp-%d" i))))
5558cf965f4d Rewritten to use define-minor-mode.
Dave Love <fx@gnu.org>
parents: 29087
diff changeset
132 (define-key universal-argument-map (vector sym) nil)))))
28908
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
133
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
134 (defun autoarg-terminate (n)
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
135 "Maybe terminate a digit prefix sequence.
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
136 With a non-negative numeric prefix arg, insert the digits comprising
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
137 the arg into the current buffer. Otherwise use the binding of the key
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
138 which invoked this function, excluding the Autoarg keymap."
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
139 (interactive "P")
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
140 (if (numberp n)
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
141 (insert (number-to-string n))
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
142 (let* ((autoarg-mode nil) ; hide the bindings
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
143 (binding (key-binding (this-single-command-keys))))
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
144 (if binding (call-interactively binding)))))
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
145
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
146 (provide 'autoarg)
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
147
89909
68c22ea6027c Sync to HEAD
Kenichi Handa <handa@m17n.org>
parents: 88123
diff changeset
148 ;;; arch-tag: 2ba2ab4f-d60e-402a-ae4d-37e29af723c2
28908
7b7bdd8aaa74 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
149 ;;; autoarg.el ends here