(t
(cons (car list) (flatten (cdr list))))))
+(defun whitespacep (char)
+ (find char #(#\tab #\space #\page)))
+
(defun setf-name-p (name)
(or (symbolp name)
(and (listp name) (= 2 (length name)) (eq (car name) 'setf))))
;;; lisp sections
(defun lisp-section-p (line line-number lines)
- "Returns T if the given LINE looks like start of lisp code -- ie. if
-it starts with whitespace followed by a paren, and the previous line
-is empty"
+ "Returns T if the given LINE looks like start of lisp code --
+ie. if it starts with whitespace followed by a paren or
+semicolon, and the previous line is empty"
(let ((offset (indentation line)))
(and offset
(plusp offset)
- (eql #\( (find-if-not (lambda (c) (eql #\Space c)) line))
+ (find (find-if-not #'whitespacep line) "(;")
(empty-p (1- line-number) lines))))
(defun collect-lisp-section (lines line-number)
Examples:
- ;;; good
+ ;;; good (assumes RELEASE-HANDLE is re-entrant)
(let* ((handle (get-handle))
(object (make-object handle)))
- ;; assumes RELEASE-HANDLE is re-entrant
(finalize object (lambda () (release-handle handle)))
object)
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.21.32"
+"0.8.21.33"