X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/bfab7c6ec74dc55d640ef36f8cb1790a1420f991..1a5d0c15185986e645e8fb8080a2338d8f17d562:/lisp/double.el diff --git a/lisp/double.el b/lisp/double.el index 28d3072d1f..d6ccff8e96 100644 --- a/lisp/double.el +++ b/lisp/double.el @@ -1,17 +1,17 @@ ;;; double.el --- support for keyboard remapping with double clicking -;; Copyright (C) 1994, 1997, 1998, 2001, 2002, 2003, 2004, -;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1997-1998, 2001-2016 Free Software Foundation, +;; Inc. ;; Author: Per Abrahamsen ;; Keywords: i18n ;; This file is part of GNU Emacs. -;; GNU Emacs is free software; you can redistribute it and/or modify +;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -19,9 +19,7 @@ ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. +;; along with GNU Emacs. If not, see . ;;; Commentary: @@ -105,7 +103,7 @@ but not `C-u X' or `ESC X' since the X is not the prefix key." (defun double-translate-key (prompt) ;; Translate input events using double map. - (let ((key last-input-char)) + (let ((key last-input-event)) (cond (unread-command-events ;; Artificial event, ignore it. (vector key)) @@ -124,9 +122,10 @@ but not `C-u X' or `ESC X' since the X is not the prefix key." (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. @@ -136,7 +135,8 @@ but not `C-u X' or `ESC X' since the X is not the prefix key." (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 @@ -149,12 +149,13 @@ but not `C-u X' or `ESC X' since the X is not the prefix key." ;;;###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) @@ -171,5 +172,4 @@ when pressed twice. See variable `double-map' for details." (provide 'double) -;; arch-tag: 2e170036-44cb-4493-bc32-ada0a4395221 ;;; double.el ends here