From d17ee2ab7c63e897e4fb5fa5ee5682fa0aa3b5bf Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 22 Jun 2005 20:28:36 +0000 Subject: [PATCH] windows: allow MrEd-based console apps and Mz-based consoleless apps svn: r230 --- collects/compiler/private/winsubsys.ss | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 collects/compiler/private/winsubsys.ss diff --git a/collects/compiler/private/winsubsys.ss b/collects/compiler/private/winsubsys.ss new file mode 100644 index 0000000000..ffafe53534 --- /dev/null +++ b/collects/compiler/private/winsubsys.ss @@ -0,0 +1,19 @@ +(module winsubsys mzscheme + (provide set-subsystem) + + (define DF_NewHeaderOffset #x3C) + (define DF_SubsystemOffset #x5C) + + (define (set-subsystem file subsys) + (let-values ([(in out) (open-input-output-file file 'update)]) + (file-position in DF_NewHeaderOffset) + (let ([offset (integer-bytes->integer (read-bytes 4 in) #f #f)]) + (file-position out (+ offset DF_SubsystemOffset)) + (write-bytes (integer->integer-bytes + (case subsys + [(windows) 2] + [(console) 3]) + 4 #f #f) + out) + (close-input-port in) + (close-output-port out)))))