Don't mutate the standard keymap.

This commit is contained in:
Alex Shinn 2012-05-13 22:06:47 +09:00
parent bc50ae0d34
commit a3e6a6c1e8

View file

@ -585,14 +585,15 @@
(let* ((prompter (get-key args 'prompt: "> "))
(history (get-key args 'history:))
(complete? (get-key args 'complete?: (lambda (buf) #t)))
(completion (get-key args 'completion: (lambda args '())))
(completion (get-key args 'completion: #f))
(terminal-width (get-key args 'terminal-width:))
(single-line? (get-key args 'single-line?: #f))
(no-stty? (get-key args 'no-stty?: #f))
(keymap (get-key args 'keymap: standard-keymap))
(keymap0 (get-key args 'keymap: standard-keymap))
(keymap (if completion
(cons (list (cons 9 completion)) keymap0)
keymap0))
(buf (or (get-key args 'buffer: #f) (make-buffer))))
(if completion
(vector-set! (car keymap) 9 completion))
(lambda (in out)
(let* ((width (or terminal-width (get-terminal-width out) 80))
(prompt (if (procedure? prompter) (prompter) prompter))