NonPositionableExternalStream.st
changeset 5407 d6729266a95b
parent 4962 0023029d2522
child 5851 6823cc642d60
--- a/NonPositionableExternalStream.st	Fri Jun 23 10:18:11 2000 +0200
+++ b/NonPositionableExternalStream.st	Fri Jun 23 10:21:17 2000 +0200
@@ -10,6 +10,8 @@
  hereby transferred.
 "
 
+"{ Package: 'stx:libbasic' }"
+
 ExternalStream subclass:#NonPositionableExternalStream
 	instanceVariableNames:''
 	classVariableNames:'StdInStream StdOutStream StdErrorStream'
@@ -242,6 +244,36 @@
 
 !NonPositionableExternalStream methodsFor:'private'!
 
+handleForStderr
+    "{ Pragma: +optSpace }"
+
+    "return a stderr handle"
+
+%{
+    RETURN ( __MKOBJ(stderr) );
+%}
+!
+
+handleForStdin
+    "{ Pragma: +optSpace }"
+
+    "return a stdin handle"
+
+%{
+    RETURN ( __MKOBJ(stdin) );
+%}
+!
+
+handleForStdout
+    "{ Pragma: +optSpace }"
+
+    "return a stdout handle"
+
+%{
+    RETURN ( __MKOBJ(stdout) );
+%}
+!
+
 initializeForStderr
     "{ Pragma: +optSpace }"
 
@@ -249,19 +281,10 @@
 
     mode := #readwrite.
     buffered := false.
-%{
-    OBJ fp;
-
-    __INST(filePointer) = fp = __MKOBJ(stderr); __STORE(self, fp);
-#ifdef WIN32
-    __INST(eolMode) = @symbol(crlf);
-#else
-# ifdef xxx__VMS__  /* XXX: to be tested */
-    __INST(eolMode) = @symbol(cr);
-# endif
-#endif
-
-%}
+    filePointer := self handleForStderr.
+    OperatingSystem isMSWINDOWSlike ifTrue:[
+        eolMode := #crlf
+    ]
 !
 
 initializeForStdin
@@ -271,11 +294,7 @@
 
     mode := #readonly.
     buffered := true.
-%{
-    OBJ fp;
-
-    __INST(filePointer) = fp = __MKOBJ(stdin); __STORE(self, fp);
-%}
+    filePointer := self handleForStdin.
 !
 
 initializeForStdout
@@ -285,18 +304,10 @@
 
     mode := #readwrite.
     buffered := false.
-%{
-    OBJ fp;
-
-    __INST(filePointer) = fp = __MKOBJ(stdout); __STORE(self, fp);
-#ifdef WIN32
-    __INST(eolMode) = @symbol(crlf);
-#else
-# ifdef xxx__VMS__   /* XXX: to be tested */
-    __INST(eolMode) = @symbol(cr);
-# endif
-#endif
-%}
+    filePointer := self handleForStdout.
+    OperatingSystem isMSWINDOWSlike ifTrue:[
+        eolMode := #crlf
+    ]
 !
 
 reOpen
@@ -319,12 +330,6 @@
 
 !NonPositionableExternalStream methodsFor:'queries'!
 
-isPositionable
-    "return true, if the stream supports positioning (this one is not)"
-
-    ^ false
-!
-
 current
     "for compatibility with Transcript - allow Transcript current,
      even if redirected to the standardError"
@@ -333,10 +338,16 @@
 	^ self
     ].
     ^ super current
+!
+
+isPositionable
+    "return true, if the stream supports positioning (this one is not)"
+
+    ^ false
 ! !
 
 !NonPositionableExternalStream class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/NonPositionableExternalStream.st,v 1.38 1999-10-27 23:58:45 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/NonPositionableExternalStream.st,v 1.39 2000-06-23 08:21:17 cg Exp $'
 ! !