* RegistryKeyTest.cs: Added large batch of tests.
authorGert Driesen <drieseng@users.sourceforge.net>
Tue, 15 Aug 2006 19:00:58 +0000 (19:00 -0000)
committerGert Driesen <drieseng@users.sourceforge.net>
Tue, 15 Aug 2006 19:00:58 +0000 (19:00 -0000)
commit720e5aab1256857ad26d1f1ec4cef065dff12fd5
tree4b4287a5d5fa30bf9e5663b5c481c0bb6c4af438
parent53b534d8feea61657a4fc70ab3c8a763f70da72e
* RegistryKeyTest.cs: Added large batch of tests.
* Win32ResultCode.cs: Added error code for attempting to perform an
operation on registry key that is marked for deletion.
* RegistryKey.cs: Keep writable state. Automatically flush changes to
disk when closing key (to match MS). Allow values to be set on root
keys. Throw UnauthorizedAccessException when attempting to set/delete
value or create/delete sub key on registry key that is openen
read-only. Fixed DecodeString to only strip trailing nullchars (as
documented).
* Win32RegistryApi.cs: For a key that is marked for deletion, return
null when attempting to get a value of that key (and no default value
was specified) or open a subkey. Throw an IOException when attempting
to perform the following operation on a key that is marked for
deletion:
        1) set value on key
        2) obtain SubKeyCount
        3) obtain ValueCount
        4) create a sub key
        5) obtain value names
and ignore deleting a value. Ignore flushing changes of a key and
closing a when the key is closed.
* UnixRegistryApi.cs: Maintain handler cache per directory instead of
caching registry keys. This allows both a single key to be in memory
in both read-only and read-write key configuration, while sharing the
KeyHandler. Use case-insensitive hashtable for mapping directory to
KeyHandler. Added support for keys that have been marked for deletion
by another operation (eg. DeleteSubKeyTree). Allow different file store
for machine-level and user-level hives (but have them use the same
file store, needs further discussion). Allow KeyHandler failure when
create directory, or saving values file to bubble up. Do not save
values file when key is marked for deletion. Encapsulate access to
values collection. When setting value with null name, use zero-length
name instead. Treat key name case-insensitive in DeleteKey to match
OpenSubKey.

svn path=/trunk/mcs/; revision=63781
mcs/class/corlib/Microsoft.Win32/ChangeLog
mcs/class/corlib/Microsoft.Win32/RegistryKey.cs
mcs/class/corlib/Microsoft.Win32/UnixRegistryApi.cs
mcs/class/corlib/Microsoft.Win32/Win32RegistryApi.cs
mcs/class/corlib/Microsoft.Win32/Win32ResultCode.cs
mcs/class/corlib/Test/Microsoft.Win32/ChangeLog
mcs/class/corlib/Test/Microsoft.Win32/RegistryKeyTest.cs