comparison lisp/replace.el @ 10057:460fecc93446

(query-replace-map): Define \e and escape as exit-prefix. (perform-replace): When exiting and rereading, set this-command to mode-exit.
author Richard M. Stallman <rms@gnu.org>
date Wed, 23 Nov 1994 09:10:36 +0000
parents 32d20ec5ed51
children badc25c57780
comparison
equal deleted inserted replaced
10056:920dae6ba331 10057:460fecc93446
444 (defvar query-replace-map (make-sparse-keymap) 444 (defvar query-replace-map (make-sparse-keymap)
445 "Keymap that defines the responses to questions in `query-replace'. 445 "Keymap that defines the responses to questions in `query-replace'.
446 The \"bindings\" in this map are not commands; they are answers. 446 The \"bindings\" in this map are not commands; they are answers.
447 The valid answers include `act', `skip', `act-and-show', 447 The valid answers include `act', `skip', `act-and-show',
448 `exit', `act-and-exit', `edit', `delete-and-edit', `recenter', 448 `exit', `act-and-exit', `edit', `delete-and-edit', `recenter',
449 `automatic', `backup', and `help'.") 449 `automatic', `backup', `exit-prefix', and `help'.")
450 450
451 (define-key query-replace-map " " 'act) 451 (define-key query-replace-map " " 'act)
452 (define-key query-replace-map "\d" 'skip) 452 (define-key query-replace-map "\d" 'skip)
453 (define-key query-replace-map [delete] 'skip) 453 (define-key query-replace-map [delete] 'skip)
454 (define-key query-replace-map [backspace] 'skip) 454 (define-key query-replace-map [backspace] 'skip)
468 (define-key query-replace-map "^" 'backup) 468 (define-key query-replace-map "^" 'backup)
469 (define-key query-replace-map "\C-h" 'help) 469 (define-key query-replace-map "\C-h" 'help)
470 (define-key query-replace-map "?" 'help) 470 (define-key query-replace-map "?" 'help)
471 (define-key query-replace-map "\C-g" 'quit) 471 (define-key query-replace-map "\C-g" 'quit)
472 (define-key query-replace-map "\C-]" 'quit) 472 (define-key query-replace-map "\C-]" 'quit)
473 (define-key query-replace-map "\e" 'exit-prefix)
474 (define-key query-replace-map [escape] 'exit-prefix)
473 475
474 (defun perform-replace (from-string replacements 476 (defun perform-replace (from-string replacements
475 query-flag regexp-flag delimited-flag 477 query-flag regexp-flag delimited-flag
476 &optional repeat-count map) 478 &optional repeat-count map)
477 "Subroutine of `query-replace'. Its complexity handles interactive queries. 479 "Subroutine of `query-replace'. Its complexity handles interactive queries.
624 (delete-region (match-beginning 0) (match-end 0)) 626 (delete-region (match-beginning 0) (match-end 0))
625 (store-match-data 627 (store-match-data
626 (prog1 (match-data) 628 (prog1 (match-data)
627 (save-excursion (recursive-edit)))) 629 (save-excursion (recursive-edit))))
628 (setq replaced t)) 630 (setq replaced t))
631 ;; Note: we do not need to treat `exit-prefix'
632 ;; specially here, since we reread
633 ;; any unrecognized character.
629 (t 634 (t
635 (setq this-command 'mode-exited)
630 (setq keep-going nil) 636 (setq keep-going nil)
631 (setq unread-command-events 637 (setq unread-command-events
632 (append (listify-key-sequence key) 638 (append (listify-key-sequence key)
633 unread-command-events)) 639 unread-command-events))
634 (setq done t)))) 640 (setq done t))))