+2010-07-25 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+ * UnixRegistryApi.cs: From the static ctor of KeyHandler remove the
+ volatile keys directory if the last registered boot time has changed.
+ This way we *actually* have our volatile keys removed if the system as
+ rebooted.
+
+2010-07-19 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+ * UnixRegistryApi.cs: Remove the in-memmory approach to volatile keys,
+ as it becomes trickier to handle deep hiearchies, subkeys and values
+ in some scenarios. So for now we keep them in disk, we in an
+ alternative directory, so we can cleam them properly later.
+
+2010-07-13 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+ * RegistryKey.cs: Call the proper UnixRegistryApi.CreateSubKey overload.
+ * UnixRegistryApi.cs: Implement basic support for volatile keys, by
+ storing them in memory instead of disk. We lack the support to have
+ them available to other processes - and given the fact that a
+ workaround would be gross, just don't implement that now.
+
+2010-07-11 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+ * RegistryKey.cs: Add 4.0 CreateSubKey overloads taking a RegistryOptions
+ parameter.
+ * IRegistryApi.cs: Add a new overload for CreateSubKey for the 4.0
+ profile. Not nice, but better than to change the signature for each
+ profile.
+ * Win32RegistryApi.cs: Properly recognize a handle where a volatile
+ key is requested.
+ * UnixRegistryApi.cs: Stubbed.
+
+2010-07-09 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+ * Win32RegistryApi.cs: Use RegCreateKeyEx instead of RegCreateKey, as
+ we need it to further support both the missing bits and the 4.0
+ features.
+
+2010-02-08 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+ * UnixRegistryApi.cs: When retrieving the registry keys from file in a
+ unix system, if the value returned by a SecurityElement is null,
+ use String.Empty, since at this point we know that this registry key
+ *exists* and *cannot* have a null value, as specified in the public
+ api.
+ Fixes #543206.
+
+2009-11-21 Miguel de Icaza <miguel@novell.com>
+
+ * RegistryKey.cs: Implement a GetValueKind and a handful of
+ methods.
+
+2009-04-25 Sebastien Pouliot <sebastien@ximian.com>
+
+ * *.cs: Exclude the files for the NET_2_1 profile, since they are
+ unneeded and adds a bunch (23) [SecuritySafeCritical] to audit for
+ Moonlight
+
+2008-02-25 Robert Jordan <robertj@gmx.net>
+
+ * Win32RegistryApi.cs (ToString): Don't emit the handle value
+ under NET_2_0.
+ See http://msdn2.microsoft.com/en-us/netframework/aa497241.aspx.
+
+2008-02-01 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * RegistryKey.cs: Added missing checks on length of subkey and value
+ names. On 2.0 profile, allow subkey <= 255 characters. Modified
+ ArgumentNullException argument names to match MS.
+ * UnixRegistryApi.cs: In SetValue (string, object, RegistryValueKind),
+ use a zero-length string for name if it is null. In OpenSubKey,
+ respect value of writable argument when creating well-known subkey.
+ Fixes bug #357883. Removed argument names for ArgumentException's to
+ match MS.
+
+2008-01-15 Zoltan Varga <vargaz@gmail.com>
+
+ * RegistryKey.cs: Fix some argument names to be consistent with MS.
+
+2007-10-13 kevin.fitzgerald@soarce.us
+
+ * UnixRegistryApi.cs: Escape the strings before passing them to
+ SecurityElement. This fixes bug #322839
+
+2007-08-30 Marek Habersack <mhabersack@novell.com>
+
+ * UnixRegistryApi.cs: properly retrieve values of type
+ 'bytearray'.
+
+2007-08-13 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * RegistryKeyPermissionCheck.cs: Do not include in 1.0 profile.
+ Removed extra using directive and empty lines.
+
+2007-05-01 Dick Porter <dick@ximian.com>
+
+ * RegistryKeyPermissionCheck.cs: Not serializable
+
+2007-04-30 Dick Porter <dick@ximian.com>
+
+ * Registry.cs:
+ * RegistryHive.cs:
+ * RegistryKey.cs:
+ * RegistryValueKind.cs:
+ * RegistryKeyPermissionCheck.cs: Updated for 2.0 profile
+
+2006-10-29 Miguel de Icaza <miguel@novell.com>
+
+ * UnixRegistryApi.cs (KeyHandler.MachineStore): Add support for
+ loading/storing values from the system registry, instead of having
+ the system ones be user-based.
+
+ (KeyHandler, Load): turn IO exceptions into Security exceptions.
+
+2006-09-03 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * IRegistryApi.cs: Added OpenRemoteBaseKey method.
+ * Win32ResultCode.cs: Added code for win32 error 53.
+ * RegistryKey.cs: Implemented support for OpenRemoteBaseKEy on
+ Windows. To achieve this, the handle of the remote hive must be
+ stored separately from the RegistryHive value. Removed isRoot field, as
+ we now determine whether we're a root key (hive) by checking if hive
+ is not null. Added internal ctor for registry hives that takes a
+ RegistryHive, a key handle and a bool to indicate whether its a remote
+ hive. Renamed Data field to handle and added internal property to
+ access it. Throw ObjectDisposedException in ToString if key is
+ closed/disposed. Added Hive property, which is used in UnixRegistryApi.
+ Added GetHiveName method which translates a RegistryHive value to its
+ (key) name.
+ * Win32RegistryApi.cs: Added pinvoke for RegConnectRegistry. GetHandle
+ no longer needs to know whether the key refers to a hive (base key)
+ or not. Implemented OpenRemoteBaseKey.
+ * UnixRegistryApi.cs: Added OpenRemoteBaseKey implementation which
+ always throws NotImplementedException.
+ * Registry.cs: The key name of the base key no longer needs to be
+ passed to the ctor, as it's looked up in the ctor itself. This avoids
+ having a different logical for local or remote base keys.
+
+2006-08-23 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * Win32RegistryApi.cs: Use a StringBuilder instead of byte [] for
+ RegEnumKey. Fixed issue in GetSubKeyNames where buffer was not cleared
+ while iterating over subkeys.
+
+2006-08-20 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * RegistryValueOptions.cs: Add the real one.
+
+2006-08-20 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RegistryValueOptions.cs : build fix, easier than reverting all.
+
+2006-08-20 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * IRegistryApi.cs: Modified GetValue to take RegistryValueOptions enum
+ and removed obsolete return_default_value argument.
+ * RegistryKey.cs: Added missing ComVisible attribute on SetValue.
+ Use new GetValue method on IRegistryApi that takes RegistryValueOptions
+ enum. Added GetValue overload that takes RegistryValueOptions (2.0).
+ * Win32RegistryApi.cs: Modified GetValue to take RegistryValueOptions
+ enum, and removed obsolete returnDefaultValue argument. Added support
+ for ExpandString value type. Do no expand if DoNotExpand... is set.
+ * UnixRegistryApi.cs: Modified KeyHandler.GetValue to take
+ RegistryValueOptions enum, and do no expand environment variables in
+ an ExpandString if DoNotExpandEnvironmentNames is set. Modified
+ UnixRegistryApi.GetValue to take RegistryValueOptions enum, and
+ removed obsolete return_default_value argument.
+
+2006-08-14 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * UnixRegistryApi.cs: Undo change for new eventlog implementation that
+ was not rolled back earlier this week, and which does not make sense
+ without that implementation anyway.
+
+2006-08-14 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * 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.
+
+2006-08-14 Miguel de Icaza <miguel@novell.com>
+
+ * RegistryValueKind.cs: Make this public in 2.0, and rename from
+ previous version.
+
+ * Win32RegistryApi.cs: Include version to check for version;
+ Eliminate old internal enum, and instead use the new 2.0 enum.
+
+ * UnixRegistryApi.cs: Add support for typed versions of values.
+
+ Add support for ExpandString.
+
+ * Registry.cs (SetValue): implement version with type arguments.
+
+2006-08-13 Miguel de Icaza <miguel@novell.com>
+
+ * Registry.cs (SetValue, GetValue): implement.
+
+ * UnixRegistryApi.cs (KeyHandler.LoadKey, KeyHandler.Save): Add
+ support for qwords.
+
+ (KeyHandler.Save): Do not save the entries if they have been
+ deleted/dropped. Fixes a crash.
+
+ (UnixRegistryApi.DeleteKey): bug fix, call ToUnix on the keyname.
+
2006-08-12 Gert Driesen <drieseng@users.sourceforge.net>
* Registry.cs: Fixed copy/paste bug.
* Registry.cs: Class should be sealed and have a private default ctor.
-2002-11-28 Alejandro Sánchez Acosta <raciel@es.gnu.org>
+2002-11-28 Alejandro Sánchez Acosta <raciel@es.gnu.org>
* Registry.cs: Added missed field.