[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