annotate lisp/double.el @ 63308:51d38cfbe542

Warn about using "cvs up -kb" if one intends to commit changes. Add a pointer to another site with detailed configure and build instructions. Suggest to look at config.log when configure fails. Add MinGW Make 3.80 to the list of successful combinations.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 11 Jun 2005 11:31:29 +0000
parents 789a36c2bc56
children 6fb026ad601f 8f5787c83345 e4694597cbf4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 25531
diff changeset
1 ;;; double.el --- support for keyboard remapping with double clicking
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2
22861
49e731d1ddb6 (default-key-translation-map): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 20083
diff changeset
3 ;; Copyright (C) 1994, 1997, 1998 Free Software Foundation, Inc.
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4
17982
24b81a90c347 Updated address.
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 14169
diff changeset
5 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6 ;; Keywords: i18n
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7
6001
7caad7f2269a Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 6000
diff changeset
8 ;; This file is part of GNU Emacs.
7caad7f2269a Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 6000
diff changeset
9
7caad7f2269a Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 6000
diff changeset
10 ;; GNU Emacs is free software; you can redistribute it and/or modify
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12 ;; the Free Software Foundation; either version 2, or (at your option)
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13 ;; any later version.
6001
7caad7f2269a Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 6000
diff changeset
14
7caad7f2269a Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 6000
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18 ;; GNU General Public License for more details.
6001
7caad7f2269a Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 6000
diff changeset
19
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
23 ;; Boston, MA 02111-1307, USA.
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
24
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
25 ;;; Commentary:
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
27 ;; This mode is intended for use with languages that adds a small
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
28 ;; number of extra letters not available on the keyboard.
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47253
diff changeset
29 ;;
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30 ;; Examples includes Scandinavian and German with an US keyboard.
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
31 ;;
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32 ;; The idea is that certain keys are overloaded. When you press it
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
33 ;; once it will insert one string, and when you press it twice the
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
34 ;; string will be replaced by another. This can be used for mapping
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
35 ;; keys on a US keyboard to generate characters according to the local
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36 ;; keyboard convention when pressed once, and according to US keyboard
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47253
diff changeset
37 ;; convention when pressed twice.
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
38 ;;
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
39 ;; To use this mode, you must define the variable `double-map' and
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
40 ;; then enable double mode with `M-x double-mode'. Read the
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
41 ;; documentation for both of them.
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
42 ;;
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
43 ;; The default mapping is for getting Danish/Norwegian keyboard layout
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
44 ;; using ISO Latin 1 on a US keyboard.
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
45 ;;
14040
187735b53d52 Comment fixes.
Karl Heuer <kwzh@gnu.org>
parents: 13337
diff changeset
46 ;; Important node: While I would like to hear comments, bug reports,
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
47 ;; suggestions, please do @strong{not} expect me to put other mappings
14040
187735b53d52 Comment fixes.
Karl Heuer <kwzh@gnu.org>
parents: 13337
diff changeset
48 ;; than the default into this file. There are billions and billions
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
49 ;; of such mappings, and just supporting the most common would
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
50 ;; increase the size of this nice small file manyfold.
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
51
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
52 ;;; Code:
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
53
20083
280dcaeeede3 Removed changelog comment section.
Karl Heuer <kwzh@gnu.org>
parents: 17982
diff changeset
54 (defgroup double nil
280dcaeeede3 Removed changelog comment section.
Karl Heuer <kwzh@gnu.org>
parents: 17982
diff changeset
55 "Remap keyboard, but get original by typing the same key twice."
280dcaeeede3 Removed changelog comment section.
Karl Heuer <kwzh@gnu.org>
parents: 17982
diff changeset
56 :group 'i18n)
280dcaeeede3 Removed changelog comment section.
Karl Heuer <kwzh@gnu.org>
parents: 17982
diff changeset
57
280dcaeeede3 Removed changelog comment section.
Karl Heuer <kwzh@gnu.org>
parents: 17982
diff changeset
58 (defcustom double-map
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
59 '((?\; "\346" ";")
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
60 (?\' "\370" "'")
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
61 (?\[ "\345" "[")
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
62 (?\: "\306" ":")
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
63 (?\" "\330" "\"")
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
64 (?\{ "\305" "{"))
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
65 "Alist of key translations activated by double mode.
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
66
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
67 Each entry is a list with three elements:
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
68 1. The key activating the translation.
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
69 2. The string to be inserted when the key is pressed once.
20083
280dcaeeede3 Removed changelog comment section.
Karl Heuer <kwzh@gnu.org>
parents: 17982
diff changeset
70 3. The string to be inserted when the key is pressed twice."
280dcaeeede3 Removed changelog comment section.
Karl Heuer <kwzh@gnu.org>
parents: 17982
diff changeset
71 :group 'double
280dcaeeede3 Removed changelog comment section.
Karl Heuer <kwzh@gnu.org>
parents: 17982
diff changeset
72 :type '(repeat (list (character :tag "Key")
280dcaeeede3 Removed changelog comment section.
Karl Heuer <kwzh@gnu.org>
parents: 17982
diff changeset
73 (string :tag "Once")
280dcaeeede3 Removed changelog comment section.
Karl Heuer <kwzh@gnu.org>
parents: 17982
diff changeset
74 (string :tag "Twice"))))
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
75
20083
280dcaeeede3 Removed changelog comment section.
Karl Heuer <kwzh@gnu.org>
parents: 17982
diff changeset
76 (defcustom double-prefix-only t
10067
8ab32ff7b97c (double-mode-name): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 8008
diff changeset
77 "*Non-nil means that Double mode mapping only works for prefix keys.
47253
d09547c3e778 (double-prefix-only): Fix spacing.
Juanma Barranquero <lekktu@gmail.com>
parents: 38436
diff changeset
78 That is, for any key `X' in `double-map', `X' alone will be mapped
20083
280dcaeeede3 Removed changelog comment section.
Karl Heuer <kwzh@gnu.org>
parents: 17982
diff changeset
79 but not `C-u X' or `ESC X' since the X is not the prefix key."
280dcaeeede3 Removed changelog comment section.
Karl Heuer <kwzh@gnu.org>
parents: 17982
diff changeset
80 :group 'double
280dcaeeede3 Removed changelog comment section.
Karl Heuer <kwzh@gnu.org>
parents: 17982
diff changeset
81 :type 'boolean)
8008
049bc48732d6 (double-prefix-only): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 7279
diff changeset
82
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
83 ;;; Read Event
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
84
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
85 (defvar double-last-event nil)
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
86 ;; The last key that generated a double key event.
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
87
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
88 (defun double-read-event (prompt)
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
89 ;; Read an event
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
90 (if isearch-mode (isearch-update))
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
91 (if prompt
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
92 (prog2 (message "%s%c" prompt double-last-event)
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
93 (read-event)
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
94 (message ""))
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
95 (read-event)))
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
96
7279
89ed0051e237 (double-translate-key): Changed 'delete to 127 to make
Richard M. Stallman <rms@gnu.org>
parents: 6001
diff changeset
97 (global-set-key [ignore] '(lambda () (interactive)))
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
98
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
99 (or (boundp 'isearch-mode-map)
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
100 (load-library "isearch"))
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
101
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47253
diff changeset
102 (define-key isearch-mode-map [ignore]
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
103 (function (lambda () (interactive) (isearch-update))))
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
104
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
105 (defun double-translate-key (prompt)
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
106 ;; Translate input events using double map.
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
107 (let ((key last-input-char))
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
108 (cond (unread-command-events
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
109 ;; Artificial event, ignore it.
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
110 (vector key))
8008
049bc48732d6 (double-prefix-only): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 7279
diff changeset
111 ((and double-prefix-only
049bc48732d6 (double-prefix-only): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 7279
diff changeset
112 (> (length (this-command-keys)) 1))
049bc48732d6 (double-prefix-only): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 7279
diff changeset
113 ;; This is not a prefix key, ignore it.
049bc48732d6 (double-prefix-only): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 7279
diff changeset
114 (vector key))
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
115 ((eq key 'magic-start)
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
116 ;; End of generated event. See if he will repeat it...
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
117 (let ((new (double-read-event prompt))
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
118 (entry (assoc double-last-event double-map)))
60312
789a36c2bc56 (double-translate-key): Call force-window-update after
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
119 (force-window-update (selected-window))
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
120 (if (eq new double-last-event)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47253
diff changeset
121 (progn
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
122 (setq unread-command-events
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
123 (append (make-list (1- (length (nth 1 entry)))
7279
89ed0051e237 (double-translate-key): Changed 'delete to 127 to make
Richard M. Stallman <rms@gnu.org>
parents: 6001
diff changeset
124 127)
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
125 (nth 2 entry)
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
126 '(magic-end)))
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
127 (vector 127))
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
128 (setq unread-command-events (list new))
7279
89ed0051e237 (double-translate-key): Changed 'delete to 127 to make
Richard M. Stallman <rms@gnu.org>
parents: 6001
diff changeset
129 [ignore])))
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
130 ((eq key 'magic-end)
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
131 ;; End of double event. Ignore.
7279
89ed0051e237 (double-translate-key): Changed 'delete to 127 to make
Richard M. Stallman <rms@gnu.org>
parents: 6001
diff changeset
132 [ignore])
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
133 (t
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
134 ;; New key.
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
135 (let ((exp (nth 1 (assoc key double-map))))
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
136 (setq double-last-event key)
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
137 (setq unread-command-events
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
138 (append (substring exp 1) '(magic-start)))
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
139 (vector (aref exp 0)))))))
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
140
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
141 ;;; Key Translation Map
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
142
22861
49e731d1ddb6 (default-key-translation-map): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 20083
diff changeset
143 (defun double-setup (enable-flag)
49e731d1ddb6 (default-key-translation-map): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 20083
diff changeset
144 (if enable-flag
49e731d1ddb6 (default-key-translation-map): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 20083
diff changeset
145 (progn
49e731d1ddb6 (default-key-translation-map): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 20083
diff changeset
146 ;; Set up key-translation-map as indicated by `double-map'.
49e731d1ddb6 (default-key-translation-map): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 20083
diff changeset
147 (kill-local-variable 'key-translation-map)
49e731d1ddb6 (default-key-translation-map): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 20083
diff changeset
148 (make-local-variable 'key-translation-map)
23003
95c97e05a03e (double-setup): Only copy `key-translation-map' if it is a keymap.
Richard M. Stallman <rms@gnu.org>
parents: 22861
diff changeset
149 (setq key-translation-map (if (keymapp key-translation-map)
95c97e05a03e (double-setup): Only copy `key-translation-map' if it is a keymap.
Richard M. Stallman <rms@gnu.org>
parents: 22861
diff changeset
150 (copy-keymap key-translation-map)
95c97e05a03e (double-setup): Only copy `key-translation-map' if it is a keymap.
Richard M. Stallman <rms@gnu.org>
parents: 22861
diff changeset
151 (make-sparse-keymap)))
22861
49e731d1ddb6 (default-key-translation-map): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 20083
diff changeset
152 (mapcar (function (lambda (entry)
49e731d1ddb6 (default-key-translation-map): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 20083
diff changeset
153 (define-key key-translation-map
49e731d1ddb6 (default-key-translation-map): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 20083
diff changeset
154 (vector (nth 0 entry))
49e731d1ddb6 (default-key-translation-map): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 20083
diff changeset
155 'double-translate-key)))
49e731d1ddb6 (default-key-translation-map): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 20083
diff changeset
156 (append double-map '((magic-start) (magic-end)))))
49e731d1ddb6 (default-key-translation-map): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 20083
diff changeset
157 (kill-local-variable 'key-translation-map)))
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
158
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
159 ;;; Mode
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
160
25531
e42d6599cade (double-mode): Customize the variable.
Dave Love <fx@gnu.org>
parents: 23003
diff changeset
161 ;;;###autoload
e42d6599cade (double-mode): Customize the variable.
Dave Love <fx@gnu.org>
parents: 23003
diff changeset
162 (defcustom double-mode nil
e42d6599cade (double-mode): Customize the variable.
Dave Love <fx@gnu.org>
parents: 23003
diff changeset
163 "Toggle Double mode.
e42d6599cade (double-mode): Customize the variable.
Dave Love <fx@gnu.org>
parents: 23003
diff changeset
164 Setting this variable directly does not take effect;
e42d6599cade (double-mode): Customize the variable.
Dave Love <fx@gnu.org>
parents: 23003
diff changeset
165 use either \\[customize] or the function `double-mode'."
e42d6599cade (double-mode): Customize the variable.
Dave Love <fx@gnu.org>
parents: 23003
diff changeset
166 :set (lambda (symbol value)
e42d6599cade (double-mode): Customize the variable.
Dave Love <fx@gnu.org>
parents: 23003
diff changeset
167 (double-mode (if value 1 0)))
e42d6599cade (double-mode): Customize the variable.
Dave Love <fx@gnu.org>
parents: 23003
diff changeset
168 :initialize 'custom-initialize-default
e42d6599cade (double-mode): Customize the variable.
Dave Love <fx@gnu.org>
parents: 23003
diff changeset
169 :link '(emacs-commentary-link "double")
e42d6599cade (double-mode): Customize the variable.
Dave Love <fx@gnu.org>
parents: 23003
diff changeset
170 :type 'boolean
e42d6599cade (double-mode): Customize the variable.
Dave Love <fx@gnu.org>
parents: 23003
diff changeset
171 :require 'double
e42d6599cade (double-mode): Customize the variable.
Dave Love <fx@gnu.org>
parents: 23003
diff changeset
172 :group 'double)
e42d6599cade (double-mode): Customize the variable.
Dave Love <fx@gnu.org>
parents: 23003
diff changeset
173 (make-variable-buffer-local 'double-mode)
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
174
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
175 (or (assq 'double-mode minor-mode-alist)
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
176 (setq minor-mode-alist
10067
8ab32ff7b97c (double-mode-name): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 8008
diff changeset
177 (cons '(double-mode " Double") minor-mode-alist)))
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
178
10067
8ab32ff7b97c (double-mode-name): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 8008
diff changeset
179 ;; This feature seemed useless and it confused describe-mode,
8ab32ff7b97c (double-mode-name): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 8008
diff changeset
180 ;; so I deleted it.
8ab32ff7b97c (double-mode-name): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 8008
diff changeset
181 ;;;(defvar double-mode-name "Double")
8ab32ff7b97c (double-mode-name): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 8008
diff changeset
182 ;;;;; Name of current double mode.
8ab32ff7b97c (double-mode-name): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 8008
diff changeset
183 ;;; (make-variable-buffer-local 'double-mode-name)
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
184
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
185 ;;;###autoload
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
186 (defun double-mode (arg)
10067
8ab32ff7b97c (double-mode-name): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 8008
diff changeset
187 "Toggle Double mode.
8ab32ff7b97c (double-mode-name): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 8008
diff changeset
188 With prefix arg, turn Double mode on iff arg is positive.
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
189
11561
56399c411b8b (double-mode): Use force-mode-line-update.
Karl Heuer <kwzh@gnu.org>
parents: 10067
diff changeset
190 When Double mode is on, some keys will insert different strings
56399c411b8b (double-mode): Use force-mode-line-update.
Karl Heuer <kwzh@gnu.org>
parents: 10067
diff changeset
191 when pressed twice. See variable `double-map' for details."
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
192 (interactive "P")
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
193 (if (or (and (null arg) double-mode)
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
194 (<= (prefix-numeric-value arg) 0))
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
195 ;; Turn it off
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
196 (if double-mode
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
197 (progn
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
198 (let ((double-map))
22861
49e731d1ddb6 (default-key-translation-map): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 20083
diff changeset
199 (double-setup nil))
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
200 (setq double-mode nil)
11561
56399c411b8b (double-mode): Use force-mode-line-update.
Karl Heuer <kwzh@gnu.org>
parents: 10067
diff changeset
201 (force-mode-line-update)))
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
202 ;;Turn it on
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
203 (if double-mode
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
204 ()
22861
49e731d1ddb6 (default-key-translation-map): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents: 20083
diff changeset
205 (double-setup t)
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
206 (setq double-mode t)
11561
56399c411b8b (double-mode): Use force-mode-line-update.
Karl Heuer <kwzh@gnu.org>
parents: 10067
diff changeset
207 (force-mode-line-update))))
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
208
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
209 (provide 'double)
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
210
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49588
diff changeset
211 ;;; arch-tag: 2e170036-44cb-4493-bc32-ada0a4395221
6000
03f32cdd842a Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
212 ;;; double.el ends here