(else
(let* ((option (car option-spec))
(option-name (car option))
- (value (or (option-ref values option-name #f)
- (get-option-default-value option))))
+ (value (get-normalized-value values option option-name)))
(cons (cons option-name value)
(get-values (cdr option-spec) values))))))
+(define (get-normalized-value values option option-name)
+ "Get value for option, converting from string to the appropriate value"
+ (let ((convert-proc (assoc-ref (option-type option) 'convert))
+ (value (option-ref values option-name #f)))
+ (cond ((and value (not (option-property option 'flag)))
+ (convert-proc value))
+ (value
+ value)
+ (else
+ (get-option-default-value option)))))
+
+
(define* (get-option-default-value option #:optional (no-prompt #f))
- "Get value for option, asking user if prompt property is set"
+ "Get default value for option, asking user if prompt property is set"
(let ((default (option-property option 'default)))
(if (not default)
(let ((prompt (option-property option 'prompt)))