[mcclim-cvs] CVS mcclim/Drei

thenriksen thenriksen at common-lisp.net
Fri Feb 8 13:24:49 UTC 2008


Update of /project/mcclim/cvsroot/mcclim/Drei
In directory clnet:/tmp/cvs-serv19251/Drei

Modified Files:
	input-editor.lisp 
Log Message:
Finally make that ridiculously complated input-editor do as I want it do to!

Slowish, but who cares? Perhaps the input-editor needs a special
buffer implementation...


--- /project/mcclim/cvsroot/mcclim/Drei/input-editor.lisp	2008/02/08 12:43:59	1.45
+++ /project/mcclim/cvsroot/mcclim/Drei/input-editor.lisp	2008/02/08 13:24:48	1.46
@@ -558,9 +558,11 @@
 if stuff is inserted after the insertion pointer."
   (assert (<= (input-position stream) (stream-scan-pointer stream)))
   (let* ((drei (drei-instance stream))
+         (buffer (buffer (view drei)))
          (*command-processor* drei)
          (was-directly-processing (directly-processing-p drei))
-         (*drei-input-editing-stream* stream))
+         (*drei-input-editing-stream* stream)
+         (old-buffer-contents (buffer-sequence buffer 0 (size buffer))))
     (with-bound-drei-special-variables (drei :prompt "M-x ")
       (update-drei-buffer stream)
       ;; Commands are permitted to signal immediate rescans, but
@@ -573,7 +575,7 @@
              (drei-core:with-narrowed-buffer (drei
                                               (loop for index from
                                                     (1- (input-position stream)) above 0
-                                                    when (typep (buffer-object (buffer (view drei)) index)
+                                                    when (typep (buffer-object buffer index)
                                                                 'noise-string)
                                                     return (1+ index)
                                                     finally (return 0))
@@ -589,8 +591,7 @@
                        (when was-directly-processing
                          (display-message "Aborted")))))))
         (update-drei-buffer stream))
-      (let ((first-mismatch (when (plusp (prefix-size (view drei)))
-                              (prefix-size (view drei)))))
+      (let ((first-mismatch (buffer-array-mismatch buffer old-buffer-contents)))
         (display-drei drei :redisplay-minibuffer t)
         (cond ((null first-mismatch)
                ;; No change actually took place, even though IP may




More information about the Mcclim-cvs mailing list