Timeline


and

3/1/2010:

22:35 Changeset [1878] by lowjoel
  • branches/eraser6/6.0/Eraser.Manager/FileSystem.cs

Compilo fix.

22:32 Changeset [1877] by lowjoel
  • trunk/eraser6/Eraser.Util/Eraser.Util.csproj

Compilo: Reference Microsoft.VisualBasic? for the ComputerInfo? class

12:51 Changeset [1876] by lowjoel
  • trunk/eraser6/Eraser.Util/BlackBox.cs

Include memory information and .NET runtime version in the debug log

12:33 Changeset [1875] by lowjoel
  • trunk/eraser6/Eraser.Util/BlackBox.cs

Include the mouse cursor in the screenshot as it is useful for debugging UI bugs.

12:29 Changeset [1874] by lowjoel
  • trunk/eraser6/Eraser.Util/BlackBox.cs
  • trunk/eraser6/Eraser.Util/NativeMethods/Kernel.cs
  • trunk/eraser6/Eraser.Util/SystemInfo.cs

Add the current working directory, Operating system (including Vista/7 edition and service pack), CPU count and running processes to the debug report.

09:52 Changeset [1873] by lowjoel
  • trunk/eraser6/Eraser.Util/NtfsApi.cs
  • trunk/eraser6/Eraser.Util/VolumeInfo.cs

Don't double error-handle in VolumeInfo?: The OpenHandle? and Open functions check for a valid file handle each, which is redundant. Since OpenHandle? is supposed to be called internally from the assembly, do no error checking and assume the calling function knows what it is doing. This can be seen in NtfsApi? where an exception has been replaced with an if-statement.

09:36 Changeset [1872] by lowjoel
  • trunk/eraser6/Eraser.Manager/DirectExecutor.cs
  • trunk/eraser6/Eraser.Manager/Task.cs
  • trunk/eraser6/Eraser.Util/Eraser.Util.csproj
  • trunk/eraser6/Eraser.Util/ExtensionClasses
  • trunk/eraser6/Eraser.Util/ExtensionClasses/SharingViolationException.cs
  • trunk/eraser6/Eraser.Util/Win32ErrorCodes.cs

Define a discrete SharingViolationException? which is thrown when a file is currently in use. This makes handling such errors easier.

09:31 Changeset [2863] by lowjoel

    Call it alglib.dll instead of libalglib since C# assemblies don't really follow that convention.

    09:29 Changeset [2862] by lowjoel

      Build ALGLIB 2.3.0 using build.bat csc "/debug /o /keyfile:..\StrongName?.snk"

      09:21 Changeset [2861] by lowjoel

        Added ALGLIB.

        09:19 Changeset [2860] by lowjoel

          Rename Alglib to ALGLIB

          09:19 Changeset [2859] by lowjoel

            Import ALGLIB 2.3.0

            09:18 Changeset [2858] by lowjoel

              Import Alglib

              09:08 Ticket #327 (error when highlighting multiple files, right clicking and choosing Erase) closed by Joel
              fixed
              09:06 Ticket #328 (Error when start Eraser 6.0.6.1376) closed by Joel
              wontfix: This isn't really useful. Go try a nightly 6.0 build and see if it's …
              09:04 Ticket #281 (File is currently in use and cannot be removed) closed by Joel
              fixed: Potential fix in r1871
              09:03 Ticket #281 (File is currently in use and cannot be removed) reopened by Joel
              08:58 Changeset [1871] by lowjoel
              • trunk/eraser6/Eraser.DefaultPlugins/Strings.en.resx
              • trunk/eraser6/Eraser.DefaultPlugins/Strings.it.resx
              • trunk/eraser6/Eraser.DefaultPlugins/Strings.nl.resx
              • trunk/eraser6/Eraser.DefaultPlugins/Strings.resx

              New strings.

              08:54 Changeset [1870] by lowjoel
              • trunk/eraser6/Eraser.DefaultPlugins/FileSystems/Windows.cs

              When deleting files/folders and if we can't delete it even after the delay, force the handle closed like the DirectExecutor? would

              08:52 Changeset [1869] by lowjoel
              • trunk/eraser6/Eraser.DefaultPlugins/FileSystems/Fat.cs

              Forgot a space there.

              08:50 Changeset [1868] by lowjoel
              • trunk/eraser6/Eraser.DefaultPlugins/FileSystems/Fat.cs

              Warning fix.

              08:49 Changeset [1867] by lowjoel
              • trunk/eraser6/Eraser.Util/VolumeInfo.cs

              Compilo fix.

              06:45 Changeset [1866] by lowjoel
              • trunk/eraser6/Eraser.DefaultPlugins/FileSystems/Windows.cs

              When deleting files which do not belong to the current user an ArgumentException? is raised. Handle this situation.

              06:37 Changeset [1865] by lowjoel
              • trunk/eraser6/Eraser.DefaultPlugins/FileSystems/Fat.cs
              • trunk/eraser6/Eraser.Util/VolumeInfo.cs

              When we cannot lock volumes, throw the real cause of the exception instead of a generic IOException.

              05:58 Changeset [1864] by lowjoel
              • trunk/eraser6/Eraser.Manager/DirectExecutor.cs

              Task progress should be updated within the try-catch block since getting the length of the file may cause an IOException (e.g. file already deleted, file in use etc)

              03/01/10:

              05:54 Changeset [1863] by lowjoel
              • trunk/eraser6
              • trunk/eraser6/Eraser.DefaultPlugins/FileSystems/Windows.cs
              • trunk/eraser6/Eraser.msbuild
              • trunk/eraser6/Eraser/BlackBoxMainForm.it.resx
              • trunk/eraser6/Eraser/BlackBoxUploadForm.it.resx

              Forward port from Eraser 6.0: Set the file times inside a try-catch as if the file is locked an IOException will be thrown.

              05:50 Changeset [1862] by lowjoel
              • trunk/eraser6
              • trunk/eraser6/Eraser.Manager/FileSystem.cs
              • trunk/eraser6/Eraser.msbuild
              • trunk/eraser6/Eraser/BlackBoxMainForm.it.resx
              • trunk/eraser6/Eraser/BlackBoxUploadForm.it.resx

              Forward-port from Eraser 6.0: Generate names which are valid, not any of those reserved file names (e.g. con, prn, nul)

              05:48 Changeset [1861] by lowjoel
              • branches/eraser6/6.0/Eraser.DefaultPlugins/FileSystems/Windows.cs

              Set the file times inside a try-catch as if the file is locked an IOException will be thrown.

              05:46 Changeset [1860] by lowjoel
              • branches/eraser6/6.0/Eraser.Manager/FileSystem.cs

              Generate names which are valid, not any of those reserved file names (e.g. con, prn, nul)

              02:57 Changeset [1859] by lowjoel
              • trunk/eraser6/Eraser.DefaultPlugins/FileSystems/Ntfs.cs
              • trunk/eraser6/Eraser.Util/NativeMethods/Kernel.cs
              • trunk/eraser6/Eraser.Util/NtfsApi.cs

              For NTFS MFT Record lengths we need volume (data) read access so instead catch unauthorized access exceptions (i.e. when running under a split user token in 7) and return using the heuristic of one of volume cluster size and 1024 bytes, whichever is smaller

              02/27/10:

              11:10 Ticket #328 (Error when start Eraser 6.0.6.1376) created by Gmax
              After the installation of Eraser 6.0.6.1376 on my notebook with the O.S. …

              02/23/10:

              09:00 Ticket #322 (Eraser 6.0.6.1743 - First Last 16KB threshhold addressed in change 1745 is ...) closed by trac-robot
              This ticket was closed automatically by the system. It was previously set …
              09:00 Ticket #296 (Task Property Window - Add tab to view logs) closed by trac-robot
              This ticket was closed automatically by the system. It was previously set …

              02/22/10:

              14:00 Changeset [1858] by aramacciotti
              • trunk/eraser6/Eraser/UpdateForm.Designer.cs
              • trunk/eraser6/Eraser/UpdateForm.it.resx
              • trunk/eraser6/Eraser/UpdateForm.resx

              Italian translation of hidden control labels

              02/20/10:

              03:20 Ticket #327 (error when highlighting multiple files, right clicking and choosing Erase) created by selflove
              1. use Win XP Pro 32 bit and without Eraser loaded in RAM. 2. highlight …

              2/20/2010:

              03:03 Ticket #326 (6.0.6.1376 installer does not install (and crashes the OS) in Windows 7 ...) created by selflove
              1. I uninstalled my previous version of Eraser (It was the last stable …

              2/19/2010:

              23:51 WikiStart edited by Joel
              UsingTrac? hasn't been created. (diff)
              09:18 Changesets [1855-1857] by aramacciotti
              • trunk/eraser6/Eraser.Manager/Strings.it.resx
              • trunk/eraser6/Eraser.DefaultPlugins/Strings.it.resx
              • trunk/eraser6/Eraser/Strings.it.resx

              Italian translation completed

              09:03 Changeset [1854] by aramacciotti
              • trunk/eraser6/Eraser/BlackBoxUploadForm.it.resx
              • trunk/eraser6/Eraser/BlackBoxUploadForm.resx

              Italian translation correction

              07:21 Changeset [1853] by lowjoel
              • trunk/eraser6/Eraser.Manager/Task.cs

              If we can't find the file when enumerating ADSes we'll just silently ignore since we can't do anything about it.

              07:14 Changeset [1852] by lowjoel
              • trunk/eraser6/Eraser.Util/ProgressManager.cs

              If we get an overflow exception converting the time left to a time span, just return the maximal value for the time span.

              2/18/2010:

              23:38 Changeset [1851] by lowjoel
              • branches/eraser6/6.0/Eraser/Program.cs

              Fixed command line parsing when commas and equality signs are in the filename.

              00:00 Ticket #321 (Administrator privilege required) closed by trac-robot
              This ticket was closed automatically by the system. It was previously set …

              2/17/2010:

              13:16 Changeset [1850] by lowjoel
              • trunk/eraser6/Eraser.Manager/RemoteExecutor.cs

              Upped the timeout to 10 seconds for connecting to the running instance. If this doesn't work, I don't know what would.

              13:00 Changeset [1849] by lowjoel
              • trunk/eraser6/Eraser.Util/ProgressManager.cs

              Fixed possible NaN value when we divide the amount of work left by the speed.

              12:21 Changeset [1848] by lowjoel
              • trunk/eraser6/Installer/DirectoryStructure.wxs

              We use / instead of --.

              10:31 Changeset [1847] by lowjoel
              • trunk/eraser6
              • trunk/eraser6/Eraser.DefaultPlugins/FileSystems/Windows.cs
              • trunk/eraser6/Eraser.msbuild
              • trunk/eraser6/Eraser/BlackBoxMainForm.it.resx
              • trunk/eraser6/Eraser/BlackBoxUploadForm.it.resx

              Forward port from Eraser 6.0: Fixed FileNotFoundException? when erasing cluster tips -- since we have a delay between the enumeration and the actual erasure we need to check whether the file still exists.

              10:28 Changeset [1846] by lowjoel
              • branches/eraser6/6.0/Eraser.DefaultPlugins/FileSystems/Windows.cs

              Fixed FileNotFoundException? when erasing cluster tips -- since we have a delay between the enumeration and the actual erasure we need to check whether the file still exists.

              10:15 Changeset [1845] by lowjoel
              • trunk/eraser6/Eraser/Program.GuiProgram.cs

              Reimplemented r1640 since it was lost during the CodeReview? branch.

              09:53 Changeset [1844] by lowjoel
              • trunk/eraser6/Eraser/Settings.cs

              The registry key provided to the RegistrySettings? class must not be null.

              09:38 Changeset [1843] by lowjoel
              • trunk/eraser6/Eraser.Util/NtfsApi.cs
              • trunk/eraser6/Eraser.Util/VolumeInfo.cs

              Use VolumeInfo?.OpenHandle? to query a volume for NTFS information instead as that has better error handling.

              08:57 Changeset [1842] by lowjoel
              • trunk/eraser6/Eraser.Util/BlackBox.cs

              Fixed potential problem creating the report directory if the disk is full.

              2/16/2010:

              17:43 Ticket #325 (Recycle Bin erase "Completed with Errors") closed by BillBurke
              invalid: BillBurke?: Can not duplicate after intial installation of version …

              2/12/2010:

              19:40 Ticket #325 (Recycle Bin erase "Completed with Errors") created by BillBurke
              When erasing recycle bin, its status is "complete with errors". The Log …
              12:56 Changeset [1841] by lowjoel
              • trunk/eraser6/Eraser.Util/NativeMethods/Kernel.cs
              • trunk/eraser6/Eraser.Util/NtfsApi.cs
              • trunk/eraser6/Eraser.Util/VolumeInfo.cs

              Instead of hardcoding 0x80 to be passed to CreateFile?, use the named constant FILE_READ_ATTRIBUTES. Also, use this flag when querying NTFS volume information so that non-administrators can query NTFS volume information (e.g. MFT record size)

              12:53 Changeset [1840] by lowjoel
              • trunk/eraser6/Eraser.Manager/Task.cs

              Fixed the GetPaths? function for recycle bin targets - the total file size would be erroneously reported as zero as we called an out function for the variable which reset the file size after every file.

              12:52 Changeset [1839] by lowjoel
              • trunk/eraser6/Eraser.Manager/EntropySource.cs

              Fixed disk performance information as an entropy source -- non-ready drives return null for the Performance parameter.

              12:51 Changeset [1838] by lowjoel
              • trunk/eraser6/Eraser.Util/VolumeInfo.cs

              No need to check that a valid handle is returned, OpenHandle? will throw an exception if it can't open the handle to the volume.

              12:50 Changeset [1837] by lowjoel
              • trunk/eraser6/Eraser.Util/VolumeInfo.cs

              Allow non-administrators to query disk performance information.

              09:51 Changeset [1836] by lowjoel
              • trunk/eraser6/Eraser.Util/ProgressManager.cs

              When no meaningful amount of time required to complete the task can be calculated, return TimeSpan?.MinValue? instead of Zero, because Zero can mean the task is going to complete... very soon.

              09:38 Changeset [1835] by lowjoel
              • trunk/eraser6/Eraser.Manager/DirectExecutor.cs
              • trunk/eraser6/Eraser.Manager/Strings.en.resx
              • trunk/eraser6/Eraser.Manager/Strings.it.resx
              • trunk/eraser6/Eraser.Manager/Strings.nl.resx
              • trunk/eraser6/Eraser.Manager/Strings.resx

              Go back to the v6.0 behaviour that the progress is calculated based on the total amount of data to be erased, not number of files.

              08:44 Changeset [1834] by lowjoel
              • trunk/eraser6/Eraser.sln
              • trunk/eraser6/Eraser/Eraser.csproj

              If we're building under the win32 solution platform, set the Eraser program to be x86-only. This is useful for debugging native/managed code.

              08:42 Changeset [1833] by lowjoel
              • trunk/eraser6/Eraser.Manager/EntropySource.cs

              Compilo.

              08:39 Changeset [1832] by lowjoel
              • trunk/eraser6/Eraser.Manager/EntropySource.cs
              • trunk/eraser6/Eraser.Util/Eraser.Util.csproj
              • trunk/eraser6/Eraser.Util/NativeMethods/AdvApi.cs
              • trunk/eraser6/Eraser.Util/Security.cs

              Removed CryptGenRandom? for a few reasons:

              • The only use was in the Entropy gathering code. We default to using RNGCryptoServiceProvider which is already a CSPRNG.
              • Since RNGCryptoServiceProvider doesn't accept seeds, we can't seed it with our entropy
              • CryptGenRandom? involved a lot of setting up -- certain computers do not have it and would result in a crash
              07:26 Changeset [1831] by lowjoel
              • trunk/eraser6
              • trunk/eraser6/Eraser.Util/NetApi.cs
              • trunk/eraser6/Eraser.msbuild
              • trunk/eraser6/Eraser/BlackBoxMainForm.it.resx
              • trunk/eraser6/Eraser/BlackBoxUploadForm.it.resx

              Forward port from Eraser 6.0: Wrong parameter order for Marshal.Copy, resulting in the manager buffer being copied to the unmanaged buffer.

              07:21 Changeset [1830] by lowjoel
              • branches/eraser6/6.0/Eraser.Util/NetApi.cs

              Wrong parameter order for Marshal.Copy, resulting in the manager buffer being copied to the unmanaged buffer.

              06:24 Changeset [1829] by lowjoel
              • trunk/eraser6/Eraser.Manager/DirectExecutor.cs
              • trunk/eraser6/Eraser.Manager/Executor.cs
              • trunk/eraser6/Eraser/MainForm.cs
              • trunk/eraser6/Eraser/Program.cs
              • trunk/eraser6/Eraser/SchedulerPanel.cs

              When we load a task list from the stream the stream may not be valid. If so, throw an InvalidDataException? instead. This prevents exceptions which are specific to the implementation of the Executor class from letting its exceptions bubble up the stack.

              06:14 Changeset [1828] by lowjoel
              • trunk/eraser6/ShellExt/CtxMenu.cpp
              • trunk/eraser6/ShellExt/CtxMenu.h

              Path names need not be escaped any more since we parse the arguments by regex.

              06:12 Changeset [1827] by lowjoel
              • trunk/website/scripts/downloads.php

              OK, this algorithm better work - get the number of unsuperseded builds, get those which should already be superseded, then mark them so.

              04:52 Changeset [1826] by lowjoel
              • branches/eraser6/6.0/Eraser/MainForm.cs

              Compile fix; Localisation only exists in trunk.

              03:49 Changeset [1825] by lowjoel
              • trunk/eraser6
              • trunk/eraser6/Eraser.msbuild
              • trunk/eraser6/Eraser/BlackBoxMainForm.it.resx
              • trunk/eraser6/Eraser/BlackBoxUploadForm.it.resx
              • trunk/eraser6/Eraser/MainForm.cs

              Forward port from Eraser 6.0: When executing links we may get errors from ShellExecute?, so display these errors instead of crashing.

              03:41 Changeset [1824] by lowjoel
              • branches/eraser6/6.0/Eraser/MainForm.cs

              When executing links we may get errors from ShellExecute?, so display these errors instead of crashing.

              03:08 Changeset [1823] by lowjoel
              • trunk/eraser6/Eraser.Util/BlackBox.cs

              Fixed ArgumentOutOfRangeException? when uploading crash reports.

              02:59 Changeset [1822] by lowjoel
              • trunk/eraser6
              • trunk/eraser6/Eraser.msbuild
              • trunk/eraser6/Eraser/BlackBoxMainForm.it.resx
              • trunk/eraser6/Eraser/BlackBoxUploadForm.it.resx
              • trunk/eraser6/Eraser/MainForm.Designer.cs
              • trunk/eraser6/Eraser/MainForm.cs

              Forward port from Eraser 6.0: When the user closes the MainForm?, always call Application.Exit, since if Application.Run was not called with the main form then the closure of the form has no significance. Thanks to DavidHB for the report.

              02:51 Changeset [1821] by lowjoel
              • branches/eraser6/6.0/Eraser/MainForm.Designer.cs
              • branches/eraser6/6.0/Eraser/MainForm.cs

              When the user closes the MainForm?, always call Application.Exit, since if Application.Run was not called with the main form then the closure of the form has no significance. Thanks to DavidHB for the report.

              01:53 Changeset [1820] by lowjoel
              • trunk/eraser6/ShellExt/CtxMenu.cpp

              The targets need not be specified with /

              01:28 Changeset [1819] by lowjoel
              • trunk/eraser6/Eraser/Program.cs

              Follow the old behaviour -- without specifying /schedule, we assume the task is meant to run immediately.

              01:16 Changesets [1817-1818] by lowjoel
              • trunk/eraser6/ShellExt/CtxMenu.cpp
              • trunk/eraser6/Eraser/Program.cs

              We only accept / instead of -- now for command line arguments.

              01:05 Changeset [1816] by lowjoel
              • trunk/eraser6/Installer/DirectoryStructure.wxs

              Using the new command line library requires us to use / instead of -- for switches.

              01:04 Changeset [1815] by lowjoel
              • trunk/eraser6/Eraser.Manager/Plugins.cs
              • trunk/eraser6/Eraser.Manager/Strings.en.resx
              • trunk/eraser6/Eraser.Manager/Strings.it.resx
              • trunk/eraser6/Eraser.Manager/Strings.nl.resx
              • trunk/eraser6/Eraser.Manager/Strings.resx

              Handle partially trusted plugin loading (eg. from network paths) by displaying an error message to catch the SecurityException? thrown

              2/11/2010:

              13:48 Changeset [1814] by lowjoel
              • trunk/website/scripts/downloads.php

              The nested query can't be referenced in the UPDATE statement.

              05:50 Changeset [1813] by lowjoel
              • trunk/eraser6/Eraser.Util/ProgressManager.cs

              Replaced the Speed property of the ProgressManager? classes to a float so that it is unit agnostic, bearing the unit percentage points per second instead, so it is generalised to all progress manager classes.

              02:15 Changeset [1812] by lowjoel
              • trunk/eraser6/Eraser.Util.Native/OpenHandle.NameResolver.cpp
              • trunk/eraser6/Eraser.Util.Native/OpenHandle.NameResolver.h
              • trunk/eraser6/Eraser.Util.Native/OpenHandle.cpp
              • trunk/eraser6/Eraser.Util.Native/OpenHandle.h
              • Move the contents of the OpenHandle::ResolveHandlePath? function to the ResolveHandleName? function in native code (we would have p/invoked quite a bit in that function)
              • Move the global name resolution thread and it's task queue to native code and in a anonymous namespace
              02:12 Changeset [1811] by lowjoel
              • trunk/eraser6/Eraser.Util.Native/Main.cpp

              Fixed crash when obtaining handle names -- we called NtQueryObject? but that was a p/invoke call as Main.cpp was not declared as managed. Since we call TerminateThread? the .NET CLR went into an inconsistent state.

              00:28 Changeset [1810] by lowjoel
              • trunk/eraser6/Dependencies/DragDropLib.XML
              • trunk/eraser6/Dependencies/DragDropLib.dll
              • trunk/eraser6/Dependencies/ICSharpCode.SharpZipLib.dll
              • trunk/eraser6/Dependencies/ICSharpCode.SharpZipLib.xml

              Rebuilt DragDropLib? and SharpZipLib? and added XML documentation for these dependencies.

              00:19 Changeset [2857] by lowjoel

                Generate and store debug symbols and XML documentation for CommonLibrary?.NET

                00:16 Changeset [2856] by lowjoel

                  Generate XML Documentation for use with VS IntelliSense?

                  2/10/2010:

                  10:44 Changeset [1809] by lowjoel
                  • trunk/eraser6/Eraser.Util/BlackBox.cs

                  Don't register BlackBox? as a crash handler when a debugger is attached to the current process.

                  10:41 Changeset [1808] by lowjoel
                  • trunk/eraser6/Eraser/ProgressForm.cs

                  Fixed crash when the progress dialog is invoked before any steps have been declared.

                  09:41 Changeset [1807] by lowjoel
                  • trunk/eraser6/Eraser/Resources/BackgroundLogo.png
                  • trunk/eraser6/Resources/Source/Dialogs/Dialog Logo.psd

                  Updated the version numbers in the resources too.

                  09:31 Changeset [1806] by lowjoel
                  • trunk/eraser6/Version.rc.in
                  • trunk/eraser6/Version.wxs.in

                  Bumped version numbers since after the CodeReview? branch a lot of things are different from v6.0

                  09:23 Changeset [1805] by lowjoel
                  • trunk/eraser6/Eraser.Manager/Strings.en.resx

                  Updated English translation.

                  09:18 Changeset [1804] by lowjoel
                  • trunk/eraser6/Eraser.Manager/Strings.en.resx

                  Missing English translation.

                  09:14 Ticket #275 (Code Review) closed by Joel
                  fixed: Completed in r1803
                  09:12 Changeset [1803] by lowjoel
                  • branches/eraser6/CodeReview

                  Completed code review. Closes #275: Code Review

                  09:08 Changeset [1802] by lowjoel
                  • trunk/eraser6
                  • trunk/eraser6/CustomDictionary.xml
                  • trunk/eraser6/Dependencies/CommonLibrary.XML
                  • trunk/eraser6/Dependencies/CommonLibrary.dll
                  • trunk/eraser6/Dependencies/CommonLibrary.pdb
                  • trunk/eraser6/Eraser Native.vsprops
                  • trunk/eraser6/Eraser.DefaultPlugins/CustomMethodEditorForm.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/CustomMethodPassEditor.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/Eraser.DefaultPlugins.csproj
                  • trunk/eraser6/Eraser.DefaultPlugins/ErasureMethods/Custom.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/ErasureMethods/DoD.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/ErasureMethods/GOSTP50739.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/ErasureMethods/Gutmann.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/ErasureMethods/HMGIS5.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/ErasureMethods/RCMP_TSSIT_OPS_II.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/ErasureMethods/Random.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/ErasureMethods/Schneier.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/ErasureMethods/USAF5020.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/ErasureMethods/USArmyAR380_19.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/ErasureMethods/VSITR.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/FileSystems/Fat.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/FileSystems/Ntfs.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/FileSystems/Windows.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/Plugin.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/RNGCrypto.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/SettingsForm.cs
                  • trunk/eraser6/Eraser.DefaultPlugins/Strings.en.resx
                  • trunk/eraser6/Eraser.DefaultPlugins/Strings.it.resx
                  • trunk/eraser6/Eraser.DefaultPlugins/Strings.nl.resx
                  • trunk/eraser6/Eraser.DefaultPlugins/Strings.resx
                  • trunk/eraser6/Eraser.Manager/DirectExecutor.cs
                  • trunk/eraser6/Eraser.Manager/EntropySource.cs
                  • trunk/eraser6/Eraser.Manager/Eraser.Manager.csproj
                  • trunk/eraser6/Eraser.Manager/Executor.cs
                  • trunk/eraser6/Eraser.Manager/FileSystem.cs
                  • trunk/eraser6/Eraser.Manager/IRegistrar.cs
                  • trunk/eraser6/Eraser.Manager/Language.cs
                  • trunk/eraser6/Eraser.Manager/Logger.cs
                  • trunk/eraser6/Eraser.Manager/ManagerLibrary.cs
                  • trunk/eraser6/Eraser.Manager/Method.cs
                  • trunk/eraser6/Eraser.Manager/PRNG.cs
                  • trunk/eraser6/Eraser.Manager/Plugins.cs
                  • trunk/eraser6/Eraser.Manager/ProgressManager.cs
                  • trunk/eraser6/Eraser.Manager/RemoteExecutor.cs
                  • trunk/eraser6/Eraser.Manager/Schedule.cs
                  • trunk/eraser6/Eraser.Manager/Settings.cs
                  • trunk/eraser6/Eraser.Manager/Strings.en.resx
                  • trunk/eraser6/Eraser.Manager/Strings.it.resx
                  • trunk/eraser6/Eraser.Manager/Strings.nl.resx
                  • trunk/eraser6/Eraser.Manager/Strings.resx
                  • trunk/eraser6/Eraser.Manager/Task.cs
                  • trunk/eraser6/Eraser.Util.FileSystem
                  • trunk/eraser6/Eraser.Util.Native
                  • trunk/eraser6/Eraser.Util.Native/AssemblyInfo.cpp
                  • trunk/eraser6/Eraser.Util.Native/Eraser.Util.Native.rc
                  • trunk/eraser6/Eraser.Util.Native/Eraser.Util.Native.vcproj
                  • trunk/eraser6/Eraser.Util.Native/Fat.h
                  • trunk/eraser6/Eraser.Util.Native/Fat12Api.cpp
                  • trunk/eraser6/Eraser.Util.Native/Fat12Or16Api.cpp
                  • trunk/eraser6/Eraser.Util.Native/Fat16Api.cpp
                  • trunk/eraser6/Eraser.Util.Native/Fat32Api.cpp
                  • trunk/eraser6/Eraser.Util.Native/FatApi.cpp
                  • trunk/eraser6/Eraser.Util.Native/FatApi.h
                  • trunk/eraser6/Eraser.Util.Native/Main.cpp
                  • trunk/eraser6/Eraser.Util.Native/NTApi.h
                  • trunk/eraser6/Eraser.Util.Native/OpenHandle.NameResolver.cpp
                  • trunk/eraser6/Eraser.Util.Native/OpenHandle.NameResolver.h
                  • trunk/eraser6/Eraser.Util.Native/OpenHandle.cpp
                  • trunk/eraser6/Eraser.Util.Native/OpenHandle.h
                  • trunk/eraser6/Eraser.Util.Native/Stdafx.cpp
                  • trunk/eraser6/Eraser.Util.Native/Stdafx.h
                  • trunk/eraser6/Eraser.Util.Unlocker
                  • trunk/eraser6/Eraser.Util/AdvApi.cs
                  • trunk/eraser6/Eraser.Util/BlackBox.cs
                  • trunk/eraser6/Eraser.Util/ConsoleWindow.cs
                  • trunk/eraser6/Eraser.Util/Eraser.Util.csproj
                  • trunk/eraser6/Eraser.Util/ExtensionMethods
                  • trunk/eraser6/Eraser.Util/ExtensionMethods/IO.cs
                  • trunk/eraser6/Eraser.Util/File.cs
                  • trunk/eraser6/Eraser.Util/FileSize.cs
                  • trunk/eraser6/Eraser.Util/KernelApi.cs
                  • trunk/eraser6/Eraser.Util/Localisation.cs
                  • trunk/eraser6/Eraser.Util/Logger.cs
                  • trunk/eraser6/Eraser.Util/MsCorEEApi.cs
                  • trunk/eraser6/Eraser.Util/NTApi.cs
                  • trunk/eraser6/Eraser.Util/NativeMethods
                  • trunk/eraser6/Eraser.Util/NativeMethods/AdvApi.cs
                  • trunk/eraser6/Eraser.Util/NativeMethods/DbgHelp.cs
                  • trunk/eraser6/Eraser.Util/NativeMethods/Gdi.cs
                  • trunk/eraser6/Eraser.Util/NativeMethods/Kernel.cs
                  • trunk/eraser6/Eraser.Util/NativeMethods/Mpr.cs
                  • trunk/eraser6/Eraser.Util/NativeMethods/MsCorEE.cs
                  • trunk/eraser6/Eraser.Util/NativeMethods/NetApi.cs
                  • trunk/eraser6/Eraser.Util/NativeMethods/NtDll.cs
                  • trunk/eraser6/Eraser.Util/NativeMethods/Sfc.cs
                  • trunk/eraser6/Eraser.Util/NativeMethods/Shell.cs
                  • trunk/eraser6/Eraser.Util/NativeMethods/User.cs
                  • trunk/eraser6/Eraser.Util/NativeMethods/UxTheme.cs
                  • trunk/eraser6/Eraser.Util/NativeMethods/WinTrust.cs
                  • trunk/eraser6/Eraser.Util/NetApi.cs
                  • trunk/eraser6/Eraser.Util/NtfsApi.cs
                  • trunk/eraser6/Eraser.Util/PostDataBuilder.cs
                  • trunk/eraser6/Eraser.Util/Power.cs
                  • trunk/eraser6/Eraser.Util/ProgressManager.cs
                  • trunk/eraser6/Eraser.Util/RecycleBin.cs
                  • trunk/eraser6/Eraser.Util/Security.cs
                  • trunk/eraser6/Eraser.Util/Shell.cs
                  • trunk/eraser6/Eraser.Util/ShellApi.cs
                  • trunk/eraser6/Eraser.Util/StreamInfo.cs
                  • trunk/eraser6/Eraser.Util/SystemInfo.cs
                  • trunk/eraser6/Eraser.Util/SystemRestore.cs
                  • trunk/eraser6/Eraser.Util/SystemRestoreApi.cs
                  • trunk/eraser6/Eraser.Util/Theming.cs
                  • trunk/eraser6/Eraser.Util/UserApi.cs
                  • trunk/eraser6/Eraser.Util/UxThemeApi.cs
                  • trunk/eraser6/Eraser.Util/VolumeInfo.cs
                  • trunk/eraser6/Eraser.Util/Win32ErrorCodes.cs
                  • trunk/eraser6/Eraser.Util/WintrustApi.cs
                  • trunk/eraser6/Eraser.fxcop
                  • trunk/eraser6/Eraser.msbuild
                  • trunk/eraser6/Eraser.sln
                  • trunk/eraser6/Eraser/AboutForm.cs
                  • trunk/eraser6/Eraser/BlackBoxMainForm.cs
                  • trunk/eraser6/Eraser/BlackBoxMainForm.it.resx
                  • trunk/eraser6/Eraser/BlackBoxUploadForm.cs
                  • trunk/eraser6/Eraser/BlackBoxUploadForm.it.resx
                  • trunk/eraser6/Eraser/Eraser.csproj
                  • trunk/eraser6/Eraser/LogForm.cs
                  • trunk/eraser6/Eraser/MainForm.cs
                  • trunk/eraser6/Eraser/Program.ConsoleProgram.cs
                  • trunk/eraser6/Eraser/Program.GuiProgram.cs
                  • trunk/eraser6/Eraser/Program.cs
                  • trunk/eraser6/Eraser/ProgressForm.cs
                  • trunk/eraser6/Eraser/SchedulerPanel.cs
                  • trunk/eraser6/Eraser/Settings.cs
                  • trunk/eraser6/Eraser/SettingsCompatibility.cs
                  • trunk/eraser6/Eraser/SettingsPanel.cs
                  • trunk/eraser6/Eraser/Strings.NL.resx
                  • trunk/eraser6/Eraser/Strings.en.resx
                  • trunk/eraser6/Eraser/Strings.it.resx
                  • trunk/eraser6/Eraser/Strings.resx
                  • trunk/eraser6/Eraser/TaskDataSelectionForm.cs
                  • trunk/eraser6/Eraser/TaskPropertiesForm.cs
                  • trunk/eraser6/Eraser/UpdateForm.Designer.cs
                  • trunk/eraser6/Eraser/UpdateForm.cs
                  • trunk/eraser6/Eraser/UpdateForm.resx
                  • trunk/eraser6/Installer/Bootstrapper/Bootstrapper.vcproj
                  • trunk/eraser6/Installer/DirectoryStructure.wxs
                  • trunk/eraser6/ShellExt/ShellExt.vcproj
                  • trunk/eraser6/Version.cs.in

                  Merged the CodeReview? Branch back to trunk. (Finally!) Closes #275: Code Review.

                  08:32 Changeset [1801] by lowjoel
                  • branches/eraser6/CodeReview
                  • branches/eraser6/CodeReview/Eraser.Manager/DirectExecutor.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/RemoteExecutor.cs
                  • branches/eraser6/CodeReview/Eraser.msbuild
                  • branches/eraser6/CodeReview/Eraser/BlackBoxMainForm.it.resx
                  • branches/eraser6/CodeReview/Eraser/BlackBoxUploadForm.it.resx
                  • branches/eraser6/CodeReview/Eraser/Program.cs
                  • branches/eraser6/CodeReview/Eraser/TaskPropertiesForm.Designer.cs
                  • branches/eraser6/CodeReview/Eraser/TaskPropertiesForm.it.resx
                  • branches/eraser6/CodeReview/Eraser/TaskPropertiesForm.resx
                  • branches/eraser6/CodeReview/ShellExt/CtxMenu.cpp
                  • branches/eraser6/CodeReview/ShellExt/ShellExt.vcproj
                  • branches/eraser6/CodeReview/ShellExt/Utils.cpp
                  • branches/eraser6/CodeReview/ShellExt/Utils.h

                  Updated to r1800 on trunk.

                  08:26 Changeset [1800] by lowjoel
                  • trunk/eraser6/Eraser/TaskPropertiesForm.Designer.cs
                  • trunk/eraser6/Eraser/TaskPropertiesForm.it.resx
                  • trunk/eraser6/Eraser/TaskPropertiesForm.resx

                  Fit Sunday on the English localisation for the schedule editor.

                  08:11 Changeset [1799] by lowjoel
                  • branches/eraser6/CodeReview/Eraser/MainForm.cs

                  Specify RightAlign? alongside RTLReading when the parent control is right-to-left.

                  08:02 Changeset [1798] by lowjoel
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/CustomMethodPassEditor.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/DoD.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/GOSTP50739.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/Gutmann.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/HMGIS5.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/RCMP_TSSIT_OPS_II.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/Schneier.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/USAF5020.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/USArmyAR380_19.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/VSITR.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/FileSystems/Fat.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/FileSystems/Ntfs.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/RNGCrypto.cs

                  Looks like the GuidAttribute? doesn't accept GUIDs with {}. Fixes r1796

                  08:00 Changeset [1797] by lowjoel
                  • branches/eraser6/CodeReview/Eraser.Util/Localisation.cs
                  • branches/eraser6/CodeReview/Eraser/AboutForm.cs
                  • branches/eraser6/CodeReview/Eraser/BlackBoxUploadForm.cs
                  • branches/eraser6/CodeReview/Eraser/LogForm.cs
                  • branches/eraser6/CodeReview/Eraser/MainForm.cs
                  • branches/eraser6/CodeReview/Eraser/Program.GuiProgram.cs
                  • branches/eraser6/CodeReview/Eraser/Program.cs
                  • branches/eraser6/CodeReview/Eraser/SchedulerPanel.cs
                  • branches/eraser6/CodeReview/Eraser/Settings.cs
                  • branches/eraser6/CodeReview/Eraser/SettingsPanel.cs
                  • branches/eraser6/CodeReview/Eraser/TaskDataSelectionForm.cs
                  • branches/eraser6/CodeReview/Eraser/UpdateForm.cs

                  Replaced the majority of the "S" class with the properly named Localisation class; the "S" class is just for shorthand when translating strings.

                  07:40 Ticket #276 (Implement Eraser Registrar Interface) closed by Joel
                  fixed: I don't see a need for the erasure method interface, really. Closing this …
                  07:37 Changeset [1796] by lowjoel
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/DoD.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/GOSTP50739.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/Gutmann.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/HMGIS5.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/RCMP_TSSIT_OPS_II.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/Random.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/Schneier.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/USAF5020.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/USArmyAR380_19.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/VSITR.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/FileSystems/Fat.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/FileSystems/Ntfs.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/RNGCrypto.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/SettingsForm.cs

                  Store the GUIDs of the Registerables as class attributes and use Reflection to get the GUIDs out. This allows us to do thus: typeof(type).GUID to get the GUID of the registerable. Addresses #276: Implement Eraser Registrar Interface

                  07:14 Changeset [1795] by lowjoel
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/Custom.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/DoD.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/RCMP_TSSIT_OPS_II.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/USAF5020.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/USArmyAR380_19.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/FileSystems/Fat.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/FileSystems/Ntfs.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/FileSystems/Windows.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/Plugin.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/SettingsForm.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/DirectExecutor.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/EntropySource.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/FileSystem.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/ManagerLibrary.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/Method.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/PRNG.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/Task.cs
                  • branches/eraser6/CodeReview/Eraser/Program.cs
                  • branches/eraser6/CodeReview/Eraser/SettingsPanel.cs
                  • branches/eraser6/CodeReview/Eraser/TaskDataSelectionForm.cs

                  Renamed ManagerLibrary?.*Manager => ManagerLibrary?.*Registrar for consistency. Addresses #276: Implement Eraser Registrar Interface

                  07:11 Changeset [1794] by lowjoel
                  • branches/eraser6/CodeReview/Eraser.Manager/Eraser.Manager.csproj
                  • branches/eraser6/CodeReview/Eraser.Manager/Language.cs
                  • branches/eraser6/CodeReview/Eraser.Util/Localisation.cs
                  • branches/eraser6/CodeReview/Eraser/SettingsPanel.cs

                  Removed the Language and LanguageManager? classes since the former is just CultureInfo?, and the latter should really be in the "S" class. Addresses #276: Implement Eraser Registrar Interface

                  07:02 Changeset [1793] by lowjoel
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/DoD.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/RCMP_TSSIT_OPS_II.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/USAF5020.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/USArmyAR380_19.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/FileSystems/Fat.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/FileSystems/Ntfs.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/FileSystems/Windows.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/Plugin.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/DirectExecutor.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/FileSystem.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/ManagerLibrary.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/Method.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/PRNG.cs
                  • branches/eraser6/CodeReview/Eraser/SettingsPanel.cs

                  Replaced the PrngManager? and FileSystemManager? classes with the new Registrar interface. Addresses #276: Implement Eraser Registrar Interface

                  06:32 Changeset [1792] by lowjoel
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/CustomMethodEditorForm.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/Custom.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/Plugin.cs
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/SettingsForm.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/EntropySource.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/Eraser.Manager.csproj
                  • branches/eraser6/CodeReview/Eraser.Manager/IRegistrar.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/ManagerLibrary.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/Method.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/Task.cs
                  • branches/eraser6/CodeReview/Eraser/Program.cs
                  • branches/eraser6/CodeReview/Eraser/SettingsPanel.cs
                  • branches/eraser6/CodeReview/Eraser/TaskDataSelectionForm.cs

                  Implemented an IRegistrar interface for all registrars, and an IRegisterable interface for all classes which need to be registered with IRegistrar, and migrated the Entropy and Erasure Method classes to the new interfaces. Addresses #276: Implement Eraser Registrar Interface

                  04:20 Ticket #309 (Remove the SettingsCompatibility classes) closed by Joel
                  fixed
                  04:09 Changeset [1791] by lowjoel
                  • branches/eraser6/CodeReview/Eraser/Eraser.csproj
                  • branches/eraser6/CodeReview/Eraser/Program.cs
                  • branches/eraser6/CodeReview/Eraser/SettingsCompatibility.cs

                  Closes #309: Remove the SettingsCompatibility? classes

                  03:50 Ticket #320 (Logging improvements) closed by Joel
                  fixed: The rest of this task is actually a non-issue. I'll close this.
                  02:49 Changeset [1790] by lowjoel
                  • branches/eraser6/CodeReview/Eraser.Manager/DirectExecutor.cs

                  Supplants r1777. Moved a code fragment from the DirectExecutor?.Main to DirectExecutor?.ExecuteTask? method (since it logically belongs there)

                  02:37 Changeset [1789] by lowjoel
                  • branches/eraser6/CodeReview/Eraser.Util/Localisation.cs

                  Instead of throwing an ArgumentNullException? when querying the system RTL status, use an available form or create one, in that order and check against those controls instead.

                  02:36 Changeset [1788] by lowjoel
                  • branches/eraser6/CodeReview/Eraser/AboutForm.cs
                  • branches/eraser6/CodeReview/Eraser/MainForm.cs
                  • branches/eraser6/CodeReview/Eraser/SchedulerPanel.cs

                  When checking for RTL-reading controls to display in the message box, always check the current control if available, defaulting only to null where necessary

                  02:31 Changeset [1787] by lowjoel
                  • trunk/eraser6/ShellExt/CtxMenu.cpp
                  • trunk/eraser6/ShellExt/ShellExt.vcproj
                  • trunk/eraser6/ShellExt/Utils.cpp
                  • trunk/eraser6/ShellExt/Utils.h

                  Various (minor) shell improvements.

                  • Moved the Handle class to the Utils header
                  • Added a BusyCursor? class which when instantiated will set the cursor to be the system busy cursor (now used when spawning the Eraser process)
                  02:23 Changeset [1786] by lowjoel
                  • trunk/eraser6
                  • trunk/eraser6/Eraser.Manager/RemoteExecutor.cs
                  • trunk/eraser6/Eraser/Program.cs

                  Forward port from Eraser 6.0.

                  • When connecting to a RemoteExecutor? instance, wait for 3 seconds instead of 0.5 seconds - the old timeout seemed too short for new instances to start and wait for connections (and WaitForInputIdle? doesn't seem to wait completely)
                  • When starting the new Eraser process, yield the current thread's timeslice to allow the new instance to start
                  02:21 Changeset [1785] by lowjoel
                  • branches/eraser6/6.0/Eraser/Strings.NL.resx
                  • branches/eraser6/6.0/Eraser/Strings.en.resx
                  • branches/eraser6/6.0/Eraser/Strings.it.resx
                  • branches/eraser6/6.0/Eraser/Strings.resx

                  New strings.

                  02:20 Changeset [1784] by lowjoel
                  • branches/eraser6/6.0/Eraser.Manager/RemoteExecutor.cs
                  • branches/eraser6/6.0/Eraser/Program.cs
                  • When connecting to a RemoteExecutor? instance, wait for 3 seconds instead of 0.5 seconds - the old timeout seemed too short for new instances to start and wait for connections (and WaitForInputIdle? doesn't seem to wait completely)
                  • When starting the new Eraser process, yield the current thread's timeslice to allow the new instance to start

                  2/9/2010:

                  08:37 Ticket #324 (XML Documentation for Util.Native) created by Joel
                  08:36 Changeset [1783] by lowjoel
                  • trunk/eraser6
                  • trunk/eraser6/Eraser.Manager/DirectExecutor.cs

                  Forward port from Eraser 6.0: Fixed DirectoryNotFoundException? -- the Erase If Empty option for directories were not respected -- directories were always erased.
                  Also reverted erroneous change in r1700 which removed the mountpoint checking code.

                  08:18 Changeset [1782] by lowjoel
                  • branches/eraser6/6.0/Eraser.Manager/DirectExecutor.cs

                  Fixed DirectoryNotFoundException? -- the Erase If Empty option for directories were not respected -- directories were always erased.

                  08:02 Changeset [1781] by lowjoel
                  • branches/eraser6/CodeReview/Eraser/LogForm.cs

                  If we have no log sessions then we should not attempt to list the entries for display to avoid an ArgumentOutOfRangeException?. Addresses #320: Logging improvements

                  07:59 Ticket #300 (Tasks - Information log entries for start / end) closed by Joel
                  fixed: Fixed in r1780
                  07:56 Changeset [1780] by lowjoel
                  • branches/eraser6/CodeReview/Eraser.Util/Logger.cs

                  Fixed a few logger issues, addressing #320: Logging improvements:

                  • When starting a new session, if the current thread has no logger listeners we need to create the list of threads before adding them
                  • When creating the new session we need to log the session start event and the end event
                  • The LogSink? class should be Serializable, as the predecessor Logger class was
                  07:52 Changeset [1779] by lowjoel
                  • branches/eraser6/CodeReview/Eraser.Manager/DirectExecutor.cs

                  Forgot to return from the function after we log the error that we lack the permissions to do an unused space erase.

                  07:27 Changeset [1778] by lowjoel
                  • branches/eraser6/CodeReview/Eraser.Util/Localisation.cs

                  Converted a tail-recursive function call to a while loop.

                  07:23 Changeset [1777] by lowjoel
                  • branches/eraser6/CodeReview/Eraser.DefaultPlugins/FileSystems/Windows.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/DirectExecutor.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/Eraser.Manager.csproj
                  • branches/eraser6/CodeReview/Eraser.Manager/FileSystem.cs
                  • branches/eraser6/CodeReview/Eraser.Manager/Task.cs
                  • branches/eraser6/CodeReview/Eraser.Util/Eraser.Util.csproj
                  • branches/eraser6/CodeReview/Eraser.Util/Logger.cs
                  • branches/eraser6/CodeReview/Eraser.Util/Theming.cs
                  • branches/eraser6/CodeReview/Eraser/LogForm.cs
                  • branches/eraser6/CodeReview/Eraser/ProgressForm.cs
                  • branches/eraser6/CodeReview/Eraser/SchedulerPanel.cs

                  Redesigned the Logger paradigm -- instead of a dealing with a logger object to do any form of logging, we have a static Logger class which code can log to, and define log targets to receive those logs. Also included is a LogSession? class which sets the log target for the current thread or for a few threads. Addresses #320: Logging improvements

                  06:45 Changeset [1776] by lowjoel
                  • branches/eraser6/CodeReview/Dependencies/CommonLibrary.XML

                  Added XML documentation for the CommonLibrary?.NET assembly.

                  00:08 Changeset [2855] by lowjoel

                    Added CommonLibrary?.NET to the list of C# libraries. This is 0.9.3.

                    00:06 Changeset [2854] by lowjoel

                      Imported CommonLibrary?.NET 0.9.3

                      2/8/2010:

                      20:56 Ticket #322 (Eraser 6.0.6.1743 - First Last 16KB threshhold addressed in change 1745 is ...) reopened by bOoGiEwOoGiE
                      20:51 Ticket #322 (Eraser 6.0.6.1743 - First Last 16KB threshhold addressed in change 1745 is ...) closed by bOoGiEwOoGiE
                      invalid: Thank you for your reply and your patience Joel. My apologies for possibly …
                      12:49 Changeset [1775] by lowjoel
                      • branches/eraser6/CodeReview
                      • branches/eraser6/CodeReview/Eraser.msbuild
                      • branches/eraser6/CodeReview/Eraser/BlackBoxMainForm.it.resx
                      • branches/eraser6/CodeReview/Eraser/BlackBoxUploadForm.it.resx
                      • branches/eraser6/CodeReview/Eraser/MainForm.nl.resx

                      Forward port from trunk to r1774.

                      12:44 Changeset [1774] by lowjoel
                      • trunk/eraser6/Eraser/MainForm.nl.resx

                      Use the new Eraser icon for the Dutch localisation

                      12:37 Changeset [1773] by lowjoel
                      • trunk/eraser6/Eraser/MainForm.nl.resx

                      Fixed menu bar position in the Dutch localisaton.

                      08:25 Changeset [1772] by lowjoel
                      • branches/eraser6/CodeReview/Eraser.Manager/DirectExecutor.cs
                      • branches/eraser6/CodeReview/Eraser.Manager/ManagerLibrary.cs
                      • branches/eraser6/CodeReview/Eraser.Manager/Plugins.cs
                      • branches/eraser6/CodeReview/Eraser.Manager/RemoteExecutor.cs
                      • branches/eraser6/CodeReview/Eraser.Util/Security.cs
                      • branches/eraser6/CodeReview/Eraser.Util/VolumeInfo.cs
                      • branches/eraser6/CodeReview/Eraser/Program.ConsoleProgram.cs
                      • branches/eraser6/CodeReview/Eraser/Program.GuiProgram.cs
                      • branches/eraser6/CodeReview/Eraser/Settings.cs

                      Allow all IDisposable patterns to be reentrant. Addresses #275: Code Review

                      07:43 Changeset [1771] by lowjoel
                      • branches/eraser6/CodeReview/Eraser.DefaultPlugins/Strings.en.resx
                      • branches/eraser6/CodeReview/Eraser.DefaultPlugins/Strings.it.resx
                      • branches/eraser6/CodeReview/Eraser.DefaultPlugins/Strings.nl.resx
                      • branches/eraser6/CodeReview/Eraser.DefaultPlugins/Strings.resx
                      • branches/eraser6/CodeReview/Eraser.Manager/DirectExecutor.cs
                      • branches/eraser6/CodeReview/Eraser.Manager/Strings.en.resx
                      • branches/eraser6/CodeReview/Eraser.Manager/Strings.it.resx
                      • branches/eraser6/CodeReview/Eraser.Manager/Strings.nl.resx
                      • branches/eraser6/CodeReview/Eraser.Manager/Strings.resx

                      Updated localisable strings.

                      07:41 Changeset [1770] by lowjoel
                      • branches/eraser6/CodeReview/Eraser.Util/ConsoleWindow.cs
                      • branches/eraser6/CodeReview/Eraser.Util/Security.cs
                      • branches/eraser6/CodeReview/Eraser.Util/VolumeInfo.cs
                      • branches/eraser6/CodeReview/Eraser/Program.ConsoleProgram.cs
                      • branches/eraser6/CodeReview/Eraser/Settings.cs

                      Marked disposable classes' Dispose(bool) member protected virtual; or private and sealed the class if the class is not meant to be inherited. Addresses #275: Code Review

                      07:30 Ticket #323 (Erasing improvements) created by Joel
                      - Can FileSystem.EraseOldFileSystemResidentFiles and …
                      07:29 Changeset [1769] by lowjoel
                      • branches/eraser6/CodeReview
                      • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs
                      • branches/eraser6/CodeReview/Eraser.Manager/DirectExecutor.cs
                      • branches/eraser6/CodeReview/Eraser.msbuild
                      • branches/eraser6/CodeReview/Eraser/BlackBoxMainForm.cs
                      • branches/eraser6/CodeReview/Eraser/BlackBoxMainForm.it.resx
                      • branches/eraser6/CodeReview/Eraser/BlackBoxUploadForm.it.resx
                      • branches/eraser6/CodeReview/Eraser/MainForm.cs
                      • branches/eraser6/CodeReview/Eraser/Program.GuiProgram.cs
                      • branches/eraser6/CodeReview/Eraser/Strings.NL.resx
                      • branches/eraser6/CodeReview/Eraser/Strings.en.resx
                      • branches/eraser6/CodeReview/Eraser/Strings.it.resx
                      • branches/eraser6/CodeReview/Eraser/Strings.resx

                      Updated to trunk r1764

                      07:20 Changeset [1768] by lowjoel
                      • branches/eraser6/CodeReview/Eraser.DefaultPlugins/CustomMethodPassEditor.cs
                      • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs
                      • branches/eraser6/CodeReview/Eraser/AboutForm.cs
                      • branches/eraser6/CodeReview/Eraser/BlackBoxUploadForm.cs
                      • branches/eraser6/CodeReview/Eraser/LogForm.cs
                      • branches/eraser6/CodeReview/Eraser/MainForm.cs
                      • branches/eraser6/CodeReview/Eraser/Program.GuiProgram.cs
                      • branches/eraser6/CodeReview/Eraser/Program.cs
                      • branches/eraser6/CodeReview/Eraser/SchedulerPanel.cs
                      • branches/eraser6/CodeReview/Eraser/Settings.cs
                      • branches/eraser6/CodeReview/Eraser/SettingsPanel.cs
                      • branches/eraser6/CodeReview/Eraser/TaskDataSelectionForm.cs
                      • branches/eraser6/CodeReview/Eraser/UpdateForm.cs

                      Also specify MessageBoxOptions?.RightAlign? if the dialog which owns the message box is RTL-reading. addresses #275: Code Review

                      07:09 Changeset [1767] by lowjoel
                      • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs
                      • branches/eraser6/CodeReview/Eraser.Manager/DirectExecutor.cs
                      • branches/eraser6/CodeReview/Eraser.Manager/Method.cs
                      • branches/eraser6/CodeReview/Eraser.Manager/PRNG.cs
                      • branches/eraser6/CodeReview/Eraser.Manager/Schedule.cs
                      • branches/eraser6/CodeReview/Eraser.Manager/Task.cs

                      Do not localise exceptions which aren't meant to be seen by the user. User-visible exceptions will be dealt with in a separate ticket. Do not throw exceptions to indicate handleable errors (notably, when erasing unused space without administrator permissions) Addresses #275: Code Review

                      06:54 Changeset [1766] by lowjoel
                      • trunk/website/scripts/downloads.php
                      • Fixed naming of the download: Just add Eraser to the version number, and there's no need for branch name since it's implicit in the full version number
                      • Fixed the algorithm to set superseded status on old builds
                      06:44 Changeset [1765] by lowjoel
                      • branches/eraser6/CodeReview/Eraser.Manager/DirectExecutor.cs
                      • branches/eraser6/CodeReview/Eraser.Manager/Executor.cs
                      • branches/eraser6/CodeReview/Eraser.Manager/Task.cs
                      • branches/eraser6/CodeReview/Eraser/MainForm.cs
                      • branches/eraser6/CodeReview/Eraser/ProgressForm.cs
                      • branches/eraser6/CodeReview/Eraser/SchedulerPanel.cs

                      Removed the TaskProcessing? and TaskProcessed? events in Executor which duplicate the TaskStarted? and TaskFinished? events in Task. The TaskEventArgs? class can't disappear just yet as the TaskAdded? and TaskDeleted? events still need them (the sender is not the task, it's the executor) Addresses #275: Code Review

                      06:05 Changeset [1764] by lowjoel
                      • trunk/eraser6
                      • trunk/eraser6/Eraser/Program.cs
                      • trunk/eraser6/Eraser/Strings.NL.resx
                      • trunk/eraser6/Eraser/Strings.en.resx
                      • trunk/eraser6/Eraser/Strings.it.resx
                      • trunk/eraser6/Eraser/Strings.resx

                      Forward port from Eraser 6.0: Fixed a typo in the order of function calls (nested string translations) and updated the translations.

                      05:58 Changeset [1763] by lowjoel
                      • trunk/website/scripts/updates.php

                      Rename all download -> update since this is an updater.

                      05:51 Changeset [1762] by lowjoel
                      • trunk/website/scripts/downloads.php

                      Do not unset and reset the superseded field of the table as that re-enables downloads which have been superseded in the database only.

                      05:24 Changeset [1761] by lowjoel
                      • trunk/website/scripts/updates.php
                      • trunk/website/scripts/updates/index.php

                      Separate the downloads list printing code into a separate UpdateList? class

                      04:51 Changeset [1760] by lowjoel
                      • trunk/website/scripts/downloads.php

                      Added support to include the current version of the builds so that proper version numbers can be embedded into the database instead of just the coarse revision numbers.

                      04:48 Ticket #307 (Eraser Updater restructuring) closed by Joel
                      fixed: More fixes in r1758 and r1759. This should be done now.
                      04:47 Changeset [1759] by lowjoel
                      • branches/eraser6/CodeReview/Eraser/UpdateForm.cs

                      Give all downloaded files an index to ensure uniqueness of every file. Addresses #307: Eraser Updater restructuring

                      04:24 Changeset [1758] by lowjoel
                      • branches/eraser6/CodeReview/Eraser/UpdateForm.Designer.cs
                      • branches/eraser6/CodeReview/Eraser/UpdateForm.resx

                      Remove the mirror selection combobox since we don't support that any more. Addresses #307: Eraser Updater restructuring

                      04:23 Ticket #307 (Eraser Updater restructuring) reopened by Joel
                      Few stuff left unfixed…
                      04:13 Changeset [1757] by lowjoel
                      • branches/eraser6/CodeReview/Eraser/UpdateForm.cs

                      Remove unnecessary using. Closes #307: Eraser Updater restructuring

                      04:13 Ticket #307 (Eraser Updater restructuring) closed by Joel
                      fixed: Fixed in r1747 to r1749 and r1757.
                      03:55 Changeset [1756] by lowjoel
                      • trunk/eraser6/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs

                      Fixed progress calculation -- the old method did not take into account the different erasure methods, assuming a one-pass method. Addresses #322: Eraser 6.0.6.1743 - First Last 16KB threshhold addressed in change 1745 is 28kB rather than 32kB

                      02/08/10:

                      03:48 Changeset [1755] by lowjoel
                      • trunk/eraser6
                      • trunk/eraser6/Eraser.Manager/DirectExecutor.cs

                      Forward port from Eraser 6.0: Fixed two errors in the code: when terminating the DirectExecutor? thread, we may return from Dispose before the thread exists. Call Join, pumping messages if it is on the main thread so that such invocation calls will not throw InvalidAsynchronousStateExceptions?. In addition, when erasing files which we cannot deal with (sparse/compressed/encrypted) we need to skip the file; the old code did not.

                      03:38 Changeset [1754] by lowjoel
                      • branches/eraser6/6.0/Eraser.Manager/DirectExecutor.cs

                      Fixed two errors in the code: when terminating the DirectExecutor? thread, we may return from Dispose before the thread exists. Call Join, pumping messages if it is on the main thread so that such invocation calls will not throw InvalidAsynchronousStateExceptions?. In addition, when erasing files which we cannot deal with (sparse/compressed/encrypted) we need to skip the file; the old code did not.

                      01:24 Changeset [1753] by lowjoel
                      • trunk/eraser6
                      • trunk/eraser6/Eraser/MainForm.cs

                      Forward port from Eraser 6.0: Fixed crash when importing a corrupt/outdated task list.

                      01:20 Changeset [1752] by lowjoel
                      • branches/eraser6/6.0/Eraser/MainForm.cs

                      Fixed crash when importing a corrupt/outdated task list.

                      00:37 Changeset [1751] by lowjoel
                      • trunk/eraser6/Eraser/BlackBoxMainForm.cs

                      Fixed crash when users double-click outside a report item.

                      02/07/10:

                      09:40 Ticket #322 (Eraser 6.0.6.1743 - First Last 16KB threshhold addressed in change 1745 is ...) created by bOoGiEwOoGiE
                      Regarding Eraser 6.0.6.1743 All input files were created with fsutil at …

                      02/04/10:

                      10:02 Changeset [1750] by lowjoel
                      • branches/eraser6/CodeReview/Eraser/Strings.NL.resx
                      • branches/eraser6/CodeReview/Eraser/Strings.en.resx
                      • branches/eraser6/CodeReview/Eraser/Strings.it.resx
                      • branches/eraser6/CodeReview/Eraser/Strings.resx

                      Updated strings found in the project.

                      09:58 Changeset [1749] by lowjoel
                      • branches/eraser6/CodeReview/Version.cs.in

                      Version bump, needed for the updater to work properly.

                      08:47 Changeset [1748] by lowjoel
                      • branches/eraser6/CodeReview/Eraser/UpdateForm.cs

                      Various Updater fixes. Addresses #307: Eraser Updater restructuring

                      • Deal with update types better - instead of mapping DownloadTypes? to strings, we map it directly to the ListViewGroup?
                      • Fixed download progress messages
                      • Deal with install errors properly (Win32Exception)
                      • Fixed the status text when installing downloads
                      02:31 Changeset [1747] by lowjoel
                      • branches/eraser6/CodeReview/Eraser/UpdateForm.cs

                      Rewrote and redesigned the entire Updater infrastructure to use the ProgressManager? classes. Addresses #307: Eraser Updater restructuring

                      02/03/10:

                      17:34 Ticket #321 (Administrator privilege required) created by michel.hasenclever
                      I have installed Eraser on a Windows 7 computer, and it works. But my user …
                      04:55 Ticket #284 (Eraser.Util rewrite) closed by Joel
                      fixed: I'll mark this closed and lump it with the Code Review task.
                      04:08 Ticket #289 (Volume enumeration crash) closed by Joel
                      fixed: See source:/branches/eraser6/6.0/Eraser.Util/VolumeInfo.cs for revision …
                      03:47 Changeset [1746] by lowjoel
                      • branches/eraser6/CodeReview/Eraser.Manager/FileSystem.cs

                      Must have copied the copyrights blindly...

                      03:37 Changeset [1745] by lowjoel
                      • branches/eraser6/CodeReview
                      • branches/eraser6/CodeReview/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs
                      • branches/eraser6/CodeReview/Eraser.DefaultPlugins/FileSystems/Windows.cs
                      • branches/eraser6/CodeReview/Eraser.Manager/DirectExecutor.cs
                      • branches/eraser6/CodeReview/Eraser.Manager/FileSystem.cs
                      • branches/eraser6/CodeReview/Eraser.Manager/RemoteExecutor.cs
                      • branches/eraser6/CodeReview/Eraser.Manager/Task.cs
                      • branches/eraser6/CodeReview/Eraser.Util.Native/OpenHandle.NameResolver.cpp
                      • branches/eraser6/CodeReview/Eraser.Util/BlackBox.cs
                      • branches/eraser6/CodeReview/Eraser.Util/Eraser.Util.csproj
                      • branches/eraser6/CodeReview/Eraser.Util/Security.cs
                      • branches/eraser6/CodeReview/Eraser.Util/Shell.cs
                      • branches/eraser6/CodeReview/Eraser.Util/VolumeInfo.cs
                      • branches/eraser6/CodeReview/Eraser.msbuild
                      • branches/eraser6/CodeReview/Eraser/BlackBoxMainForm.it.resx
                      • branches/eraser6/CodeReview/Eraser/BlackBoxUploadForm.it.resx
                      • branches/eraser6/CodeReview/Eraser/LogForm.cs
                      • branches/eraser6/CodeReview/Eraser/MainForm.cs
                      • branches/eraser6/CodeReview/Eraser/Program.GuiProgram.cs
                      • branches/eraser6/CodeReview/Eraser/ProgressForm.cs
                      • branches/eraser6/CodeReview/Eraser/SchedulerPanel.cs
                      • branches/eraser6/CodeReview/Eraser/Strings.NL.resx
                      • branches/eraser6/CodeReview/Eraser/Strings.en.resx
                      • branches/eraser6/CodeReview/Eraser/Strings.it.resx
                      • branches/eraser6/CodeReview/Eraser/Strings.resx
                      • branches/eraser6/CodeReview/ShellExt/CtxMenu.cpp

                      Forward ported changes from trunk to r1743

                      02:52 Changeset [1744] by lowjoel
                      • branches/eraser6/6.0/Eraser/Program.cs
                      • branches/eraser6/6.0/Eraser/Strings.NL.resx
                      • branches/eraser6/6.0/Eraser/Strings.en.resx
                      • branches/eraser6/6.0/Eraser/Strings.it.resx
                      • branches/eraser6/6.0/Eraser/Strings.resx

                      Fixed a typo in the order of function calls (nested string translations) and updated the translations for v6.

                      01:37 Changeset [1743] by lowjoel
                      • trunk/eraser6
                      • trunk/eraser6/Eraser.Manager/FileSystem.cs

                      Forward port from Eraser 6.0: Fixed code usage error: When we find a directory in the list of plausible deniability decoy files we would add the files in the directory to the list. This results in directory contents being added recursively for every decoy we copy. In addition, we also did not check that the files in the list of decoys exist and we just picked any one. This could have resulted in non-existent files being picked for use which throws a FileNotFoundException?.

                      01:19 Changeset [1742] by lowjoel
                      • branches/eraser6/6.0/Eraser.Manager/FileSystem.cs

                      Fixed code usage error: When we find a directory in the list of plausible deniability decoy files we would add the files in the directory to the list. This results in directory contents being added recursively for every decoy we copy. In addition, we also did not check that the files in the list of decoys exist and we just picked any one. This could have resulted in non-existent files being picked for use which throws a FileNotFoundException?.

                      01:16 Changeset [1741] by lowjoel
                      • trunk/eraser6
                      • trunk/eraser6/Eraser/LogForm.cs
                      • trunk/eraser6/Eraser/ProgressForm.cs

                      Supplants r1659/r1660: When we ware waiting for event triggers we also need to ensure that the form has not yet been disposed.

                      01:14 Changeset [1740] by lowjoel
                      • branches/eraser6/6.0/Eraser/LogForm.cs
                      • branches/eraser6/6.0/Eraser/ProgressForm.cs

                      Supplants r1659: When we ware waiting for event triggers we also need to ensure that the form has not yet been disposed.

                      00:56 Changeset [1739] by lowjoel
                      • trunk/eraser6
                      • trunk/eraser6/Eraser.Manager/Task.cs

                      Forward port from Eraser 6.0: Various filesystem object target searching improvements.

                      • When listing files that need to be erased, always ensure that the file exists before querying its properties e.g. Length or Attributes.
                      • When passing reference variables, we don't need to use ref (unless we want to change the reference, but in this case, we aren't)
                      • Just like for file system objects, when we get a file or directory from the recycle bin, ensure that it exists and that it isn't a reparse point (otherwise, we can just ignore it)
                      • Split files and directory enumeration in the recycle bin targets to remove casts (which are slow)
                      00:53 Changeset [1738] by lowjoel
                      • branches/eraser6/6.0/Eraser.Manager/Task.cs
                      • When passing reference variables, we don't need to use ref (unless we want to change the reference, but in this case, we aren't)
                      • Just like for file system objects, when we get a file or directory from the recycle bin, ensure that it exists and that it isn't a reparse point (otherwise, we can just ignore it)
                      • Split files and directory enumeration in the recycle bin targets to remove casts (which are slow)
                      00:46 Changeset [1737] by lowjoel
                      • branches/eraser6/6.0/Eraser.Manager/Task.cs

                      When listing files that need to be erased, always ensure that the file exists before querying its properties e.g. Length or Attributes.

                      00:29 Changeset [1736] by lowjoel
                      • trunk/eraser6
                      • trunk/eraser6/Eraser/MainForm.cs
                      • trunk/eraser6/Eraser/SchedulerPanel.cs

                      Forward port from Eraser 6.0: Fixed potential regression in r1721 and r1633 where we added in calls to CreateHandle? so that window handles are created immediately for calls to InvokeRequired?. Check that IsHandleCreated? is false so that the handle will not be recreated and throw an InvalidOperationException?

                      00:24 Changeset [1735] by lowjoel
                      • branches/eraser6/6.0/Eraser/MainForm.cs
                      • branches/eraser6/6.0/Eraser/SchedulerPanel.cs

                      Slightly better fix than r1734.

                      00:13 Changeset [1734] by lowjoel
                      • branches/eraser6/6.0/Eraser/MainForm.cs
                      • branches/eraser6/6.0/Eraser/SchedulerPanel.cs

                      Fixed potential regression in r1721 and r1633 where we added in calls to CreateHandle? so that window handles are created immediately for calls to InvokeRequired?. Move those calls to the start of the constructor so that the handle will not be already created and throw an InvalidOperationException?

                      01/30/10:

                      06:35 Changeset [1733] by lowjoel
                      • trunk/eraser6
                      • trunk/eraser6/Eraser.Util/VolumeInfo.cs

                      Forward port from Eraser 6.0: Change the behaviour to GetVolumeInformation?: if it returns zero it is not exactly an error condition that we should throw an exception. MSDN states that some information may be returned so we should try to get that information. But, the drive is definitely not in a ready state.

                      06:33 Changeset [1732] by lowjoel
                      • branches/eraser6/6.0/Eraser.Util/VolumeInfo.cs

                      Change the behaviour to GetVolumeInformation?: if it returns zero it is not exactly an error condition that we should throw an exception. MSDN states that some information may be returned so we should try to get that information. But, the drive is definitely not in a ready state.

                      05:59 Changeset [1731] by lowjoel
                      • trunk/eraser6
                      • trunk/eraser6/Eraser.Util/VolumeInfo.cs

                      Forward port from Eraser 6.0: GetDriveType? requires the path to have a trailing backslash. The check was using the wrong parameter when checking the drive type.

                      05:56 Changeset [1730] by lowjoel
                      • branches/eraser6/6.0/Eraser.Util/VolumeInfo.cs

                      GetDriveType? requires the path to have a trailing backslash. The check was using the wrong parameter when checking the drive type.

                      05:54 Changeset [1729] by lowjoel
                      • branches/eraser6/6.0
                      • branches/eraser6/6.0/Eraser.Util/VolumeInfo.cs

                      Backport from trunk: Handle corrupt volumes properly when getting volume information from it.

                      05:51 Changeset [1728] by lowjoel
                      • trunk/eraser6/Eraser.Util/VolumeInfo.cs

                      Handle corrupt volumes properly when getting volume information from it.

                      02:40 Changeset [1727] by lowjoel
                      • trunk/eraser6/Eraser.Util/BlackBox.cs

                      When opening debug logs, open it with read sharing access (no one's complaining if someone else is reading the debug log...)

                      02:26 Changeset [1726] by lowjoel
                      • trunk/eraser6
                      • trunk/eraser6/Eraser.Util.Unlocker/Unlocker.cpp

                      Forward port from Eraser 6.0: CreateNameThread? should be unmanaged as it calls only unmanaged APIs. This saves a few p/invoke calls.

                      02:15 Changeset [1725] by lowjoel
                      • trunk/eraser6/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs

                      Fixed progress reporting for FL16KB as we call the erasure method twice so the total amount of data is 32KB, not 16KB. The progress function will then be called beyond 16KB and we get an ArgumentOutOfRange? exception.

                      01:57 Changeset [1724] by lowjoel
                      • trunk/eraser6/Eraser.Util/ShellApi.cs

                      Fixed crash when checking for low disk space notifications: if the policy is not defined the registry key object will be null and we'll trigger a NullReferenceException?.

                      00:54 Changeset [1723] by lowjoel
                      • branches/eraser6/6.0/Eraser.Util.Unlocker/Unlocker.cpp

                      CreateNameThread? should be unmanaged as it calls only unmanaged APIs. This saves a few p/invoke calls.

                      00:52 Changeset [1722] by lowjoel
                      • trunk/eraser6
                      • trunk/eraser6/Eraser/MainForm.cs

                      Forward port from Eraser6.0: Fixed regression introduced in r1634. Fixed hang when starting Eraser with --quiet and then starting another instance -- InvokeRequired? did not check for the creation of the handle, and since MainFrom?'s handle is created deferred InvokeRequired? returned false causing the controls to be created on a secondary thread. Which then locks the program.

                      00:47 Changeset [1721] by lowjoel
                      • branches/eraser6/6.0/Eraser/MainForm.cs

                      Fixed regression introduced in r1634. Fixed hang when starting Eraser with --quiet and then starting another instance -- InvokeRequired? did not check for the creation of the handle, and since MainFrom?'s handle is created deferred InvokeRequired? returned false causing the controls to be created on a secondary thread. Which then locks the program.

                      00:38 Changeset [1720] by lowjoel
                      • trunk/eraser6/Eraser.Util/AdvApi.cs

                      Experimental fix for NotSupportedException? reported by some users.

                      Note: See TracTimeline for information about the timeline view.