[climacs-cvs] CVS update: climacs/buffer-test.lisp climacs/buffer.lisp
Aleksandar Bakic
abakic at common-lisp.net
Sat Feb 5 13:49:22 UTC 2005
Update of /project/climacs/cvsroot/climacs
In directory common-lisp.net:/tmp/cvs-serv9690
Modified Files:
buffer-test.lisp buffer.lisp
Log Message:
Changed region-to-sequence to be symmetrical wrt. marks.
Date: Sat Feb 5 14:49:21 2005
Author: abakic
Index: climacs/buffer-test.lisp
diff -u climacs/buffer-test.lisp:1.10 climacs/buffer-test.lisp:1.11
--- climacs/buffer-test.lisp:1.10 Fri Jan 28 19:47:29 2005
+++ climacs/buffer-test.lisp Sat Feb 5 14:49:20 2005
@@ -710,6 +710,14 @@
(and (not (eq seq seq2)) seq2)))
"climacs")
+(deftest standard-buffer-region-to-sequence.test-1aa
+ (let ((seq "climacs")
+ (buffer (make-instance 'standard-buffer)))
+ (insert-buffer-sequence buffer 0 seq)
+ (let ((seq2 (region-to-sequence (high-mark buffer) 0)))
+ (and (not (eq seq seq2)) seq2)))
+ "climacs")
+
(deftest standard-buffer-region-to-sequence.test-1b
(let ((seq "climacs")
(buffer (make-instance 'standard-buffer)))
@@ -718,12 +726,20 @@
(and (not (eq seq seq2)) seq2)))
"climacs")
+(deftest standard-buffer-region-to-sequence.test-1ba
+ (let ((seq "climacs")
+ (buffer (make-instance 'standard-buffer)))
+ (insert-buffer-sequence buffer 0 seq)
+ (let ((seq2 (region-to-sequence 7 (low-mark buffer))))
+ (and (not (eq seq seq2)) seq2)))
+ "climacs")
+
(deftest standard-buffer-region-to-sequence.test-2
(let ((seq "climacs")
(buffer (make-instance 'standard-buffer)))
(insert-buffer-sequence buffer 0 seq)
(region-to-sequence (high-mark buffer) (low-mark buffer)))
- #())
+ "climacs")
(deftest standard-buffer-region-to-sequence.test-3
(handler-case
@@ -847,4 +863,4 @@
for i from 0 below 100000
do (insert-buffer-sequence b (floor (size b) 2) "abcdefghij")
finally (return (size b)))
- 1000000)
\ No newline at end of file
+ 1000000)
Index: climacs/buffer.lisp
diff -u climacs/buffer.lisp:1.25 climacs/buffer.lisp:1.26
--- climacs/buffer.lisp:1.25 Sat Feb 5 08:04:03 2005
+++ climacs/buffer.lisp Sat Feb 5 14:49:20 2005
@@ -488,13 +488,23 @@
(defmethod region-to-sequence ((mark1 mark-mixin) (mark2 mark-mixin))
(assert (eq (buffer mark1) (buffer mark2)))
- (buffer-sequence (buffer mark1) (offset mark1) (offset mark2)))
+ (let ((offset1 (offset mark1))
+ (offset2 (offset mark2)))
+ (when (> offset1 offset2)
+ (rotatef offset1 offset2))
+ (buffer-sequence (buffer mark1) offset1 offset2)))
-(defmethod region-to-sequence ((offset integer) (mark mark-mixin))
- (buffer-sequence (buffer mark) offset (offset mark)))
+(defmethod region-to-sequence ((offset1 integer) (mark2 mark-mixin))
+ (let ((offset2 (offset mark2)))
+ (when (> offset1 offset2)
+ (rotatef offset1 offset2))
+ (buffer-sequence (buffer mark2) offset1 offset2)))
-(defmethod region-to-sequence ((mark mark-mixin) (offset integer))
- (buffer-sequence (buffer mark) (offset mark) offset))
+(defmethod region-to-sequence ((mark1 mark-mixin) (offset2 integer))
+ (let ((offset1 (offset mark1)))
+ (when (> offset1 offset2)
+ (rotatef offset1 offset2))
+ (buffer-sequence (buffer mark1) offset1 offset2)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
More information about the Climacs-cvs
mailing list