Issue #252: Smalltak/X is writing Windows Registry only in ASCII but registry is UTF16 jv
authorPatrik Svestka <patrik.svestka@gmail.com>
Mon, 10 Dec 2018 16:52:53 +0100
branchjv
changeset 23763 eaf599e56043
parent 23762 1f3f9bcc9689
child 23764 26642c0820c9
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
Win32OperatingSystem.st
--- 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:[