Issue #252: Smalltak/X is writing Windows Registry only in ASCII but registry is UTF16
minor refactorings:
- changed name to nameString to indicate that the parameter must be a string
- deleted superfluous comment
--- a/Win32OperatingSystem.st Fri Dec 07 14:33:23 2018 +0100
+++ b/Win32OperatingSystem.st Mon Dec 10 16:52:53 2018 +0100
@@ -16087,7 +16087,7 @@
errorNumber notNil ifTrue:[
errorNumber == 87 ifTrue:[ "/ 87 (0x57) ... ERROR_INVALID_PARAMETER
- self primitiveFailed: '32/64bit registry view requested but no RegDeleteKeyExW(). Windows too old?'
+ self primitiveFailed: '32/64bit registry view requested but no RegDeleteKeyExW(). Windows too old? (hint: set flags to nil)'
].
(OperatingSystem errorHolderForNumber:errorNumber) reportError.
@@ -16549,17 +16549,16 @@
"
!
-deleteValueNamed:name
+deleteValueNamed:nameString
"delete a value.
Return true on success."
|nameUtf16Z errorNumber|
- "/ name must be a string
"/ adding terminating null into empty string
- name notNil ifTrue:[
- nameUtf16Z := name isEmpty ifTrue:[(name, (Character codePoint: 0)) asUnicode16String] "/ needed for defaultValue
- ifFalse:[name asUnicode16StringZ]
+ nameString notNil ifTrue:[
+ nameUtf16Z := nameString isEmpty ifTrue:[(nameString, (Character codePoint: 0)) asUnicode16String] "/ needed for defaultValue
+ ifFalse:[nameString asUnicode16StringZ]
].
%{
@@ -16930,7 +16929,7 @@
"
!
-valueNamed:name put:data
+valueNamed:nameString put:data
"store a value; the value type depends upon the stored value:
ByteArray -> REG_BINARY
String -> REG_SZ
@@ -16938,13 +16937,11 @@
Integer -> REG_DWORD
nil -> REG_NONE
"
- "Transcript showCR: 'name:', name.
- Transcript showCR: 'data:', data."
- ^ self valueNamed:name put:data unexpandedReferences:false
-!
-
-valueNamed:name put:data unexpandedReferences:containsUnexpandedReferences
+ ^ self valueNamed:nameString put:data unexpandedReferences:false
+!
+
+valueNamed:nameString put:data unexpandedReferences:containsUnexpandedReferences
"store a value; the value type depends upon the stored value:
ByteArray -> REG_BINARY
String -> REG_SZ OR REG_EXPAND_SZ based on containsUnexpandedReferences
@@ -16963,11 +16960,10 @@
|nameUtf16Z dataUtf16Z stringArray errorNumber|
- "/ name must be a string
- "/ name asUnicodeString and null terminated
- name notNil ifTrue:[
- nameUtf16Z := name isEmpty ifTrue:[(name, (Character codePoint: 0)) asUnicode16String] "/ needed for defaultValue:
- ifFalse:[name asUnicode16StringZ]
+ "/ nameString asUnicodeString and null terminated
+ nameString notNil ifTrue:[
+ nameUtf16Z := nameString isEmpty ifTrue:[(nameString, (Character codePoint: 0)) asUnicode16String] "/ needed for defaultValue:
+ ifFalse:[nameString asUnicode16StringZ]
].
"/ data asUnicode16String and null terminated
data notNil ifTrue:[