From 9f06467f57576cd557ee172f10f5e12bba7f1f9e Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Thu, 28 Aug 2008 16:55:53 +0200 Subject: Add class MLKFileHandleStream. --- MLKDynamicContext.m | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'MLKDynamicContext.m') diff --git a/MLKDynamicContext.m b/MLKDynamicContext.m index 015af47..70979cf 100644 --- a/MLKDynamicContext.m +++ b/MLKDynamicContext.m @@ -25,11 +25,14 @@ #import #import "MLKBackquoteReader.h" +#import "MLKBinaryStreamCharacterStream.h" +#import "MLKCharacterStream.h" #import "MLKCommaReader.h" #import "MLKCons.h" #import "MLKDispatchingMacroCharacterReader.h" #import "MLKDynamicContext.h" #import "MLKEnvironment.h" +#import "MLKFileHandleStream.h" #import "MLKPackage.h" #import "MLKParenReader.h" #import "MLKQuoteReader.h" @@ -213,6 +216,21 @@ static MLKDynamicContext *global_context; // FIXME: Initialise stuff. #define INIT(VARNAME, VALUE) [vars setObject:VALUE forKey:[cl intern:VARNAME]] + MLKFileHandleStream *ferrstream, *foutstream; + MLKCharacterStream *errstream, *outstream; + ferrstream = [[MLKFileHandleStream alloc] + initWithFileHandle:[NSFileHandle fileHandleWithStandardError]]; + foutstream = [[MLKFileHandleStream alloc] + initWithFileHandle:[NSFileHandle fileHandleWithStandardOutput]]; + errstream = [[MLKBinaryStreamCharacterStream alloc] + initWithBinaryStream:ferrstream]; + outstream = [[MLKBinaryStreamCharacterStream alloc] + initWithBinaryStream:foutstream]; + LAUTORELEASE (ferrstream); + LAUTORELEASE (foutstream); + LAUTORELEASE (errstream); + LAUTORELEASE (outstream); + INIT(@"*BREAK-ON-SIGNALS*", NIL); INIT(@"*COMPILE-FILE-PATHNAME*", NIL); INIT(@"*COMPILE-FILE-TRUENAME*", NIL); @@ -221,7 +239,7 @@ static MLKDynamicContext *global_context; // INIT(@"*DEBUG-IO*", ); INIT(@"*DEBUGGER-HOOK*", NIL); // INIT(@"*DEFAULT-PATHNAME-DEFAULTS*", ); - // INIT(@"*ERROR-OUTPUT*", ); + INIT(@"*ERROR-OUTPUT*", errstream); INIT(@"*FEATURES*", [MLKCons cons:[keyword intern:@"ETOILET"] with:[MLKCons @@ -260,9 +278,9 @@ static MLKDynamicContext *global_context; INIT(@"*READ-SUPPRESS*", NIL); //FIXME: Support in reader INIT(@"*READTABLE*", readtable); // INIT(@"*STANDARD-INPUT*", ); - // INIT(@"*STANDARD-OUTPUT*", ); + INIT(@"*STANDARD-OUTPUT*", outstream); // INIT(@"*TERMINAL-IO*", ); - // INIT(@"*TRACE-OUTPUT* ", ); + INIT(@"*TRACE-OUTPUT* ", outstream); [vars setObject:NIL forKey:[[MLKPackage findPackage:@"TOILET-SYSTEM"] intern:@"*SYSTEM-INITIALISED-P*"]]; -- cgit v1.2.3