;;; double.el --- support for keyboard remapping with double clicking
-;; Copyright (C) 1994, 1997-1998, 2001-2011 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1997-1998, 2001-2016 Free Software Foundation,
+;; Inc.
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Keywords: i18n
(append (make-list (1- (length (nth 1 entry)))
127)
(nth 2 entry)
- '(magic-end)))
+ '(magic-end)
+ unread-command-events))
(vector 127))
- (setq unread-command-events (list new))
+ (push new unread-command-events)
[ignore])))
((eq key 'magic-end)
;; End of double event. Ignore.
(let ((exp (nth 1 (assoc key double-map))))
(setq double-last-event key)
(setq unread-command-events
- (append (substring exp 1) '(magic-start)))
+ (append (substring exp 1) '(magic-start)
+ unread-command-events))
(vector (aref exp 0)))))))
;;; Mode
;;;###autoload
(define-minor-mode double-mode
- "Toggle Double mode.
-With prefix argument ARG, turn Double mode on if ARG is positive, otherwise
-turn it off.
+ "Toggle special insertion on double keypresses (Double mode).
+With a prefix argument ARG, enable Double mode if ARG is
+positive, and disable it otherwise. If called from Lisp, enable
+the mode if ARG is omitted or nil.
-When Double mode is on, some keys will insert different strings
-when pressed twice. See variable `double-map' for details."
+When Double mode is enabled, some keys will insert different
+strings when pressed twice. See `double-map' for details."
:lighter " Double"
:link '(emacs-commentary-link "double")
(kill-local-variable 'key-translation-map)