Mercurial > emacs
changeset 35504:9545aa93e735
(universal-coding-system-argument):
Handle commands with prefix args.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Wed, 24 Jan 2001 13:14:12 +0000 |
parents | dc575312bb6f |
children | d78861fb2713 |
files | lisp/international/mule-cmds.el |
diffstat | 1 files changed, 30 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/international/mule-cmds.el Wed Jan 24 12:31:07 2001 +0000 +++ b/lisp/international/mule-cmds.el Wed Jan 24 13:14:12 2001 +0000 @@ -264,9 +264,37 @@ default)) (keyseq (read-key-sequence (format "Command to execute with %s:" coding-system))) - (cmd (key-binding keyseq))) + (cmd (key-binding keyseq)) + prefix) + + (when (eq cmd 'universal-argument) + (call-interactively cmd) + + ;; Process keys bound in `universal-argument-map'. + (while (progn + (setq keyseq (read-key-sequence nil t) + cmd (key-binding keyseq t)) + (not (eq cmd 'universal-argument-other-key))) + (let ((current-prefix-arg prefix-arg) + ;; Have to bind `last-command-char' here so that + ;; `digit-argument', for isntance, can compute the + ;; prefix arg. + (last-command-char (aref keyseq 0))) + (call-interactively cmd))) + + ;; This is the final call to `univeral-argument-other-key', which + ;; set's the final `prefix-arg. + (let ((current-prefix-arg prefix-arg)) + (call-interactively cmd)) + + ;; Read the command to execute with the given prefix arg. + (setq prefix prefix-arg + keyseq (read-key-sequence nil t) + cmd (key-binding keyseq))) + (let ((coding-system-for-read coding-system) - (coding-system-for-write coding-system)) + (coding-system-for-write coding-system) + (current-prefix-arg prefix)) (message "") (call-interactively cmd))))