# HG changeset patch # User Claus Gittinger # Date 1575627105 -3600 # Node ID 1a9bfc0fc99691eec6cb556930529d085370ce87 # Parent 690739dad6b8d4b7457013b6e8c5b8c970789e36 #DOCUMENTATION by cg class: Win32OperatingSystem class comment/format in: #expandEnvironmentStrings: #pathNameOf: diff -r 690739dad6b8 -r 1a9bfc0fc996 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' " !