Copy Handler Changelog

What's new in Copy Handler 1.50 Beta 1

Dec 27, 2020
  • User feedback improvements:
  • Added possibility to define automatic responses to user-feedback dialogs (file already exists, not enough space, error) for fully unattended operations
  • Added possibility to rename file when file already exists
  • Better filtering support:
  • Added regex-based file and path filtering options
  • Added glob-based path filtering options
  • GUI:
  • Simplified task edit and user-feedback dialogs
  • Adjusted the look of mini-view dialog
  • Added context menus to both status dialog and mini-view
  • Simplified status dialog and adjusted the way copy stats are calculated
  • Other:
  • Task definition xml files now uses human-readable attribute values instead of numeric ones
  • Fixed problem with tray icon being sometimes hidden by system due to tooltip changes
  • Breaking changes:
  • Multiple filters are now separated with semicolon instead of vertical line
  • Removed support for Windows XP and Windows Vista
  • Removed support for outdated html help
  • Development changes:
  • Updated toolsets used to build binaries - InnoSetup to 6.0, Visual Studio to 2019

New in Copy Handler 1.46 (Dec 26, 2020)

  • Bug:
  • [CH-369] - Shell extension fails to register on plain Win10
  • [CH-370] - Shell extension 'Move to' performs copy instead of move

New in Copy Handler 1.45 (Dec 7, 2020)

  • Bug:
  • [CH-355] - Incorrect sizing of replace file dialog
  • [CH-359] - Wrong initial version of task db
  • [CH-366] - String replace functionality corrupts memory

New in Copy Handler 1.45 RC 1 (Oct 19, 2020)

  • Epic:
  • [CH-338] - Upgrade compiler to VS2017
  • Bug:
  • [CH-330] - CH context menu does not work in Directory Opus
  • [CH-332] - Pressing pause has no effect when handling delete failure after copying
  • [CH-333] - Duplicate entries in shell extension context menu
  • [CH-334] - Move up/down does not work in the Shortcuts' editing dialog
  • [CH-336] - Crash when changing read ahead and concurrency options
  • [CH-341] - Shell extension does not display single menu entries
  • [CH-343] - Missing exports while installing 1.45 over 1.44
  • [CH-344] - Crash when displaying sizes in shell extension menu
  • [CH-345] - Icons not being shown in shell extension context menu
  • Story:
  • [CH-331] - Update sqlite to newest version
  • [CH-339] - Remove chext dependency on ATL
  • [CH-340] - Switch CH to VS2017 with WinXP support
  • [CH-342] - Update Spanish language
  • [CH-346] - Compiler settings improvements

New in Copy Handler 1.45 Beta 1 (Jan 25, 2017)

  • Bug:
  • [CH-315] - Closing overwrite dialog with X causes file to be overwritten
  • [CH-322] - High CPU usage of logger
  • [CH-324] - Changing log levels does not work until CH restarts
  • Story:
  • [CH-114] - Engine-wide logging support
  • [CH-200] - Use SetFileInformationByHandle to finalize file
  • [CH-303] - Update code signing certificate
  • [CH-304] - File already exists dialog shows paths with \? prefix
  • [CH-307] - Increase isolation between file reader and file writer
  • [CH-310] - Improvements in silent resume
  • [CH-311] - Optimize removing entries from database tables
  • [CH-312] - Normalize line endings handling for source code
  • [CH-314] - Disable reporting of false-positive memort leaks
  • [CH-317] - Limit maximum concurrent reads/writes per file
  • [CH-318] - Reduce code smells reported by ReSharper
  • [CH-319] - Split libchcore to more specialized libraries
  • [CH-320] - Update helper projects to build properly
  • [CH-321] - Update sqlite package to 3.16
  • [CH-323] - View log asks to create the log file
  • [CH-325] - Update Polish translation
  • [CH-326] - Unit tests coverage improvements
  • [CH-327] - Refactoring of exported collections
  • [CH-328] - Update default buffer sizes
  • [CH-329] - Adjust logging of serialization to include real column numbers

New in Copy Handler 1.44 (Jan 25, 2017)

  • Feature request:
  • [CH-266] - Integration with other software
  • Translation:
  • [CH-294] - Update Turkish translation of CH
  • Bug:
  • [CH-292] - Wrong error message presented on error 34
  • [CH-293] - Invalid current speed reported for subtask/task and global stats
  • [CH-296] - Crash when using shell extension on explorer showing network path
  • [CH-297] - Retrying write failures does not try to write to disk
  • [CH-299] - List of Copy-To paths are not updated after adding favorite path in "Choose directory" dialog
  • [CH-300] - CH moves file instead of copying when using ctrl+c and ctrl+v
  • [CH-301] - Fix issues reported by coverity scan
  • [CH-302] - Skipping file when file is being opened does not update task stats
  • Story:
  • [CH-197] - Retrying on certain failures should re-open the source and destination files

New in Copy Handler 1.43 (Nov 8, 2016)

  • Feature request:
  • [CH-277] - Pre-select task in status window
  • Bug:
  • [CH-270] - Multiple retries required when reading multiple data chunks at once fails
  • [CH-275] - Problem initializing COM with error 0x80010106
  • [CH-279] - Options - buffer size dialog fails to display/update buffer count properly
  • [CH-281] - Shell extension fails to retrieve menu configuration when user too fast
  • [CH-290] - Status window title shows different percentage than the single running task
  • [CH-291] - Pause/resume fails to silently resume tasks
  • Story:
  • [CH-206] - Replace logging system with async logger
  • [CH-272] - Fix issues reported by cppcheck and coverity scan
  • [CH-273] - Code cleanups
  • [CH-274] - Removing task should remove also rotated files
  • [CH-280] - Update sqlite package to 3.15.1
  • [CH-283] - Enable /MP compilation
  • [CH-284] - Make explorer not block when debugging Copy Handler
  • [CH-285] - Allow non-elevated shell extension to communicate with elevated CH
  • [CH-286] - Register 32bit shell extension also for 64bit Windows
  • [CH-287] - Update version info in CH binaries
  • [CH-288] - CH shows dialog boxes in strange places
  • [CH-289] - Show taskbar progress when status window is open

New in Copy Handler 1.42 (Oct 11, 2016)

  • Feature request:
  • [CH-260] - Include CH icon in Options and Status dialogs
  • Bug:
  • [CH-263] - Copy Handler is being signed with SHA1 instead of SHA256
  • [CH-264] - Copy-of name does not handle extensions properly
  • [CH-267] - Task "hangs" when retrying failed operation
  • [CH-269] - File error dialog displays empty error message

New in Copy Handler 1.41 (Sep 13, 2016)

  • Feature request:
  • [CH-182] - Add copy-of names configuration to ch.xml
  • Bug:
  • [CH-247] - Error while trying to copy entire drive
  • [CH-248] - File error dialog does not display error message
  • [CH-249] - Reduce high-priority issues reported by Coverity Scan
  • [CH-250] - Wrong task count when copying with filtering
  • [CH-251] - Crash in miniview refresh method
  • [CH-252] - CH crashes when task data cannot be stored in sqlite database
  • [CH-254] - Crash when saving CH options with non-ascii paths
  • Story:
  • [CH-255] - Update SQLite package do 3.14.1
  • [CH-256] - Update googletest framework to 1.8
  • [CH-257] - Update unit tests runner to support running with ReSharper
  • [CH-258] - Fix malformed html files in the chm manuals
  • [CH-259] - Apply various fixes for code issues reported by R#

New in Copy Handler 1.40 (Apr 4, 2016)

  • THE MAJOR CHANGES SINCE THE LAST STABLE RELEASE (1.32):
  • Move from serialized to overlapped IO resulting in significant performance improvements,
  • Basic, experimental command-line support,
  • Better check for updates functionality,
  • Shell extension improvements,
  • Both installer and executables and now signed, so now it will be obvious if the downloaded version is original,
  • More stats available in Copy Handler status window,
  • Lots of under-the-hood changes:
  • Changed storage backed to sqlite database for improved stability,
  • Upgraded development environment to Visual Studio 2013,
  • Migrated source code from subversion hosted at sourceforge.net to a git repository hosted at the same place website is hosted,
  • Really huge refactoring of code that significantly reduced the technical debt and will allow easier program extending in the future.
  • CHANGES SINCE THE 1.40 RC3:
  • Bug:
  • [CH-243] - Installer does not remove all files after restart
  • [CH-244] - Shell extension shows empty bars when icons are enabled
  • [CH-246] - Program hangs when importing command line task while another tasks are running
  • Story:
  • [CH-245] - Buffer size rough tuning

New in Copy Handler 1.40 RC 3 (Mar 21, 2016)

  • Bugfixes:
  • [CH-237] - MiniStatus shows black 100% filled progress bar for waiting tasks
  • [CH-238] - Task hangs when retrying write errors
  • [CH-239] - Copy Handler does not launch on some old hardware running Windows XP
  • [CH-240] - Directory modified time not preserved when there are files inside
  • [CH-241] - Checking for updates fails on Windows XP
  • [CH-242] - Cleanup language files

New in Copy Handler 1.40 RC 2 (Mar 9, 2016)

  • Feature request:
  • Allow drag & drop or multi-folder select (sf.net)
  • Bug:
  • Scanning for files - inconsistent information in status dialog
  • CH internal tool rc2lng wrongly processes rc files
  • Wrong parsing of string table in rc file
  • Show source names in waiting tasks
  • Wrong numericals displayed in options list
  • Crash when using exclude filters
  • Feedback replace dialog contains partially unreadable file info
  • Task enters error state when appending to larger file
  • Wrong calculation of 64bit divide
  • Wrong progress data after restarting CH
  • Source path is "empty" after operation finishes
  • Rare CH crash when interacting with shell extension
  • Wrong estimated time calculation when no size data were processed
  • Restarting fast-move operation succeeds when no source data are present
  • Installers' "Start with system" does not work
  • Language change is not applied until after restart
  • Story:
  • Checking for updates using xml response
  • Reduce errors and warnings reported by cppcheck
  • Get rid of libicpf
  • Improve exception handling in libchcore
  • Enforcing ordering of tasks' execution with prescanning and fast move enabled
  • Update sqlite to 3.11.1
  • Code cleanups

New in Copy Handler 1.40 RC 1 (Dec 28, 2015)

  • To celebrate that anniversary, I'm releasing the first release candidate of Copy Handler 1.40.
  • This release includes fixes for various bugs found in the beta versions.

New in Copy Handler 1.40 SVN 704 Beta (Dec 21, 2015)

  • Bugfixes:
  • [CH-165] - Soft freeze when file is 'Access is denied' and 'Apply to all items' + 'Retry' is choosen
  • [CH-189] - Random size stats errors when copying data
  • [CH-190] - Build tools cannot be run on machines with only VS2015 installed
  • [CH-191] - Task serialization might fail when restarting task
  • [CH-192] - Setting attributes not always done using filesystem layer
  • [CH-194] - Wrong handling of paths longer than 260 chars
  • Other changes:
  • [CH-193] - Refactoring: remove use of icpf::circular_buffer
  • [CH-195] - Optimize searching for files subtask
  • [CH-196] - Unify retrieving file/dir attributes when file handle is open

New in Copy Handler 1.40 SVN 687 Beta (Dec 14, 2015)

  • Added GUI support for setting buffer count (used with async read/write),
  • Binary files are now built using Visual Studio 2015 Update 1,
  • Bugfix: fast move sometimes performed copy+delete instead of content-less moving,
  • Bugfix: resuming copying caused file to be rewritten from the beginning,
  • Bugfix: crash at the end of copying when storing last task state to sqlite database,
  • Bugfix: shell extension "Copy To" -> "Choose location" did not display dialog with locations,
  • Bugfix: amount of tasks running concurrently were not properly counted when limit was already exceeded by manual user resume,
  • Bugfix: buffer changes were not stored in the database,
  • Bugfix: changing buffer size while task was running causes task to fail,
  • Dev: updated sqlite3, boost to newer versions,

New in Copy Handler 1.40 SVN 655 Beta (Jun 2, 2015)

  • Changed IO from synchronous/blocking to asynchronous/non-blocking - this should result in significant performance improvements
  • Added option to export task data from the custom copy dialog
  • Various bugfixes

New in Copy Handler 1.40 SVN 629 Beta (Jun 2, 2015)

  • Change of the development IDE (and compiler) from Visual Studio 2008 to Visual Studio 2013 Community Edition
  • Lot of bugfixes

New in Copy Handler 1.40 SVN 589 Beta (Jun 2, 2015)

  • Huge overhaul of the task state storage system - instead of custom binary format it uses sqlite3 as the underlying storage mechanism
  • Introduction of the unit testing framework (google test and google mock)
  • Preliminary support for VS2013
  • Additional stats in the status dialog
  • Possibility to disable inquiry at startup regarding shell extension registration
  • Shell extension options "Copy To/Move To/MoveTo Special" now allow choosing directory manually

New in Copy Handler 1.40 SVN 465 Alpha (Sep 20, 2012)

  • Bugfixes:
  • Bugfix: incorrect shutdown of application.
  • Bugfix: Fixed serialization problem (data streams were opened in text mode instead of binary).
  • Bugfix: Fixed potential problems with file handle leaks in certain situations when copying files.
  • Bugfix: got rid of some deadlocks when handling progress info.
  • Bugfix: dereferencing NULL pointers caused crashes and deadlocks in some cases.
  • Bugfix: wrong handling of multiple input paths (task copied the first file over and over).
  • Bugfix: Crash when double-clicking on 'All' task in mini view.
  • Bugfix: wrong calculations of the processed/total size.
  • Bugfix: unhandled exception when loading task data from file.
  • Bugfix: 100% of a processor used by the clipboard monitoring thread. Bugfix: Fixed potential problem with constant re-reading drive id.
  • Bugfix: restored resume functionality.
  • Bugfix: importing paths from file didn't work properly.
  • Bugfix: task stopping (pause/cancel/kill) did not work properly when in copy files phase.
  • Bugfix: potential problem with auto-continuation of operation when enough space on disk appears (when showing 'not enough space on disk' dialog). Bugfix: filtering incorrectly shown in status dialog.
  • Bugfix: Fixed incorrect memory management in drive detection mechanism (closes [#3169973]).
  • Bugfix: Fixed problem with language not being read at startup when no configuration file was present.
  • Bugfix: shell extension controller returned pointer to unallocated memory.
  • Bugfix: fixed an infinite loop when iterating over files in a directory in some cases.
  • Bugfix: exiting CH while copying data caused status to be changed to finished; this prevented auto-resuming at the next launch.
  • Bugfix: Tasks loaded at startup did not start automatically when the status was right.
  • Bugfix: invalid priority was set for the thread in custom copy dialog.
  • Bugfix: deleting files while moving was not working.
  • Bugfix: corrected fast-move operation to skip fast-moving when path already exists or access denied (i.e. different volumes). Possible fix for problem with activation context when launching CH (exception thrown from CMainWnd::OnCreate() caused Create() to fail).
  • Translations:
  • Added Dutch translation.
  • Updated German translation.
  • Under the hood:
  • Rewritten major parts of the copy engine for improved performance and reliability(!)
  • Improved storing/loading operation progress mechanism.
  • Improved support for x64 architecture.
  • Removed unused option "Copying/Use auto-complete files".
  • Improved responsiveness for operations on tasks.
  • Various code cleanups.
  • Reduced amount of information stored in the task description files.
  • Changed task identification from time(NULL) to an uuid string.
  • Rewritten internal configuration system to use boost::property_tree. Changed the way temporary files are handled - now there are 4 files per task -> .cht with strict task definition, .cht.rstate with rarely changing contents, .cht.ostate with often changing contents and .cht.log with log file.
  • Features/options removed:
  • Removed functionality creating n copies of the original file - it made code more complicated, preventing core code from rewriting (hopefully nobody uses it).
  • Removed option 'auto-resume on error' - wasn't really used, did not work properly.
  • Removed configuration option "Create log file" - most of the logging was done without taking this option into consideration.
  • Removed 3 not implemented (anymore) configurations settings: - "Show visual confirmation dialogs" - "Use timed confirmation dialogs" - "Time of showing confirmation dialogs"
  • Removed 'advanced' button from status dialog (along with rename input paths functionality which was rather useless).
  • Improved shell extension support: - renamed 'shell extension' to 'integration with system' - enabling integration will automatically check for compatibility (previously only after ch's restart) - on startup, when integration is disabled, notification dialog box will allow to enable it again.
  • Changed the way shell extension communicates with CH from binary protocol to XML.
  • Rewritten most of the shell extension code to allow more fine-grained control of the items that appear in menu (also to possibly add new options in the shell menus).
  • Replaced buffer type detection algorithm with the one that should work reliably on any system.
  • Disabled enforcing drive detection mechanism - some fixed drives (i.e. TrueCrypt volumes) does not report physical drive location.
  • Improvements in scanning directory subtask.
  • Added new subtask class handling fast move operation before scanning directories for files.
  • Updated installer script to the newest version of InnoSetup (unicode).
  • Lots of refactoring.
  • New features:
  • Feature: Added two new task options to allow changing the generated name for the file in case copy is done inside single directory.
  • Feature: Added support for very long paths.
  • Feature: Added portable mode in case configuration file is found in the executable directory.
  • Added command-line option '--ImportTaskDefinition' allowing launching operations copy/move operations.

New in Copy Handler 1.32 Final (Jan 3, 2011)

  • Internal project changes and cleanups not visible to end-users.
  • Bugfix: crash at startup (problem with activation context).
  • Updated about box with better contact alternative.
  • Bugfix: clipboard monitoring did not work in Windows 7 x64.
  • Bugfix: crash at startup (rare, but long standing problem with corruption of task files).
  • Bugfix: input paths were ignored if did not exist (often causing task to end with success while it should not).
  • Bugfix: importing paths in custom copy dialog did not work.
  • Bugfix: fixed an endless loop when searching for files.
  • Fix: Copy Handler at every startup tried to write "Start with system" setting to registry, whether it was needed or not.
  • Updated russian translation by Alexander Polukhin.
  • Applied patch by eegee for displaying time to finish in main copy dialog.

New in Copy Handler 1.32beta-svn212 (Apr 21, 2009)

  • Language updates: Chinese by James Fancy, French by Adrien, German by René Schümann and Traditional Chinese by Plucky.
  • Added resize capabilities to most of the dialog boxes used in CH.
  • Added new functionality - check for updates at startup.
  • Fixed problems with creating shortcuts in explorer.
  • Fixed problem with directory times not being preserved.
  • Fixed problem with 'apply to all items'.
  • Added support for displaying feedback dialog boxes in places where error messages stopped processing.
  • Moved log file entries from resources to code - less text for translating.

New in Copy Handler 1.31 Final (Mar 5, 2009)

  • Changed handling of language files - if they have not been ported to the new format, it won't be selectable in options dialog.
  • Fixed problems with changing language while small status window was shown (and other potential problems).
  • Installer multilingual improvements (translated some custom strings to Polish).
  • Changes in the feedback dialogs (whown when task requested some feedback from user)
  • Bugfix: fixed formatting of data sizes in several places (e.g. tooltips in clipboard monitoring dialog).
  • Bugfix: crash when creating file description object in some cases.
  • Bugfix: Problem with crashing CH when changing buffer size while copying data.
  • Bugfix: fixed parametres -> parameters.
  • Bugfix: shortcuts were not visible in the shell context menu.
  • Bugfix: fixed crash when closing the clipboard monitoring dialog box.
  • Bugfix: Win+E keyboard shortcut did not work when CH was not running. Bugfix: crash during error logging. Updated polish language file.
  • Traditional Chinese language.
  • Korean language
  • Updated italian language file

New in Copy Handler 1.28 (Nov 7, 2006)

  • Fixed bug where files which name starts with a dot were not copied.
  • Added some new translations
  • Many internal changes in the code