[mcclim-cvs] CVS mcclim/Drei

thenriksen thenriksen at common-lisp.net
Mon Aug 20 14:27:14 UTC 2007


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

Modified Files:
	input-editor.lisp 
Log Message:
Fixed last known Drei input-editing-stream issue by implementing
Goatee-style handling of :REPLACE keyword parameter to
STREAM-REPLACE-INPUT (not mentioned in the spec).


--- /project/mcclim/cvsroot/mcclim/Drei/input-editor.lisp	2007/02/19 00:12:22	1.17
+++ /project/mcclim/cvsroot/mcclim/Drei/input-editor.lisp	2007/08/20 14:27:13	1.18
@@ -165,8 +165,8 @@
     (loop
        with buffer = (buffer (drei-instance stream))
        until (>= (stream-scan-pointer stream) (size buffer))
-       while (typep (buffer-object buffer (stream-scan-pointer stream))
-                    'noise-string)
+       while (or (typep #1=(buffer-object buffer (stream-scan-pointer stream)) 'noise-string)
+                 (delimiter-gesture-p #1#))
        do (incf (stream-scan-pointer stream)))
     (setf (input-position stream) (stream-scan-pointer stream))))
 
@@ -310,7 +310,7 @@
 			  (start 0)
 			  (end (length new-input))
 			  (buffer-start (input-position stream))
-			  rescan)
+			  (rescan nil rescan-supplied-p))
   (check-type start integer)
   (check-type end integer)
   (check-type buffer-start integer)
@@ -338,7 +338,11 @@
         ;; Make the buffer reflect the changes in the array.
         (synchronize-input-buffer-array stream))
       (display-drei drei)
-      (when (or rescan (not equal))
+      ;; XXX: This behavior for the :rescan parameter is not mentioned
+      ;; explicitly in any CLIM guide, but McCLIM input-editing
+      ;; machinery relies on it.
+      (when (and (or rescan (not equal))
+                 (or rescan (not rescan-supplied-p)))
         (queue-rescan stream))
       ;; We have to return "the position in the input buffer". We
       ;; return the insertion position.




More information about the Mcclim-cvs mailing list