[climacs-cvs] CVS update: climacs/base-test.lisp climacs/base.lisp
Aleksandar Bakic
abakic at common-lisp.net
Mon Feb 7 22:13:39 UTC 2005
Update of /project/climacs/cvsroot/climacs
In directory common-lisp.net:/tmp/cvs-serv30269
Modified Files:
base-test.lisp base.lisp
Log Message:
Fixes to delete-indentation, tests.
Date: Mon Feb 7 23:13:38 2005
Author: abakic
Index: climacs/base-test.lisp
diff -u climacs/base-test.lisp:1.7 climacs/base-test.lisp:1.8
--- climacs/base-test.lisp:1.7 Sun Feb 6 18:38:31 2005
+++ climacs/base-test.lisp Mon Feb 7 23:13:37 2005
@@ -900,5 +900,66 @@
(values
(offset m)
(buffer-sequence buffer 0 (size buffer)))))
+ 0 "climacs ")
+
+(deftest standard-buffer-delete-indentation.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 7)))
+ (delete-indentation m)
+ (values
+ (offset m)
+ (buffer-sequence buffer 0 (size buffer)))))
+ 0 "climacs ")
+
+(deftest standard-buffer-delete-indentation.test-3
+ (let ((buffer (make-instance 'standard-buffer)))
+ (insert-buffer-sequence buffer 0 " climacs ")
+ (let ((m (make-instance 'standard-left-sticky-mark
+ :buffer buffer :offset 7)))
+ (delete-indentation m)
+ (values
+ (offset m)
+ (buffer-sequence buffer 0 (size buffer)))))
+ 0 " climacs ")
+
+(deftest standard-buffer-delete-indentation.test-4
+ (let ((buffer (make-instance 'standard-buffer)))
+ (insert-buffer-sequence buffer 0 "climacs
+ climacs ")
+ (let ((m (make-instance 'standard-right-sticky-mark
+ :buffer buffer :offset 12)))
+ (delete-indentation m)
+ (values
+ (offset m)
+ (buffer-sequence buffer 0 (size buffer)))))
+ 8 "climacs climacs ")
+
+(deftest standard-buffer-delete-indentation.test-5
+ (let ((buffer (make-instance 'standard-buffer)))
+ (insert-buffer-sequence buffer 0 "
+
+ climacs ")
+ (let ((m (make-instance 'standard-right-sticky-mark
+ :buffer buffer :offset 12)))
+ (delete-indentation m)
+ (values
+ (offset m)
+ (buffer-sequence buffer 0 (size buffer)))))
1 "
- climacs ")
+climacs ")
+
+(deftest standard-buffer-fill-line.test-1
+ (let ((buffer (make-instance 'standard-buffer)))
+ (insert-buffer-sequence buffer 0 "climacs climacs climacs")
+ (let ((m (make-instance 'standard-right-sticky-mark
+ :buffer buffer :offset 25)))
+ (fill-line m #'(lambda (m) (declare (ignore m)) 8) 10 8)
+ (values
+ (offset m)
+ (buffer-sequence buffer 0 (size buffer)))))
+ 27 "climacs
+ climacs
+ climacs")
Index: climacs/base.lisp
diff -u climacs/base.lisp:1.33 climacs/base.lisp:1.34
--- climacs/base.lisp:1.33 Sun Feb 6 17:33:50 2005
+++ climacs/base.lisp Mon Feb 7 23:13:37 2005
@@ -475,13 +475,16 @@
(defun delete-indentation (mark)
(beginning-of-line mark)
(unless (beginning-of-buffer-p mark)
+ (delete-range mark -1)
(loop until (end-of-buffer-p mark)
while (whitespacep (object-after mark))
do (delete-range mark 1))
(loop until (beginning-of-buffer-p mark)
while (whitespacep (object-before mark))
do (delete-range mark -1))
- (insert-object mark #\Space)))
+ (when (and (not (beginning-of-buffer-p mark))
+ (constituentp (object-before mark)))
+ (insert-object mark #\Space))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
@@ -505,7 +508,7 @@
(t
(incf column)))
(when (and (>= column fill-column)
- (/= (offset begin-mark) line-beginning-offset))
+ (/= (offset begin-mark) line-beginning-offset))
(insert-object begin-mark #\Newline)
(incf (offset begin-mark))
(let ((indentation
More information about the Climacs-cvs
mailing list