chiark / gitweb /
base: with-parsed-body, different interface.
[lisp] / optparse.lisp
index ff301eeb95b1a28b41d17915ecb3ac3259adedce..4207933263be53907447a8ce7956fa6efbd4ae85 100644 (file)
@@ -446,7 +446,7 @@ (defmacro defopthandler (name (var &optional (arg (gensym)))
    on some parameters (the ARGS) and the value of an option-argument named
    ARG."
   (let ((func (intern (format nil "OPTHANDLER/~:@(~A~)" name))))
-    (multiple-value-bind (docs decls body) (parse-body body)
+    (with-parsed-body (body decls docs) body
       `(progn
         (setf (get ',name 'opthandler) ',func)
         (defun ,func (,var ,arg ,@args)
@@ -464,7 +464,7 @@ (defun parse-c-integer (string &key radix (start 0) end)
    if RADIX is nil.  Returns two values: the integer parsed (or nil if there
    wasn't enough for a sensible parse), and the index following the
    characters of the integer."
-  (unless end (setf end (length string)))
+  (setf-default end (length string))
   (labels ((simple (i r goodp sgn)
             (multiple-value-bind
                 (a i)
@@ -773,8 +773,7 @@ (defun print-text (string
     (flet ((emit ()
             (write-string string stream :start start :end i)
             (setf start i)))
-      (unless end
-       (setf end (length string)))
+      (setf-default end (length string))
       (loop
         (unless (< i end)
           (emit)