Changeset 15627 in project for release/4/getopt-long/getopt-long.scm


Ignore:
Timestamp:
08/29/09 07:27:48 (10 years ago)
Author:
Ivan Raikov
Message:

getopt-long now returns an alist where the keys are symbols

File:
1 edited

Legend:

Unmodified
Added
Removed
  • release/4/getopt-long/getopt-long.scm

    r15622 r15627  
    288288(define (parse-option-spec desc)
    289289 
    290   (let* ((name         (->string (car desc)))
     290  (let* ((name         (car desc))
    291291         (single-char  (make-single-char name))
    292292         (spec
    293293          (make-option-spec
    294            name:        (string->symbol name)
     294           name:        name
    295295           required?:   #f
    296296           single-char: single-char
     
    448448                                        (or (value-policy-transformer value-policy)
    449449                                            identity)))
    450                                  (list next (cons n (transformer v)))))
     450                                 (list next (cons (option-spec-name spec) (transformer v)))))
    451451                            (error 'long-option?
    452452                                   "predicate error on option value " n))))
     
    461461                        ((and (not v) (value-policy-optional?
    462462                                       (option-spec-value spec)))
    463                          (list next (cons n #t)))
     463                         (list next (cons (option-spec-name spec) #t)))
    464464                       
    465465                        (else
    466                          (list next (cons n #t)))
     466                         (list next (cons (option-spec-name spec) #t)))
    467467                             
    468468                       )))
     
    501501                  ((alist-ref n1 (cadr specs) ) =>
    502502                   (lambda (spec)
    503                      (let ((name (->string (option-spec-name spec))))
     503                     (let ((name (option-spec-name spec)))
    504504
    505505                       (cond
     
    541541                                       
    542542                                       (else
    543                                         (cons (->string (option-spec-name spec)) #t)))))
     543                                        (cons (option-spec-name spec) #t)))))
    544544                                   
    545545                                   (else
     
    630630         (rest-ls        (append (cdr found/etc) non-split-ls)))
    631631    (for-each (lambda (spec)
    632                 (let ((name (->string (option-spec-name spec))))
     632                (let ((name (option-spec-name spec)))
    633633
    634634                  (and (option-spec-required? spec)
     
    676676        ((@)  (alist-ref '@ opts))
    677677        (else
    678          (let ((v (or (alist-ref (->string name) (cdr opts) string=?)
     678         (let ((v (or (lookup-def name (cdr opts))
    679679                      (lookup-def name defaults))))
    680680           v)
Note: See TracChangeset for help on using the changeset viewer.