UnixFilename.st
changeset 23600 f7a4056adc93
parent 23042 def1ea6ee127
child 23624 5c6834205e82
--- a/UnixFilename.st	Thu Jan 10 19:14:42 2019 +0100
+++ b/UnixFilename.st	Thu Jan 10 19:15:28 2019 +0100
@@ -85,6 +85,35 @@
     "Modified (comment): / 31-05-2018 / 09:56:20 / Claus Gittinger"
 ! !
 
+!UnixFilename class methodsFor:'misc'!
+
+nameWithSpecialExpansions:aString
+    "return the nameString, expanding any OS specific macros.
+     Here, a ~/ or ~user/ prefix is expanded to the users home dir (as in csh)"
+
+    |expandedString|
+
+    expandedString := aString.
+    (expandedString includes:$$) ifTrue:[
+        expandedString := OperatingSystem expandEnvironmentStrings:expandedString.
+    ].
+
+    (expandedString startsWith:$~) ifTrue:[
+        ^ super nameWithSpecialExpansions:expandedString.
+    ].
+    ^ expandedString
+
+    "
+        self nameWithSpecialExpansions:'/usr/lib'
+        self nameWithSpecialExpansions:'$JAVA_HOME/bin'
+        self nameWithSpecialExpansions:'$(JAVA_HOME)/bin'
+        self nameWithSpecialExpansions:'~/work'
+        self nameWithSpecialExpansions:'~stefan/test'
+    "
+
+    "Created: / 10-01-2019 / 16:04:14 / Stefan Vogel"
+! !
+
 !UnixFilename class methodsFor:'queries'!
 
 isBadCharacter:aCharacter