windows: allow MrEd-based console apps and Mz-based consoleless apps

svn: r230
This commit is contained in:
Matthew Flatt 2005-06-22 20:28:36 +00:00
parent 8c9aca0aef
commit d17ee2ab7c

View File

@ -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)))))