Update of /project/mcclim/cvsroot/mcclim/Drei In directory clnet:/tmp/cvs-serv2460/Drei
Modified Files: input-editor.lisp Log Message: Now actually fixed some more things.
Net result: input-editing should be more stable and predictable.
--- /project/mcclim/cvsroot/mcclim/Drei/input-editor.lisp 2008/02/08 11:36:35 1.44 +++ /project/mcclim/cvsroot/mcclim/Drei/input-editor.lisp 2008/02/08 12:43:59 1.45 @@ -556,6 +556,7 @@ `stream-read-gesture' for the stream encapsulated by `stream'. The second return value of this function will be `type' if stuff is inserted after the insertion pointer." + (assert (<= (input-position stream) (stream-scan-pointer stream))) (let* ((drei (drei-instance stream)) (*command-processor* drei) (was-directly-processing (directly-processing-p drei)) @@ -588,13 +589,14 @@ (when was-directly-processing (display-message "Aborted"))))))) (update-drei-buffer stream)) - (let ((first-mismatch (prefix-size (view drei)))) + (let ((first-mismatch (when (plusp (prefix-size (view drei))) + (prefix-size (view drei))))) (display-drei drei :redisplay-minibuffer t) (cond ((null first-mismatch) ;; No change actually took place, even though IP may ;; have moved. nil) - ((<= first-mismatch (stream-scan-pointer stream)) + ((< first-mismatch (stream-scan-pointer stream)) ;; Eek, change before scan pointer - this probably ;; changes the scan, so we'll have to rescan ;; everything. Bummer!