*** simple.1.621.el Sat Oct 11 12:26:50 2003 --- simple.1.621.acm.el Tue Oct 21 20:23:29 2003 *************** *** 1657,1662 **** --- 1657,1683 ---- `universal-argument-other-key' uses this to discard those events from (this-command-keys), and reread only the final command.") + (defvar overriding-map-is-bound nil + "Is t when overriding-terminal-local-map is setq'd to + universal-argument-map, nil otherwise.") + + (defvar saved-overriding-map nil + "Holds \(for later restoration\) the previous value of + overriding-terminal-local-map whilst \"universal argument mode\" is active.") + + (defun ensure-overriding-map-is-bound () + "\"Bind\" overriding-terminal-local-map to universal-argument map, if it + isn't already so bound." + (unless overriding-map-is-bound + (setq saved-overriding-map overriding-terminal-local-map) + (setq overriding-terminal-local-map universal-argument-map) + (setq overriding-map-is-bound t))) + + (defun restore-overriding-map () + "Restore overriding-terminal-local-map to its previous value." + (setq overriding-terminal-local-map saved-overriding-map) + (setq overriding-map-is-bound nil)) + (defun universal-argument () "Begin a numeric argument for the following command. Digits or minus sign following \\[universal-argument] make up the numeric argument. *************** *** 1670,1676 **** (interactive) (setq prefix-arg (list 4)) (setq universal-argument-num-events (length (this-command-keys))) ! (setq overriding-terminal-local-map universal-argument-map)) ;; A subsequent C-u means to multiply the factor by 4 if we've typed ;; nothing but C-u's; otherwise it means to terminate the prefix arg. --- 1691,1697 ---- (interactive) (setq prefix-arg (list 4)) (setq universal-argument-num-events (length (this-command-keys))) ! (ensure-overriding-map-is-bound)) ;; A subsequent C-u means to multiply the factor by 4 if we've typed ;; nothing but C-u's; otherwise it means to terminate the prefix arg. *************** *** 1681,1687 **** (if (eq arg '-) (setq prefix-arg (list -4)) (setq prefix-arg arg) ! (setq overriding-terminal-local-map nil))) (setq universal-argument-num-events (length (this-command-keys)))) (defun negative-argument (arg) --- 1702,1708 ---- (if (eq arg '-) (setq prefix-arg (list -4)) (setq prefix-arg arg) ! (restore-overriding-map))) (setq universal-argument-num-events (length (this-command-keys)))) (defun negative-argument (arg) *************** *** 1695,1701 **** (t (setq prefix-arg '-))) (setq universal-argument-num-events (length (this-command-keys))) ! (setq overriding-terminal-local-map universal-argument-map)) (defun digit-argument (arg) "Part of the numeric argument for the next command. --- 1716,1722 ---- (t (setq prefix-arg '-))) (setq universal-argument-num-events (length (this-command-keys))) ! (ensure-overriding-map-is-bound)) (defun digit-argument (arg) "Part of the numeric argument for the next command. *************** *** 1714,1720 **** (t (setq prefix-arg digit)))) (setq universal-argument-num-events (length (this-command-keys))) ! (setq overriding-terminal-local-map universal-argument-map)) ;; For backward compatibility, minus with no modifiers is an ordinary ;; command if digits have already been entered. --- 1735,1741 ---- (t (setq prefix-arg digit)))) (setq universal-argument-num-events (length (this-command-keys))) ! (ensure-overriding-map-is-bound)) ;; For backward compatibility, minus with no modifiers is an ordinary ;; command if digits have already been entered. *************** *** 1735,1741 **** (append (nthcdr universal-argument-num-events keylist) unread-command-events))) (reset-this-command-lengths) ! (setq overriding-terminal-local-map nil)) ;;;; Window system cut and paste hooks. --- 1756,1762 ---- (append (nthcdr universal-argument-num-events keylist) unread-command-events))) (reset-this-command-lengths) ! (restore-overriding-map)) ;;;; Window system cut and paste hooks.