chiark
/
gitweb
/
~mdw
/
lisp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
optparse: Prettify the error reporting.
[lisp]
/
optparse.lisp
diff --git
a/optparse.lisp
b/optparse.lisp
index 6e06fc0b11d9d49cfa78730d853e5a3c3bfdfd62..b490b37b51fb7f966cc8f1a538a3802b985c3841 100644
(file)
--- a/
optparse.lisp
+++ b/
optparse.lisp
@@
-74,7
+74,13
@@
(defstruct (option (:predicate optionp)
(lambda (o s k)
(declare (ignore k))
(format s
(lambda (o s k)
(declare (ignore k))
(format s
- "#<option~@[ -~C,~]~@[ --~A~]~:[~2*~;~:[=~A~;[=~A]~]~]~@[ ~S~]>"
+ #.(concatenate 'string
+ "#<option"
+ "~@[ -~C,~]"
+ "~@[ --~A~]"
+ "~:[~2*~;~:[=~A~;[=~A]~]~]"
+ "~@[ ~S~]"
+ ">")
(opt-short-name o)
(opt-long-name o)
(opt-arg-name o)
(opt-short-name o)
(opt-long-name o)
(opt-arg-name o)
@@
-289,8
+295,10
@@
(defun option-parse-next (op)
(option-parse-error "Unknown option `~A'" optname))
((cdr matches)
(option-parse-error
(option-parse-error "Unknown option `~A'" optname))
((cdr matches)
(option-parse-error
- "~
-Ambiguous long option `~A' -- could be any of:~{~% --~A~}"
+ #.(concatenate 'string
+ "Ambiguous long option `~A' -- "
+ "could be any of:"
+ "~{~%~8T--~A~}")
optname
(mapcar #'opt-long-name matches))))
(process-option (car matches)
optname
(mapcar #'opt-long-name matches))))
(process-option (car matches)
@@
-565,7
+573,9
@@
(defopthandler int (var arg) (&key radix min max)
(when (or (and min (< v min))
(and max (> v max)))
(option-parse-error
(when (or (and min (< v min))
(and max (> v max)))
(option-parse-error
- "Integer ~A out of range (must have ~@[~D <= ~]x~@[ <= ~D~])"
+ #.(concatenate 'string
+ "Integer ~A out of range "
+ "(must have ~@[~D <= ~]x~@[ <= ~D~])")
arg min max))
(setf var v)))
arg min max))
(setf var v)))
@@
-596,14
+606,18
@@
(defopthandler keyword (var arg) (&optional (valid t))
(push k matches)))))
(cond
((null matches)
(push k matches)))))
(cond
((null matches)
- (option-parse-error "Argument `~A' invalid: must be one of:~
- ~{~%~8T~(~A~)~}"
+ (option-parse-error #.(concatenate 'string
+ "Argument `~A' invalid: "
+ "must be one of:"
+ "~{~%~8T~(~A~)~}")
arg valid))
((null (cdr matches))
(setf var (car matches)))
(t
arg valid))
((null (cdr matches))
(setf var (car matches)))
(t
- (option-parse-error "Argument `~A' ambiguous: may be any of:~
- ~{~%~8T~(~A~)~}"
+ (option-parse-error #.(concatenate 'string
+ "Argument `~A' ambiguous: "
+ "may be any of:"
+ "~{~%~8T~(~A~)~}")
arg matches)))))))
(defopthandler list (var arg) (&optional handler &rest handler-args)
arg matches)))))))
(defopthandler list (var arg) (&optional handler &rest handler-args)