Update of /project/climacs/cvsroot/climacs/Persistent In directory common-lisp.net:/tmp/cvs-serv9143
Modified Files: persistent-base-test.lisp persistent-buffer.lisp persistent-buffer-test.lisp Log Message: Cleanup and some more info.
Date: Wed Jan 26 10:28:57 2005 Author: abakic
Index: climacs/Persistent/persistent-base-test.lisp diff -u climacs/Persistent/persistent-base-test.lisp:1.1 climacs/Persistent/persistent-base-test.lisp:1.2 --- climacs/Persistent/persistent-base-test.lisp:1.1 Wed Jan 26 08:10:45 2005 +++ climacs/Persistent/persistent-base-test.lisp Wed Jan 26 10:28:56 2005 @@ -461,26 +461,6 @@ (number-of-lines-in-region 10 m2r)))) 1 1 1 1 0 0 0 1 1)
-(deftest constituentp.test-1 ; NOTE: more tests may be needed for sbcl - (values - (constituentp #\a) - (constituentp #\Newline) - (constituentp #\Space) - (constituentp #\Tab) - (constituentp "a") - (constituentp #\Null)) - t nil nil nil nil nil) - -(deftest whitespacep.test-1 - (values - (not (null (whitespacep #\a))) - (not (null (whitespacep #\Newline))) - (not (null (whitespacep #\Space))) - (not (null (whitespacep #\Tab))) - (not (null (whitespacep " "))) - (not (null (whitespacep #\Null)))) - nil nil t t nil nil) - (deftest binseq-buffer-forward-to-word-boundary.test-1 (let ((buffer (make-instance 'binseq-buffer))) (insert-buffer-sequence buffer 0 " climacs @@ -1080,26 +1060,6 @@ (number-of-lines-in-region m2l 10) (number-of-lines-in-region 10 m2r)))) 1 1 1 1 0 0 0 1 1) - -(deftest constituentp.test-1 ; NOTE: more tests may be needed for sbcl - (values - (constituentp #\a) - (constituentp #\Newline) - (constituentp #\Space) - (constituentp #\Tab) - (constituentp "a") - (constituentp #\Null)) - t nil nil nil nil nil) - -(deftest whitespacep.test-1 - (values - (not (null (whitespacep #\a))) - (not (null (whitespacep #\Newline))) - (not (null (whitespacep #\Space))) - (not (null (whitespacep #\Tab))) - (not (null (whitespacep " "))) - (not (null (whitespacep #\Null)))) - nil nil t t nil nil)
(deftest obinseq-buffer-forward-to-word-boundary.test-1 (let ((buffer (make-instance 'obinseq-buffer)))
Index: climacs/Persistent/persistent-buffer.lisp diff -u climacs/Persistent/persistent-buffer.lisp:1.1 climacs/Persistent/persistent-buffer.lisp:1.2 --- climacs/Persistent/persistent-buffer.lisp:1.1 Wed Jan 26 08:10:45 2005 +++ climacs/Persistent/persistent-buffer.lisp Wed Jan 26 10:28:56 2005 @@ -24,6 +24,9 @@
(in-package :climacs-buffer)
+;;; For now, pos contains just an integer, while it might contain a cons +;;; of two adjacent buffer elements for higher performance (with the help +;;; of buffer implementation, especially the rebalancing part). (defclass persistent-cursor () ((buffer :reader buffer :initarg :buffer) ; TODO: fix overlap with mark? (pos :accessor cursor-pos)) @@ -151,6 +154,9 @@ while (> i 0) until (eql (buffer-object buffer (1- i)) #\Newline) count t)) + +;;; the old value of the CONTENTS slot is dropped upon modification +;;; it can be saved for UNDO purposes in a history tree, by an UNDOABLE-BUFFER
(defmethod insert-buffer-object ((buffer binseq-buffer) offset object) (assert (<= 0 offset (size buffer)) ()
Index: climacs/Persistent/persistent-buffer-test.lisp diff -u climacs/Persistent/persistent-buffer-test.lisp:1.1 climacs/Persistent/persistent-buffer-test.lisp:1.2 --- climacs/Persistent/persistent-buffer-test.lisp:1.1 Wed Jan 26 08:10:45 2005 +++ climacs/Persistent/persistent-buffer-test.lisp Wed Jan 26 10:28:56 2005 @@ -53,11 +53,7 @@ (flet ((%all-eq (&optional x y) (cond ((null x) nil) - (t (when (eq x y) y)))) - (%all-= (&optional x y) - (cond - ((null x) nil) - (t (when (= x y) y))))) + (t (when (eq x y) y))))) (let* ((buffer (make-instance 'binseq-buffer)) (low (slot-value buffer 'low-mark)) (high (slot-value buffer 'high-mark)) @@ -762,11 +758,7 @@ (flet ((%all-eq (&optional x y) (cond ((null x) nil) - (t (when (eq x y) y)))) - (%all-= (&optional x y) - (cond - ((null x) nil) - (t (when (= x y) y))))) + (t (when (eq x y) y))))) (let* ((buffer (make-instance 'obinseq-buffer)) (low (slot-value buffer 'low-mark)) (high (slot-value buffer 'high-mark))