You might be able to get rid of patch-runtime_http-syntax.scm
by patching MIT Scheme at runtime instead. Here's an untested idea:
;;;; Patch MIT Scheme at runtime
(ge '(runtime http-syntax))
(load-option '*PARSER)
;; Redefine Location header to allow relative URIs, which RFC 7231 allows
(define-header "Location"
(direct-parser
(*parser
(alt parse-absolute-uri
parse-relative-uri)))
(lambda (value)
(and (uri? value)
(not (uri-fragment value))))
write-uri)
(ge '(user)) ; Go back to the default REPL environment
>>88
It works! I have tested it using MIT Scheme 9.2 in FreeBSD. SchemeBBS no longer requires a custom installation of MIT Scheme! Simply add the code in >>88 to a file named patches.scm
and add (load "patches.scm")
to the beginning of bbs.scm
.