X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/sod/blobdiff_plain/c1098ad8614af0cf52d057df6e9c2a17aaf19fe3..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 @@ (defstruct (option (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 @@ (defstruct (option (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 @@ (defstruct (option-parser 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 @@ (defstruct (option-parser 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 @@ (defstruct (option-parser (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)