diff --git a/collects/drscheme/info.ss b/collects/drscheme/info.ss index 339f15f9a9..7b298987b3 100644 --- a/collects/drscheme/info.ss +++ b/collects/drscheme/info.ss @@ -4,4 +4,4 @@ (define tool-names (list "Check Syntax")) (define mred-launcher-names (list "DrScheme")) (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")))) diff --git a/collects/drscheme/private/drscheme-normal.ss b/collects/drscheme/private/drscheme-normal.ss index d7feccee73..ade759ac95 100644 --- a/collects/drscheme/private/drscheme-normal.ss +++ b/collects/drscheme/private/drscheme-normal.ss @@ -2,12 +2,26 @@ (module drscheme-normal mzscheme (require (lib "mred.ss" "mred") (lib "class.ss") + (lib "cmdline.ss") (lib "bday.ss" "framework" "private")) ;; this used to be done by mred, but ;; since drscheme uses the -Z flag now, ;; we have to do it explicitly. (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?) (let* ([date (seconds->date (current-seconds))] diff --git a/collects/drscheme/private/main.ss b/collects/drscheme/private/main.ss index cd7cea7ad6..d0f7bb9453 100644 --- a/collects/drscheme/private/main.ss +++ b/collects/drscheme/private/main.ss @@ -2,6 +2,7 @@ (module main mzscheme (require (lib "string-constant.ss" "string-constants") (lib "unitsig.ss") + (lib "cmdline.ss") "drsig.ss" (lib "mred.ss" "mred") (lib "framework.ss" "framework") @@ -16,7 +17,6 @@ (lib "plt-installer.ss" "setup")) (provide main@) - (define argv (current-command-line-arguments)) (define main@ (unit/sig () @@ -368,7 +368,9 @@ (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 (let loop ([files files-to-open]) (cond