fixed commandline handling

svn: r2208
This commit is contained in:
Robby Findler 2006-02-13 16:05:48 +00:00
parent 04b89daa5a
commit 038a53a07a
3 changed files with 19 additions and 3 deletions

View File

@ -4,4 +4,4 @@
(define tool-names (list "Check Syntax")) (define tool-names (list "Check Syntax"))
(define mred-launcher-names (list "DrScheme")) (define mred-launcher-names (list "DrScheme"))
(define mred-launcher-libraries (list "drscheme.ss")) (define mred-launcher-libraries (list "drscheme.ss"))
(define mred-launcher-flags (list (list "-ZmvqL" "drscheme.ss" "drscheme")))) (define mred-launcher-flags (list (list "-ZmvqL-" "drscheme.ss" "drscheme"))))

View File

@ -2,12 +2,26 @@
(module drscheme-normal mzscheme (module drscheme-normal mzscheme
(require (lib "mred.ss" "mred") (require (lib "mred.ss" "mred")
(lib "class.ss") (lib "class.ss")
(lib "cmdline.ss")
(lib "bday.ss" "framework" "private")) (lib "bday.ss" "framework" "private"))
;; this used to be done by mred, but ;; this used to be done by mred, but
;; since drscheme uses the -Z flag now, ;; since drscheme uses the -Z flag now,
;; we have to do it explicitly. ;; we have to do it explicitly.
(current-load text-editor-load-handler) (current-load text-editor-load-handler)
(define files-to-open
(command-line
(case (system-type)
[(windows) "DrScheme.exe"]
[(macosx) "drscheme" #;"DrScheme"]
[else "drscheme"])
(current-command-line-arguments)
(args filenames filenames)))
;; updates the command-line-arguments with only the files
;; to open. See also main.ss.
(current-command-line-arguments (apply vector files-to-open))
(define-values (texas-independence-day? halloween?) (define-values (texas-independence-day? halloween?)
(let* ([date (seconds->date (current-seconds))] (let* ([date (seconds->date (current-seconds))]

View File

@ -2,6 +2,7 @@
(module main mzscheme (module main mzscheme
(require (lib "string-constant.ss" "string-constants") (require (lib "string-constant.ss" "string-constants")
(lib "unitsig.ss") (lib "unitsig.ss")
(lib "cmdline.ss")
"drsig.ss" "drsig.ss"
(lib "mred.ss" "mred") (lib "mred.ss" "mred")
(lib "framework.ss" "framework") (lib "framework.ss" "framework")
@ -16,7 +17,6 @@
(lib "plt-installer.ss" "setup")) (lib "plt-installer.ss" "setup"))
(provide main@) (provide main@)
(define argv (current-command-line-arguments))
(define main@ (define main@
(unit/sig () (unit/sig ()
@ -368,7 +368,9 @@
(loop (cdr files)) (loop (cdr files))
(cons (car files) (loop (cdr files))))]))) (cons (car files) (loop (cdr files))))])))
(let* ([files-to-open (reverse (vector->list argv))] ;; NOTE: drscheme-normal.ss sets current-command-line-arguments to
;; the list of files to open, after parsing out flags like -h
(let* ([files-to-open (reverse (vector->list (current-command-line-arguments)))]
[normalized/filtered [normalized/filtered
(let loop ([files files-to-open]) (let loop ([files files-to-open])
(cond (cond