summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MLKStream.h20
-rw-r--r--MLKStream.m38
2 files changed, 42 insertions, 16 deletions
diff --git a/MLKStream.h b/MLKStream.h
index 737346c..a2536fd 100644
--- a/MLKStream.h
+++ b/MLKStream.h
@@ -31,17 +31,21 @@
unichar _cachedChar;
}
--(MLKStream *) init;
--(MLKStream *) initWithInputStream:(NSInputStream *)input;
--(MLKStream *) initWithOutputStream:(NSOutputStream *)output;
--(MLKStream *) initWithInputStream:(NSInputStream *)input
- outputStream:(NSOutputStream *)output;
--(MLKStream *) initWithInputStream:(NSInputStream *)input
- outputStream:(NSOutputStream *)output
- encoding:(NSStringEncoding)encoding;
+-(id) init;
+-(id) initWithInputStream:(NSInputStream *)input;
+-(id) initWithOutputStream:(NSOutputStream *)output;
+-(id) initWithInputStream:(NSInputStream *)input
+ outputStream:(NSOutputStream *)output;
+-(id) initWithInputStream:(NSInputStream *)input
+ outputStream:(NSOutputStream *)output
+ encoding:(NSStringEncoding)encoding;
-(unichar) readChar;
-(void) unreadChar:(unichar)ch;
-(unichar) peekChar;
-(BOOL) isEOF;
+
+-(void) writeChar:(unichar)ch;
+//-(void) writeFormat:(NSString *)format, ...;
+-(void) writeString:(NSString *)string;
@end
diff --git a/MLKStream.m b/MLKStream.m
index 6448bdc..9d34edb 100644
--- a/MLKStream.m
+++ b/MLKStream.m
@@ -24,26 +24,27 @@
#include <unistd.h>
#include <stdlib.h>
+#include <string.h>
@implementation MLKStream
--(MLKStream *) init;
+-(id) init;
{
return [self initWithInputStream:nil outputStream:nil];
}
--(MLKStream *) initWithInputStream:(NSInputStream *)input;
+-(id) initWithInputStream:(NSInputStream *)input;
{
return [self initWithInputStream:input outputStream:nil];
}
--(MLKStream *) initWithOutputStream:(NSOutputStream *)output;
+-(id) initWithOutputStream:(NSOutputStream *)output;
{
return [self initWithInputStream:nil outputStream:output];
}
--(MLKStream *) initWithInputStream:(NSInputStream *)input
- outputStream:(NSOutputStream *)output
+-(id) initWithInputStream:(NSInputStream *)input
+ outputStream:(NSOutputStream *)output
{
return [self initWithInputStream:input
outputStream:output
@@ -51,9 +52,9 @@
}
--(MLKStream *) initWithInputStream:(NSInputStream *)input
- outputStream:(NSOutputStream *)output
- encoding:(NSStringEncoding)encoding
+-(id) initWithInputStream:(NSInputStream *)input
+ outputStream:(NSOutputStream *)output
+ encoding:(NSStringEncoding)encoding
{
self = [super init];
LASSIGN (_input, input);
@@ -162,6 +163,27 @@
return eofp;
}
+-(void) writeChar:(unichar)ch
+{
+ const void *cstring = [[NSString stringWithFormat:@"%C", ch] cStringUsingEncoding:_encoding];
+ [_output write:cstring maxLength:strlen(cstring)];
+}
+
+//-(void) writeFormat:(NSString *)format, ...
+//{
+// NSString *string = ;
+// [self writeString:string];
+//}
+
+-(void) writeString:(NSString *)string
+{
+ unichar ch;
+ int i;
+
+ for (i = 0; i < [string length]; i++)
+ [self writeChar:[string characterAtIndex:i]];
+}
+
-(void) dealloc
{
if (_closeInputWhenDone)