[climacs-cvs] CVS update: climacs/base.lisp climacs/base-test.lisp climacs/buffer-test.lisp

Aleksandar Bakic abakic at common-lisp.net
Mon Jan 24 23:53:54 UTC 2005


Update of /project/climacs/cvsroot/climacs
In directory common-lisp.net:/tmp/cvs-serv5683

Modified Files:
	base.lisp base-test.lisp buffer-test.lisp 
Log Message:
Changes in open-line and number-of-lines-in-region, and more tests.

Date: Mon Jan 24 15:53:53 2005
Author: abakic

Index: climacs/base.lisp
diff -u climacs/base.lisp:1.24 climacs/base.lisp:1.25
--- climacs/base.lisp:1.24	Thu Jan 20 15:37:38 2005
+++ climacs/base.lisp	Mon Jan 24 15:53:52 2005
@@ -75,8 +75,12 @@
 	       (beginning-of-line mark)
 	       (incf (offset mark) column)))))
 
-(defun open-line (mark)
-  "Create a new line in a buffer."
+(defmethod open-line ((mark left-sticky-mark))
+  "Create a new line in a buffer after the mark."
+  (insert-object mark #\Newline))
+
+(defmethod open-line ((mark right-sticky-mark))
+  "Create a new line in a buffer after the mark."
   (insert-object mark #\Newline)
   (decf (offset mark)))
 
@@ -132,13 +136,23 @@
 
 (defmethod number-of-lines-in-region ((mark1 mark) (mark2 mark))
   (assert (eq (buffer mark1) (buffer mark2)))
-  (buffer-number-of-lines-in-region (buffer mark1) (offset mark1) (offset mark2)))
-
-(defmethod number-of-lines-in-region ((offset integer) (mark mark))
-  (buffer-number-of-lines-in-region (buffer mark) offset (offset mark)))
-
-(defmethod number-of-lines-in-region ((mark mark) (offset integer))
-  (buffer-number-of-lines-in-region (buffer mark) (offset mark) offset))
+  (let ((offset1 (offset mark1))
+	(offset2 (offset mark2)))
+    (when (> offset1 offset2)
+      (rotatef offset1 offset2))
+    (buffer-number-of-lines-in-region (buffer mark1) offset1 offset2)))
+
+(defmethod number-of-lines-in-region ((offset1 integer) (mark2 mark))
+  (let ((offset2 (offset mark2)))
+    (when (> offset1 offset2)
+      (rotatef offset1 offset2))
+    (buffer-number-of-lines-in-region (buffer mark2) offset1 offset2)))
+
+(defmethod number-of-lines-in-region ((mark1 mark) (offset2 integer))
+  (let ((offset1 (offset mark1)))
+    (when (> offset1 offset2)
+      (rotatef offset1 offset2))
+    (buffer-number-of-lines-in-region (buffer mark1) offset1 offset2)))
 
 (defun constituentp (obj)
   "A predicate to ensure that an object is a constituent character."
@@ -153,7 +167,7 @@
        #-sbcl (member obj '(#\Space #\Tab))))
 
 (defun forward-to-word-boundary (mark)
-  "Forward the mark forward to the beginning of the next word."
+  "Move the mark forward to the beginning of the next word."
   (loop until (end-of-buffer-p mark)
 	until (constituentp (object-after mark))
 	do (incf (offset mark))))


Index: climacs/base-test.lisp
diff -u climacs/base-test.lisp:1.1 climacs/base-test.lisp:1.2
--- climacs/base-test.lisp:1.1	Thu Jan 20 15:21:53 2005
+++ climacs/base-test.lisp	Mon Jan 24 15:53:52 2005
@@ -143,4 +143,482 @@
 			       :buffer buffer :offset 0)))
       (next-line mark)
       (offset mark)))
-  8)
\ No newline at end of file
+  8)
+
+(deftest standard-buffer-open-line.test-1
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "climacs")
+    (let ((mark (make-instance 'standard-left-sticky-mark
+			       :buffer buffer :offset 0)))
+      (open-line mark)
+      (values (buffer-sequence buffer 0 (size buffer)) (offset mark))))
+  "
+climacs" 0)
+
+(deftest standard-buffer-open-line.test-2
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "climacs")
+    (let ((mark (make-instance 'standard-right-sticky-mark
+			       :buffer buffer :offset 0)))
+      (open-line mark)
+      (values (buffer-sequence buffer 0 (size buffer)) (offset mark))))
+  "
+climacs" 0)
+
+(deftest standard-buffer-open-line.test-3
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "climacs")
+    (let ((mark (make-instance 'standard-left-sticky-mark
+			       :buffer buffer :offset 7)))
+      (open-line mark)
+      (values (buffer-sequence buffer 0 (size buffer)) (offset mark))))
+  "climacs
+" 7)
+
+(deftest standard-buffer-open-line.test-4
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "climacs")
+    (let ((mark (make-instance 'standard-right-sticky-mark
+			       :buffer buffer :offset 7)))
+      (open-line mark)
+      (values (buffer-sequence buffer 0 (size buffer)) (offset mark))))
+  "climacs
+" 7)
+
+(deftest standard-buffer-kill-line.test-1
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "climacs")
+    (let ((mark (make-instance 'standard-left-sticky-mark
+			       :buffer buffer :offset 0)))
+      (kill-line mark)
+      (values (buffer-sequence buffer 0 (size buffer)) (offset mark))))
+  #() 0)
+
+(deftest standard-buffer-kill-line.test-2
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "climacs")
+    (let ((mark (make-instance 'standard-right-sticky-mark
+			       :buffer buffer :offset 0)))
+      (kill-line mark)
+      (values (buffer-sequence buffer 0 (size buffer)) (offset mark))))
+  #() 0)
+
+(deftest standard-buffer-kill-line.test-3
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "climacs")
+    (let ((mark (make-instance 'standard-left-sticky-mark
+			       :buffer buffer :offset 7)))
+      (kill-line mark)
+      (values (buffer-sequence buffer 0 (size buffer)) (offset mark))))
+  "climacs" 7)
+
+(deftest standard-buffer-kill-line.test-4
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "climacs")
+    (let ((mark (make-instance 'standard-right-sticky-mark
+			       :buffer buffer :offset 7)))
+      (kill-line mark)
+      (values (buffer-sequence buffer 0 (size buffer)) (offset mark))))
+  "climacs" 7)
+
+(deftest standard-buffer-kill-line.test-5
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "climacs
+climacs")
+    (let ((mark (make-instance 'standard-left-sticky-mark
+			       :buffer buffer :offset 7)))
+      (kill-line mark)
+      (values (buffer-sequence buffer 0 (size buffer)) (offset mark))))
+  "climacsclimacs" 7)
+
+(deftest standard-buffer-kill-line.test-6
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "climacs
+climacs")
+    (let ((mark (make-instance 'standard-right-sticky-mark
+			       :buffer buffer :offset 7)))
+      (kill-line mark)
+      (values (buffer-sequence buffer 0 (size buffer)) (offset mark))))
+  "climacsclimacs" 7)
+
+(deftest standard-buffer-empty-line-p.test-1
+  (let* ((buffer (make-instance 'standard-buffer))
+	 (m1 (make-instance 'standard-left-sticky-mark :buffer buffer))
+	 (m2 (make-instance 'standard-right-sticky-mark :buffer buffer)))
+    (values (empty-line-p m1) (empty-line-p m2)))
+  t t)
+
+(deftest standard-buffer-empty-line-p.test-2
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-object buffer 0 #\a)
+    (let ((m1 (make-instance 'standard-left-sticky-mark :buffer buffer))
+	  (m2 (make-instance 'standard-right-sticky-mark :buffer buffer)))
+      (values (empty-line-p m1) (empty-line-p m2))))
+  nil nil)
+
+(deftest standard-buffer-empty-line-p.test-3
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-object buffer 0 #\a)
+    (let ((m1 (make-instance 'standard-left-sticky-mark
+			     :buffer buffer :offset 1))
+	  (m2 (make-instance 'standard-right-sticky-mark
+			     :buffer buffer :offset 1)))
+      (values (empty-line-p m1) (empty-line-p m2))))
+  nil nil)
+
+(deftest standard-buffer-empty-line-p.test-4
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "a
+b")
+    (let ((m1 (make-instance 'standard-left-sticky-mark
+			     :buffer buffer :offset 1))
+	  (m2 (make-instance 'standard-right-sticky-mark
+			     :buffer buffer :offset 1)))
+      (values (empty-line-p m1) (empty-line-p m2))))
+  nil nil)
+
+(deftest standard-buffer-line-indentation.test-1
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "  	climacs")
+    (let ((m1 (make-instance 'standard-left-sticky-mark
+			     :buffer buffer :offset 0))
+	  (m2 (make-instance 'standard-right-sticky-mark
+			     :buffer buffer :offset 0))
+	  (m3 (make-instance 'standard-left-sticky-mark
+			     :buffer buffer :offset 10))
+	  (m4 (make-instance 'standard-right-sticky-mark
+			     :buffer buffer :offset 10)))
+      (values
+       (line-indentation m1 8)
+       (line-indentation m2 8)
+       (line-indentation m3 8)
+       (line-indentation m4 8)
+       (offset m1)
+       (offset m2)
+       (offset m3)
+       (offset m4))))
+  10 10 10 10 0 0 10 10)
+
+(deftest standard-buffer-line-indentation.test-2
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "  		climacs")
+    (let ((m1 (make-instance 'standard-left-sticky-mark
+			     :buffer buffer :offset 0))
+	  (m2 (make-instance 'standard-right-sticky-mark
+			     :buffer buffer :offset 0))
+	  (m3 (make-instance 'standard-left-sticky-mark
+			     :buffer buffer :offset 11))
+	  (m4 (make-instance 'standard-right-sticky-mark
+			     :buffer buffer :offset 11)))
+      (values
+       (line-indentation m1 8)
+       (line-indentation m2 8)
+       (line-indentation m3 8)
+       (line-indentation m4 8)
+       (offset m1)
+       (offset m2)
+       (offset m3)
+       (offset m4))))
+  18 18 18 18 0 0 11 11)
+
+(deftest standard-buffer-line-indentation.test-3
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "  	climacs	")
+    (let ((m1 (make-instance 'standard-left-sticky-mark
+			     :buffer buffer :offset 0))
+	  (m2 (make-instance 'standard-right-sticky-mark
+			     :buffer buffer :offset 0))
+	  (m3 (make-instance 'standard-left-sticky-mark
+			     :buffer buffer :offset 11))
+	  (m4 (make-instance 'standard-right-sticky-mark
+			     :buffer buffer :offset 11)))
+      (values
+       (line-indentation m1 8)
+       (line-indentation m2 8)
+       (line-indentation m3 8)
+       (line-indentation m4 8)
+       (offset m1)
+       (offset m2)
+       (offset m3)
+       (offset m4))))
+  10 10 10 10 0 0 11 11)
+
+(deftest standard-buffer-buffer-number-of-lines-in-region.test-1
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "climacs
+climacs")
+    (values
+     (climacs-base::buffer-number-of-lines-in-region buffer 0 6)
+     (climacs-base::buffer-number-of-lines-in-region buffer 0 7)
+     (climacs-base::buffer-number-of-lines-in-region buffer 0 10)
+     (climacs-base::buffer-number-of-lines-in-region buffer 0 13)
+     (climacs-base::buffer-number-of-lines-in-region buffer 0 14)
+     (climacs-base::buffer-number-of-lines-in-region buffer 7 10)
+     (climacs-base::buffer-number-of-lines-in-region buffer 8 13)
+     (climacs-base::buffer-number-of-lines-in-region buffer 8 14)))
+    0 0 1 1 1 1 0 0)
+
+(deftest standard-buffer-buffer-display-column.test-1
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "		cli	macs")
+    (values
+     (buffer-display-column buffer 0 8)
+     (buffer-display-column buffer 1 8)
+     (buffer-display-column buffer 2 8)
+     (buffer-display-column buffer 5 8)
+     (buffer-display-column buffer 6 8)))
+  0 8 16 19 24)
+
+(deftest standard-buffer-number-of-lines-in-region.test-1
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "
+climacs
+climacs
+")
+    (let ((m1l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 0))
+	  (m1r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 0))
+	  (m2l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 1))
+	  (m2r (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 1))
+	  (m3l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 3))
+	  (m3r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 3))
+	  (m4l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 8))
+	  (m4r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 8))
+	  (m5l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 15))
+	  (m5r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 15))
+	  (m6l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 16))
+	  (m6r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 16)))
+      (values
+       (number-of-lines-in-region m1l m1r)
+       (number-of-lines-in-region m1r m1l)
+       (number-of-lines-in-region m1l m2l)
+       (number-of-lines-in-region m2r m1r)
+       (number-of-lines-in-region m1l m2r)
+       (number-of-lines-in-region m2r m1l)
+       (number-of-lines-in-region m1r m2l)
+       (number-of-lines-in-region m1l m3l)
+       (number-of-lines-in-region m1r m3r)
+       (number-of-lines-in-region m4r m1l)
+       (number-of-lines-in-region m4l m1r)
+       (number-of-lines-in-region m3l m5l)
+       (number-of-lines-in-region m5r m4r)
+       (number-of-lines-in-region m5l m6l)
+       (number-of-lines-in-region m6r m5r)
+       (number-of-lines-in-region m6l m6r)
+       (number-of-lines-in-region m1l m6r)
+       (number-of-lines-in-region m3r m6l))))
+  0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 2 1)
+
+(deftest standard-buffer-number-of-lines-in-region.test-2
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "climacs
+climacs")
+    (let ((m1l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 6))
+	  (m1r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 6))
+	  (m2l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 7))
+	  (m2r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 7)))
+      (values
+       (number-of-lines-in-region m1l 10)
+       (number-of-lines-in-region 10 m1l)
+       (number-of-lines-in-region m1r 10)
+       (number-of-lines-in-region 10 m1r)
+       (number-of-lines-in-region m1l 3)
+       (number-of-lines-in-region 3 m2l)
+       (number-of-lines-in-region 3 m2r)
+       (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 standard-buffer-forward-to-word-boundary.test-1
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "  climacs
+climacs")
+    (let ((m0l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 0))
+	  (m0r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 0))
+	  (m1l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 5))
+	  (m1r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 5))
+	  (m2l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 17))
+	  (m2r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 17)))
+      (values
+       (progn (climacs-base::forward-to-word-boundary m0l) (offset m0l))
+       (progn (climacs-base::forward-to-word-boundary m0r) (offset m0r))
+       (progn (climacs-base::forward-to-word-boundary m1l) (offset m1l))
+       (progn (climacs-base::forward-to-word-boundary m1r) (offset m1r))
+       (progn (climacs-base::forward-to-word-boundary m2l) (offset m2l))
+       (progn (climacs-base::forward-to-word-boundary m2r) (offset m2r)))))
+  2 2 5 5 17 17)
+
+(deftest standard-buffer-backward-to-word-boundary.test-1
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "climacs
+climacs  ")
+    (let ((m0l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 17))
+	  (m0r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 17))
+	  (m1l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 10))
+	  (m1r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 10))
+	  (m2l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 0))
+	  (m2r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 0)))
+      (values
+       (progn (climacs-base::backward-to-word-boundary m0l) (offset m0l))
+       (progn (climacs-base::backward-to-word-boundary m0r) (offset m0r))
+       (progn (climacs-base::backward-to-word-boundary m1l) (offset m1l))
+       (progn (climacs-base::backward-to-word-boundary m1r) (offset m1r))
+       (progn (climacs-base::backward-to-word-boundary m2l) (offset m2l))
+       (progn (climacs-base::backward-to-word-boundary m2r) (offset m2r)))))
+  15 15 10 10 0 0)
+
+(deftest standard-buffer-forward-word.test-1
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "  climacs
+climacs")
+    (let ((m0l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 0))
+	  (m0r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 0))
+	  (m1l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 5))
+	  (m1r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 15))
+	  (m2l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 17))
+	  (m2r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 17)))
+      (values
+       (progn (forward-word m0l) (offset m0l))
+       (progn (forward-word m0r) (offset m0r))
+       (progn (forward-word m1l) (offset m1l))
+       (progn (forward-word m1r) (offset m1r))
+       (progn (forward-word m2l) (offset m2l))
+       (progn (forward-word m2r) (offset m2r)))))
+  9 9 9 17 17 17)
+
+(deftest standard-buffer-backward-word.test-1
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "climacs
+climacs  ")
+    (let ((m0l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 17))
+	  (m0r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 17))
+	  (m1l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 10))
+	  (m1r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 5))
+	  (m2l (make-instance 'standard-left-sticky-mark
+			      :buffer buffer :offset 0))
+	  (m2r (make-instance 'standard-right-sticky-mark
+			      :buffer buffer :offset 0)))
+      (values
+       (progn (backward-word m0l) (offset m0l))
+       (progn (backward-word m0r) (offset m0r))
+       (progn (backward-word m1l) (offset m1l))
+       (progn (backward-word m1r) (offset m1r))
+       (progn (backward-word m2l) (offset m2l))
+       (progn (backward-word m2r) (offset m2r)))))
+  8 8 8 0 0 0)
+
+(deftest standard-buffer-delete-word.test-1
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "climacs")
+    (let ((m (make-instance 'standard-left-sticky-mark
+			    :buffer buffer :offset 3)))
+      (delete-word m)
+      (values
+       (buffer-sequence buffer 0 (size buffer))
+       (offset m))))
+  "cli" 3)
+
+(deftest standard-buffer-delete-word.test-2
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "  climacs")
+    (let ((m (make-instance 'standard-right-sticky-mark
+			    :buffer buffer :offset 0)))
+      (delete-word m)
+      (values
+       (buffer-sequence buffer 0 (size buffer))
+       (offset m))))
+  #() 0)
+
+(deftest standard-buffer-backward-delete-word.test-1
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "climacs")
+    (let ((m (make-instance 'standard-left-sticky-mark
+			    :buffer buffer :offset 3)))
+      (backward-delete-word m)
+      (values
+       (buffer-sequence buffer 0 (size buffer))
+       (offset m))))
+  "macs" 0)
+
+(deftest standard-buffer-backward-delete-word.test-2
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "climacs  ")
+    (let ((m (make-instance 'standard-right-sticky-mark
+			    :buffer buffer :offset 9)))
+      (backward-delete-word m)
+      (values
+       (buffer-sequence buffer 0 (size buffer))
+       (offset m))))
+  #() 0)
+
+(deftest standard-buffer-previous-word.test-1
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "climacs climacs")
+    (let ((m0 (make-instance 'standard-right-sticky-mark
+			     :buffer buffer :offset 7))
+	  (m1 (make-instance 'standard-left-sticky-mark
+			     :buffer buffer :offset 8))
+	  (m2 (make-instance 'standard-right-sticky-mark
+			     :buffer buffer :offset 10)))
+      (values
+       (climacs-base::previous-word m0)
+       (climacs-base::previous-word m1)
+       (climacs-base::previous-word m2))))
+  "climacs" #() "cl")
\ No newline at end of file


Index: climacs/buffer-test.lisp
diff -u climacs/buffer-test.lisp:1.8 climacs/buffer-test.lisp:1.9
--- climacs/buffer-test.lisp:1.8	Thu Jan 20 15:21:52 2005
+++ climacs/buffer-test.lisp	Mon Jan 24 15:53:52 2005
@@ -526,6 +526,23 @@
       (= 0 (line-number m1) (1- (line-number m2)))))
   t)
 
+(deftest standard-buffer-buffer-column-number.test-1
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "		climacs")
+    (values
+     (buffer-object buffer 2)
+     (buffer-column-number buffer 2)))
+  #\c 2)
+
+(deftest standard-buffer-buffer-column-number.test-2
+  (let ((buffer (make-instance 'standard-buffer)))
+    (insert-buffer-sequence buffer 0 "
+		climacs")
+    (values
+     (buffer-object buffer 3)
+     (buffer-column-number buffer 3)))
+  #\c 2)
+
 (deftest standard-buffer-column-number.test-1
   (let ((buffer (make-instance 'standard-buffer)))
     (insert-buffer-sequence buffer 0 "climacs




More information about the Climacs-cvs mailing list