CharacterArray.st
branchjv
changeset 20578 39641ba8d6e0
parent 20398 8cb53f870d39
parent 20484 5bc49b246ef2
child 20727 fb8c5591428b
--- a/CharacterArray.st	Tue Sep 20 11:37:33 2016 +0100
+++ b/CharacterArray.st	Mon Oct 03 12:44:41 2016 +0100
@@ -3109,6 +3109,35 @@
     ^ ba
 !
 
+asCanonicalizedFilename
+    "return a Filename with pathname taken from the receiver.
+     The filename is canonicalized, meaning that it cares for trailing directory separators,
+     '.' components etc."
+
+    ^ self asFilename asCanonicalizedFilename
+
+    "on windows:
+     'c:\foo\bar' asFilename
+     'c:\foo\bar\' asFilename
+     'c:\foo\bar\..\baz' asFilename
+     'c:\foo\bar\..\baz\.' asFilename
+     'c:\foo\bar' asCanonicalizedFilename
+     'c:\foo\bar\' asCanonicalizedFilename
+     'c:\foo\bar\..\baz' asCanonicalizedFilename
+     'c:\foo\bar\..\baz\.' asCanonicalizedFilename
+    
+    on unix:
+     '/foo/bar' asFilename
+     '/foo/bar/' asFilename
+     '/foo/bar/../baz' asFilename
+     '/foo/bar/../baz/.' asFilename
+     '/foo/bar' asCanonicalizedFilename
+     '/foo/bar/' asCanonicalizedFilename
+     '/foo/bar/../baz' asCanonicalizedFilename
+     '/foo/bar/../baz/.' asCanonicalizedFilename
+    "
+!
+
 asCollectionOfLines
     "return a collection containing the lines (separated by cr)
      of the receiver. If multiple cr's occur in a row, the result will