X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/6e21a5d25bca57a78f052d6a24b97b88e83cc6fb..1c1ea17d710f2e1d40fc1e48a354195303fd7d4f:/src/optparse.lisp diff --git a/src/optparse.lisp b/src/optparse.lisp index 74df161..16b5b7b 100644 --- a/src/optparse.lisp +++ b/src/optparse.lisp @@ -166,14 +166,18 @@ (opt-arg-optional-p o) (opt-arg-name o) (opt-documentation o))))) - (:constructor %make-option) + (:constructor %make-option + (&key long-name tag negated-tag short-name + arg-name arg-optional-p documentation + &aux (%documentation documentation))) (:constructor make-option (long-name short-name &optional arg-name &key (tag (intern (string-upcase long-name) :keyword)) negated-tag arg-optional-p - doc (documentation doc)))) + doc (documentation doc) + &aux (%documentation documentation)))) "Describes a command-line option. Slots: LONG-NAME The option's long name. If this is null, the `option' is @@ -210,7 +214,8 @@ (short-name nil :type (or null character)) (arg-name nil :type (or null string)) (arg-optional-p nil :type t) - (documentation nil :type (or null string))) + (%documentation nil :type (or null string))) +(define-access-wrapper opt-documentation opt-%documentation) (export '(option-parser option-parser-p make-option-parser op-options op-non-option op-long-only-p op-numeric-p @@ -225,6 +230,7 @@ negated-numeric-p long-only-p &aux (args (cons nil argstmp)) + (%options options) (next args) (negated-p (or negated-numeric-p (some #'opt-negated-tag @@ -258,7 +264,7 @@ still allowed, and may be cuddled as usual. The default is nil." (args nil :type list) - (options nil :type list) + (%options nil :type list) (non-option :skip :type (or function (member :skip :stop :return))) (next nil :type list) (short-opt nil :type (or null string)) @@ -268,6 +274,7 @@ (numeric-p nil :type t) (negated-numeric-p nil :type t) (negated-p nil :type t)) +(define-access-wrapper op-options op-%options) (export 'option-parse-error) (define-condition option-parse-error (error simple-condition)