#DOCUMENTATION by cg
authorClaus Gittinger <cg@exept.de>
Fri, 06 Dec 2019 11:11:45 +0100
changeset 25074 1a9bfc0fc996
parent 25073 690739dad6b8
child 25075 5f8d55a5a56f
#DOCUMENTATION by cg class: Win32OperatingSystem class comment/format in: #expandEnvironmentStrings: #pathNameOf:
Win32OperatingSystem.st
--- a/Win32OperatingSystem.st	Fri Dec 06 09:38:38 2019 +0100
+++ b/Win32OperatingSystem.st	Fri Dec 06 11:11:45 2019 +0100
@@ -6853,20 +6853,20 @@
     path := self primPathNameOf:pathName.
 
     path isNil ifTrue:[
-	(self isValidPath:pathName) ifFalse:[
-	    p := pathName.
-	    [(p size > 1)
-	     and:[p endsWith:(self fileSeparator)]
-	    ] whileTrue:[
-		p := p copyButLast:1.
-	    ].
-	    ^ p
-	].
-
-	"/
-	"/ return the original - there is nothing else can we do
-	"/
-	path := self compressPath:pathName
+        (self isValidPath:pathName) ifFalse:[
+            p := pathName.
+            [(p size > 1)
+             and:[p endsWith:(self fileSeparator)]
+            ] whileTrue:[
+                p := p copyButLast:1.
+            ].
+            ^ p
+        ].
+
+        "/
+        "/ return the original - there is nothing else can we do
+        "/
+        path := self compressPath:pathName
     ].
     ^ path.
 
@@ -6879,6 +6879,8 @@
      OperatingSystem pathNameOf:'/foo/bar'
      OperatingSystem pathNameOf:'/foo/bar/'
      OperatingSystem pathNameOf:'/foo/bar//'
+     OperatingSystem pathNameOf:'%ProgramFiles%'
+     OperatingSystem pathNameOf:'%programfiles%'
     "
 
     "Modified: 29.11.1996 / 18:02:12 / stefan"
@@ -8823,33 +8825,36 @@
 !
 
 expandEnvironmentStrings:aString
-    "expand the environmentStrings (e.g. %ProgramFiles%) in aString"
+    "expand the environmentStrings (e.g. %ProgramFiles%) in aString.
+     Typical are:
+        HOMEDRIVE, HOMEPATH, JAVA_HOME, ProgramFiles, ProgramFiles(x86), TMP and TEMP"
 
     |count resultString resultCount|
 
     count := aString size + 128.
     [
-	aString isWideString ifTrue:[
-	    resultString := Unicode16String new:count.
-	    resultCount := self primExpandEnvironmentStringsW:aString into:resultString size:count.
-	] ifFalse:[
-	    resultString := String new:count.
-	    resultCount := self primExpandEnvironmentStringsA:aString into:resultString size:count.
-	].
-	resultCount <= count ifTrue:[
-	    true
-	] ifFalse:[
-	    "resultString was too small. resultCount is the required buffer size"
-	    count := resultCount.
-	    false
-	].
+        aString isWideString ifTrue:[
+            resultString := Unicode16String new:count.
+            resultCount := self primExpandEnvironmentStringsW:aString into:resultString size:count.
+        ] ifFalse:[
+            resultString := String new:count.
+            resultCount := self primExpandEnvironmentStringsA:aString into:resultString size:count.
+        ].
+        resultCount <= count ifTrue:[
+            true
+        ] ifFalse:[
+            "resultString was too small. resultCount is the required buffer size"
+            count := resultCount.
+            false
+        ].
     ] whileFalse.
     ^ resultString copyTo:resultCount-1.
 
 
     "
-	self expandEnvironmentStrings:'%ProgramFiles%\test\x'
-	self expandEnvironmentStrings:'%ProgramFiles%\test\x' asUnicode16String
+     self expandEnvironmentStrings:'%ProgramFiles%\test\x'
+     self expandEnvironmentStrings:'%ProgramFiles%\test\x' asUnicode16String
+     self expandEnvironmentStrings:'%HOMEDRIVE%%HOMEPATH%\test\x'
     "
 !