#FEATURE by stefan
authorStefan Vogel <sv@exept.de>
Thu, 10 Jan 2019 19:15:28 +0100
changeset 23600 f7a4056adc93
parent 23599 0f7f4466f1af
child 23601 07a4b950046b
#FEATURE by stefan class: UnixFilename class added: #nameWithSpecialExpansions: support expansion
UnixFilename.st
--- 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