chiark
/
gitweb
/
~mdw
/
lisp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
base: with-parsed-body, different interface.
[lisp]
/
optparse.lisp
diff --git
a/optparse.lisp
b/optparse.lisp
index ff301eeb95b1a28b41d17915ecb3ac3259adedce..4207933263be53907447a8ce7956fa6efbd4ae85 100644
(file)
--- a/
optparse.lisp
+++ b/
optparse.lisp
@@
-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))))
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)
`(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."
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)
(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)))
(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)
(loop
(unless (< i end)
(emit)