make eval look whether the command is evaluated in command oder scheme
mode
This commit is contained in:
		
							parent
							
								
									75500100b3
								
							
						
					
					
						commit
						9a038dc356
					
				|  | @ -234,6 +234,32 @@ | |||
|   (move-cursor command-buffer) | ||||
|   (refresh-command-window)) | ||||
| 
 | ||||
| (define (handle-return-key) | ||||
|   (let ((command (last (buffer-text command-buffer)))) | ||||
|     (cond | ||||
|      ((string=? command "") | ||||
|       (values)) | ||||
|      ((command-buffer-in-scheme-mode?) | ||||
|       (eval-command-in-scheme-mode command)) | ||||
|      ((command-buffer-in-command-mode?) | ||||
|       (eval-command-in-command-mode command))))) | ||||
| 
 | ||||
| (define (eval-command-in-command-mode command) | ||||
|   (debug-message "eval-command-in-command-mode " command)) | ||||
| 
 | ||||
| (define (eval-command-in-scheme-mode command) | ||||
|   (call-with-values | ||||
|       (lambda () | ||||
| 	(execute-command command)) | ||||
|     (lambda (result plugin) | ||||
|       (let ((new-entry | ||||
| 	     (make-history-entry command '()  | ||||
| 				 result plugin))) | ||||
| 	;; FIXME, use insert here | ||||
| 	(append-to-history! new-entry) | ||||
| 	(buffer-text-append-new-line! command-buffer) | ||||
| 	(paint-result/command-buffer new-entry))))) | ||||
| 
 | ||||
| ;; handle input | ||||
| (define (run) | ||||
| 
 | ||||
|  | @ -303,26 +329,8 @@ | |||
|       (loop (wait-for-input) c-x-pressed?)) | ||||
| 
 | ||||
|      ((= ch 10) | ||||
|       (let ((command (last (buffer-text command-buffer)))) | ||||
| 	(if (not (string=? command "")) | ||||
| 	    (call-with-values  | ||||
| 		(lambda () | ||||
| 		  (execute-command command)) | ||||
| 	      (lambda (result plugin) | ||||
| 		(let ((new-entry | ||||
| 		       (make-history-entry command '()  | ||||
| 					   result plugin))) | ||||
| 		  (append-to-history! new-entry) | ||||
| 		  (buffer-text-append-new-line! command-buffer) | ||||
| 		  (paint-result-window new-entry) | ||||
| 		  (paint-active-command-window) | ||||
| 		  (scroll-command-buffer) | ||||
| 		  (paint-command-window-contents) | ||||
| 		  (move-cursor command-buffer) | ||||
| 		  (refresh-result-window) | ||||
| 		  (refresh-command-window) | ||||
| 		  (loop (wait-for-input) c-x-pressed?)))) | ||||
| 	    (loop (wait-for-input) #f)))) | ||||
|       (handle-return-key) | ||||
|       (loop (wait-for-input) c-x-pressed?)) | ||||
| 
 | ||||
|      (else  | ||||
|       (cond | ||||
|  | @ -457,6 +465,15 @@ | |||
| (define (refresh-result-window) | ||||
|   (wrefresh (app-window-curses-win result-window))) | ||||
| 
 | ||||
| (define (paint-result/command-buffer history-entry) | ||||
|   (paint-result-window history-entry) | ||||
|   (paint-active-command-window) | ||||
|   (scroll-command-buffer) | ||||
|   (paint-command-window-contents) | ||||
|   (move-cursor command-buffer) | ||||
|   (refresh-result-window) | ||||
|   (refresh-command-window)) | ||||
| 
 | ||||
| (define (paint) | ||||
|   (debug-message "paint") | ||||
|   (paint-bar-1) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 eknauel
						eknauel