Changeset 6702
- Timestamp:
- Jun 12, 2007, 12:42:36 PM (17 years ago)
- File:
-
- 1 edited
-
branches/ide-1.0/ccl/hemlock/src/interp.lisp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/ide-1.0/ccl/hemlock/src/interp.lisp
r6656 r6702 423 423 424 424 425 (defvar *self-insert-command* nil) 426 427 (defun self-insert-command () 428 (or *self-insert-command* 429 (setq *self-insert-command* (getstring "Self Insert" *command-names*)))) 430 425 431 426 432 ;;; %COMMAND-LOOP -- Internal … … 450 456 (let* ((temporary-object-pool (allocate-temporary-object-pool))) 451 457 (unwind-protect 452 (progn 453 (unless (eq *current-buffer* *echo-area-buffer*) 454 (unless (or (zerop (length cmd)) 455 (not (value hemlock::key-echo-delay))) 456 (editor-sleep (value hemlock::key-echo-delay)) 457 (unless (listen-editor-input *editor-input*) 458 (clear-echo-area) 459 (dotimes (i (length cmd)) 460 (hemlock-ext:print-pretty-key (aref cmd i) *echo-area-stream*) 461 (write-char #\space *echo-area-stream*))))) 462 (vector-push-extend (get-key-event *editor-input*) cmd) 463 (multiple-value-bind (trans-result prefix-p) 464 (translate-key cmd trans) 465 (multiple-value-bind (res t-bindings) 466 (get-current-binding trans-result) 467 (etypecase res 468 (command 469 (let ((punt t)) 470 (unless (eq *current-buffer* *echo-area-buffer*) 471 (clear-echo-area)) 472 (catch 'command-loop-catcher 473 (let* ((doc (buffer-document *current-buffer*))) 474 (unwind-protect 475 (progn 476 (when doc (hi::document-begin-editing doc)) 477 (dolist (c t-bindings) 478 (funcall *invoke-hook* c *prefix-argument*)) 479 (funcall *invoke-hook* res *prefix-argument*) 480 (setf punt nil)) 481 (when doc (hi::document-end-editing doc))))) 482 (when punt (invoke-hook hemlock::command-abort-hook))) 483 (if *command-type-set* 484 (setq *command-type-set* nil) 485 (setq *last-command-type* nil)) 486 (if *prefix-argument-supplied* 487 (setq *prefix-argument-supplied* nil) 488 (setq *prefix-argument* nil)) 489 (setf (fill-pointer cmd) 0)) 490 (null 491 (unless prefix-p 492 (beep) 493 (setq *prefix-argument* nil) 494 (setf (fill-pointer cmd) 0))) 495 (hash-table))))) 496 (free-temporary-objects temporary-object-pool))))))) 458 (multiple-value-bind (key self-insert) 459 (get-key-event *editor-input*) 460 (progn 461 (unless (eq *current-buffer* *echo-area-buffer*) 462 (when (buffer-modified *echo-area-buffer*) 463 (clear-echo-area)) 464 (unless (or (zerop (length cmd)) 465 (not (value hemlock::key-echo-delay))) 466 (editor-sleep (value hemlock::key-echo-delay)) 467 (unless (listen-editor-input *editor-input*) 468 (clear-echo-area) 469 (dotimes (i (length cmd)) 470 (hemlock-ext:print-pretty-key (aref cmd i) *echo-area-stream*) 471 (write-char #\space *echo-area-stream*))))) 472 (vector-push-extend key cmd) 473 (multiple-value-bind (trans-result prefix-p) 474 (unless self-insert (translate-key cmd trans)) 475 (multiple-value-bind (res t-bindings) 476 (if self-insert 477 (self-insert-command) 478 (get-current-binding trans-result)) 479 (etypecase res 480 (command 481 (let ((punt t)) 482 (catch 'command-loop-catcher 483 (let* ((doc (buffer-document *current-buffer*))) 484 (unwind-protect 485 (progn 486 (when doc (hi::document-begin-editing doc)) 487 (dolist (c t-bindings) 488 (funcall *invoke-hook* c *prefix-argument*)) 489 (funcall *invoke-hook* res *prefix-argument*) 490 (setf punt nil)) 491 (when doc (hi::document-end-editing doc))))) 492 (when punt (invoke-hook hemlock::command-abort-hook))) 493 (if *command-type-set* 494 (setq *command-type-set* nil) 495 (setq *last-command-type* nil)) 496 (if *prefix-argument-supplied* 497 (setq *prefix-argument-supplied* nil) 498 (setq *prefix-argument* nil)) 499 (setf (fill-pointer cmd) 0)) 500 (null 501 (unless prefix-p 502 (beep) 503 (setq *prefix-argument* nil) 504 (setf (fill-pointer cmd) 0))) 505 (hash-table))))) 506 (free-temporary-objects temporary-object-pool)))))))) 497 507 498 508
Note:
See TracChangeset
for help on using the changeset viewer.
