utf8-check
authorClaus Gittinger <cg@exept.de>
Wed, 10 Mar 2004 01:12:27 +0100
changeset 8149 c0b336aacec6
parent 8148 dbf64e3142d9
child 8150 ba9c6e587973
utf8-check
Class.st
Method.st
--- a/Class.st	Tue Mar 09 23:01:20 2004 +0100
+++ b/Class.st	Wed Mar 10 01:12:27 2004 +0100
@@ -4524,19 +4524,24 @@
 sourceStream
     "return an open stream on my sourcefile, nil if that is not available"
 
-    |owner source|
+    |owner source stream encoding|
 
     (owner := self owningClass) notNil ifTrue:[^ owner sourceStream].
 
     classFilename notNil ifTrue:[
-	source := classFilename
+        source := classFilename
     ] ifFalse:[
-	source := (Smalltalk fileNameForClass:self) , '.st'
+        source := (Smalltalk fileNameForClass:self) , '.st'
     ].
-    ^ self sourceStreamFor:source
-
-    "Modified: 15.10.1996 / 18:59:40 / cg"
-    "Modified: 1.4.1997 / 14:33:12 / stefan"
+    stream := self sourceStreamFor:source.
+    stream notNil ifTrue:[
+        "/ see if its utf8 encoded...
+        encoding := SourceCodeManagerUtilities guessEncodingOfStream:stream.
+        (encoding notNil and:[encoding ~~ #'iso8859-1' and:[encoding ~~ #'ascii']]) ifTrue:[
+            stream := EncodedStream stream:stream encoder:(CharacterEncoder encoderFor:encoding).
+        ].
+    ].
+    ^ stream.
 !
 
 sourceStreamFor:source
@@ -4863,5 +4868,5 @@
 !Class class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.459 2004-03-05 21:51:48 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.460 2004-03-10 00:12:27 cg Exp $'
 ! !
--- a/Method.st	Tue Mar 09 23:01:20 2004 +0100
+++ b/Method.st	Wed Mar 10 01:12:27 2004 +0100
@@ -1884,14 +1884,19 @@
 sourceStream
     "return an open sourceStream (needs positioning)"
 
-    |stream|
+    |stream encoding|
 
     stream := self rawSourceStream.
     stream notNil ifTrue:[
+        "/ see if its utf8 encoded...
+        encoding := SourceCodeManagerUtilities guessEncodingOfStream:stream.
+        (encoding notNil and:[encoding ~~ #'iso8859-1' and:[encoding ~~ #'ascii']]) ifTrue:[
+            stream := EncodedStream stream:stream encoder:(CharacterEncoder encoderFor:encoding).
+        ].
         stream isExternalStream ifTrue:[
             LastSourceFileName := source.
             LastFileReference at:1 put:stream.
-        ]
+        ].
     ].
     ^ stream
 ! !
@@ -2895,7 +2900,7 @@
 !Method class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Method.st,v 1.266 2004-03-09 21:35:17 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Method.st,v 1.267 2004-03-10 00:12:19 cg Exp $'
 ! !
 
 Method initialize!