diff --git a/scsh/static.scm.in b/scsh/static.scm.in index 0fd64f8..79ce45f 100644 --- a/scsh/static.scm.in +++ b/scsh/static.scm.in @@ -55,7 +55,13 @@ For testing load this at a scsh prompt ;;; returns them in an options structure (define (parse-options argl) (let ((options (make-options))) - (let loop ((args (cdr argl))) + + ;; Set the input and output filenames first. + (if (< (length argl) 3) (usage (car argl))) + (set-options:output-executable options (caddr args)) + (set-options:input-image options (cadr args)) + + (let loop ((args (cdddr argl))) (cond ((null? args) (cond ((not (options:output-executable options)) (display "error: -o is a required argument") @@ -65,20 +71,6 @@ For testing load this at a scsh prompt (display "error: -i is a required argument") (newline) (usage (car argl))))) - ((equal? (car args) "-o") - (cond ((not (null? (cdr args))) - (set-options:output-executable options (cadr args)) - (loop (cddr args))) - (else - (display "error: -o requires argument") (newline) - (usage (car argl))))) - ((equal? (car args) "-i") - (cond ((not (null? (cdr args))) - (set-options:input-image options (cadr args)) - (loop (cddr args))) - (else - (display "error: -i requires argument") (newline) - (usage (car argl))))) ((equal? (car args) "--temp") (cond ((not (null? (cdr args))) (set-options:temp-dir options (cadr args)) @@ -138,7 +130,7 @@ For testing load this at a scsh prompt (define (usage program-name) (format #t (string-append - "usage: ~a -i image -o executable~%" + "usage: ~a image executable~%" " [--temp directory]~%" " [--cc command]~%" " [--ld command]~%"