Timeline


and

05/16/09:

13:04 Ticket #206 (forums email activation failure) closed by Joel
invalid
12:47 Changeset [1066] by lowjoel
  • branches/eraser6/ShellExt/ShellExt.vcproj

Use the latest possible runtime libraries since that's the only thing the merge module for Windows Installer includes.

12:44 Changeset [1065] by lowjoel
  • branches/eraser6/Eraser.Unlocker/AssemblyInfo.cpp
  • branches/eraser6/Eraser.Unlocker/Eraser.Unlocker.cpp
  • branches/eraser6/Eraser.Unlocker/Eraser.Unlocker.h
  • branches/eraser6/Eraser.Unlocker/Eraser.Unlocker.rc
  • branches/eraser6/Eraser.Unlocker/Main.cpp
  • branches/eraser6/Eraser.Unlocker/NTApi.h
  • branches/eraser6/Eraser.Unlocker/Stdafx.cpp
  • branches/eraser6/Eraser.Unlocker/Stdafx.h
  • branches/eraser6/Eraser.Unlocker/Unlocker.cpp
  • branches/eraser6/Eraser.Unlocker/Unlocker.h
  • branches/eraser6/Eraser.Unlocker/resource.h

Set svn:keywords.

12:41 Changeset [1064] by lowjoel
  • branches/eraser6/Eraser.Unlocker
  • branches/eraser6/Eraser.Unlocker/AssemblyInfo.cpp
  • branches/eraser6/Eraser.Unlocker/Eraser.Unlocker.cpp
  • branches/eraser6/Eraser.Unlocker/Eraser.Unlocker.h
  • branches/eraser6/Eraser.Unlocker/Eraser.Unlocker.rc
  • branches/eraser6/Eraser.Unlocker/Eraser.Unlocker.vcproj
  • branches/eraser6/Eraser.Unlocker/Main.cpp
  • branches/eraser6/Eraser.Unlocker/NTApi.h
  • branches/eraser6/Eraser.Unlocker/Stdafx.cpp
  • branches/eraser6/Eraser.Unlocker/Stdafx.h
  • branches/eraser6/Eraser.Unlocker/Unlocker.cpp
  • branches/eraser6/Eraser.Unlocker/Unlocker.h
  • branches/eraser6/Eraser.Unlocker/resource.h
  • branches/eraser6/Eraser.sln
  • branches/eraser6/Installer/DirectoryStructure.wxs
  • branches/eraser6/Installer/Eraser.wxs
  • branches/eraser6/Installer/SignBin.bat

Added relatively untested file unlocking code. Partially implements #14 (in terms of an API and a skeleton)

11:08 Changeset [1063] by lowjoel
  • branches/eraser6/Installer/Bootstrapper/Bootstrapper.vcproj
  • branches/eraser6/Installer/DirectoryStructure.wxs
  • branches/eraser6/Installer/SignBin.bat
  • branches/eraser6/ShellExt/ShellExt.vcproj

-Restored the output file names after a project rename
-Output architecture-dependent files to a subfolder of the output folder for better cross-platform compatibility during development

10:07 Changeset [1062] by lowjoel
  • branches/eraser6/Eraser.Util/AdvApi.cs
  • branches/eraser6/Eraser.Util/KernelApi.cs
  • branches/eraser6/Eraser.Util/StreamInfo.cs
  • branches/eraser6/Eraser.Util/VolumeInfo.cs

Use the Marshal to convert Win32 error codes to .NET exceptions - we tend to get more useful exceptions.

04:37 Changeset [1061] by lowjoel
  • branches/eraser6/Eraser/UpdateForm.cs

Actually UpdateCategoriesDictionary?.GetEnumerator? is implemented, so return it instead.

04:34 Changeset [1060] by lowjoel
  • branches/eraser6/Eraser.DefaultPlugins/Eraser.DefaultPlugins.csproj
  • branches/eraser6/Eraser.Manager/Eraser.Manager.csproj
  • branches/eraser6/Eraser.Util/Properties/AssemblyInfo.cs
  • branches/eraser6/Eraser/Eraser.csproj
  • branches/eraser6/Installer/Bootstrapper/Bootstrapper.vcproj

Updated a few references and also renamed the Bootstrapper project to Installer.Bootstrapper

04:28 Changeset [1059] by lowjoel
  • branches/eraser6/Eraser.DefaultPlugins
  • branches/eraser6/Eraser.Manager
  • branches/eraser6/Eraser.Util
  • branches/eraser6/Eraser.sln

Renamed the folders too.

04:14 Changeset [1058] by lowjoel
  • branches/eraser6/DefaultPlugins/Eraser.DefaultPlugins.csproj
  • branches/eraser6/DefaultPlugins/Properties/AssemblyInfo.cs
  • branches/eraser6/Eraser.sln
  • branches/eraser6/Eraser/Eraser.csproj
  • branches/eraser6/Eraser/Properties/AssemblyInfo.cs
  • branches/eraser6/Manager/Eraser.Manager.csproj
  • branches/eraser6/Manager/Properties/AssemblyInfo.cs
  • branches/eraser6/Util/Eraser.Util.csproj

Renamed the Eraser projects to follow the assembly name

04:10 Changeset [1057] by lowjoel
  • branches/eraser6/Eraser/LogForm.cs

This particular exception handler seems to be unnecessary now.

04:09 Changeset [1056] by lowjoel
  • branches/eraser6/Manager/Task.cs

On top of UnauthorizedAccessExceptions?, we also get IOExceptions for locked files.

05/12/09:

20:01 Ticket #208 (Slow free space wipe) created by Posts
Current full usage renders the computer useless, and requires the computer …
09:37 Ticket #72 (Block the use of Empty Recycle Bin so that users can only securely erase ...) closed by Joel
duplicate: I'd actually even mark it as a duplicate of #16.
09:35 Ticket #71 (Clean up of drives in Windows) closed by Joel
duplicate: Yep, duplicate

05/11/09:

13:00 Ticket #200 (Enhancing naming schemes for Default Erasure Methods) closed by trac-robot
This ticket was closed automatically by the system. It was previously set …
12:00 Ticket #201 (Running Eraser from the windows shell won't start the Eraser main program) closed by trac-robot
This ticket was closed automatically by the system. It was previously set …
10:52 Changeset [1055] by lowjoel
  • branches/eraser6/Eraser/Program.cs

Woops, made the property an auto-implemented property and forgot to remove the backing variable.

10:39 Changeset [1054] by lowjoel
  • branches/eraser6/Eraser/Program.cs

Always call the OnExitInstance? function. When the systme is shutting down it doesn't get called before. Now we chain up with the main form so that even if shutdowns are ordered we get a chance to clean up/do whatever post-application run processing we need to do.

08:58 Changeset [1053] by lowjoel
  • branches/eraser6/Manager/Language.cs

Slightly better definition for operator!= for the Manager.Language class

08:57 Changeset [1052] by lowjoel
  • branches/eraser6/Eraser/SettingsPanel.cs
  • branches/eraser6/Manager/Language.cs

Allow the Manager.Language class to be compared with the CultureInfo? class which it manages.

05/10/09:

09:46 Changeset [1051] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs

If the user specifies that a folder should be deleted if empty, and the folder turns out to be a volume mount point, don't try to delete the folder.

  1. The folder won't be deleted if it is the root, i.e. try erasing D:\ and deleting it if empty.
  2. The user may not want to delete a mount point, i.e. a volume mounted at C:\Data
05:57 Changeset [1050] by lowjoel
  • branches/eraser6/Manager/Task.cs

When erasing Recycle bin files erase ADSes before the unnamed stream (following the order of the other file erasures)

05:56 Changeset [1049] by lowjoel
  • branches/eraser6/Util/KernelApi.cs
  • branches/eraser6/Util/StreamInfo.cs

Use SetFileAttributes? directly when dealing with streams since that will support ADSes but not the .NET variant (which does path checking.)

04:41 Changeset [1048] by lowjoel
  • branches/eraser6/Eraser/LogForm.resx

Fixed the LogForm?'s resizing: the buttons aren't all over the place now.

04:40 Changeset [1047] by lowjoel
  • branches/eraser6/Installer/DirectoryStructure.wxs

DragDropLib? needs to be deployed too.

04:37 Changeset [1046] by lowjoel
  • branches/eraser6/Eraser/SchedulerPanel.cs
  • branches/eraser6/Eraser/Strings.NL.resx
  • branches/eraser6/Eraser/Strings.en.resx
  • branches/eraser6/Eraser/Strings.resx

The generated code seemed to have appended %1 because we provided a string constant. This has been fixed to use a variable to prevent csgettext from generating the wrong string.

04:34 Changeset [1045] by lowjoel
  • branches/eraser6/Manager/Task.cs

Default the targets to the appropriate erasure method. FileSystemObjectTargets? will use the default file/folder erasure, and UnusedSpaceTarget? will use the default unused erasure method.

04:28 Changeset [1044] by lowjoel
  • branches/eraser6/Eraser/Eraser.csproj
  • branches/eraser6/Eraser/SchedulerPanel.Designer.cs
  • branches/eraser6/Eraser/SchedulerPanel.cs
  • branches/eraser6/Eraser/SchedulerPanel.resx
  • branches/eraser6/Eraser/Strings.NL.resx
  • branches/eraser6/Eraser/Strings.en.resx
  • branches/eraser6/Eraser/Strings.resx

Implemented drag-and-drop into the scheduler. Task Lists are imported and all other files are erased.

04:26 Changeset [1043] by lowjoel
  • branches/eraser6/Util/Util.csproj

I remembered I removed the NativeMethods? folder?

04:26 Changeset [1042] by lowjoel
  • branches/eraser6/Dependencies/DragDropLib.dll
  • branches/eraser6/Dependencies/ISAAC.dll

-Removed ISAAC since we don't use it anymore
-Added DragDropLib? from http://blogs.msdn.com/adamroot/pages/shell-style-drag-and-drop-in-net-part-3.aspx - we're using it for drag and drop capabilities into the scheduler. Sources can be found there and it was compiled verbatim and then signed with my Strong Name Key.

02:32 Changeset [1041] by lowjoel
  • branches/eraser6/Manager/Task.cs

GetPathADSes takes a value by "out", meaning whatever value the totalSize variable had before would have been overwritten. Fixed the code to work properly now. This would have reported the wrong amount of data that needs to be written to erase the file.

02:31 Changeset [1040] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Util/StreamInfo.cs

Prevent the file from being re-created after an erasure (wrong file creation constant passed to CreateFile?)

05/09/09:

14:27 Changeset [1039] by lowjoel
  • branches/eraser6/Util/StreamInfo.cs

Finally fixed all the errors during file erasures. This one is a misuse of the OpenHandle? function.

14:13 Changeset [1038] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs

Get the file area before the executor locks it for erasure.

13:27 Changeset [1037] by lowjoel
  • branches/eraser6/Util/KernelApi.cs
  • branches/eraser6/Util/StreamInfo.cs

Implemented Stream Deletion.

12:53 Changeset [1036] by lowjoel
  • branches/eraser6/Eraser/ProgressForm.cs

I'll be a little conservative and force the line break a little prematurely. Kinda hack to make sure we dont end up with lines with just one character.

12:44 Changeset [1035] by lowjoel
  • branches/eraser6/Util/KernelApi.cs

WIN32_STREAM_ID is a structure with packing 1 - the native packing doesn't seem to give a structure of the right size. I picked Pack=1 because this is meant to be stored to file and files don't usually have alignments (unlike memory)

12:42 Changeset [1034] by lowjoel
  • branches/eraser6/Util/StreamInfo.cs

Woops. Property setters for the CAM datetimes need a writeable handle.

12:04 Changeset [1033] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/Strings.en.resx
  • branches/eraser6/Manager/Strings.nl.resx
  • branches/eraser6/Manager/Strings.resx
  • branches/eraser6/Util/KernelApi.cs
  • branches/eraser6/Util/StreamInfo.cs

Allow date Created, date Accessed and date Modified values to be set on streams.

09:42 Changeset [1032] by lowjoel
  • branches/eraser6/Manager/FileSystem.cs
  • branches/eraser6/Manager/Strings.en.resx
  • branches/eraser6/Manager/Strings.nl.resx
  • branches/eraser6/Manager/Strings.resx

Support FAT32 as well (as part of the FatFileSystem? provider) - so declare it so

09:34 Ticket #175 (Schedule screen won’t clear properly.) closed by Joel
fixed
09:34 Ticket #175 (Schedule screen won’t clear properly.) reopened by Joel
OK I've figured out what actually happened and this has been fixed in …
09:13 Changeset [1031] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/Strings.en.resx
  • branches/eraser6/Manager/Strings.nl.resx
  • branches/eraser6/Manager/Strings.resx
  • branches/eraser6/Util/StreamInfo.cs

-Added a check at the end of the StreamInfo? OpenFile? function to ensure that the return handle is indeed valid - this caused file corruption for me!
-The File Cluster Tip erasure function is now slightly more resilient to errors

08:14 Changeset [1030] by lowjoel
  • branches/eraser6/ShellExt/CtxMenu.cpp

Ack - forgot to remove my debug code.

08:13 Changeset [1029] by lowjoel
  • branches/eraser6/Installer/Eraser.wxs

Turn off cabinet compression in the MSIs because prior to distribution we'll compress them using 7-zip while integrating them into the bootstrapper. The result is that the installer size went from ~11mb to ~3mb.

07:55 Changeset [1028] by lowjoel
  • branches/eraser6/DefaultPlugins/CustomMethodPassEditor.cs
  • branches/eraser6/Eraser/AboutForm.cs
  • branches/eraser6/Eraser/BasePanel.cs
  • branches/eraser6/Eraser/MainForm.cs
  • branches/eraser6/Eraser/ProgressForm.cs
  • branches/eraser6/Eraser/TaskDataSelectionForm.cs
  • branches/eraser6/Util/UxThemeApi.cs

All forms should call UXThemeApi.UpdateControlTheme? so that relevant theming upgrades can be made (eg list-views) and that the proper system font can be assigned (Tahoma on XP, Segoe UI >= Vista). This prevents the ugly use of MS Sans Serif under XP.

The designers still use Segoe UI since that is the font we are designing for.

07:44 Changeset [1027] by lowjoel
  • branches/eraser6/Installer/DirectoryStructure.wxs

-Remove ISAAC since we no longer support it
-Register our shell handler with the recycle bin so our entry will appear in the context menu

07:42 Ticket #50 (Grey out Recycle Bin context menu entries when Bin is empty) closed by Joel
fixed: Ok, works on Vista too. Implemented in r1026.
07:42 Changeset [1026] by lowjoel
  • branches/eraser6/ShellExt/CtxMenu.cpp

-Disable the context menu for the recycle bin entry when there are no files in the recycle bin. Implements #50.
-Fixed the owner drawing code for Windows XP - the context menu doesn't draw itself as disabled even when ODS_DISABLED is set.

06:47 Changeset [1025] by lowjoel
  • branches/eraser6/ShellExt/CtxMenu.cpp

Link to SHGetStockIconInfo dynamically since we are supposed to support Windows XP.

02:06 Ticket #50 (Grey out Recycle Bin context menu entries when Bin is empty) reopened by Joel
Actually after writing the context menu extension for v6, this MAY be …
02:06 Changeset [1024] by lowjoel
  • branches/eraser6/Manager/PRNG.cs
  • branches/eraser6/Manager/RemoteExecutor.cs

-Removed the extra catch(OperationCanceledException?) in source:/branches/eraser6/Manager/RemoteExecutor.cs since the surrounding exception handler will already handle it
-Converted PRNG retrieval code flow to not depend on exception handlers (supplements r1021)

02:00 Changeset [1023] by lowjoel
  • branches/eraser6/Eraser/Eraser.csproj
  • branches/eraser6/Eraser/ProgressForm.en.resx
  • branches/eraser6/Eraser/TaskDataSelectionForm.en.resx

Currently all our language-neutral resources are English ones, so we don't need separate English resource files.

01:55 Ticket #182 (Calculating Enhancement.) closed by Joel
fixed: Implemented in r1022.
01:51 Changeset [1022] by lowjoel
  • branches/eraser6/Eraser/ProgressForm.Designer.cs
  • branches/eraser6/Eraser/ProgressForm.cs
  • branches/eraser6/Eraser/ProgressForm.en.resx
  • branches/eraser6/Eraser/ProgressForm.resx
  • branches/eraser6/Eraser/Strings.NL.resx
  • branches/eraser6/Eraser/Strings.en.resx
  • branches/eraser6/Eraser/Strings.resx
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/Strings.en.resx
  • branches/eraser6/Manager/Strings.nl.resx
  • branches/eraser6/Manager/Strings.resx
  • branches/eraser6/Manager/Task.cs

Huge improvements in displaying progress text to user:
-When the progress dialog is first opened a marquee saying that the progress is being queried is shown.
-After which, when an unused space erase is conducted, during the file searching phase the names of the folders being traversed are now reported to the user
-The generic "Overwriting..." message is replaced with more useful text: "Searching for files' cluster tips", "Erasing cluster tips" etc
-The ProgressManager? class now handles the case where the Speed property is called when the time difference is near zero; that led to a floating point division by zero which led to wrong results
-Long filenames are forced to wrap at every line

05/08/09:

18:16 Changeset [1021] by cjax
  • branches/eraser6/Manager/PRNG.cs
  • branches/eraser6/Manager/RemoteExecutor.cs

Minor EH as CF changes.

15:22 Changeset [1020] by lowjoel
  • branches/eraser6/Util/ShellApi.cs

Don't pass the main form handle when calling SHEmptyRecycleBin. The call may be from a secondary thread and we'll get an exception for attempting to use the window handle from a secondary thread.

15:18 Changeset [1019] by lowjoel
  • branches/eraser6/Eraser/SchedulerPanel.cs

The Progress Bar's tag should be the currently executing item instead of the currently executing item's index since indices may change. This allows us to reposition the gauge after a user does task list management operations (eg deleting tasks). This also fixes the problem of progress bars appearing unaligned to its parent task after a task has been deleted and may fix other problems with the progress bar.

10:17 Changeset [1018] by lowjoel
  • branches/eraser6/Eraser/MainForm.Designer.cs
  • branches/eraser6/Eraser/MainForm.cs
  • branches/eraser6/Eraser/MainForm.resx
  • branches/eraser6/Eraser/ToolBar.cs

Moved more of the drawing to be control-based instead of owner drawing:
-Background colour is now set on the MainForm?, then the toolbar and the Eraser logo is set to Transparent background
-The Eraser Logo is now a discrete control
-The Eraser Logo, when clicked, brings you to the Eraser Website

10:02 Changeset [1017] by lowjoel
  • branches/eraser6/Eraser/MainForm.Designer.cs
  • branches/eraser6/Eraser/MainForm.resx
  • branches/eraser6/Eraser/ToolBar.cs

Fixed the padding/margin values in the toolbar such that it looks more organised. Padding now defaults to 0 and margin between items are 10px.

09:44 Changeset [1016] by lowjoel
  • branches/eraser6/ShellExt/CtxMenu.cpp
  • branches/eraser6/ShellExt/stdafx.h
  • branches/eraser6/ShellExt/targetver.h

Display the Security Shield with all its glory: query the shell for the icon instead.

05/07/09:

14:45 Changeset [1015] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/FileSystem.cs

-Reset a file's read-only flag only after an erase failed
-NTFS' minimum date is 1601 January 1 UTC. Make sure that it is UTC when converting dates (the earlier bug wasn't fixed.)

14:29 Changeset [1014] by lowjoel
  • branches/eraser6/Manager/FileSystem.cs

Fixed the valid minimum date range for NTFS.

14:15 Changeset [1013] by lowjoel
  • branches/eraser6/Eraser/Program.cs
  • branches/eraser6/Installer/DirectoryStructure.wxs
  • branches/eraser6/Resources/EraserTaskList.ico
  • branches/eraser6/ShellExt/ShellExt.rc
  • branches/eraser6/ShellExt/ShellExt.vcproj
  • branches/eraser6/ShellExt/resource.h

Added Task List shell integration to Eraser - implemented the Shell icon, Shell open verb, but not the RemoteExecutor?. Draft file icon thanks to Dennis.

12:52 Ticket #195 (Crash when using context menu erase option) closed by Joel
fixed: I've rewritten the Eraser inter-process communications in …
12:48 Changeset [1012] by lowjoel
  • branches/eraser6/Manager/Executor.cs

Document the fact that LoadFromStream? is meant to append tasks instead of overwrite tasks in the list.

12:45 Ticket #193 (Allow for export/backup of scheduled tasks) closed by Joel
fixed: Implemented in r1011. Please check that in future when new versions are …
12:44 Changeset [1011] by lowjoel
  • branches/eraser6/Eraser/MainForm.Designer.cs
  • branches/eraser6/Eraser/MainForm.cs
  • branches/eraser6/Eraser/MainForm.resx
  • branches/eraser6/Manager/DirectExecutor.cs

Allow users to export and import task lists. Implements #193

10:51 Changeset [1010] by lowjoel
  • branches/eraser6/Eraser/TaskDataSelectionForm.cs

Removed an unnecessary if statement.

08:42 Changeset [1009] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/EntropySource.cs
  • branches/eraser6/Util/NTApi.cs
  • branches/eraser6/Util/NetApi.cs
  • branches/eraser6/Util/ShellApi.cs
  • branches/eraser6/Util/VolumeInfo.cs

Last bit on naming

08:38 Changeset [1008] by lowjoel
  • branches/eraser6/Util/Util.csproj

Fix the casing of the paths.

08:31 Changesets [1005-1007] by lowjoel
  • branches/eraser6/Eraser/LogForm.cs
  • branches/eraser6/Eraser/MainForm.cs
  • branches/eraser6/Eraser/Program.cs
  • branches/eraser6/Eraser/SchedulerPanel.cs
  • branches/eraser6/Eraser/SettingsPanel.cs
  • branches/eraser6/Eraser/TaskPropertiesForm.cs
  • branches/eraser6/Eraser/UpdateForm.cs
  • branches/eraser6/Eraser/LogForm.cs
  • branches/eraser6/Eraser/MainForm.cs
  • branches/eraser6/Eraser/SchedulerPanel.cs
  • branches/eraser6/Eraser/SettingsPanel.cs
  • branches/eraser6/Eraser/TaskPropertiesForm.cs
  • branches/eraser6/Eraser/UpdateForm.cs
  • branches/eraser6/DefaultPlugins/CustomMethodEditorForm.cs
  • branches/eraser6/DefaultPlugins/SettingsForm.cs
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/EntropySource.cs
  • branches/eraser6/Manager/Plugins.cs
  • branches/eraser6/Manager/Settings.cs
  • branches/eraser6/Util/AdvApi.cs
  • branches/eraser6/Util/File.cs
  • branches/eraser6/Util/KernelApi.cs
  • branches/eraser6/Util/MsCorEEApi.cs
  • branches/eraser6/Util/NTApi.cs
  • branches/eraser6/Util/NetApi.cs
  • branches/eraser6/Util/NtfsApi.cs
  • branches/eraser6/Util/ShellApi.cs
  • branches/eraser6/Util/StreamInfo.cs
  • branches/eraser6/Util/UserApi.cs
  • branches/eraser6/Util/UxThemeApi.cs
  • branches/eraser6/Util/VolumeInfo.cs
  • branches/eraser6/Util/WintrustApi.cs

Renaming the filenames of all API files and names of classes to follow C# convention.

08:27 Changeset [1004] by lowjoel
  • branches/eraser6/Util/KernelApi2.cs
  • branches/eraser6/Util/MsCorEEApi2.cs
  • branches/eraser6/Util/NTApi2.cs
  • branches/eraser6/Util/NetApi2.cs
  • branches/eraser6/Util/NtfsApi2.cs
  • branches/eraser6/Util/ShellApi2.cs
  • branches/eraser6/Util/UserApi2.cs
  • branches/eraser6/Util/UxThemeApi2.cs
  • branches/eraser6/Util/WintrustApi2.cs

Renaming the filenames of all API files to follow C# convention.

08:20 Changeset [1003] by lowjoel
  • branches/eraser6/Eraser/Eraser.csproj
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Util/AdvApi.cs
  • branches/eraser6/Util/Permissions.cs
  • branches/eraser6/Util/Util.csproj

Combined CryptAPI.cs and Permissions.cs to AdvApi?.cs.

08:12 Changeset [1002] by lowjoel
  • branches/eraser6/DefaultPlugins/EraseGOSTP50739.cs
  • branches/eraser6/DefaultPlugins/EraseHMGIS5.cs
  • branches/eraser6/DefaultPlugins/EraseRCMP_TSSIT_OPS_II.cs
  • branches/eraser6/DefaultPlugins/EraseUSAF5020.cs
  • branches/eraser6/DefaultPlugins/EraseUSArmyAR380_19.cs
  • branches/eraser6/DefaultPlugins/EraseVSITR.cs
  • branches/eraser6/Util/NtfsAPI.cs
  • branches/eraser6/Util/ShellAPI.cs
  • branches/eraser6/Util/UxThemeAPI.cs
  • branches/eraser6/Util/WintrustAPI.cs

Set svn:keywords property

08:06 Changeset [1001] by lowjoel
  • branches/eraser6/Util/File.cs
  • branches/eraser6/Util/NetAPI.cs
  • branches/eraser6/Util/ShellAPI.cs
  • branches/eraser6/Util/UserAPI.cs
  • branches/eraser6/Util/UxThemeAPI.cs

A bit more reshuffling to place functions in the correct API file.

07:59 Changeset [1000] by lowjoel
  • branches/eraser6/Eraser/TaskDataSelectionForm.cs
  • branches/eraser6/Util/File.cs
  • branches/eraser6/Util/KernelAPI.cs
  • branches/eraser6/Util/NTAPI.cs
  • branches/eraser6/Util/Permissions.cs
  • branches/eraser6/Util/StreamInfo.cs
  • branches/eraser6/Util/VolumeInfo.cs

-Move all API calls out of these helper classes and into the relevant *API files' NativeMethods? class.
-Use automatic properties where possible
-Call FreeHGlobal after every call to AllocHGlobal
-Use .NET functions where possible
-Cast .NET constants to integer when passing to native functions, where possible

07:14 Changeset [999] by lowjoel
  • branches/eraser6/Util/KernelAPI.cs
  • branches/eraser6/Util/NetAPI.cs
  • branches/eraser6/Util/ShellAPI.cs
  • branches/eraser6/Util/UxThemeAPI.cs

-Give slightly more intuitive parameter names
-Specify MarshalAs? for bool's
-Forgot to use the provided parameter in NetAPI.NetStatisticsGet?

07:05 Changeset [998] by lowjoel
  • branches/eraser6/Util/CryptAPI.cs
  • branches/eraser6/Util/MsCorEEAPI.cs
  • branches/eraser6/Util/NTAPI.cs
  • branches/eraser6/Util/ShellAPI.cs
  • branches/eraser6/Util/UxThemeAPI.cs

-Shifted all native functions into NativeMethods?
-Specify what is meant by marshalling a bool - more often than not it is a BOOL (UnmanagedType?.Boolean)

07:03 Changeset [997] by lowjoel
  • branches/eraser6/Util/KernelAPI.cs

-Removed the STARTUPINFO structure/GetStartupInfo function since no more code uses it.
-Added ThreadExecutionState?.None for standardisation.
-Be explicit about what is meant by marshalling a boolean value: C++ has got the BOOL and the bool type which are different unmanaged types.

07:00 Changeset [996] by lowjoel
  • branches/eraser6/Manager/EntropySource.cs

Runtime fixes for the EntropySource?.

04:03 Changeset [995] by lowjoel
  • branches/eraser6/DefaultPlugins/DefaultPlugins.csproj
  • branches/eraser6/Util/Util.csproj

Disable unsafe blocks.

03:24 Changeset [994] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/EntropySource.cs
  • branches/eraser6/Util/KernelAPI.cs
  • branches/eraser6/Util/MsCorEEAPI.cs
  • branches/eraser6/Util/NTAPI.cs
  • branches/eraser6/Util/NetAPI.cs
  • branches/eraser6/Util/NtfsAPI.cs
  • branches/eraser6/Util/Permissions.cs
  • branches/eraser6/Util/ShellAPI.cs
  • branches/eraser6/Util/UserAPI.cs
  • branches/eraser6/Util/UxThemeAPI.cs
  • branches/eraser6/Util/WintrustAPI.cs

Code cleanup.

-Abstract away the native API calls and put them behind managed class functions.
-Place all imports from system DLLs into the NativeMethods? class
-All NativeMethods? classes should be internal static

02:57 Changeset [993] by lowjoel
  • branches/eraser6/Eraser/UpdateForm.cs
  • branches/eraser6/Manager/EntropySource.cs
  • branches/eraser6/Manager/Manager.csproj
  • branches/eraser6/Util/File.cs
  • branches/eraser6/Util/KernelAPI.cs
  • branches/eraser6/Util/Permissions.cs
  • branches/eraser6/Util/ShellAPI.cs
  • branches/eraser6/Util/UserAPI.cs

Code cleanup.

-Abstract away the native API calls and put them behind managed class functions.
-Place all imports from system DLLs into the NativeMethods? class
-Replaced a lot of the native DLL calls for entropy sources to their managed equivalents. Some native providers have been removed in favour of the managed counterparts

05/06/09:

11:50 Changeset [992] by lowjoel
  • branches/eraser6/Util/File.cs
  • branches/eraser6/Util/ShellAPI.cs
  • branches/eraser6/Util/StreamInfo.cs
  • branches/eraser6/Util/Util.csproj
  • branches/eraser6/Util/UxThemeAPI.cs

Documentation fixes.

11:39 Changeset [991] by lowjoel
  • branches/eraser6/Manager/FileSystem.cs
  • branches/eraser6/Manager/Strings.en.resx
  • branches/eraser6/Manager/Strings.nl.resx
  • branches/eraser6/Manager/Strings.resx

Factor out the WindowsFileSystem? class for FatFileSystem? and NtfsFileSystem? to inherit since their secure file deletion functions only differ by the minimum date/time the file system supports.

11:27 Changesets [989-990] by lowjoel
  • branches/eraser6/DefaultPlugins/Strings.en.resx
  • branches/eraser6/DefaultPlugins/Strings.nl.resx
  • branches/eraser6/DefaultPlugins/Strings.resx
  • branches/eraser6/DefaultPlugins/DefaultPlugins.csproj
  • branches/eraser6/DefaultPlugins/Plugin.cs
  • branches/eraser6/DefaultPlugins/RNGISAAC.cs

Removed ISAAC after consultation with Professor Ling San (see my rc5 announcement.)

10:58 Changeset [988] by lowjoel
  • branches/eraser6/Eraser/Program.cs
  • branches/eraser6/Manager/Settings.cs
  • branches/eraser6/ShellExt/CtxMenu.cpp

Use registry-native types to store the settings where possible, allowing users to set custom values and for the shell extension to always know where to find the correct enabled value.

10:35 Changeset [987] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/Task.cs

Pass the task list owner to the deserialisation constructor for each task so they can get the Executor instance automatically.

09:47 Changeset [986] by lowjoel
  • branches/eraser6/DefaultPlugins/EraseCustom.cs
  • branches/eraser6/DefaultPlugins/Strings.en.resx
  • branches/eraser6/DefaultPlugins/Strings.nl.resx
  • branches/eraser6/DefaultPlugins/Strings.resx

Throw the exception with localised errors since this exception will probably be user-visible.

08:59 Changeset [985] by lowjoel
  • branches/eraser6/Eraser/AboutForm.cs

Link to our new website.

08:30 Changeset [984] by lowjoel
  • branches/eraser6/Manager/RemoteExecutor.cs

Fixed a regression in r976: The server semaphore could be destroyed before the servers were closed due to a race condition.

08:17 Changeset [983] by lowjoel
  • branches/eraser6/Eraser/LogForm.Designer.cs
  • branches/eraser6/Eraser/LogForm.cs
  • branches/eraser6/Eraser/LogForm.resx

The Log viewer now supports copying to Word/Notepad? as plain text and to Excel as formatted data.

07:56 Changeset [982] by lowjoel
  • branches/eraser6/Eraser/ProgressForm.cs
  • branches/eraser6/Eraser/SchedulerPanel.cs

Cancel the task properly - the UnqueueTask? function no longer cancels tasks.

05/05/09:

13:19 Changeset [981] by lowjoel
  • branches/eraser6/ShellExt/CtxMenu.cpp

Oops, forgot to remove debug code.

13:15 Ticket #207 (Restricted characters in filename) closed by Joel
fixed: Fixed in r977.
13:12 Changeset [980] by lowjoel
  • branches/eraser6/Eraser.sln

Don't build the installer in Debug builds (not now, anyway)

13:11 Changeset [979] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs

When loading a task list, we need to re-assign the Owner otherwise the task will be left "hanging".

13:10 Changeset [978] by lowjoel
  • branches/eraser6/Manager/RemoteExecutor.cs

Run now replaces Connect. Use the IsConnected? property to ascertain whether the Remote Exector client is connected.

13:08 Changeset [977] by lowjoel
  • branches/eraser6/Eraser/Program.cs
  • branches/eraser6/ShellExt/CtxMenu.cpp

Added escaping and unescaping code for command line generation/parsing to enable pathnames containing = and ,. Fixes #207.

10:14 Changeset [976] by lowjoel
  • branches/eraser6/Manager/RemoteExecutor.cs

-Fixed the shutdown of Eraser: the RemoteExecutor? rewrite introduced a bug where the server instances continued to listen thus preventing the shutdown of Eraser.
-Always call base.Dispose since the base class may need to do cleaning up

10:04 Changeset [975] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs

Delete the folder the user asked for erasure only if it is empty! Fixes the problem in http://bbs.heidi.ie/viewtopic.php?f=2&t=5556

10:01 Changeset [974] by lowjoel
  • branches/eraser6/Eraser/LogForm.Designer.cs
  • branches/eraser6/Eraser/LogForm.cs
  • branches/eraser6/Eraser/LogForm.resx

-Don't change the dialog font and add the bevel line.
-Factor out the code dealing with copy/clear button enabling to the EnableButtons? function.

09:28 Ticket #207 (Restricted characters in filename) created by Joel
Eraser 6's shell extension passes arguments to Eraser by the command line. …

05/04/09:

01:31 Ticket #206 (forums email activation failure) created by Posts
account name: posts predictable, happens all the time, email activation …

05/02/09:

14:58 Changeset [973] by lowjoel
  • branches/eraser6/Eraser/MainForm.Designer.cs
  • branches/eraser6/Eraser/MainForm.resx

Strange, I thought I connected those event handlers already...

14:46 Changeset [972] by cjax
  • branches/eraser6/Eraser/LogForm.Designer.cs
  • branches/eraser6/Eraser/LogForm.cs
  • branches/eraser6/Eraser/LogForm.resx

If the LogForm? was empty 'clear/copy to clip board' buttons
caused exceptions. That is now fixed.

11:34 Changeset [971] by lowjoel
  • branches/eraser6/Manager/RemoteExecutor.cs

Catch the OperationCanceledException? since on XP this is raised during program shutdown (and is harmless in this context)

11:33 Changeset [970] by lowjoel
  • branches/eraser6/Eraser/MainForm.Designer.cs
  • branches/eraser6/Eraser/MainForm.cs
  • branches/eraser6/Eraser/MainForm.resx
  • branches/eraser6/Eraser/ToolBar.cs
  • branches/eraser6/Util/UxThemeAPI.cs

-Separated the ToolBar? drop-down menus from the toolbar itself - I didn't want to use the same renderer because the renderer will have to implement menu item rendering too which is what UxThemeMenuRenderer? does. But that only works on Vista+
-Fixed all the overloads for menus in UpdateControlTheme?. Menus/toolbars all use the same interface now.

08:44 Changeset [969] by lowjoel
  • branches/eraser6/Util/UxThemeAPI.cs

Forgot to uncomment code that was for debugging purposes.

08:42 Changeset [968] by lowjoel
  • branches/eraser6/Eraser/ToolBar.cs

Inflate the text rectangle a bit to prevent cropping of the text.

08:41 Changeset [967] by lowjoel
  • branches/eraser6/Eraser/MainForm.Designer.cs
  • branches/eraser6/Eraser/MainForm.resx

Aparently copying and pasting the menu items didn't copy their event handlers.

08:35 Changeset [966] by lowjoel
  • branches/eraser6/Eraser/MainForm.Designer.cs
  • branches/eraser6/Eraser/MainForm.cs
  • branches/eraser6/Eraser/MainForm.resx
  • branches/eraser6/Eraser/SchedulerPanel.cs
  • branches/eraser6/Eraser/SettingsPanel.cs
  • branches/eraser6/Eraser/Strings.NL.resx
  • branches/eraser6/Eraser/Strings.en.resx
  • branches/eraser6/Eraser/Strings.resx
  • branches/eraser6/Eraser/TaskPropertiesForm.cs
  • branches/eraser6/Eraser/ToolBar.cs
  • branches/eraser6/Util/UxThemeAPI.cs

-Recoded the Toolbar class to work like a standard MenuBar?. This allow for accelerators to work on the menus.
-The UxThemeAPI UpdateControlTheme? function also sets the themes on registered context menus and menu bars. This reduces the number of explicit calls.

06:15 Changeset [965] by lowjoel
  • branches/eraser6/Util/UxThemeAPI.cs

Render the arrow for menu items with submenus.

04:23 Changeset [964] by lowjoel
  • branches/eraser6/Util/UxThemeAPI.cs

-No need to call the base class functions since we handle the function calls
-For drawing the menu text always use DT_SINGLELINE (TextFormatFlags?.SingleLine?) because the menu textshould beon one line - this allow the vertical alignment flags to be used too.
-Destroy the hTheme once we're done with the drawing

03:53 Changeset [963] by lowjoel
  • branches/eraser6/Eraser/MainForm.Designer.cs
  • branches/eraser6/Eraser/MainForm.resx

The Open Eraser menu from the notification area menu should be bolded as it is the default double-click action.

03:50 Changeset [962] by lowjoel
  • branches/eraser6/DefaultPlugins/CustomMethodEditorForm.cs
  • branches/eraser6/DefaultPlugins/SettingsForm.cs
  • branches/eraser6/Eraser/LogForm.cs
  • branches/eraser6/Eraser/MainForm.cs
  • branches/eraser6/Eraser/SchedulerPanel.cs
  • branches/eraser6/Eraser/SettingsPanel.cs
  • branches/eraser6/Eraser/TaskPropertiesForm.cs
  • branches/eraser6/Eraser/UpdateForm.cs
  • branches/eraser6/Util/Util.csproj
  • branches/eraser6/Util/UxThemeAPI.cs

Added the UxThemeAPI and UxThemeMenuRenderer? classes. They allow forms to use the new Vista-styled controls (most notably ListView?) and switches menu rendering to the UxTheme? rendering when it detects Vista or later.

05/01/09:

06:45 Changeset [961] by lowjoel
  • branches/eraser6/Eraser/Resources/BackgroundLogo.png

Preparing for rc5.

06:19 Ticket #91 (Code Cleanup) closed by Joel
fixed: I think this is done this week from r898 to about r960
05:40 Changeset [960] by lowjoel
  • branches/eraser6/Dialog Designs
  • branches/eraser6/Resources/Source/Dialogs/Main Dialog Background.psd
  • branches/eraser6/Resources/Source/Dialogs/Main Dialog.psd
  • branches/eraser6/Resources/Source/Dialogs/Progress Dialog 2.psd

Merged the Dialog Designs folder with the Dialogs folder in resources.

05:31 Changeset [959] by lowjoel
  • branches/eraser6/CustomDictionary.xml

Expand our dictionary.

05:31 Changeset [958] by lowjoel
  • branches/eraser6/Eraser/SettingsPanel.cs

Fixed a crash on startup

05:24 Changeset [957] by lowjoel
  • branches/eraser6/Eraser/TaskPropertiesForm.cs
  • branches/eraser6/Manager/FileSystem.cs
  • branches/eraser6/Manager/Schedule.cs

No publicly accessible nested types

05:19 Changeset [956] by lowjoel
  • branches/eraser6/DefaultPlugins/CustomMethodEditorForm.cs
  • branches/eraser6/DefaultPlugins/EraseCustom.cs
  • branches/eraser6/DefaultPlugins/EraseDoD.cs
  • branches/eraser6/DefaultPlugins/EraseFirstLast16KB.cs
  • branches/eraser6/DefaultPlugins/EraseGOSTP50739.cs
  • branches/eraser6/DefaultPlugins/EraseGutmann.cs
  • branches/eraser6/DefaultPlugins/EraseHMGIS5.cs
  • branches/eraser6/DefaultPlugins/EraseRCMP_TSSIT_OPS_II.cs
  • branches/eraser6/DefaultPlugins/EraseRandom.cs
  • branches/eraser6/DefaultPlugins/EraseSchneier.cs
  • branches/eraser6/DefaultPlugins/EraseUSAF5020.cs
  • branches/eraser6/DefaultPlugins/EraseUSArmyAR380_19.cs
  • branches/eraser6/DefaultPlugins/EraseVSITR.cs
  • branches/eraser6/Manager/Method.cs

-No publicly accessible nested types
-Replaced the ErasureMethod?.Pass class with the ErasureMethodPass? class and removed the WriteConstant? and WriteRandom? delegates which pointed to real functions in ErasureMethod?

05:00 Changeset [955] by lowjoel
  • branches/eraser6/Manager/Task.cs
  • branches/eraser6/Util/File.cs

The GetADSes function only needs an IList, don't pass a generic List object around as good practice.

04:58 Changeset [954] by lowjoel
  • branches/eraser6/Manager/EntropySource.cs

Use C# casing for the hash identifiers

04:57 Changeset [953] by lowjoel
  • branches/eraser6/Manager/Manager.cs

Enforce the fact that only one ManagerLibrary? instance can exist at any one time.

04:52 Changeset [952] by lowjoel
  • branches/eraser6/DefaultPlugins/SettingsForm.cs
  • branches/eraser6/Eraser/Program.cs
  • branches/eraser6/Eraser/SettingsPanel.cs
  • branches/eraser6/Eraser/TaskDataSelectionForm.cs
  • branches/eraser6/Manager/Language.cs
  • branches/eraser6/Manager/Method.cs
  • branches/eraser6/Manager/PRNG.cs

Replaced the GetAll? functions with a static Items property.

04:50 Changeset [951] by lowjoel
  • branches/eraser6/CustomDictionary.xml
  • branches/eraser6/DefaultPlugins/Properties/AssemblyInfo.cs
  • branches/eraser6/Eraser/Properties/AssemblyInfo.cs
  • branches/eraser6/Eraser/TaskPropertiesForm.Designer.cs
  • branches/eraser6/Eraser/TaskPropertiesForm.resx
  • branches/eraser6/Manager/Properties/AssemblyInfo.cs
  • branches/eraser6/Manager/Schedule.cs
  • branches/eraser6/Manager/Strings.en.resx
  • branches/eraser6/Manager/Strings.nl.resx
  • branches/eraser6/Manager/Strings.resx

Fixed a few spelling mistakes (finally found out!)

04:22 Changeset [950] by lowjoel
  • branches/eraser6/DefaultPlugins/CustomMethodEditorForm.cs
  • branches/eraser6/DefaultPlugins/CustomMethodPassEditor.cs
  • branches/eraser6/DefaultPlugins/SettingsForm.cs
  • branches/eraser6/DefaultPlugins/Strings.en.resx
  • branches/eraser6/DefaultPlugins/Strings.nl.resx
  • branches/eraser6/DefaultPlugins/Strings.resx

Added missing internationalisations.

04:19 Changeset [949] by lowjoel
  • branches/eraser6/CustomDictionary.xml
  • branches/eraser6/DefaultPlugins/DefaultPlugins.csproj
  • branches/eraser6/Eraser.sln
  • branches/eraser6/Eraser/Eraser.csproj
  • branches/eraser6/Manager/Manager.csproj
  • branches/eraser6/Util/Util.csproj

Added the code analysis dictionary so we won't get misspellings of identifiers (like proper nouns and acronyms.)

03:41 Changeset [948] by lowjoel
  • branches/eraser6/Eraser/Program.cs
  • branches/eraser6/Eraser/SchedulerPanel.cs
  • branches/eraser6/Eraser/SettingsPanel.cs
  • branches/eraser6/Eraser/TaskDataSelectionForm.cs
  • branches/eraser6/Eraser/UpdateForm.cs
  • branches/eraser6/Util/Localisation.cs

Implemented proper right-to-left detection for all messagebox calls.

03:26 Changeset [947] by lowjoel
  • branches/eraser6/Eraser/UpdateForm.cs
  • branches/eraser6/Manager/Manager.cs
  • branches/eraser6/Manager/Plugins.cs
  • branches/eraser6/Manager/Schedule.cs

-UpdateList? is more accurately named UpdateCollection?
-The FatalException? serialisation constructor should be protected
-Event calling functions should not be externally visible (for security reasons)
-DaysOfWeek? is already a plural noun, ignore the code analysis tool's warning.

03:23 Changeset [946] by lowjoel
  • branches/eraser6/Eraser/LogForm.cs

Changed the event handler delegate types such that all event handlers use the EventArgs?<> generic.

03:22 Changeset [945] by lowjoel
  • branches/eraser6/Eraser/ToolBar.cs

Fully implemented the ToolBarItemCollection? class.

03:14 Changeset [944] by lowjoel
  • branches/eraser6/Eraser/MainForm.cs
  • branches/eraser6/Eraser/ProgressForm.cs
  • branches/eraser6/Eraser/SchedulerPanel.cs
  • branches/eraser6/Eraser/SettingsPanel.cs
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/EntropySource.cs
  • branches/eraser6/Manager/Executor.cs
  • branches/eraser6/Manager/Method.cs
  • branches/eraser6/Manager/RemoteExecutor.cs
  • branches/eraser6/Manager/Task.cs

Fixed a few documentation inconsistencies and changed the event handler delegate types such that all event handlers use the EventArgs?<> generic.

02:26 Changeset [943] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/Manager.cs
  • branches/eraser6/Manager/Plugins.cs
  • branches/eraser6/Manager/RemoteExecutor.cs

Properly implement the Dispose method - when disposing is true the managed objects are already destroyed.

02:17 Changeset [942] by lowjoel
  • branches/eraser6/Manager/Task.cs

Reduce code verbosity by using automatic properties.

02:14 Changeset [941] by lowjoel
  • branches/eraser6/Manager/Language.cs

Fixed the < and > appearin in the XML comments. They need to be escaped.

01:29 Changeset [940] by lowjoel
  • branches/eraser6/Eraser/UpdateForm.cs

Use automatic proerties for conciseness.

01:25 Changeset [939] by lowjoel
  • branches/eraser6/DefaultPlugins/Plugin.cs
  • branches/eraser6/Eraser/Program.cs
  • branches/eraser6/Eraser/SettingsPanel.cs
  • branches/eraser6/Manager/Settings.cs

Fixed a few find and replace errors introduced in r938, sorry.

01:08 Changeset [938] by lowjoel
  • branches/eraser6/DefaultPlugins/EraseDoD.cs
  • branches/eraser6/DefaultPlugins/EraseFirstLast16KB.cs
  • branches/eraser6/DefaultPlugins/EraseRCMP_TSSIT_OPS_II.cs
  • branches/eraser6/DefaultPlugins/EraseUSAF5020.cs
  • branches/eraser6/DefaultPlugins/EraseUSArmyAR380_19.cs
  • branches/eraser6/DefaultPlugins/Plugin.cs
  • branches/eraser6/DefaultPlugins/SettingsForm.cs
  • branches/eraser6/Eraser/Program.cs
  • branches/eraser6/Eraser/SettingsPanel.cs
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/FileSystem.cs
  • branches/eraser6/Manager/Method.cs
  • branches/eraser6/Manager/Plugins.cs
  • branches/eraser6/Manager/Settings.cs
  • branches/eraser6/Manager/Task.cs

Rename these references as a result of r936

01:03 Changeset [937] by lowjoel
  • branches/eraser6/Manager/Method.cs
  • branches/eraser6/Manager/Schedule.cs

-Suppress the message about having readonly but not immutable reference types - these instances are readonly and also immutable.
-The ScheduledTask? properties which check for schedule type throw InvalidOperationException? instead of ArgumentException? now (ArgumentException? doesn't fit this use)
-And always call string.Format passing in the IFormatProvider instance.

01:01 Changeset [936] by lowjoel
  • branches/eraser6/Manager/Language.cs
  • branches/eraser6/Manager/Manager.cs

Replaced the LanguageManager? usage paradigm to be that of a static class since we only have one staic function GetAll?

01:01 Changeset [935] by lowjoel
  • branches/eraser6/Manager/Plugins.cs
  • branches/eraser6/Manager/Task.cs

Replaced the property-variable pairs with automatic properties

00:41 Changeset [934] by lowjoel
  • branches/eraser6/Manager/Task.cs

-Removed the no longer used Id property and backing variable
-Instead of passing a mask to FolderTarget?.GetFiles?, use the instance member instead

00:38 Changeset [933] by lowjoel
  • branches/eraser6/Manager/RemoteExecutor.cs

Clear up resources used by the locks for the remote executor server.

00:37 Changeset [932] by lowjoel
  • branches/eraser6/Manager/Logger.cs
  • branches/eraser6/Manager/Manager.cs
  • branches/eraser6/Manager/Manager.csproj

-The serialisation constructor and GetObjectData? must be protected and marked with SecurityPermission? respectively.
-FatalException? should implement the default constructor as well as the serialisation constructor.

00:35 Changeset [931] by lowjoel
  • branches/eraser6/Manager/EntropySource.cs

Locked the wrong object when copying the pool.

00:11 Changeset [930] by lowjoel
  • branches/eraser6/Manager/Logger.cs
  • branches/eraser6/Manager/Strings.en.resx
  • branches/eraser6/Manager/Strings.nl.resx
  • branches/eraser6/Manager/Strings.resx

Fix the Logger class to work with remote requests.

00:10 Changeset [929] by lowjoel
  • branches/eraser6/Manager/Task.cs

Removed an unused variable.

00:10 Changeset [928] by lowjoel
  • branches/eraser6/Manager/RemoteExecutor.cs

Fundamentally redesigned the RemoteExecutor? classes to work with the new API.

04/29/09:

12:58 Changeset [927] by lowjoel
  • branches/eraser6/Eraser/UpdateForm.cs
  • branches/eraser6/Manager/RemoteExecutor.cs

Accidental commit, sorry.

12:53 Changeset [926] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/Executor.cs

The Owner variable in the Executor base class should be a property since it is publicly accessible (to inheritor classes) and therefore capitalised

12:50 Changeset [925] by lowjoel
  • branches/eraser6/DefaultPlugins/EraseFirstLast16KB.cs
  • branches/eraser6/Eraser/LogForm.cs

Missed out these in the previous commit - the fact that the LogSessions? list was actually more accurately described a Dictionary and that there is no need to assign default values to variables (In the case of FL16KB the assignment is atomic - exceptions come from the function it is calling thus if an exception is caught the variable is not assigned)

12:47 Changeset [924] by lowjoel
  • branches/eraser6/Manager/Task.cs

-Task.GetPathADSes now no lnoger takes a List reference, but a list instead (lists are passed by reference)
-Task.GetPathADSes now takes an out long for the size of files instead of a ref (out is more appropriate)
-Fixed the ErasureTargetsCollection? class's IsReadOnly? property, Remove and Clear functions

-Remove and clear now removes the target's reference to the task when removed (detaching)

09:53 Changeset [923] by lowjoel
  • branches/eraser6/Manager/Logger.cs

The sessions thing is a Dictionary. Name it so.

09:23 Changeset [922] by lowjoel
  • branches/eraser6/Eraser/ToolBar.cs
  • branches/eraser6/Eraser/UpdateForm.cs
  • branches/eraser6/Manager/RemoteExecutor.cs

Tool*B*ar

09:23 Changeset [921] by lowjoel
  • branches/eraser6/Eraser/SettingsPanel.cs
  • branches/eraser6/Manager/Plugins.cs
  • branches/eraser6/Manager/Settings.cs

Redid the Plugin API so that:
-The no list is visible publicly
-Events use the EventHandler? generic

09:20 Changeset [920] by lowjoel
  • branches/eraser6/Eraser/LogForm.cs
  • branches/eraser6/Eraser/ProgressForm.cs
  • branches/eraser6/Eraser/SchedulerPanel.cs
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/Logger.cs
  • branches/eraser6/Manager/Task.cs

Implement the log addition/clearing functions in a separate class so that a List object is not exposed.

08:16 Changeset [919] by lowjoel
  • branches/eraser6/DefaultPlugins/EraseCustom.cs
  • branches/eraser6/Manager/Logger.cs
  • branches/eraser6/Manager/Schedule.cs

Fix CA2123.

08:09 Changeset [918] by lowjoel
  • branches/eraser6/Eraser/ToolBar.cs
  • branches/eraser6/Eraser/UpdateForm.cs

Rewritten the Toolbar and UpdateManager? code to factor out all list management functions to a collection class. Fixes warning CA1002.

08:05 Changeset [917] by lowjoel
  • branches/eraser6/Eraser/MainForm.cs
  • branches/eraser6/Eraser/Program.cs
  • branches/eraser6/Eraser/ProgressForm.cs
  • branches/eraser6/Eraser/SchedulerPanel.cs
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/Executor.cs
  • branches/eraser6/Manager/Task.cs

Rewritten the Executor API to factor out all task-list management functions to the ExecutorTasksCollection? class which will be inherited and implemented with each Executor class. Fixes warning CA1002.

04/28/09:

14:39 Changeset [916] by lowjoel
  • branches/eraser6/Manager/Language.cs

The LanguageManager? constructor does nothing - remove it.

14:38 Changeset [915] by lowjoel
  • branches/eraser6/Eraser/Program.cs
  • branches/eraser6/Eraser/SchedulerPanel.cs
  • branches/eraser6/Eraser/SettingsPanel.cs
  • branches/eraser6/Eraser/TaskDataSelectionForm.cs
  • branches/eraser6/Eraser/TaskPropertiesForm.cs
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/EntropySource.cs
  • branches/eraser6/Manager/Logger.cs
  • branches/eraser6/Manager/Manager.cs
  • branches/eraser6/Manager/Method.cs
  • branches/eraser6/Manager/PRNG.cs
  • branches/eraser6/Manager/Plugins.cs
  • branches/eraser6/Manager/Schedule.cs
  • branches/eraser6/Manager/Strings.en.resx
  • branches/eraser6/Manager/Strings.nl.resx
  • branches/eraser6/Manager/Strings.resx
  • branches/eraser6/Manager/Task.cs

-Don't nest publicly accessible classes in classes.
-Camelcasing for abbreviations
-Abstract class constructors should be protected

14:10 Changeset [914] by lowjoel
  • branches/eraser6/Util/File.cs

When converting a file size to a human-readable value account for the current UI culture.

14:10 Changeset [913] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs

Don't throw a file name format error when erasing files with ADSes

14:09 Changeset [912] by lowjoel
  • branches/eraser6/Eraser/UpdateForm.cs

Don't nest public classes.

14:08 Changeset [911] by lowjoel
  • branches/eraser6/Eraser/Program.cs

Removed the Guid parameter from the RegistrySettings? manager.

14:07 Changeset [910] by lowjoel
  • branches/eraser6/Eraser/MainForm.cs
  • branches/eraser6/Eraser/ToolBar.cs

ToolBar? is a compound word - use Camel Casing

14:06 Changeset [909] by lowjoel
  • branches/eraser6/Eraser/LogForm.cs
  • branches/eraser6/Eraser/ProgressForm.cs
  • branches/eraser6/Eraser/SchedulerPanel.cs
  • branches/eraser6/Eraser/SettingsPanel.cs
  • branches/eraser6/Eraser/Strings.NL.resx
  • branches/eraser6/Eraser/Strings.en.resx
  • branches/eraser6/Eraser/Strings.resx
  • branches/eraser6/Eraser/TaskDataSelectionForm.cs
  • branches/eraser6/Util/Localisation.cs

Globalise our code.

-When using ToString? pass the current culture, and when using string.Format specify the current culture.
-When using MessageBox?.Show, tell it to display the dialog RTL when the parent control is in RTL mode.

12:30 Changeset [908] by lowjoel
  • branches/eraser6/DefaultPlugins/CustomMethodEditorForm.Designer.cs
  • branches/eraser6/DefaultPlugins/CustomMethodEditorForm.cs
  • branches/eraser6/DefaultPlugins/CustomMethodPassEditor.cs
  • branches/eraser6/DefaultPlugins/EraseCustom.cs
  • branches/eraser6/DefaultPlugins/Plugin.cs
  • branches/eraser6/DefaultPlugins/RNGCrypto.cs
  • branches/eraser6/DefaultPlugins/SettingsForm.cs

Ran static code analysis on DefaultPlugin?

-Use proper casing for abbreviations
-Enumeration values should be camel casing
-public Enumeration types should be outside the class
-Don't initialise members to default values
-Make GetObjectData? overridable
-Implement the Dispose pattern properly

12:16 Changeset [907] by lowjoel
  • branches/eraser6/Eraser/Strings.NL.resx
  • branches/eraser6/Eraser/Strings.en.resx
  • branches/eraser6/Eraser/Strings.resx

Updated string for the task list serialisation exception.

12:15 Changeset [906] by lowjoel
  • branches/eraser6/Eraser/SchedulerPanel.cs

No need to use P/Invoke to get the bounds of a listview subitem. Use the .NET API instead.

12:13 Changeset [905] by lowjoel
  • branches/eraser6/DefaultPlugins/EraseCustom.cs
  • branches/eraser6/DefaultPlugins/EraseDoD.cs
  • branches/eraser6/DefaultPlugins/EraseFirstLast16KB.cs
  • branches/eraser6/DefaultPlugins/EraseGOSTP50739.cs
  • branches/eraser6/DefaultPlugins/EraseGutmann.cs
  • branches/eraser6/DefaultPlugins/EraseHMGIS5.cs
  • branches/eraser6/DefaultPlugins/EraseRCMP_TSSIT_OPS_II.cs
  • branches/eraser6/DefaultPlugins/EraseRandom.cs
  • branches/eraser6/DefaultPlugins/EraseSchneier.cs
  • branches/eraser6/DefaultPlugins/EraseUSAF5020.cs
  • branches/eraser6/DefaultPlugins/EraseUSArmyAR380_19.cs
  • branches/eraser6/DefaultPlugins/EraseVSITR.cs
  • branches/eraser6/DefaultPlugins/Plugin.cs
  • branches/eraser6/DefaultPlugins/RNGCrypto.cs
  • branches/eraser6/DefaultPlugins/RNGISAAC.cs
  • branches/eraser6/DefaultPlugins/SettingsForm.cs
  • branches/eraser6/Eraser/LogForm.cs
  • branches/eraser6/Eraser/MainForm.cs
  • branches/eraser6/Eraser/Program.cs
  • branches/eraser6/Eraser/ProgressForm.cs
  • branches/eraser6/Eraser/SettingsPanel.cs
  • branches/eraser6/Eraser/TaskDataSelectionForm.cs
  • branches/eraser6/Eraser/TaskPropertiesForm.cs
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/EntropySource.cs
  • branches/eraser6/Manager/Executor.cs
  • branches/eraser6/Manager/FileSystem.cs
  • branches/eraser6/Manager/Language.cs
  • branches/eraser6/Manager/Logger.cs
  • branches/eraser6/Manager/Manager.cs
  • branches/eraser6/Manager/Method.cs
  • branches/eraser6/Manager/PRNG.cs
  • branches/eraser6/Manager/Plugins.cs
  • branches/eraser6/Manager/RemoteExecutor.cs
  • branches/eraser6/Manager/Schedule.cs
  • branches/eraser6/Manager/Settings.cs
  • branches/eraser6/Manager/Task.cs

Ran static code analysis on Manager.

-Do not initialise class members to default values (runtime will handle that)
-Deserialisation constructors should be marked protected for unsealed classes
-Classes implementing ICollection should end with Collection (Mainly fixed here is ErasureTargetsCollection?)
-ISerializable.GetObjectData? should be marked virtual
-Use proper camel casing (Prng, Guid, FileName? etc)
-Enumeration values should be Camel casing
-Bitfields should be marked with the [Flags] attribute
-Implement the proper IDisposable pattern - one Dispose() and one Dispose(bool) - the latter doing the clean ups for both Dispose and finalisers
-public variables should instead be properties
-Abstract classes should have protected constructors
-Renamed Schedule.Type to Schedule.ScheduleType? to prevent ambiguity with GetType?()
-There shouldn't be a need to pass reference variables by reference

10:38 Changeset [904] by lowjoel
  • branches/eraser6/Eraser/BasePanel.Designer.cs
  • branches/eraser6/Eraser/BasePanel.resx
  • branches/eraser6/Eraser/MainForm.Designer.cs
  • branches/eraser6/Eraser/MainForm.cs
  • branches/eraser6/Eraser/MainForm.resx
  • branches/eraser6/Eraser/SchedulerPanel.Designer.cs
  • branches/eraser6/Eraser/SettingsPanel.Designer.cs

Ran Static code analysis on the Eraser project and implemented a few recommendations.

-Variable references should not use abbreviations of things: lbl should be expanded to Label
-Fixed "minimise" to "minimised"
-Enumeration constants should be in CamelCase

10:34 Changeset [903] by lowjoel
  • branches/eraser6/Eraser/AboutForm.Designer.cs
  • branches/eraser6/Eraser/AboutForm.cs
  • branches/eraser6/Eraser/LogForm.cs
  • branches/eraser6/Eraser/Program.cs
  • branches/eraser6/Eraser/TaskDataSelectionForm.cs
  • branches/eraser6/Eraser/TaskPropertiesForm.cs
  • branches/eraser6/Eraser/ToolBar.cs
  • branches/eraser6/Eraser/UpdateForm.cs

Ran Static code analysis on the Eraser project and implemented a few recommendations.

-Use more specific exceptions to allow code to determine the type of exception.
-Made GUIProgram implement IDisposable since the global mutex must be freed.
-Mde AboutForm? implement IDisposable, clearing the caching bitmaps on dispose.
-Made a few CommandLineProgram? functions static since they don't reference this.
-Name parameters/local with more unique, descriptive names for clarity.
-Use EventHandler?<EventArg?> instead of declaring our own delegate and event types as the type of the evenr handler

08:12 Changeset [902] by lowjoel
  • branches/eraser6/Manager/FileSystem.cs

Added extra newlines to make the code fit within 100 characters per line

08:11 Changeset [901] by lowjoel
  • branches/eraser6/Manager/Strings.en.resx
  • branches/eraser6/Manager/Strings.nl.resx
  • branches/eraser6/Manager/Strings.resx

Added a few missing strings.

08:01 Changeset [900] by lowjoel
  • branches/eraser6/Eraser/LogForm.cs
  • branches/eraser6/Eraser/LogForm.resx

Allow long logs to be displayed rapidly by disabling redrawing until all items are added.

07:54 Changeset [899] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/Executor.cs
  • branches/eraser6/Manager/FileSystem.cs
  • branches/eraser6/Manager/Manager.csproj

Refactored out the filesystem-specific code from DirectExecutor? to a FileSystem? class. Currently only implemented for NTFS

07:42 Changeset [898] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/Task.cs

Stylistic corrections: use internal set in properties instead of using interally-visible member variables

04/27/09:

13:43 Ticket #179 (Right Click Recycle Bin Failure) closed by Joel
duplicate: Actually, duplicated under #195.
13:40 Ticket #161 (Weekly schedule not working) closed by Joel
invalid: Ah I know why. This is because the scheduler lets you select multiple days …
13:24 Changeset [897] by lowjoel
  • branches/eraser6/DefaultPlugins/DefaultPlugins.csproj
  • branches/eraser6/Installer/Installer.wixproj

Get the Authenticode signatures from the system certificate store.

13:17 Ticket #139 (Right clicking recycle bin two errors.) closed by Joel
fixed: Oops, wrong ticket.
13:16 Ticket #173 (Odd Progress Bar Result.) closed by Joel
fixed: Fixed in r896
13:16 Changeset [896] by lowjoel
  • branches/eraser6/Eraser/Eraser.csproj
  • branches/eraser6/Eraser/ProgressForm.cs
  • branches/eraser6/Eraser/ProgressForm.en.resx
  • branches/eraser6/Eraser/ProgressForm.resx
  • branches/eraser6/Eraser/Strings.NL.resx
  • branches/eraser6/Eraser/Strings.en.resx
  • branches/eraser6/Eraser/Strings.resx

Implemented a more generic message when the dialog containing the progress of the erase is shown, so that the user will know that he has to wait for progress information to come from the executor. Fix for #173.

13:09 Ticket #173 (Odd Progress Bar Result.) reopened by Joel
13:06 Ticket #177 (Erasing file in use, no error message.) closed by Joel
fixed: I tried erasing a directory of symbol files which were locked; Eraser …
13:00 Ticket #139 (Right clicking recycle bin two errors.) reopened by Joel
Then again, I think we can replace the labels on the dialog to make it …
13:00 Ticket #173 (Odd Progress Bar Result.) closed by Joel
wontfix: I can't think of any way to solve this (even after so many months). This …
12:54 Ticket #139 (Right clicking recycle bin two errors.) closed by Joel
fixed: Okay, so the recycle bin icon should have been fixed and the only problem …
12:49 Changeset [895] by lowjoel
  • branches/eraser6/Eraser/Eraser.csproj
  • branches/eraser6/Util/File.cs

Using FileInfo?.OpenRead? will cause a file to be locked. In our case, the file doesn't need to be locked so open a file handle, allowing other applications to share access. This handles locked files better in tasks.

12:46 Changeset [894] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs
  • branches/eraser6/Manager/Strings.en.resx
  • branches/eraser6/Manager/Strings.nl.resx
  • branches/eraser6/Manager/Strings.resx

-Handle files which are currently locked by another process - currently the behaviour is to log the file as unerased and flag the task as an error having occurred
-Handle sparse/compressed/encrypted files without throwing an exception because that will cause the rest of the files to remain unerased

11:47 Ticket #171 (Disable buffering) closed by Joel
fixed: Actually I've looked through the documentation again and …
11:47 Changeset [893] by lowjoel
  • branches/eraser6/Manager/DirectExecutor.cs

Don't allow file writes to stay in the system cache for later writing - instruct that data be written to disk immediately. Fixes #171.

04/26/09:

23:59 Changeset [892] by lowjoel
  • branches/eraser6/Installer/SignBin.bat

Store all certificates in the Windows certificate store instead of having thme as loose pfx's on the disk for security reasons.

11:44 Changeset [891] by lowjoel
  • trunk/bin/Eraser.iss

Delete user configuration files after uninstall.

04/22/09:

07:21 Ticket #175 (Schedule screen won’t clear properly.) closed by Joel
worksforme: No repro case again... I really can't see how or why that will happen.
07:12 Ticket #180 (Flash Drive Error.) closed by Joel
worksforme: Can't replicate the thing. Also, I remembered fixing a similar problem …

04/19/09:

10:16 Changeset [890] by lowjoel
  • branches/website/announcements/20090418.html

Fixed the hahes. Also, display hashes in a code block for clarity.

10:15 Changeset [889] by lowjoel
  • branches/website/index.php

Use standard terminology - the Portable version not the Standalone version.

04/18/09:

23:30 Ticket #183 (Capcha too hard or not working.) closed by Joel
invalid: Actually on the forum the captcha is standard and comes packaged with …
17:40 Ticket #112 (Slow authentication e-mail) closed by Garrett
fixed: This may be due to mail server overloaded and is transient.
17:38 Ticket #143 (ISSAC or ISSAC+) closed by Garrett
fixed: Having a totally random generator will actually make it easier for a …
04:59 Changeset [888] by lowjoel
  • branches/website/Templates/Eraser.dwt
  • branches/website/announcements/20081201.html
  • branches/website/announcements/20081213.html
  • branches/website/announcements/20090103.html
  • branches/website/announcements/20090108.html
  • branches/website/announcements/20090418.html
  • branches/website/contributing.html
  • branches/website/index.php
  • branches/website/reviews.html

Aded the announcement for 5.8.7beta5

04:38 Changeset [887] by lowjoel
  • trunk/README.txt
  • trunk/version.h

Version bump.

03:59 Ticket #205 (VS x64 libraries redistributable installer fails to install) closed by Joel
fixed: Fixed in r886. I kinda forgot that both the x64 and x86 builds can be …
03:58 Changeset [886] by lowjoel
  • trunk/bin/Eraser.iss

Extract the 32-bit and 64-bit VC++ redistributables if WoW was selected. Fixes #205

03:52 Ticket #134 (Vista 64 Eraser v5.87 no context menu) closed by Joel
fixed: Thanks, fixed in r885. Was a typo in the setup script.
03:51 Changeset [885] by lowjoel
  • trunk/bin/Eraser.iss

Fixed missing shell extension. Fixes #134.

02:22 Changeset [884] by lowjoel
  • trunk/EraserDll/Eraser.cpp
  • trunk/EraserDll/File.cpp
  • trunk/EraserDll/Random.cpp
  • trunk/EraserDll/Random.h
  • trunk/EraserDll/Schneier7Pass.cpp
  • trunk/SchedulerView.cpp

-Fixed a few 64-bit warnings
-Fixed a wrong use of assignment operator (== was intended)
-Corrected the ISAAC code for 64-bit, buffers were assumed to be long enough onlt to fit in a 32-bit integer

04/17/09:

11:48 Changeset [883] by lowjoel
  • trunk/Eraser.cpp
  • trunk/SchedulerView.cpp
  • trunk/StdAfx.h

Fixed the next-run time column for tasks which run at midnight.

11:47 Changeset [882] by lowjoel
  • trunk/Item.cpp
  • trunk/SchedulerView.cpp

Implemented the task-end action for scheduled tasks and dragged and dropped on-demand tasks

07:05 Ticket #30 (Encrypted page file) closed by Joel
wontfix: Hmm, agreed.
07:01 Ticket #199 (Scheduler Next Run does not show time if set to midnight) closed by Joel
fixed: Fixed in r883
06:44 Ticket #185 (The "COPYING.txt" file is corrupted.) closed by Joel
wontfix
06:41 Ticket #198 (When Finished option does not work for Scheduled Tasks) closed by Joel
fixed: Ok I've really fixed it in r882. Also fixed the drag and drop problem and …
06:07 Ticket #189 (Eraser shutting down entire system) closed by Joel
duplicate: Main problem is #198. Will close this as duplicate.
06:06 Ticket #190 (Eraser setting up unwanted entry in autostart for deletion) closed by Joel
wontfix: I think the first problem you raised can't be fixed. If the user says the …
Note: See TracTimeline for information about the timeline view.