summaryrefslogtreecommitdiff
path: root/MLKDynamicContext.m
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <matthias@benkard.de>2008-08-28 16:55:53 +0200
committerMatthias Andreas Benkard <matthias@benkard.de>2008-08-28 16:55:53 +0200
commit9f06467f57576cd557ee172f10f5e12bba7f1f9e (patch)
tree5f909c534bd4cb4eb71a4986569ab797df988011 /MLKDynamicContext.m
parent3a5710bf7cb85da4ba6a327d6149db46e6bed82e (diff)
Add class MLKFileHandleStream.
Diffstat (limited to 'MLKDynamicContext.m')
-rw-r--r--MLKDynamicContext.m24
1 files changed, 21 insertions, 3 deletions
diff --git a/MLKDynamicContext.m b/MLKDynamicContext.m
index 015af47..70979cf 100644
--- a/MLKDynamicContext.m
+++ b/MLKDynamicContext.m
@@ -25,11 +25,14 @@
#import <Foundation/NSThread.h>
#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*"]];