Timeline


and

4/11/2012:

06:07 Ticket #430 (ERASER will NOT scan unuse space on ext or C drives) closed by Joel
duplicate: Do not duplicate tickets. Use the old one to make comments. Count …
06:07 Ticket #429 (ERASER will NOT scan unuse space on ext or C drives) closed by Joel
duplicate: Do not duplicate tickets. Use the old one to make comments. Count …
01:18 Ticket #430 (ERASER will NOT scan unuse space on ext or C drives) created by genethomas@…
#428 Joel, What you offered made no differene. RIGHT click on desktop …
01:18 Ticket #429 (ERASER will NOT scan unuse space on ext or C drives) created by genethomas@…
#428 Joel, What you offered made no differene. RIGHT click on desktop …

4/5/2012:

16:01 Ticket #428 (Will not run scan ever since installed) created by genethomas@…
Trying to RUN NOW erase of unused space gets immediate message>> …

4/4/2012:

19:05 Build of Eraser 6.2 [2617] on Windows completed
06:57 Changeset [2617] by lowjoel
  • trunk/eraser/Eraser/Program.cs

Fixed crash when running "eraser help" reported in http://eraser.heidi.ie/forum/viewtopic.php?f=36&t=8716

4/2/2012:

11:04 Ticket #427 (Task List and log saving behaviour improvement) created by DavidHB
In Version 6.0.x onwards, updates to the Task List and logs are saved to …
05:32 Changeset [2616] by lowjoel
  • trunk/website/scripts/Build.php

Fixed invalid property access because the Build class bypassed the get of the Download class.

4/1/2012:

07:05 Build of Eraser 6.2 [2615] on Windows completed

3/31/2012:

23:03 Changeset [2615] by lowjoel
  • trunk/eraser/Eraser.DefaultPlugins/Strings.en.resx
  • trunk/eraser/Eraser.DefaultPlugins/Strings.it.resx
  • trunk/eraser/Eraser.DefaultPlugins/Strings.nl.resx
  • trunk/eraser/Eraser.DefaultPlugins/Strings.pl.resx
  • trunk/eraser/Eraser.DefaultPlugins/Strings.resx

New strings.

23:02 Changeset [2614] by lowjoel
  • trunk/eraser/Eraser.Manager/ErasureTargetCollection.cs

Pass the entire XmlReader? to the targets for deserialization since passing a subtree would cause the graph to not load correctly (the parent XmlReader? will not reach the end element, even when the subtree has been read to the end). This prevents us from deserializing multiple items properly if the subitem is an empty element.

23:00 Changeset [2613] by lowjoel
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs

We should error out if we call the ErasureTargetBase?.ReadXml? class directly.

19:05 Build of Eraser 6.2 [2612] on Windows completed
10:05 Changesets [2611-2612] by lowjoel
  • trunk/eraser/Eraser.Manager/ErasureTargetCollection.cs
  • trunk/eraser/Eraser.Manager/Schedule.cs
  • trunk/eraser/Eraser.Manager/Task.cs
  • trunk/eraser/Eraser.Util/Logger.cs

Follow the advice in http://www.codeproject.com/Articles/43237/How-to-Implement-IXmlSerializable-Correctly since the MSDN documentation is very vague about proper behaviour of IXmlSerializable.ReadXml?.

08:28 Changeset [2610] by lowjoel
  • trunk/eraser/Eraser.Manager/Executor.cs

Fixed broken XmlDoc? tag.

08:16 Changeset [2609] by lowjoel
  • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/ErasureMethodBase.cs
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs
  • trunk/eraser/Eraser.Plugins/ExtensionPoints/IErasureMethod.cs
  • trunk/eraser/Eraser.Plugins/Settings.cs
  • trunk/eraser/Eraser/Program.cs
  • trunk/eraser/Eraser/SettingsPanel.Designer.cs
  • trunk/eraser/Eraser/SettingsPanel.cs
  • trunk/eraser/Eraser/SettingsPanel.it.resx
  • trunk/eraser/Eraser/SettingsPanel.nl.resx
  • trunk/eraser/Eraser/SettingsPanel.resx
  • trunk/eraser/Eraser/Strings.en.resx
  • trunk/eraser/Eraser/Strings.it.resx
  • trunk/eraser/Eraser/Strings.nl.resx
  • trunk/eraser/Eraser/Strings.pl.resx
  • trunk/eraser/Eraser/Strings.resx
  • trunk/eraser/Eraser/TaskDataSelectionForm.cs

Replace all references to "Unused disk space" with "Drives" since we have generalised erasures for any drives now. Unused disk space is therefore a subset of the Drive erasure.

07:05 Build of Eraser 6.2 [2608] on Windows completed
01:00 Ticket #420 (will not run upon install) closed by trac-robot
This ticket was closed automatically by the system. It was previously set …
00:54 Changeset [2608] by lowjoel
  • trunk/eraser/Eraser.Manager/Schedule.cs
  • trunk/eraser/Eraser/SchedulerPanel.cs

Use ToString?() instead of the clumsy UIText property.

00:45 Changeset [2607] by lowjoel
  • branches/eraser6/XmlTaskLists

Close the branch: I've merged to trunk in r2606.

00:44 Changeset [2606] by lowjoel
  • trunk/eraser
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileErasureTarget.cs
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTarget.cs
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs
  • trunk/eraser/Eraser.Manager/DirectExecutor.cs
  • trunk/eraser/Eraser.Manager/ErasureTargetCollection.cs
  • trunk/eraser/Eraser.Manager/Executor.cs
  • trunk/eraser/Eraser.Manager/Schedule.cs
  • trunk/eraser/Eraser.Manager/Task.cs
  • trunk/eraser/Eraser.Plugins/ExtensionPoints/IErasureTarget.cs
  • trunk/eraser/Eraser.Plugins/ITask.cs
  • trunk/eraser/Eraser.Util/Logger.cs
  • trunk/eraser/Eraser/LogForm.cs
  • trunk/eraser/Eraser/MainForm.cs
  • trunk/eraser/Eraser/Program.cs
  • trunk/eraser/Eraser/SchedulerPanel.cs
  • trunk/eraser/Installer/DirectoryStructure.wxs

Merged the XML Task Lists branch back to trunk. Implements #362: Use XML to store task lists

00:39 Ticket #426 (Include a list of drives on the computer when generating BlackBox reports) created by Joel
Include the geometry and list of drives on the user's computer, similar to …
00:38 Ticket #425 (Program a Web Interface for the BlackBox component) created by Joel
- Allow developers to mark reports as read - One-click scripts which …
00:25 Ticket #424 (Reset File times with values from the last 3 months) created by Joel
Instead of setting dates to Jan 1 1600, set it to sometime in the last 3 …
00:20 Ticket #423 (Update About Dialog) created by Joel
We're using new libraries in Eraser 6.2, we need to credit them in the …

3/30/2012:

14:50 Changeset [2605] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Util/Logger.cs

Fixed infinite recursion.

14:50 Changeset [2604] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Manager/DirectExecutor.cs
  • branches/eraser6/XmlTaskLists/Eraser.Manager/Executor.cs
  • branches/eraser6/XmlTaskLists/Eraser/Program.cs

When saving our task list, used the separated log/task list saving functions instead. Fall back to the aggregated format when we are serializing for other purposes.

14:48 Changeset [2603] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser/LogForm.cs

Allow us to view logs for Lazy-loading log sinks.

11:16 Changeset [2602] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Manager/Task.cs
  • branches/eraser6/XmlTaskLists/Eraser.Util/Logger.cs
  • branches/eraser6/XmlTaskLists/Eraser/LogForm.cs

Make the LogSink? a base class (LogSinkBase?) and implement a normal LogSink? (API compatible with the old LogSink?) and a new LazyLogSink? class which will load a log from disk as required.
As a result of this change, Task will have two WriteXml? functions: The default will continue to generate the same code; the new overload will place references to logs if the logs are larger than a certain threshold. This is to optimize the task list for size when loading/unloading.

09:52 Changeset [2601] by lowjoel
  • branches/eraser6/XmlTaskLists/Installer/DirectoryStructure.wxs

We will make ersy file associations now, in accordance to the change in file format.

09:51 Changeset [2600] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Manager/DirectExecutor.cs

Make our root element TaskList?.

09:44 Changeset [2599] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Manager/Task.cs

Future-proof the format in case we got new types of schedules. In those situations, we will assume the user means a Manual schedule.

09:39 Changeset [2598] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs

Implement a different ReadXml? overload that allows derived classes to instruct base classes whether to advance the XML Reader pointer forward. This allows us to read attributes of the same element.
Also fixed the ordering of saving targets to disk.

09:15 Changeset [2597] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Manager/Task.cs

Implemented XML Serialization of Task objects.

09:14 Changeset [2596] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.Manager/Schedule.cs

*Properly* follow the contract specified in IXmlSerializable.ReadXml?: the reader is placed at the start of our element, and our ReadXml? implementation must read the entire element to the end of the element before returning.

08:56 Changeset [2595] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs

Follow the contract specified in IXmlSerializable.ReadXml?: the reader is placed one before the start of our element, and our ReadXml? implementation must read the entire element to the end of the element.

08:55 Changeset [2594] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Manager/Schedule.cs
  • branches/eraser6/XmlTaskLists/Eraser.Util/Logger.cs

Follow the contract specified in IXmlSerializable.ReadXml?: the reader is placed one before the start of our element, and our ReadXml? implementation must read the entire element to the end of the element.
Also, use the O format when storing DateTime? values in the XML file. It has greater precision than the normal ToString?() call.

08:16 Changeset [2593] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Util/Logger.cs

Allow log entries to be serialized to XML too.

08:04 Changeset [2592] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Manager/Schedule.cs

Implemented XML Serialization for the Schedule types.

07:52 Changesets [2590-2591] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser/MainForm.cs
  • branches/eraser6/XmlTaskLists/Eraser/SchedulerPanel.cs
  • branches/eraser6/XmlTaskLists/Eraser/MainForm.cs
  • branches/eraser6/XmlTaskLists/Eraser/Program.cs

Since we've changed our task list format to a different one, we need to change the file extension for differentiation.

07:51 Changeset [2589] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Manager/DirectExecutor.cs

Save and load XML Task Lists instead for better compatibility between versions.

07:50 Changeset [2588] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Manager/ErasureTargetCollection.cs

Let ErasureTargetCollection? support reading/writing to XML streams.

07:46 Changeset [2587] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FileErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs

XmlSerializer? can only deal with public types.

07:05 Build of Eraser 6.2 [2581] on Windows completed
06:30 Changeset [2586] by EraserSlave
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs

Compile fix.

06:12 Changeset [2585] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FileErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.Plugins/ExtensionPoints/IErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.Plugins/ITask.cs

Partially reverted r2583-r2584: We should not remove the normal binary serialization code, since RemoteExecutor? still depends on it.

05:52 Changeset [2584] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FileErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs

Switch the Default Plugin's erasure targets to follow the new IXmlSerializable interface.

04:26 Changeset [2583] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Plugins/ExtensionPoints/IErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.Plugins/ITask.cs

First change: Remove references to the System.Runtime.Serialization namespace and make all the serializable types serialize to XML.

03:43 Changeset [2582] by lowjoel
  • branches/eraser6/XmlTaskLists

Start the XML Task Lists branch

03:23 Changeset [2581] by lowjoel
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTargetConfigurer.cs

Fixed Context Menu Secure Move handling bug reported in http://eraser.heidi.ie/forum/viewtopic.php?f=36&t=8705

3/23/2012:

11:36 Ticket #422 (Properly detect SSDs and warn when erasing them) created by Joel
The IOCTL_STORAGE_QUERY_PROPERTY control code may be of use.

3/22/2012:

20:56 TestingBuilds edited by DavidHB
(diff)
20:45 TestingBuilds edited by DavidHB
(diff)
18:05 Build of Eraser 6.2 [2580] on Windows completed
07:00 Changeset [2580] by lowjoel
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs

Handle PlatformNotSupportedException? when trying our list of hash algorithms for compatibility with XP (precisely the reason for our list!)

06:47 Changeset [2579] by lowjoel
  • trunk/eraser/Eraser/Program.cs

Handle situations where the provided window handle is already a top-level window or the desktop handle.

06:46 Changeset [2578] by lowjoel
  • trunk/eraser/Eraser.Util/NativeMethods/User.cs
  • trunk/eraser/Eraser.Util/UserApi.cs
  • trunk/eraser/Eraser/Program.cs

Improve support for context menu erasures' confirmation dialog: the code will now set the owner window for the dialog to be a top-level window, for better minimise/maximise behaviour.

06:10 Build of Eraser 6 [2576] on Windows completed
06:05 Build of Eraser 6.2 [2577] on Windows completed
05:13 Ticket #376 (Context Menu - Add as schedule) closed by Joel
fixed: Eraser 6.2 currently lets you edit tasks before erasure, so tasks may not …
05:06 Ticket #421 (Eraser 6.1.2532 leaves jobs erased from context in schedule screen) closed by Joel
fixed: This has been fixed in a later build, please upgrade.
04:16 Ticket #421 (Eraser 6.1.2532 leaves jobs erased from context in schedule screen) created by phkhgh
In Vista hm prem x64, bld 2532 creates & leaves the erased file / folder …
04:01 Ticket #389 (Can not leave "Custom Erasure Method Editor") closed by Joel
fixed
04:01 Changeset [2577] by lowjoel
  • trunk/eraser
  • trunk/eraser/Eraser.DefaultPlugins/CustomMethodEditorForm.Designer.cs
  • trunk/eraser/Eraser.DefaultPlugins/CustomMethodEditorForm.resx

Forward-port r2576 Eraser 6.0: Do not validate the form when the user clicks on the Cancel button.

Fixes #389.

03:58 Changeset [2576] by lowjoel
  • branches/eraser6/6.0/Eraser.DefaultPlugins/CustomMethodEditorForm.Designer.cs
  • branches/eraser6/6.0/Eraser.DefaultPlugins/CustomMethodEditorForm.resx

Do not validate the form when the user clicks on the Cancel button.

Fixes #389.

03:51 Ticket #407 (Task List Erasure method reseted to default) closed by Joel
fixed: Fixed in r2575 for Eraser 6.0, and confirmed that Eraser 6.2 is not …
03:48 Changeset [2575] by lowjoel
  • branches/eraser6/6.0/Eraser.Manager/Task.cs

Specify that we have a specific method defined when we load the task from the stream. This is so that user-specified erasure methods persist across Eraser sessions.

Fixes #407.

03:36 Changeset [2574] by lowjoel
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs

Don't run the GetSecondaryHashAlgorithm? function again if we've already tried once.

03:35 Ticket #406 (Not able to acquire a Cryptographic Service Provider on startup) closed by Joel
fixed: r2569-r2571 added some performance improvements, …
03:31 Changeset [2573] by lowjoel
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs

Our entropy polling thread should have the lowest thread priority to reduce overhead when other tasks are running.

03:29 Changeset [2572] by lowjoel
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs
  • trunk/eraser/Eraser.Manager/Strings.en.resx
  • trunk/eraser/Eraser.Manager/Strings.it.resx
  • trunk/eraser/Eraser.Manager/Strings.nl.resx
  • trunk/eraser/Eraser.Manager/Strings.pl.resx
  • trunk/eraser/Eraser.Manager/Strings.resx

Added a priority list for the primary and secondary hash algorithms. Favour the Crypto Next Gen APIs first, since they have higher speed on Vista+, fallback to the CryptoAPI implementations if they can't be created, and finally use the Managed implementations if the above two fail.

Should close #406.

02:58 Changeset [2571] by lowjoel
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs

Use our MemoryXor? function to invert the pool, instead of writing another loop. Performance for this code is about 10% faster than the unsafe loop, on average, on x64.

01:38 Changeset [2570] by lowjoel
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs

Wrong order of arguments, so the wrong array was XORed in place.

01:21 Changeset [2569] by lowjoel
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs
  • Rewrote the MemoryXor? function to follow the API specification for Buffer.BlockCopy? for consistency.
  • Use ulong as the Xor word since tests showed that the ulong versions work almost twice as fast as the uint versions (even when running a 32-bit binary)
  • Rewrote the AddEntropy? function to use the new MemoryXor? API.

3/21/2012:

18:11 Build of Eraser 6 [2565] on Windows completed
18:05 Build of Eraser 6.2 [2568] on Windows completed
14:09 TestingBuilds created by Joel
Create page.
14:09 WikiStart edited by Joel
Add link to new wiki article on testing Eraser (diff)
11:49 Changeset [2568] by lowjoel
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs

Use shorthand for easier understanding.

11:31 Changeset [2567] by lowjoel
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs
  • trunk/eraser/Eraser.Manager/ManagerLibrary.cs
  • Fixed entropy poller registration: The plugins rewrite broke entropy source and entropy poller integration.
  • Rewrote the MixPool? routine to use max/min instead of repeated ternary operators for clarity.
  • Fixed the circular buffer which is the pool: the previous code always wrote new entropy to the start of the pool.
  • Every time the entropy pool wraps, mix the pool so that previous entropy is not wasted.
10:26 Changeset [2566] by lowjoel
  • trunk/eraser
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs

Merged revisions 2563 and 2565 from Eraser 6.0:

  • Remove the unused PRFAlgorithms enum.
  • Removed the capability for switchable algorithms at runtime, and changed the default pool mixing function to SHA-1 since under FIPS compliance mode on Windows XP the SHA-2 family of hashes are not available. RIPEMD-160 is likewise not available. As such, under FIPS compliance mode, we will only use SHA-1, even on later OSes, and make primer mixing with RIPEMD-160 unavailable.
  • The sleep time between polls is now variable between 2 and 5 seconds. The previous one tended to pick the same amounts of time since it would effectively make one loop double the time it took to gather entropy from all entropy sources.
  • Only push entropy to the PRNGs every 10 minutes

Addresses #406

09:40 Changeset [2565] by lowjoel
  • branches/eraser6/6.0/Eraser.Manager/EntropySource.cs

Supplements r2563: Remove the unused PRFAlgorithms enum.

09:21 Changeset [2564] by lowjoel
  • branches/eraser6/6.0/Eraser.Util/AdvApi.cs

Use null as the parameters for the Container and Provider parameters instead of the empty string, since that is what MSDN documentation says we should specify if we want defaults. In addition, specify CRYPT_VERIFYCONTEXT for accounts which do not have a persistent key container (e.g. Guest accounts).

Addresses #406: Not able to acquire a Cryptographic Service Provider on startup

06:10 Build of Eraser 6 [2563] on Windows completed
06:05 Build of Eraser 6.2 [2561] on Windows completed
03:40 Changeset [2563] by lowjoel
  • branches/eraser6/6.0/Eraser.Manager/EntropySource.cs

Behavioural change: Removed the capability for switchable algorithms at runtime, and changed the default pool mixing function to SHA-1 since under FIPS compliance mode on Windows XP the SHA-2 family of hashes are not available. RIPEMD-160 is likewise not available. As such, under FIPS compliance mode, we will only use SHA-1, even on later OSes, and make primer mixing with RIPEMD-160 unavailable.

Addresses #406. Eraser 6.2 will require a different fix; which would be to use proper fallback mechanisms (with the using the Crypto Next Gen APIs, which are said to be 10% faster)

02:15 Changeset [2562] by EraserSlave
  • branches/eraser6/6.0
  • branches/eraser6/6.0/Eraser.DefaultPlugins/FileSystems/Windows.cs
  • branches/eraser6/6.0/Eraser.Manager/DirectExecutor.cs
  • branches/eraser6/6.0/Eraser.Util/VolumeInfo.cs

Backport from Eraser trunk: Better reparse point handling for Eraser 6.0 (https://eraser.heidi.ie/forum/viewtopic.php?f=2&t=8684&p=25969#p25966)
r2561: Part 2 fix for https://eraser.heidi.ie/forum/viewtopic.php?f=2&t=8684&p=25969#p25966 since erasing the actual reparse point would cause Eraser to crash if the reparse point references an invalid target.
r2560: Supplements r2549: Resolve reparse points only for as long as the reparse point we are referring to exists; otherwise fall back to volume name resolution.
r2559: We should only check for FileSystemInfos? in the directory being erased if the directory is not a symbolic link. Otherwise, the check is meaningless.
r2558: When we are setting file times for reparse points, we should fall back to setting the file times for the reparse point itself if we cannot set it on the target of the reparse point (such as if the reparse point points to an invalid object.)

01:46 Changeset [2561] by lowjoel
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs

Part 2 fix for https://eraser.heidi.ie/forum/viewtopic.php?f=2&t=8684&p=25969#p25966 since erasing the actual reparse point would cause Eraser to crash if the reparse point references an invalid target.

01:45 Changeset [2560] by lowjoel
  • trunk/eraser/Eraser.Util/VolumeInfo.cs

Supplements r2549: Resolve reparse points only for as long as the reparse point we are referring to exists; otherwise fall back to volume name resolution.

01:36 Changeset [2559] by lowjoel
  • trunk/eraser/Eraser.DefaultPlugins/FileSystems/Windows.cs

We should only check for FileSystemInfos? in the directory being erased if the directory is not a symbolic link. Otherwise, the check is meaningless.

01:01 Changeset [2558] by lowjoel
  • trunk/eraser/Eraser.Util/ExtensionMethods/IO.cs
  • trunk/eraser/Eraser.Util/Strings.en.resx
  • trunk/eraser/Eraser.Util/Strings.it.resx
  • trunk/eraser/Eraser.Util/Strings.nl.resx
  • trunk/eraser/Eraser.Util/Strings.pl.resx
  • trunk/eraser/Eraser.Util/Strings.resx

When we are setting file times for reparse points, we should fall back to setting the file times for the reparse point itself if we cannot set it on the target of the reparse point (such as if the reparse point points to an invalid object.)

Fixes the first bug in https://eraser.heidi.ie/forum/viewtopic.php?f=2&t=8684&p=25969#p25966 when erasing a folder containing reparse points.

3/20/2012:

06:10 Build of Eraser 6 [2554] on Windows completed
06:05 Build of Eraser 6.2 [2557] on Windows completed
01:46 Changeset [2557] by lowjoel
  • trunk/eraser/Eraser/ShellConfirmationDialog.Designer.cs
  • trunk/eraser/Eraser/ShellConfirmationDialog.resx

Do not display the shell confirmation dialog with TopMost? set to true, since that would prevent child dialogs from being displayed properly.

01:40 Changeset [2556] by lowjoel
  • trunk/eraser/Eraser.Manager/ErasureTargetCollection.cs

Fixed exception when the Erasure Target owner is assigned the same value as what we currently have. The operation should be idempotent.

01:37 Changeset [2555] by lowjoel
  • trunk/eraser
  • trunk/eraser/Eraser.Util/ExtensionMethods/PathUtil.cs
  • trunk/eraser/Eraser.Util/Strings.en.resx
  • trunk/eraser/Eraser.Util/Strings.it.resx
  • trunk/eraser/Eraser.Util/Strings.nl.resx
  • trunk/eraser/Eraser.Util/Strings.pl.resx
  • trunk/eraser/Eraser.Util/Strings.resx
  • trunk/eraser/Eraser.Util/VolumeInfo.cs

Forward-port from Eraser 6.0: Supplements r2551: Support direct volume reparse points, similar to what would occur before the code change.

01:34 Changeset [2554] by lowjoel
  • branches/eraser6/6.0/Eraser.Util/NTApi.cs
  • branches/eraser6/6.0/Eraser.Util/VolumeInfo.cs

Supplements r2550: Support direct volume reparse points, similar to what would occur before the code change.

01:10 Changeset [2553] by lowjoel
  • trunk/eraser/Eraser/SchedulerPanel.cs

Fixed exception when a timer tick event is raised after the completion of the task, but not before the TaskFinished? event is processed.

00:42 Changeset [2552] by lowjoel
  • trunk/website/scripts/updates/index.php

PHP warning fix for non-standard requests.

3/19/2012:

12:10 Build of Eraser 6 [2550] on Windows completed
12:05 Build of Eraser 6.2 [2551] on Windows completed
08:31 Changeset [2551] by lowjoel
  • trunk/eraser
  • trunk/eraser/Eraser.Util/ExtensionMethods/PathUtil.cs
  • trunk/eraser/Eraser.Util/NativeMethods/Kernel.cs

Forward-port from Eraser 6.0: When we are dereferencing a reparse point, we only need FILE_READ_ATTRIBUTES | FILE_READ_EA access. Do not request GENERIC_READ access since for reduced permissions links (e.g. the junctions in the Vista+ User Profile folder) those permissions are not granted at the directory level (soi even administrators can't have those rights!)

Fixes #412.

08:26 Changeset [2550] by lowjoel
  • branches/eraser6/6.0/Eraser.Util/KernelApi.cs
  • branches/eraser6/6.0/Eraser.Util/NTApi.cs

When we are dereferencing a reparse point, we only need FILE_READ_ATTRIBUTES | FILE_READ_EA access. Do not request GENERIC_READ access since for reduced permissions links (e.g. the junctions in the Vista+ User Profile folder) those permissions are not granted at the directory level (soi even administrators can't have those rights!)

Fixes #412.

08:06 Changeset [2549] by lowjoel
  • trunk/eraser/Eraser.Util/ExtensionMethods/PathUtil.cs
  • trunk/eraser/Eraser.Util/NativeMethods/Kernel.cs
  • trunk/eraser/Eraser.Util/VolumeInfo.cs

Forward-port from Eraser 6.0: We need to recursively dereference all reparse points before we call GetVolumeNameForVolumeMountPoint?. This prevents a situation where we we get an invalid parameter error from GetVolumeNameForVolumeMountPoint? when we hand it a reparse point but it is not a volume reparse point.

Fixes bug in https://eraser.heidi.ie/forum/viewtopic.php?f=2&t=8684.

07:53 Changeset [2548] by lowjoel
  • trunk/eraser/Eraser.DefaultPlugins/Strings.en.resx
  • trunk/eraser/Eraser.DefaultPlugins/Strings.it.resx
  • trunk/eraser/Eraser.DefaultPlugins/Strings.nl.resx
  • trunk/eraser/Eraser.DefaultPlugins/Strings.pl.resx
  • trunk/eraser/Eraser.DefaultPlugins/Strings.resx

New strings.

07:51 Changeset [2547] by lowjoel
  • branches/eraser6/6.0/Eraser.Util/NTApi.cs
  • branches/eraser6/6.0/Eraser.Util/VolumeInfo.cs

We need to recursively dereference all reparse points before we call GetVolumeNameForVolumeMountPoint?. This prevents a situation where we we get an invalid parameter error from GetVolumeNameForVolumeMountPoint? when we hand it a reparse point but it is not a volume reparse point.

Fixes bug in https://eraser.heidi.ie/forum/viewtopic.php?f=2&t=8684.

02:36 Changeset [2546] by lowjoel
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTargetConfigurer.cs

If the user does not specify that he wants to delete the folder if it is empty, we should assume he wants to (this is a more reasonable default)

02:27 Changeset [2545] by lowjoel
  • trunk/eraser/Dependencies/CommonLibrary.XML
  • trunk/eraser/Dependencies/CommonLibrary.dll
  • trunk/eraser/Dependencies/CommonLibrary.pdb
  • trunk/eraser/Eraser/Program.cs

Experimental fix for allowing context menu erasures to require confirmation again.

02:10 Changeset [2544] by lowjoel
  • trunk/eraser/Eraser.Util/Shell.cs

Fixed a FileNotFound? exception when we are given a GUID we do not have registered in the Shell namespace.

02:09 Changeset [2543] by lowjoel
  • trunk/eraser/Eraser.Manager/DirectExecutor.cs
  • trunk/eraser/Eraser.Manager/Task.cs

Tasks were not being cleared from the task list upon successful completion because they were reset to Manually executed tasks before returning to the Executor. This scheduling ability should be dealt with in the Executor and not the Task. Therefore, the Task Completion event will still have the schedule of the initial configuration, and not after the schedule has been reset to Manual. This allows context menu tasks which completed successfully to be cleared automatically.

Fixes bug in https://eraser.heidi.ie/forum/viewtopic.php?f=36&p=25922#p25922.

01:55 Changeset [2542] by lowjoel
  • trunk/eraser/UpdateVersions.bat

Fixed syntax error with the batch script.

3/17/2012:

13:07 Build of Eraser 6.2 [2541] on Windows completed
12:55 Changeset [2541] by lowjoel
  • trunk/eraser/UpdateVersions.bat

Handle no-TortoiseSVN situations differently from SubWCRev returning an error.

12:09 Build of Eraser 6 [2540] on Windows completed
03:05 Changeset [2540] by lowjoel
  • branches/eraser6/6.0
  • branches/eraser6/6.0/Eraser/SchedulerPanel.cs

Backport from trunk: Fix a misnomer: when Eraser is running, and a new task is added, it is possible that the task was added remotely (e.g. via shell context menu) and if the schedule is Run Now, the task could already be running when we receive the event. In those situations, do not reset the task status to Queued for Execution (which we do for new tasks)

03:01 Changeset [2539] by lowjoel
  • trunk/eraser/Eraser/SchedulerPanel.cs

Fix a misnomer: when Eraser is running, and a new task is added, it is possible that the task was added remotely (e.g. via shell context menu) and if the schedule is Run Now, the task could already be running when we receive the event. In those situations, do not reset the task status to Queued for Execution (which we do for new tasks)

02:50 Changeset [2538] by lowjoel
  • trunk/eraser/Eraser/Program.GuiProgram.cs
  • trunk/eraser/Eraser/Program.cs

Move the call to Application.EnableVisualStyles? to the start of the program so that if a console window creates a WinForm?, it would have the correct behaviour.
Fixing this bug also fixes the drawing problems associated with the display of the shell erase confirmation dialog.

02:36 Changeset [2537] by lowjoel
  • trunk/eraser/Eraser/ShellConfirmationDialog.resx

Fixed font override in the Shell confirmation dialog.

02:12 Changeset [2536] by lowjoel
  • trunk/eraser/Eraser.BlackBox/BlackBox.cs
  • Recursively delete a directory if report creation failed so we don't raise another exception while handling one
  • Handle InvalidOperationExceptions? when churning out the report: some processes may have exited since we enumerated it
  • Fixed grabbing screenshots of screens where the primary desktop is not at (0,0)
02:08 Changeset [2535] by lowjoel
  • trunk/eraser/Eraser/Program.cs
  • We should re-throw the exception if we get one while processing the command line. This would trigger BlackBox?, if it was initialised.
  • When we process the command line, when checking against a null string, we should use String.IsNullOrEmpty?.
01:29 Changeset [2534] by lowjoel
  • trunk/eraser/Eraser/Settings.cs

Removed debug code.

3/16/2012:

12:45 Build of Eraser 6.2 [2533] on Windows completed
01:46 Ticket #420 (will not run upon install) created by genethomas@…
Just installed ERASER and set tasks to run manual and auto. When I tell ot …
00:52 Changeset [2533] by lowjoel
  • trunk/eraser/Dependencies/CommonLibrary.XML
  • trunk/eraser/Dependencies/CommonLibrary.dll
  • trunk/eraser/Dependencies/CommonLibrary.pdb
  • trunk/eraser/Eraser/Program.cs

Updated to CommonLibrary?.NET 0.9.7

00:10 Changesets [2896-2897] by lowjoel

    Updated to CommonLinbary?.NET 0.9.7.

    00:05 Build of Eraser 6.2 [2532] on Windows completed
    00:04 Changeset [2895] by lowjoel

      Ignore VS generated files.

      00:03 Changeset [2894] by lowjoel

        Updated to CommonLibrary?.NET 0.9.7

        3/15/2012:

        23:10 Changeset [2532] by lowjoel
        • trunk/eraser/Version.cs.in

        Version bump because we changed the underlying types behind the task list. This would force a FileLoadException?, which we can handle.

        13:50 Build of Eraser 6 [2529] on Windows completed
        13:10 Build of Eraser 6.2 [2531] on Windows completed
        02:00 Changeset [2531] by lowjoel
        • trunk/eraser/Eraser.Shell/CtxMenu.cpp

        Remove debug code.

        01:59 Changeset [2530] by lowjoel
        • trunk/eraser/Eraser.Shell/CtxMenu.cpp

        Fixed parameter ordering; Eraser's context menu erasures will now prompt to confirm before executing and not require elevation to run.

        01:33 Ticket #419 (Allow users to erase all users' recycle bins if they have the needed ...) created by Joel
        Currently, all erasures only affect the current user's recycle bin. Allow …
        01:29 Changeset [2529] by lowjoel
        • branches/eraser6/6.0
        • branches/eraser6/6.0/Eraser.Manager/Task.cs

        Backport r2527 and r2522 from trunk: Improve recycle bin support: on drives not using NTFS, Windows stores recycle bin files directly within the $Recycle.Bin folder. On those drives, we would have to erase the global recycle bin for that drive.

        00:58 Changeset [2528] by lowjoel
        • trunk/eraser/Eraser.sln

        Clean up the project dependencies.

        00:53 Changeset [2527] by lowjoel
        • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTarget.cs

        Properly implement the recycle bin erasure: do not delete the contents of the special folder, just the recycle bin folder within it!

        00:51 Changeset [2526] by lowjoel
        • trunk/eraser/Dependencies/Microsoft.Runtime.Hosting.Interop.dll
        • trunk/eraser/Dependencies/Microsoft.Runtime.Hosting.Interop.pdb
        • trunk/eraser/Dependencies/Microsoft.Runtime.Hosting.dll
        • trunk/eraser/Dependencies/Microsoft.Runtime.Hosting.pdb
        • trunk/eraser/Eraser.Util/Eraser.Util.csproj
        • trunk/eraser/Eraser.Util/Security.cs

        StrongNameSignatureVerificationEx? has been deprecated. For .NET 4, we need to instantiate and ICLRStrongName from the current runtime and call the interface's StrongNameSignatureVerificationEx?. This code adds a dependency on a managed library by the CLR Runtime Activation Team (http://clractivation.codeplex.com), included in the distribution.

        00:49 Changeset [2525] by lowjoel
        • trunk/eraser/Dependencies/BevelLine.dll
        • trunk/eraser/Dependencies/BevelLine.pdb
        • trunk/eraser/Dependencies/CommonLibrary.dll
        • trunk/eraser/Dependencies/CommonLibrary.pdb
        • trunk/eraser/Dependencies/DragDropLib.XML
        • trunk/eraser/Dependencies/DragDropLib.dll
        • trunk/eraser/Dependencies/DragDropLib.pdb
        • trunk/eraser/Dependencies/ICSharpCode.SharpZipLib.dll
        • trunk/eraser/Dependencies/ICSharpCode.SharpZipLib.pdb
        • trunk/eraser/Dependencies/TaskDialog.dll
        • trunk/eraser/Dependencies/TaskDialog.pdb
        • trunk/eraser/Dependencies/alglibnet2.dll
        • trunk/eraser/Dependencies/alglibnet2.pdb
        • trunk/eraser/Eraser.Util/NativeMethods/MsCorEE.cs
        • trunk/eraser/Installer/DirectoryStructure.wxs

        Rebuild all dependencies with .NET 4.0, so that we can run Eraser on a computer without .NET 3.5.

        00:40 Changeset [2893] by lowjoel

          Modified build script: use *build.bat csc /o "/keyfile:..\Strong Name.snk" /debug:pdbonly*

          00:38 Changeset [2892] by lowjoel

            Built ALGLIB 3.4.0 with my Strong Name.

            00:26 Changeset [2891] by lowjoel

              ALGLIB 3.4.0

              00:21 Changeset [2890] by lowjoel

                Imported ALGLIB 3.4.0

                00:06 Build of Eraser 6.2 [2524] on Windows completed

                3/14/2012:

                23:17 Changeset [2524] by lowjoel
                • trunk/eraser/Installer/DirectoryStructure.wxs

                Include the Eraser.Plugins assembly with the installation for plugins to work.

                12:06 Build of Eraser 6.2 [2523] on Windows completed
                11:07 Changeset [2889] by lowjoel

                  Updated to VS2010

                  11:02 Changesets [2886-2888] by lowjoel

                    Updated to VS2010.

                    10:57 Changeset [2885] by lowjoel

                      Woops, the Strong Name should have been in a different folder.

                      10:57 Changeset [2884] by lowjoel

                        Ignore the strong name key file.

                        10:56 Changeset [2883] by lowjoel

                          Upgraded the solution and project to VS2010.

                          10:08 Changeset [2882] by lowjoel

                            Fixed the build script to copy the correct files to out. _tmp is also needed for proper execution.

                            09:58 Changeset [2523] by lowjoel
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTarget.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/Shell.cs
                            • trunk/eraser/Eraser.Util/Shell.cs

                            Implement recycle bin erasures according to what Vista and 7 would detect as part of the Recycle Bin. This would erase recycle bins which are on UNC paths and mounted drives without a drive letter. Tested and works with Windows 7 and Windows XP SP3.

                            08:35 Changeset [2522] by lowjoel
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTarget.cs

                            Improve recycle bin support: on drives not using NTFS, Windows stores recycle bin files directly within the $Recycle.Bin folder. On those drives, we would have to erase the global recycle bin for that drive.

                            08:07 Changeset [2521] by lowjoel
                            • trunk/eraser/Eraser/SettingsPanel.cs

                            Just some reorganisation of the code ordering to have settings of the same type saved together.

                            07:57 Changeset [2520] by lowjoel
                            • trunk/eraser/Eraser/Eraser.csproj

                            Fix warnings in the project system.

                            07:56 Changeset [2519] by lowjoel
                            • trunk/eraser/Eraser/TaskPropertiesForm.cs

                            Display the erasure targets when opening a task for editing.

                            07:35 Changeset [2518] by lowjoel
                            • trunk/eraser/Eraser.BlackBox/Properties/AssemblyInfo.cs
                            • trunk/eraser/Eraser.DefaultPlugins/Properties/AssemblyInfo.cs
                            • trunk/eraser/Eraser.Manager/Properties/AssemblyInfo.cs
                            • trunk/eraser/Eraser.Plugins/PersistentStore.cs
                            • trunk/eraser/Eraser.Plugins/Properties/AssemblyInfo.cs
                            • trunk/eraser/Eraser.Plugins/Registrars/EntropySourceRegistrar.cs
                            • trunk/eraser/Eraser.Plugins/Registrars/ErasureMethodRegistrar.cs
                            • trunk/eraser/Eraser.Plugins/Registrars/ErasureTargetFactoryRegistrar.cs
                            • trunk/eraser/Eraser.Plugins/Registrars/FileSystemRegistrar.cs
                            • trunk/eraser/Eraser.Plugins/Registrars/PrngRegistrar.cs
                            • trunk/eraser/Eraser.Shell/Eraser.Shell.rc
                            • trunk/eraser/Eraser.Util.Native/AssemblyInfo.cpp
                            • trunk/eraser/Eraser.Util.Native/Eraser.Util.Native.rc
                            • trunk/eraser/Eraser.Util/Properties/AssemblyInfo.cs
                            • trunk/eraser/Eraser/AboutForm.cs
                            • trunk/eraser/Eraser/Program.cs
                            • trunk/eraser/Eraser/Properties/AssemblyInfo.cs
                            • trunk/eraser/Eraser/Strings.en.resx
                            • trunk/eraser/Eraser/Strings.it.resx
                            • trunk/eraser/Eraser/Strings.nl.resx
                            • trunk/eraser/Eraser/Strings.pl.resx
                            • trunk/eraser/Eraser/Strings.resx
                            • trunk/eraser/Installer/Bootstrapper/Bootstrapper.rc

                            Update copyrights to this year.

                            07:27 Changeset [2517] by lowjoel
                            • trunk/eraser/Eraser.DefaultPlugins/CustomMethodEditorForm.cs
                            • trunk/eraser/Eraser.DefaultPlugins/CustomMethodPassEditor.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/SettingsForm.cs

                            All types in Eraser.DefaultPlugins? can be internal since no one is supposed to be referencing that assembly.

                            07:21 Changeset [2516] by lowjoel
                            • trunk/eraser/Eraser.BlackBox/BlackBox.cs
                            • trunk/eraser/Eraser.BlackBox/BlackBoxMainForm.Designer.cs
                            • trunk/eraser/Eraser.BlackBox/BlackBoxMainForm.cs
                            • trunk/eraser/Eraser.BlackBox/BlackBoxUploadForm.Designer.cs
                            • trunk/eraser/Eraser.BlackBox/BlackBoxUploadForm.cs
                            • trunk/eraser/Eraser.BlackBox/Plugin.cs
                            • trunk/eraser/Eraser.DefaultPlugins/CustomMethodEditorForm.Designer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/CustomMethodEditorForm.cs
                            • trunk/eraser/Eraser.DefaultPlugins/CustomMethodPassEditor.Designer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/CustomMethodPassEditor.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/Custom.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/DoD.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/GOSTP50739.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/Gutmann.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/HMGIS5.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/RCMP_TSSIT_OPS_II.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/Random.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/Schneier.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/USAF5020.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/USArmyAR380_19.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/VSITR.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTargetConfigurer.Designer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileErasureTargetConfigurer.Designer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTargetConfigurer.Designer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTargetConfigurer.Designer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTargetConfigurer.Designer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/FileSystems/Fat.cs
                            • trunk/eraser/Eraser.DefaultPlugins/FileSystems/Ntfs.cs
                            • trunk/eraser/Eraser.DefaultPlugins/FileSystems/Windows.cs
                            • trunk/eraser/Eraser.DefaultPlugins/Plugin.cs
                            • trunk/eraser/Eraser.DefaultPlugins/Prngs/RNGCrypto.cs
                            • trunk/eraser/Eraser.DefaultPlugins/SettingsForm.Designer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/SettingsForm.cs
                            • trunk/eraser/Eraser.Manager/DirectExecutor.cs
                            • trunk/eraser/Eraser.Manager/EntropyPoller.cs
                            • trunk/eraser/Eraser.Manager/ErasureTargetCollection.cs
                            • trunk/eraser/Eraser.Manager/Executor.cs
                            • trunk/eraser/Eraser.Manager/ManagerLibrary.cs
                            • trunk/eraser/Eraser.Manager/RemoteExecutor.cs
                            • trunk/eraser/Eraser.Manager/Schedule.cs
                            • trunk/eraser/Eraser.Manager/Settings.cs
                            • trunk/eraser/Eraser.Manager/Task.cs
                            • trunk/eraser/Eraser.Plugins/AssemblyInfo.cs
                            • trunk/eraser/Eraser.Plugins/ExtensionPoints/IEntropySource.cs
                            • trunk/eraser/Eraser.Plugins/ExtensionPoints/IErasureMethod.cs
                            • trunk/eraser/Eraser.Plugins/ExtensionPoints/IErasureTarget.cs
                            • trunk/eraser/Eraser.Plugins/ExtensionPoints/IFileSystem.cs
                            • trunk/eraser/Eraser.Plugins/ExtensionPoints/IPrng.cs
                            • trunk/eraser/Eraser.Plugins/Host.cs
                            • trunk/eraser/Eraser.Plugins/IConfigurer.cs
                            • trunk/eraser/Eraser.Plugins/IPlugin.cs
                            • trunk/eraser/Eraser.Plugins/IRegistrar.cs
                            • trunk/eraser/Eraser.Plugins/PluginInfo.cs
                            • trunk/eraser/Eraser.Plugins/PluginLoadEventArgs.cs
                            • trunk/eraser/Eraser.Plugins/PluginLoadedEventArgs.cs
                            • trunk/eraser/Eraser.Plugins/PluginLoadingPolicy.cs
                            • trunk/eraser/Eraser.Plugins/ProgressManager.cs
                            • trunk/eraser/Eraser.Plugins/Properties/AssemblyInfo.cs
                            • trunk/eraser/Eraser.Plugins/Version.cs.in
                            • trunk/eraser/Eraser.Shell/CtxMenu.cpp
                            • trunk/eraser/Eraser.Shell/CtxMenu.h
                            • trunk/eraser/Eraser.Shell/DllMain.cpp
                            • trunk/eraser/Eraser.Shell/DllMain.h
                            • trunk/eraser/Eraser.Shell/DllMain.idl
                            • trunk/eraser/Eraser.Shell/Eraser.Shell.rc
                            • trunk/eraser/Eraser.Shell/Utils.cpp
                            • trunk/eraser/Eraser.Shell/Utils.h
                            • trunk/eraser/Eraser.Shell/stdafx.cpp
                            • trunk/eraser/Eraser.Shell/stdafx.h
                            • trunk/eraser/Eraser.Shell/targetver.h
                            • trunk/eraser/Eraser.Util.Native/AssemblyInfo.cpp
                            • trunk/eraser/Eraser.Util.Native/Eraser.Util.Native.rc
                            • trunk/eraser/Eraser.Util.Native/Fat.h
                            • trunk/eraser/Eraser.Util.Native/Fat12Api.cpp
                            • trunk/eraser/Eraser.Util.Native/Fat12Or16Api.cpp
                            • trunk/eraser/Eraser.Util.Native/Fat16Api.cpp
                            • trunk/eraser/Eraser.Util.Native/Fat32Api.cpp
                            • trunk/eraser/Eraser.Util.Native/FatApi.cpp
                            • trunk/eraser/Eraser.Util.Native/FatApi.h
                            • trunk/eraser/Eraser.Util.Native/Main.cpp
                            • trunk/eraser/Eraser.Util.Native/NTApi.h
                            • trunk/eraser/Eraser.Util.Native/OpenHandle.NameResolver.cpp
                            • trunk/eraser/Eraser.Util.Native/OpenHandle.NameResolver.h
                            • trunk/eraser/Eraser.Util.Native/OpenHandle.cpp
                            • trunk/eraser/Eraser.Util.Native/OpenHandle.h
                            • trunk/eraser/Eraser.Util.Native/Stdafx.cpp
                            • trunk/eraser/Eraser.Util.Native/Stdafx.h
                            • trunk/eraser/Eraser.Util/ConsoleWindow.cs
                            • trunk/eraser/Eraser.Util/ExtensionClasses/SharingViolationException.cs
                            • trunk/eraser/Eraser.Util/ExtensionClasses/SplitButton.cs
                            • trunk/eraser/Eraser.Util/ExtensionMethods/Assembly.cs
                            • trunk/eraser/Eraser.Util/ExtensionMethods/IO.cs
                            • trunk/eraser/Eraser.Util/ExtensionMethods/PathUtil.cs
                            • trunk/eraser/Eraser.Util/FileSize.cs
                            • trunk/eraser/Eraser.Util/Localisation.cs
                            • trunk/eraser/Eraser.Util/Logger.cs
                            • trunk/eraser/Eraser.Util/MiniDump.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/DbgHelp.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/Gdi.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/Kernel.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/Mpr.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/MsCorEE.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/NetApi.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/NtDll.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/Sfc.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/Shell.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/User.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/UxTheme.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/WinTrust.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/WinUser.cs
                            • trunk/eraser/Eraser.Util/NetApi.cs
                            • trunk/eraser/Eraser.Util/NtfsApi.cs
                            • trunk/eraser/Eraser.Util/PhysicalDriveInfo.cs
                            • trunk/eraser/Eraser.Util/PostDataBuilder.cs
                            • trunk/eraser/Eraser.Util/Power.cs
                            • trunk/eraser/Eraser.Util/RecycleBin.cs
                            • trunk/eraser/Eraser.Util/Sampler.cs
                            • trunk/eraser/Eraser.Util/Security.cs
                            • trunk/eraser/Eraser.Util/Shell.cs
                            • trunk/eraser/Eraser.Util/StreamInfo.cs
                            • trunk/eraser/Eraser.Util/SystemInfo.cs
                            • trunk/eraser/Eraser.Util/SystemRestore.cs
                            • trunk/eraser/Eraser.Util/Theming.cs
                            • trunk/eraser/Eraser.Util/UserApi.cs
                            • trunk/eraser/Eraser.Util/VolumeInfo.cs
                            • trunk/eraser/Eraser.Util/Win32ErrorCodes.cs
                            • trunk/eraser/Eraser/AboutForm.Designer.cs
                            • trunk/eraser/Eraser/AboutForm.cs
                            • trunk/eraser/Eraser/BasePanel.Designer.cs
                            • trunk/eraser/Eraser/BasePanel.cs
                            • trunk/eraser/Eraser/LightGroup.Designer.cs
                            • trunk/eraser/Eraser/LightGroup.cs
                            • trunk/eraser/Eraser/LogForm.Designer.cs
                            • trunk/eraser/Eraser/LogForm.cs
                            • trunk/eraser/Eraser/MainForm.Designer.cs
                            • trunk/eraser/Eraser/MainForm.cs
                            • trunk/eraser/Eraser/Program.ConsoleProgram.cs
                            • trunk/eraser/Eraser/Program.GuiProgram.cs
                            • trunk/eraser/Eraser/Program.cs
                            • trunk/eraser/Eraser/ProgressForm.Designer.cs
                            • trunk/eraser/Eraser/ProgressForm.cs
                            • trunk/eraser/Eraser/SchedulerPanel.Designer.cs
                            • trunk/eraser/Eraser/SchedulerPanel.cs
                            • trunk/eraser/Eraser/Settings.cs
                            • trunk/eraser/Eraser/SettingsPanel.Designer.cs
                            • trunk/eraser/Eraser/SettingsPanel.cs
                            • trunk/eraser/Eraser/TaskDataSelectionForm.Designer.cs
                            • trunk/eraser/Eraser/TaskDataSelectionForm.cs
                            • trunk/eraser/Eraser/TaskDragDropHelper.cs
                            • trunk/eraser/Eraser/TaskPropertiesForm.Designer.cs
                            • trunk/eraser/Eraser/TaskPropertiesForm.cs
                            • trunk/eraser/Eraser/ToolBar.Designer.cs
                            • trunk/eraser/Eraser/ToolBar.cs
                            • trunk/eraser/Eraser/UpdateForm.Designer.cs
                            • trunk/eraser/Eraser/UpdateForm.cs
                            • trunk/eraser/Installer/Bootstrapper/Bootstrapper.cpp
                            • trunk/eraser/Installer/Bootstrapper/Bootstrapper.h
                            • trunk/eraser/Installer/Bootstrapper/Bootstrapper.rc
                            • trunk/eraser/Installer/Bootstrapper/Handle.h
                            • trunk/eraser/Installer/Bootstrapper/Main.cpp
                            • trunk/eraser/Installer/Bootstrapper/Resource.h
                            • trunk/eraser/Installer/Bootstrapper/stdafx.cpp
                            • trunk/eraser/Installer/Bootstrapper/stdafx.h
                            • trunk/eraser/Installer/DirectoryStructure.wxs
                            • trunk/eraser/Installer/Eraser.wxs
                            • trunk/eraser/Installer/Localisations.wxs
                            • trunk/eraser/Installer/UserInterface.wxs
                            • trunk/eraser/Version.cs.in
                            • trunk/eraser/Version.rc.in
                            • trunk/eraser/Version.wxs.in

                            Update copyrights to this year.

                            07:10 Changeset [2515] by lowjoel
                            • trunk/eraser/Eraser.BlackBox/AssemblyInfo.cs
                            • trunk/eraser/Eraser.BlackBox/BlackBox.cs
                            • trunk/eraser/Eraser.BlackBox/BlackBoxMainForm.Designer.cs
                            • trunk/eraser/Eraser.BlackBox/BlackBoxMainForm.cs
                            • trunk/eraser/Eraser.BlackBox/BlackBoxUploadForm.Designer.cs
                            • trunk/eraser/Eraser.BlackBox/BlackBoxUploadForm.cs
                            • trunk/eraser/Eraser.BlackBox/Plugin.cs
                            • trunk/eraser/Eraser.BlackBox/Properties/AssemblyInfo.cs
                            • trunk/eraser/Eraser.BlackBox/Properties/Resources.Designer.cs
                            • trunk/eraser/Eraser.BlackBox/Properties/Settings.Designer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/CustomMethodEditorForm.Designer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/CustomMethodEditorForm.cs
                            • trunk/eraser/Eraser.DefaultPlugins/CustomMethodPassEditor.Designer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/CustomMethodPassEditor.cs
                            • trunk/eraser/Eraser.DefaultPlugins/EntropySources/KernelEntropySource.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/Custom.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/DoD.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/ErasureMethodBase.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/GOSTP50739.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/Gutmann.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/HMGIS5.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/RCMP_TSSIT_OPS_II.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/Random.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/Schneier.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/USAF5020.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/USArmyAR380_19.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/VSITR.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTargetConfigurer.Designer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileErasureTargetConfigurer.Designer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTargetConfigurer.Designer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTargetConfigurer.Designer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTargetConfigurer.Designer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/FileSystems/Fat.cs
                            • trunk/eraser/Eraser.DefaultPlugins/FileSystems/FileSystemBase.cs
                            • trunk/eraser/Eraser.DefaultPlugins/FileSystems/Ntfs.cs
                            • trunk/eraser/Eraser.DefaultPlugins/FileSystems/Windows.cs
                            • trunk/eraser/Eraser.DefaultPlugins/Plugin.cs
                            • trunk/eraser/Eraser.DefaultPlugins/Prngs/PrngBase.cs
                            • trunk/eraser/Eraser.DefaultPlugins/Prngs/RNGCrypto.cs
                            • trunk/eraser/Eraser.DefaultPlugins/Properties/AssemblyInfo.cs
                            • trunk/eraser/Eraser.DefaultPlugins/SettingsForm.Designer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/SettingsForm.cs
                            • trunk/eraser/Eraser.Manager/DirectExecutor.cs
                            • trunk/eraser/Eraser.Manager/EntropyPoller.cs
                            • trunk/eraser/Eraser.Manager/ErasureTargetCollection.cs
                            • trunk/eraser/Eraser.Manager/Executor.cs
                            • trunk/eraser/Eraser.Manager/ManagerLibrary.cs
                            • trunk/eraser/Eraser.Manager/Properties/AssemblyInfo.cs
                            • trunk/eraser/Eraser.Manager/RemoteExecutor.cs
                            • trunk/eraser/Eraser.Manager/Schedule.cs
                            • trunk/eraser/Eraser.Manager/Settings.cs
                            • trunk/eraser/Eraser.Manager/Task.cs
                            • trunk/eraser/Eraser.Plugins/AssemblyInfo.cs
                            • trunk/eraser/Eraser.Plugins/Exception.cs
                            • trunk/eraser/Eraser.Plugins/ExtensionPoints/IEntropySource.cs
                            • trunk/eraser/Eraser.Plugins/ExtensionPoints/IErasureMethod.cs
                            • trunk/eraser/Eraser.Plugins/ExtensionPoints/IErasureTarget.cs
                            • trunk/eraser/Eraser.Plugins/ExtensionPoints/IFileSystem.cs
                            • trunk/eraser/Eraser.Plugins/ExtensionPoints/IPrng.cs
                            • trunk/eraser/Eraser.Plugins/Host.cs
                            • trunk/eraser/Eraser.Plugins/IConfigurer.cs
                            • trunk/eraser/Eraser.Plugins/IPlugin.cs
                            • trunk/eraser/Eraser.Plugins/IRegistrar.cs
                            • trunk/eraser/Eraser.Plugins/PersistentStore.cs
                            • trunk/eraser/Eraser.Plugins/PluginInfo.cs
                            • trunk/eraser/Eraser.Plugins/PluginLoadEventArgs.cs
                            • trunk/eraser/Eraser.Plugins/PluginLoadedEventArgs.cs
                            • trunk/eraser/Eraser.Plugins/PluginLoadingPolicy.cs
                            • trunk/eraser/Eraser.Plugins/ProgressManager.cs
                            • trunk/eraser/Eraser.Plugins/Properties/AssemblyInfo.cs
                            • trunk/eraser/Eraser.Plugins/Registrars/EntropySourceRegistrar.cs
                            • trunk/eraser/Eraser.Plugins/Registrars/ErasureMethodRegistrar.cs
                            • trunk/eraser/Eraser.Plugins/Registrars/ErasureTargetFactoryRegistrar.cs
                            • trunk/eraser/Eraser.Plugins/Registrars/FileSystemRegistrar.cs
                            • trunk/eraser/Eraser.Plugins/Registrars/PrngRegistrar.cs
                            • trunk/eraser/Eraser.Shell/CtxMenu.cpp
                            • trunk/eraser/Eraser.Shell/CtxMenu.h
                            • trunk/eraser/Eraser.Shell/DllMain.cpp
                            • trunk/eraser/Eraser.Shell/DllMain.h
                            • trunk/eraser/Eraser.Shell/Utils.cpp
                            • trunk/eraser/Eraser.Shell/Utils.h
                            • trunk/eraser/Eraser.Shell/resource.h
                            • trunk/eraser/Eraser.Shell/stdafx.cpp
                            • trunk/eraser/Eraser.Shell/stdafx.h
                            • trunk/eraser/Eraser.Shell/targetver.h
                            • trunk/eraser/Eraser.Util.Native/AssemblyInfo.cpp
                            • trunk/eraser/Eraser.Util.Native/Fat.h
                            • trunk/eraser/Eraser.Util.Native/Fat12Api.cpp
                            • trunk/eraser/Eraser.Util.Native/Fat12Or16Api.cpp
                            • trunk/eraser/Eraser.Util.Native/Fat16Api.cpp
                            • trunk/eraser/Eraser.Util.Native/Fat32Api.cpp
                            • trunk/eraser/Eraser.Util.Native/FatApi.cpp
                            • trunk/eraser/Eraser.Util.Native/FatApi.h
                            • trunk/eraser/Eraser.Util.Native/Main.cpp
                            • trunk/eraser/Eraser.Util.Native/NTApi.h
                            • trunk/eraser/Eraser.Util.Native/OpenHandle.NameResolver.cpp
                            • trunk/eraser/Eraser.Util.Native/OpenHandle.NameResolver.h
                            • trunk/eraser/Eraser.Util.Native/OpenHandle.cpp
                            • trunk/eraser/Eraser.Util.Native/OpenHandle.h
                            • trunk/eraser/Eraser.Util.Native/Stdafx.cpp
                            • trunk/eraser/Eraser.Util.Native/Stdafx.h
                            • trunk/eraser/Eraser.Util/Binders.cs
                            • trunk/eraser/Eraser.Util/ConsoleWindow.cs
                            • trunk/eraser/Eraser.Util/ExtensionClasses/SharingViolationException.cs
                            • trunk/eraser/Eraser.Util/ExtensionClasses/SplitButton.cs
                            • trunk/eraser/Eraser.Util/ExtensionMethods/Assembly.cs
                            • trunk/eraser/Eraser.Util/ExtensionMethods/IO.cs
                            • trunk/eraser/Eraser.Util/ExtensionMethods/PathUtil.cs
                            • trunk/eraser/Eraser.Util/FileSize.cs
                            • trunk/eraser/Eraser.Util/Localisation.cs
                            • trunk/eraser/Eraser.Util/Logger.cs
                            • trunk/eraser/Eraser.Util/MiniDump.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/DbgHelp.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/Gdi.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/Kernel.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/Mpr.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/MsCorEE.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/NetApi.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/NtDll.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/Sfc.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/Shell.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/User.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/UxTheme.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/WinTrust.cs
                            • trunk/eraser/Eraser.Util/NativeMethods/WinUser.cs
                            • trunk/eraser/Eraser.Util/NetApi.cs
                            • trunk/eraser/Eraser.Util/NtfsApi.cs
                            • trunk/eraser/Eraser.Util/PhysicalDriveInfo.cs
                            • trunk/eraser/Eraser.Util/PostDataBuilder.cs
                            • trunk/eraser/Eraser.Util/Power.cs
                            • trunk/eraser/Eraser.Util/Properties/AssemblyInfo.cs
                            • trunk/eraser/Eraser.Util/RecycleBin.cs
                            • trunk/eraser/Eraser.Util/Sampler.cs
                            • trunk/eraser/Eraser.Util/Security.cs
                            • trunk/eraser/Eraser.Util/Shell.cs
                            • trunk/eraser/Eraser.Util/StreamInfo.cs
                            • trunk/eraser/Eraser.Util/SystemInfo.cs
                            • trunk/eraser/Eraser.Util/SystemRestore.cs
                            • trunk/eraser/Eraser.Util/Theming.cs
                            • trunk/eraser/Eraser.Util/UserApi.cs
                            • trunk/eraser/Eraser.Util/VolumeInfo.cs
                            • trunk/eraser/Eraser.Util/Win32ErrorCodes.cs
                            • trunk/eraser/Eraser/AboutForm.Designer.cs
                            • trunk/eraser/Eraser/AboutForm.cs
                            • trunk/eraser/Eraser/BasePanel.Designer.cs
                            • trunk/eraser/Eraser/BasePanel.cs
                            • trunk/eraser/Eraser/LightGroup.Designer.cs
                            • trunk/eraser/Eraser/LightGroup.cs
                            • trunk/eraser/Eraser/LogForm.Designer.cs
                            • trunk/eraser/Eraser/LogForm.cs
                            • trunk/eraser/Eraser/MainForm.Designer.cs
                            • trunk/eraser/Eraser/MainForm.cs
                            • trunk/eraser/Eraser/Program.ConsoleProgram.cs
                            • trunk/eraser/Eraser/Program.GuiProgram.cs
                            • trunk/eraser/Eraser/Program.cs
                            • trunk/eraser/Eraser/ProgressForm.Designer.cs
                            • trunk/eraser/Eraser/ProgressForm.cs
                            • trunk/eraser/Eraser/Properties/AssemblyInfo.cs
                            • trunk/eraser/Eraser/Properties/Resources.Designer.cs
                            • trunk/eraser/Eraser/Properties/Settings.Designer.cs
                            • trunk/eraser/Eraser/SchedulerPanel.Designer.cs
                            • trunk/eraser/Eraser/SchedulerPanel.cs
                            • trunk/eraser/Eraser/Settings.cs
                            • trunk/eraser/Eraser/SettingsPanel.Designer.cs
                            • trunk/eraser/Eraser/SettingsPanel.cs
                            • trunk/eraser/Eraser/ShellConfirmationDialog.Designer.cs
                            • trunk/eraser/Eraser/ShellConfirmationDialog.cs
                            • trunk/eraser/Eraser/TaskDataSelectionForm.Designer.cs
                            • trunk/eraser/Eraser/TaskDataSelectionForm.cs
                            • trunk/eraser/Eraser/TaskDragDropHelper.cs
                            • trunk/eraser/Eraser/TaskPropertiesForm.Designer.cs
                            • trunk/eraser/Eraser/TaskPropertiesForm.cs
                            • trunk/eraser/Eraser/ToolBar.Designer.cs
                            • trunk/eraser/Eraser/ToolBar.cs
                            • trunk/eraser/Eraser/UpdateForm.Designer.cs
                            • trunk/eraser/Eraser/UpdateForm.cs
                            • trunk/eraser/Installer/Bootstrapper/Bootstrapper.cpp
                            • trunk/eraser/Installer/Bootstrapper/Bootstrapper.h
                            • trunk/eraser/Installer/Bootstrapper/Handle.h
                            • trunk/eraser/Installer/Bootstrapper/Main.cpp
                            • trunk/eraser/Installer/Bootstrapper/Resource.h
                            • trunk/eraser/Installer/Bootstrapper/stdafx.cpp
                            • trunk/eraser/Installer/Bootstrapper/stdafx.h

                            Set svn:keywords and svn:eol-style on all the source files.

                            06:57 Changeset [2514] by lowjoel
                            • trunk/eraser/Eraser Native.vsprops
                            • trunk/eraser/Eraser.DefaultPlugins/Eraser.DefaultPlugins.csproj
                            • trunk/eraser/Eraser.Manager/Eraser.Manager.csproj
                            • trunk/eraser/Eraser.Util/Eraser.Util.csproj
                            • trunk/eraser/Eraser.Util/Migrated rules for Eraser.Util.ruleset
                            • trunk/eraser/Eraser.sln
                            • trunk/eraser/Eraser/Eraser.csproj

                            Normalise .NET project settings across platforms and projects. It probably got muddled up when migrating to VS2010.

                            06:50 Changeset [2513] by lowjoel
                            • trunk/eraser/Eraser.Plugins/Settings.cs

                            Remove misleading comment.

                            06:49 Changeset [2512] by lowjoel
                            • trunk/eraser/Eraser.Util/Strings.en.resx
                            • trunk/eraser/Eraser.Util/Strings.it.resx
                            • trunk/eraser/Eraser.Util/Strings.nl.resx
                            • trunk/eraser/Eraser.Util/Strings.pl.resx
                            • trunk/eraser/Eraser.Util/Strings.resx

                            Use an updated build of csgettext.

                            06:08 Changeset [2511] by lowjoel
                            • trunk/eraser/Eraser.DefaultPlugins/Strings.en.resx
                            • trunk/eraser/Eraser.DefaultPlugins/Strings.it.resx
                            • trunk/eraser/Eraser.DefaultPlugins/Strings.nl.resx
                            • trunk/eraser/Eraser.DefaultPlugins/Strings.pl.resx
                            • trunk/eraser/Eraser.DefaultPlugins/Strings.resx
                            • trunk/eraser/Eraser.Manager/Strings.en.resx
                            • trunk/eraser/Eraser.Manager/Strings.it.resx
                            • trunk/eraser/Eraser.Manager/Strings.nl.resx
                            • trunk/eraser/Eraser.Manager/Strings.pl.resx
                            • trunk/eraser/Eraser.Manager/Strings.resx
                            • trunk/eraser/Eraser.Plugins/Strings.en.resx
                            • trunk/eraser/Eraser/MainForm.it.resx
                            • trunk/eraser/Eraser/MainForm.nl.resx
                            • trunk/eraser/Eraser/MainForm.pl.resx
                            • trunk/eraser/Eraser/MainForm.resx
                            • trunk/eraser/Eraser/Strings.en.resx
                            • trunk/eraser/Eraser/Strings.it.resx
                            • trunk/eraser/Eraser/Strings.nl.resx
                            • trunk/eraser/Eraser/Strings.pl.resx
                            • trunk/eraser/Eraser/Strings.resx

                            Update the string resources for all the projects.

                            05:49 Ticket #363 (Plugin Code Review) closed by Joel
                            fixed: Commited in r2509. Branch deleted in r2510.
                            05:47 Changeset [2510] by lowjoel
                            • branches/eraser6/pluginsRewrite

                            Close the Plugins Rewrite branch along with the completion of #363.

                            05:45 Changeset [2509] by lowjoel
                            • trunk/eraser
                            • trunk/eraser/Eraser.BlackBox/BlackBox.cs
                            • trunk/eraser/Eraser.BlackBox/BlackBoxUploadForm.cs
                            • trunk/eraser/Eraser.BlackBox/Eraser.BlackBox.csproj
                            • trunk/eraser/Eraser.BlackBox/Plugin.cs
                            • trunk/eraser/Eraser.BlackBox/Properties/AssemblyInfo.cs
                            • trunk/eraser/Eraser.DefaultPlugins/CustomMethodEditorForm.cs
                            • trunk/eraser/Eraser.DefaultPlugins/EntropySources/KernelEntropySource.cs
                            • trunk/eraser/Eraser.DefaultPlugins/Eraser.DefaultPlugins.csproj
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/Custom.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/DoD.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/ErasureMethodBase.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/GOSTP50739.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/Gutmann.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/HMGIS5.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/RCMP_TSSIT_OPS_II.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/Random.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/Schneier.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/USAF5020.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/USArmyAR380_19.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/VSITR.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs
                            • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTargetConfigurer.cs
                            • trunk/eraser/Eraser.DefaultPlugins/FileSystems/Fat.cs
                            • trunk/eraser/Eraser.DefaultPlugins/FileSystems/FileSystemBase.cs
                            • trunk/eraser/Eraser.DefaultPlugins/FileSystems/Ntfs.cs
                            • trunk/eraser/Eraser.DefaultPlugins/FileSystems/Windows.cs
                            • trunk/eraser/Eraser.DefaultPlugins/Plugin.cs
                            • trunk/eraser/Eraser.DefaultPlugins/Prngs
                            • trunk/eraser/Eraser.DefaultPlugins/Properties/AssemblyInfo.cs
                            • trunk/eraser/Eraser.DefaultPlugins/RNGCrypto.cs
                            • trunk/eraser/Eraser.DefaultPlugins/SettingsForm.cs
                            • trunk/eraser/Eraser.Manager/DirectExecutor.cs
                            • trunk/eraser/Eraser.Manager/EntropyPoller.cs
                            • trunk/eraser/Eraser.Manager/EntropySource.cs
                            • trunk/eraser/Eraser.Manager/Eraser.Manager.csproj
                            • trunk/eraser/Eraser.Manager/ErasureMethod.cs
                            • trunk/eraser/Eraser.Manager/ErasureTarget.cs
                            • trunk/eraser/Eraser.Manager/ErasureTargetCollection.cs
                            • trunk/eraser/Eraser.Manager/Exception.cs
                            • trunk/eraser/Eraser.Manager/FileSystem.cs
                            • trunk/eraser/Eraser.Manager/IConfigurer.cs
                            • trunk/eraser/Eraser.Manager/IRegistrar.cs
                            • trunk/eraser/Eraser.Manager/ManagerLibrary.cs
                            • trunk/eraser/Eraser.Manager/PRNG.cs
                            • trunk/eraser/Eraser.Manager/Plugins.cs
                            • trunk/eraser/Eraser.Manager/Settings.cs
                            • trunk/eraser/Eraser.Manager/Task.cs
                            • trunk/eraser/Eraser.Plugins
                            • trunk/eraser/Eraser.Shell/CtxMenu.cpp
                            • trunk/eraser/Eraser.Shell/CtxMenu.h
                            • trunk/eraser/Eraser.Util/Eraser.Util.csproj
                            • trunk/eraser/Eraser.Util/ProgressManager.cs
                            • trunk/eraser/Eraser.sln
                            • trunk/eraser/Eraser/Eraser.csproj
                            • trunk/eraser/Eraser/LogForm.cs
                            • trunk/eraser/Eraser/MainForm.Designer.cs
                            • trunk/eraser/Eraser/MainForm.cs
                            • trunk/eraser/Eraser/Program.cs
                            • trunk/eraser/Eraser/ProgressForm.Designer.cs
                            • trunk/eraser/Eraser/ProgressForm.cs
                            • trunk/eraser/Eraser/ProgressForm.resx
                            • trunk/eraser/Eraser/SchedulerPanel.Designer.cs
                            • trunk/eraser/Eraser/SchedulerPanel.cs
                            • trunk/eraser/Eraser/SchedulerPanel.resx
                            • trunk/eraser/Eraser/Settings.cs
                            • trunk/eraser/Eraser/SettingsPanel.cs
                            • trunk/eraser/Eraser/TaskDataSelectionForm.cs
                            • trunk/eraser/Eraser/TaskDragDropHelper.cs
                            • trunk/eraser/Eraser/TaskPropertiesForm.cs
                            • trunk/eraser/Eraser/UpdateForm.cs

                            Redesign the Eraser Plugin framework.

                            • Split the plugin-dependent interfaces and related support classes out to Eraser.Plugins assembly
                              • The extension interfaces are in the Eraser.Plugins.ExtensionPoints? namespace.
                                • New IClientTool interface for plugins to create Eraser-hosted tools (e.g. #147)
                              • The Registrars are in the Eraser.Plugins.Registrars namespace
                              • Base types are now interfaces, no longer abstract base classes
                              • Version the Eraser.plugins assembly differently from the rest of the project so that other plugins can target different versions of Eraser with the same assembly. Change the Eraser.Plugins assembly version only if there is an API change.
                            • Plugin loading behaviour:
                              • Core plugins will be loaded before the rest of the plugins, but they will be loaded only by assembly name and not by path
                              • Non-core plugin loading is handled by the Manager Library and not the Plugin code
                              • The PluginInstance? class is now the PluginInfo? class
                              • There is no longer a need to indicate the default file and unused space erasure methods, PRNGs etc; they are now hardcoded to prevent plugins from changing defaults.
                            • The separate command line for the Eraser shell extension has been removed.
                              • The Erase on Restart menu item has been removed (since it is a scheduling option and should be set in the Task Properties Dialog)
                            • Task Progress information is now pulled from the Eraser core instead of pushed via events.
                            • New persistent store class to generalise the use of the old Settings class
                            • IDragAndDropConfigurerFactory for transforming drag-and-drop operations to erasure targets. This removes the Eraser.exe assembly's dependency on Eraser.DefaultPlugins?.

                            Closes #363.

                            05:02 Changeset [2508] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FileErasureTargetConfigurer.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTargetConfigurer.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTargetConfigurer.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/IConfigurer.cs
                            • branches/eraser6/pluginsRewrite/Eraser/TaskDragDropHelper.cs

                            Rename IDragAndDropConfigurer to IDragAndDropConfigurerFactory since it does not configure a given <T>, but instead transforms a drag-and-drop operation into a collection of <T>.

                            04:32 Changeset [2507] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser/ProgressForm.cs

                            Fixed blank item text when the step provides a step name, but the step's progress tag does not (meaning there is general information, but not specific information). In this situation, displaying the general information would suffice.

                            04:14 Changeset [2506] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Eraser.Plugins.csproj
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/ExtensionPoints/IClientTool.cs
                            • branches/eraser6/pluginsRewrite/Eraser/MainForm.cs

                            Query for the list of tools before deciding whether we should disable the Tools menu. Implements #363: There should be a Tools menu for plugins to include themselves.

                            04:10 Changeset [2505] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/ExtensionPoints/IClientTool.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Host.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Registrars/ClientToolRegistrar.cs

                            Added the IClientTool interface and ClientToolRegistrar? classes for client tools to register themselves.

                            04:08 Changeset [2504] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser/MainForm.Designer.cs
                            • branches/eraser6/pluginsRewrite/Eraser/MainForm.resx

                            Added a tools Context Menu Strip for us to add tools to.

                            03:59 Changeset [2503] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser/Eraser.csproj
                            • branches/eraser6/pluginsRewrite/Eraser/MainForm.Designer.cs
                            • branches/eraser6/pluginsRewrite/Eraser/MainForm.it.resx
                            • branches/eraser6/pluginsRewrite/Eraser/MainForm.nl.resx
                            • branches/eraser6/pluginsRewrite/Eraser/MainForm.pl.resx
                            • branches/eraser6/pluginsRewrite/Eraser/MainForm.resx

                            Added a Tools menu for plugins to insert tools in.

                            03:41 Changeset [2502] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Eraser.Plugins.csproj
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Version.cs.in

                            Freeze the version of the Eraser.Plugins assembly.

                            03:31 Changeset [2501] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/ProgressManager.cs

                            Allow SteppedProgressManager? steps to have null for their progress manager, such as when the step is being set up.

                            03:30 Changeset [2500] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs

                            Fixed progress reporting for drive erasures.

                            01:56 Changeset [2499] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Task.cs

                            Oops, allow removal of tasks.

                            01:53 Changeset [2498] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs

                            We need to skip files which no longer exist after we enumerate them: this is because files may be deleted during the rather lengthy enumeration process (by other programs or the user)

                            01:53 Changeset [2497] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Task.cs

                            Cache the last returned progress for each erasure target, since our SteppedProgressManager? expects that the Progress property will always be valid throughout the lifetime of the object.

                            01:27 Changeset [2496] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser/ProgressForm.cs
                            • Get a copy of the Task Progress property at the start of progress querying and use that throughout the function, in case the progress status changes during the execution of the function (e.g. the task completes while we are querying the function)
                            • Prevent a crash when there is no pass information/item information set for the current erasure target's step
                            01:20 Changeset [2495] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser/ProgressForm.cs

                            Fixed exception when the progress dialog is left open and the task completes while the dialog is open.

                            01:19 Changeset [2494] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/ProgressManager.cs

                            Fixed exception when we are computing a time remaining value but insufficient speed information is provided.

                            01:01 Changeset [2493] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser/ProgressForm.cs

                            Make our progress form's progress reporting tolerant to different states of the Task object: do not obtain more progress information if we cannot find the prerequisite information in the first place.

                            00:59 Changeset [2492] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/ErasureTargetCollection.cs

                            Revert to the old behaviour where assigning an ErasureTargetCollection? its owner will update the owner of all targets contained within.

                            00:59 Changeset [2491] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Task.cs

                            Behaviour change: Tasks can only be added to one executor at a time.

                            00:58 Changeset [2490] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser/SchedulerPanel.cs

                            Fixed progress updates for the Scheduler Panel.

                            00:36 Changeset [2489] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.en.resx
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.it.resx
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.nl.resx
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.pl.resx
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.resx

                            The tag used for the number of passes should be an array of int.

                            00:35 Changeset [2488] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Task.cs
                            • branches/eraser6/pluginsRewrite/Eraser/ProgressForm.Designer.cs
                            • branches/eraser6/pluginsRewrite/Eraser/ProgressForm.cs
                            • branches/eraser6/pluginsRewrite/Eraser/ProgressForm.resx
                            • branches/eraser6/pluginsRewrite/Eraser/SchedulerPanel.Designer.cs
                            • branches/eraser6/pluginsRewrite/Eraser/SchedulerPanel.cs
                            • branches/eraser6/pluginsRewrite/Eraser/SchedulerPanel.resx

                            Change the progress updates to be a pull paradigm and not a push paradigm: this reduces the amount of time the CPU spends sending progress feedback, at the same time, allows future extensibility for decoupling the task executor from the front end.

                            3/13/2012:

                            23:37 Changeset [2487] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/DirectExecutor.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Task.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/ProgressManager.cs
                            • Move the task execution machinery to the Task object, so that Tasks can execute independently of an Executor. The Executor instance now just manages task lists and schedules when tasks are supposed to run.
                            • Report progress updates by pushing information to the SteppedProgressManager? instance associated with each erasure target. Furthermore, do not manipulate the state of the Task object, instead, let the Task object manage its own Progress state.
                            23:06 Changeset [2486] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/ExtensionPoints/IErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/ProgressManager.cs

                            Report progress updates by pushing information to the SteppedProgressManager? instance associated with each erasure target. Furthermore, do not manipulate the state of the Task object, instead, let the Task object manage its own Progress state.

                            Because of this, a new property Tag is created in ProgressManagerBase?, to hold state information.

                            23:05 Changeset [2485] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Task.cs
                            • branches/eraser6/pluginsRewrite/Eraser/LogForm.cs
                            • branches/eraser6/pluginsRewrite/Eraser/MainForm.cs
                            • branches/eraser6/pluginsRewrite/Eraser/ProgressForm.cs
                            • branches/eraser6/pluginsRewrite/Eraser/SchedulerPanel.cs

                            Replace the UIText property with ToString?(). Fix the resulting compile errors, too.

                            09:45 Changeset [2484] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Task.cs
                            • Rename the Task.UIText property to Task.ToString?()
                            • Remove the progress event from Task.
                            09:30 Changeset [2483] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Settings.cs
                            • branches/eraser6/pluginsRewrite/Eraser/Program.cs
                            • branches/eraser6/pluginsRewrite/Eraser/Settings.cs

                            Make the Eraser Settings class a singleton. At the same time, implement a lot of reflection wizardry to make lists and dictionaries a REG_MULTI_SZ and a Registry Key respectively. Caveat is that when retrieving lists and dictionaries, interfaces must be provided. If discrete types are provided, the RegistrySettings? class will fall back to serialisation.

                            09:10 Changeset [2482] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/ManagerLibrary.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Host.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/PluginInfo.cs

                            Store all the Eraser settings at the root node, similar to what Eraser 6.0 does. Store plugin settings as a subkey of the Plugins key.

                            06:52 Changeset [2481] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Settings.cs
                            • branches/eraser6/pluginsRewrite/Eraser/Settings.cs

                            Made Persistently stored lists of strings use the REG_MULTI_SZ native Registry type.

                            06:28 Changeset [2480] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/PluginInfo.cs

                            Fixed the provision of persistent stores for plugins. Assemblies for which we are unsure whether it is a plugin should not have a persistent store created for them.

                            06:18 Changeset [2479] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser/TaskPropertiesForm.cs

                            Compile fix.

                            06:16 Changeset [2478] by lowjoel
                            • branches/eraser6/pluginsRewrite
                            • branches/eraser6/pluginsRewrite/Eraser.Util/ExtensionMethods/IO.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Util/ExtensionMethods/PathUtil.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Util/Localisation.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Util/NativeMethods/Kernel.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Util/VolumeInfo.cs
                            • branches/eraser6/pluginsRewrite/Eraser/TaskPropertiesForm.cs
                            • branches/eraser6/pluginsRewrite/Installer/Bootstrapper/Bootstrapper.cpp
                            • branches/eraser6/pluginsRewrite/Installer/Bootstrapper/Bootstrapper.vcproj
                            • branches/eraser6/pluginsRewrite/Installer/Bootstrapper/Bootstrapper.vcxproj
                            • branches/eraser6/pluginsRewrite/Installer/Bootstrapper/stdafx.h
                            • branches/eraser6/pluginsRewrite/Installer/DirectoryStructure.wxs

                            Synchronise the Plugins Rewrite branch with trunk@r2442

                            06:02 Changeset [2477] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser/TaskDataSelectionForm.cs

                            Fixed crash when opening the Task Data Selection form.

                            05:58 Changeset [2476] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Registrars/PrngRegistrar.cs
                            • branches/eraser6/pluginsRewrite/Eraser/SettingsPanel.cs

                            The PrngRegistrar? should not try to store the active PRNG's GUID. It should be left to the Eraser.Plugins.Settings class.

                            05:57 Changeset [2475] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/ManagerLibrary.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Host.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/PluginInfo.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Settings.cs
                            • branches/eraser6/pluginsRewrite/Eraser/Settings.cs

                            Fixed loading of settings from persistent storage (and the crash at startup)

                            05:56 Changeset [2474] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Eraser.DefaultPlugins.csproj

                            Do not copy Eraser.Plugins.dll to the Plugins directory, since it would cause circular dependencies (the assembly loading itself)

                            05:16 Changeset [2473] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser/Settings.cs

                            Make the Settings class compliant with the latest PersistentStore? API. The solution finally builds!

                            05:15 Changeset [2472] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Settings.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Settings.cs
                            • branches/eraser6/pluginsRewrite/Eraser/SettingsPanel.cs

                            Move the ForceUnlockLockedFiles? setting to Eraser.Plugins since it should be something that plugins respect and not the Eraser.Manager. We however would need a way to expose this functionality to plugins without directly providing access to Eraser.Util.Native.

                            05:11 Changeset [2471] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.en.resx
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.it.resx
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.nl.resx
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.pl.resx
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.resx
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Eraser.Manager.csproj
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Strings.en.resx
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Strings.it.resx
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Strings.nl.resx
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Strings.pl.resx
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Strings.resx
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Eraser.Plugins.csproj
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Exception.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Strings.en.resx
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Strings.it.resx
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Strings.nl.resx
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Strings.pl.resx
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Strings.resx

                            Move the Exception types to Eraser.Plugins.

                            05:08 Changeset [2470] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/FileSystems/Windows.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/DirectExecutor.cs

                            Compile fixes.

                            04:52 Ticket #418 (ObjectDisposedException when viewing the log as erase tasks execute) created by Joel
                            As detailed in [http://eraser.heidi.ie/forum/viewtopic.php?f=2&t=8661 the …
                            04:50 Changeset [2469] by lowjoel
                            • trunk/website/Templates/forumTheme/theme/images/icon_pages.gif

                            Revert to the stock pages gif since the previous commit accidentally removed the transparency channel.

                            04:44 Changeset [2468] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/ExtensionPoints/IErasureTarget.cs

                            Instead of pushing events to the client, we will update our Progress object and the client should pull progress updates instead. This prepares the code to be used by the remote executor (for service execution).

                            In the interim, there is no progress feedback for all erasures.

                            04:34 Changeset [2467] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Task.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Eraser.Plugins.csproj
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/ExtensionPoints/IErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/ITask.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/PersistentStore.cs
                            • branches/eraser6/pluginsRewrite/Eraser/Strings.en.resx
                            • branches/eraser6/pluginsRewrite/Eraser/Strings.it.resx
                            • branches/eraser6/pluginsRewrite/Eraser/Strings.nl.resx
                            • branches/eraser6/pluginsRewrite/Eraser/Strings.pl.resx
                            • branches/eraser6/pluginsRewrite/Eraser/Strings.resx

                            Define the Task interface, and then store a reference to the parent task in all IErasureTargets.

                            03:11 Changesets [2463-2466] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser/SettingsPanel.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/SettingsForm.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/CustomMethodEditorForm.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureMethods/Custom.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/FileSystems/Ntfs.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/FileSystems/Windows.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/SettingsForm.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.en.resx
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.it.resx
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.nl.resx
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.pl.resx
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.resx
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureMethods/ErasureMethodBase.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/FileSystems/FileSystemBase.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Prngs/PrngBase.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Prngs/RNGCrypto.cs

                            Further compile fixes.

                            03:07 Changeset [2462] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Settings.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Eraser.Plugins.csproj
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Host.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Settings.cs

                            Move common erasure settings to the Host instance instead of the Manager library.

                            02:38 Changeset [2461] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/EntropySources/KernelEntropySource.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Eraser.DefaultPlugins.csproj
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureMethods/ErasureMethodBase.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/FileSystems/FileSystemBase.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Prngs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Prngs/PrngBase.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Prngs/RNGCrypto.cs

                            Added base class implementations for each of the IRegisterable types.

                            02:33 Changeset [2460] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs

                            Final set of compile fixes for making the types in Eraser.Plugins interfaces before we move on.

                            02:31 Changeset [2459] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/RNGCrypto.cs

                            Woops, we do need to declare override since we are going to be inherited from a PrngBase? class (which will be committed later)

                            01:10 Changeset [2458] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/EntropySources/KernelEntropySource.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FileErasureTargetConfigurer.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/FileSystems/Fat.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/FileSystems/Ntfs.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/FileSystems/Windows.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/RNGCrypto.cs

                            More changes for Eraser.DefaultPlugins?. There are still plenty of build errors...

                            01:06 Changeset [2457] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/ExtensionPoints/IErasureMethod.cs

                            XML documentation syntax fix.

                            00:59 Changeset [2456] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/CustomMethodEditorForm.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/EntropySources/KernelEntropySource.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureMethods/Custom.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureMethods/DoD.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureMethods/RCMP_TSSIT_OPS_II.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureMethods/USAF5020.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureMethods/USArmyAR380_19.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureMethods/VSITR.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTargetConfigurer.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FileErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTargetConfigurer.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTargetConfigurer.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/FileSystems/Fat.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/FileSystems/Ntfs.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/FileSystems/Windows.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Properties/AssemblyInfo.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/RNGCrypto.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/SettingsForm.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.en.resx
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.it.resx
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.nl.resx
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.pl.resx
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Strings.resx

                            First batch of changes for Eraser.DefaultPlugins?. There are plenty of build errors in this one, but let's solve them one at a time.

                            00:26 Ticket #417 (Logging improvements) created by Joel
                            A summary thread is found …

                            3/12/2012:

                            09:51 Changeset [2455] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/Plugin.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Settings.cs

                            Move the default Erase method, Unused Space Erase method and Active PRNG back to Eraser.Manager because the GUID stored there can refer to code implemented outside of Eraser.DefaultPlugins?.

                            09:42 Changeset [2454] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser/SettingsPanel.cs

                            Fixed quite a few variable references.

                            09:15 Changeset [2453] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Shell/CtxMenu.cpp
                            • branches/eraser6/pluginsRewrite/Eraser.Shell/CtxMenu.h
                            • branches/eraser6/pluginsRewrite/Eraser/Program.cs

                            Remove the Erase On Restart context menu item since users can modify the task when they use the context menu now. In addition, change the command line generation to use the standard command line syntax instead of a special one for Context Menu erasures, so that we can reuse the CliConfigurers? defined.

                            07:47 Changesets [2451-2452] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser/SchedulerPanel.cs
                            • branches/eraser6/pluginsRewrite/Eraser/TaskPropertiesForm.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTargetConfigurer.cs
                            • branches/eraser6/pluginsRewrite/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTargetConfigurer.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/IConfigurer.cs
                            • branches/eraser6/pluginsRewrite/Eraser/TaskDragDropHelper.cs

                            Added the IDragAndDropConfigurer interface and allow target configurers to configure themselves, without knowledge of the underlying types.

                            07:02 Changesets [2449-2450] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser/Program.cs
                            • branches/eraser6/pluginsRewrite/Eraser/UpdateForm.cs
                            • branches/eraser6/pluginsRewrite/Eraser/Program.cs
                            • branches/eraser6/pluginsRewrite/Eraser/SchedulerPanel.cs
                            • branches/eraser6/pluginsRewrite/Eraser/Settings.cs
                            • branches/eraser6/pluginsRewrite/Eraser/SettingsPanel.cs
                            • branches/eraser6/pluginsRewrite/Eraser/TaskDataSelectionForm.cs
                            • branches/eraser6/pluginsRewrite/Eraser/TaskPropertiesForm.cs

                            Fixed most broken references to the Extension Point interfaces.

                            05:46 Changeset [2448] by lowjoel
                            • trunk/website/scripts/UpdateList.php

                            If we are dealing with builds, make a Build object instead of a download object for download count tracking.

                            05:32 Changeset [2447] by lowjoel
                            • trunk/website/scripts/Build.php
                            • trunk/website/scripts/Download.php

                            Revert to the original implementation for GetDisplayedLink?. We should only link to our own server when we are dealing with a build.

                            05:06 Changeset [2446] by lowjoel
                            • trunk/website/scripts/Download.php

                            When we are printing links, we should link to our download page so that we can count the number of downloads.

                            04:20 Changeset [2445] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser/Eraser.csproj
                            • branches/eraser6/pluginsRewrite/Eraser/Program.cs
                            • branches/eraser6/pluginsRewrite/Eraser/ProgressForm.cs
                            • branches/eraser6/pluginsRewrite/Eraser/SchedulerPanel.cs
                            • branches/eraser6/pluginsRewrite/Eraser/SettingsPanel.cs
                            • branches/eraser6/pluginsRewrite/Eraser/TaskDragDropHelper.cs
                            • branches/eraser6/pluginsRewrite/Eraser/UpdateForm.cs

                            Remove the dependency on Eraser.DefaultPlugins? (to try to make it completely stand alone)

                            04:06 Changeset [2444] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Registrars/EntropySourceRegistrar.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Registrars/ErasureMethodRegistrar.cs

                            Remainder of the changes made to only include interfaces in Eraser.Plugins.

                            03:53 Changeset [2443] by lowjoel
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/EntropyPoller.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Manager/Task.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Eraser.Plugins.csproj
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/ExtensionPoints/IEntropySource.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/ExtensionPoints/IErasureMethod.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/ExtensionPoints/IErasureTarget.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/ExtensionPoints/IFileSystem.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/ExtensionPoints/IPrng.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Registrars/EntropySourceRegistrar.cs
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Strings.en.resx
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Strings.it.resx
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Strings.nl.resx
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Strings.pl.resx
                            • branches/eraser6/pluginsRewrite/Eraser.Plugins/Strings.resx

                            Made all the extension points in Eraser.Plugins to be interfaces, to be true to the need for the Plugins assembly. Move all the implementation to Eraser.DefaultPlugins? (will be in a separate commit since basically the entire library needs to be rewritten.)

                            01:30 Build of Eraser 6.2 [2442] on Windows completed
                            01:01 Ticket #416 (Verify Eraser's plugin loading behaviour when CRLs cannot be verified) created by Joel
                            A forum post
                            00:53 Ticket #415 (Fall back to large block erasing if space is freed on a volume being ...) created by Joel
                            We should be able to go back to large block erasure when we are erasing …
                            Note: See TracTimeline for information about the timeline view.