---------------------- AmigaOS 3.5/3.9 project ----------------------- AsyncWB 45.0 (27.11.2000) - First beta release. AsyncWB 45.1 (28.11.2000) - (hopefully) Fixed some enforcer hits that were reported by Mario. I couldn't reproduce it here but I found the place where the program could have thrown them. AsyncWB 45.2 (1.12.2000) - Starting the program a 2nd time terminates it. - Can be started from wb, now. AsyncWB 45.3 (7.12.2000) - All texts except "Create Icon?" (New Drawer function) are localized now. The workbench.catalog is used for that. - The makedir function can create several drawers at once, now. For example: 1/2/3 creates drawer 1 and 2 in 1 and 3 in 2 in 1 :). - A few internal changes. AsyncWB 45.4 (15.12.2000) - Pressing tab doesn't terminate the textinput requester any longer. - The "Create Icon?" text is now localized (the Q_ICON_MENU label is used). - Displays the greeting text (the text above the string.gadget of a textinput request), now. - For rename and new drawer the contents of the string.gadget will be marked. - When renaming/creating an iconless file/drawer, the contents of the parent drawer will be updated via "wbarexx/MENU WINDOW.UPDATE". AsyncWB 45.5 (16.12.2000) - When renaming an object *with* an icon, the icon was removed from the display without adding it to the display again. Bug was introduced in 45.4. - Replacing a drawer failed when the window of the drawer to replace was open. - When replacing an object its icon won't be overwritten anymore. AsyncWB 45.6 (27.12.2000) - Even for large drawers, the copy/delete progress window should appear after 2-3 secs. - Copying a disk should (correctly) duplicate its icon, now. when the disk to be copied doesn't have an icon the default drawer icon will be used (before def_disk was used). - Fixed byte-write to #0 enforcer hit when sending arexx commands to wb. - AllegroCDFS returns ERROR_OBJECT_NOT_FOUND when trying to read beyond the end of a file, the filesystem should simply return zero for this case. AsyncWB takes care of this problem, now. - The prompt of a textinput requester is now always marked. - When a textinput requester went inactive, its string.gadget will be activated again when the window becomes the active one, again. Don't know whether the text should be marked again in this case. - Rename doesn't put up an error requester any longer when the icon to rename doesn't have a corresponding file or drawer. - The button of the greeting message (the text above the string.gadget) didn't have underscoring disabled. AsyncWB 45.7 (31.12.2000) - When copying an iconless file or drawer, the destination drawer will be rescanned to update the display. That's not a perfect solution but the best I can do for now (before an icon was created to update the display). Don't like to create an icon and deleting it immediately ... - Deleting only icons (icons without a corresponding file or drawer) didn't work because I forgot to set a variable back to NULL. AsyncWB 45.8 (12.1.2001) - When updating a drawer (after copying something) the program (actually wb) could throw some enforcer hits because of a flag that wasn't cleared. Thanks to David Rey and Mario Cattaneo for reproducing the bug. AsyncWB 45.9 (17.1.2001) - Improved (soft)link support, possibly not perfect but the best I could do. AsyncWB 45.10 (24.1.2001) - This version should really fix what 45.8 should have fixed ;) AsyncWB 45.11 (13.2.2001) - No longer rescans the drawer when changing/copying an iconless file in a "show all files" drawer, UpdateWorkbench() will be used to update the display, now. Requires at least workbench.library 45.121! - No longer leaves filehandles open when skipping files that already exist on the destination. - Misc changes and fixes not really worth to mention :) AsyncWB 45.12 (19.2.2001) - Deleting a drawerless drawer icon didn't work. - Makedirs also works when the mother drawer is in use. AsyncWB 45.13 (13.3.2001) - Integrated Joanne Dow's makedir magic. - Too sad it's not Friday ;) AsyncWB 45.14 (17.3.2001) - When the source does not have an icon but the destination, the program no longer puts up the "Replace/Skip/Abort" requester. AsyncWB 45.15 (6.4.2001) - Now really handles "Skip All/Replace All" of .info files correctly. - AsyncWB no longer spawns new processes for the rename/relabel operation, this way there will be only one rename window at a time. - Rename reselects the icon after renaming it, this is what wb does. AsyncWB 45.16 (18.4.2001) - Rename or new drawer no longer overwrite the command cache of the execute command function. - Holding down RAMIGA when clicking on the "Cancel" button (or closegadget) of a rename window, will also cancel all queued rename requests. - Selecting a button of an inactive window won't be aborted any longer. - The delete progress window shouldn't come up too early, now. AsyncWB 45.17 (10.6.2001) - Now clones the filedate - Makedir complains about already existing dirs, now. - Some new code in 45.16 caused the delete/copy to abort when the user clicked on the progress window. AsyncWB 45.18 (18.6.2001) - Forgot to remove some debugging output - The rename and newdrawer function allows to enter all wildcards. AsyncWB 45.19 (15.8.2001) - Now keeps the filename uptodate (lower-/uppercase) when replacing files. AsyncWB 45.20 (19.9.2001) - Pressing Esc in a string.gadget cancels the requester, now. AsyncWB 45.21 (25.10.2001) - Added NOASYNC as an attempt to reduce CPU usage a bit on IDE based systems. - You can drop icons on the "Execute Command" window, now. - Also added a simple history function (use cursor up/dn keys) to the window. - When entering an URL the program will attempt to open it in a browser (requires openurl package from the Aminet). - Entering a path to a drawer opens the window of the drawer. AsyncWB 45.22 (16.12.2001) - Makedir accepts '/', again. ------------------------ AmigaOS 4 project --------------------------- AsyncWB 45.23 (28.5.2002) - The code that ensures that you can't delete an object that is being copied is much smarter, now. It takes into account that one object could the parent of the other and also detects when the copy command fails. In this case the delete command will be aborted. AsyncWB 45.24 (9.10.2002) - The "Execute command" window remembers the command history even after a reset, now. AsyncWB 45.25 (21.10.2002) - Fixed LF bug introduced with 45.24. AsyncWB 45.26 - Undid 45.24 feature. AsyncWB 45.27 (22.3.2004) - Ported to ppc. AsyncWB 45.28 (7.4.2004) - No longer relabels the wrong volume, if you happen to have two or more volumes with the same name. Please note that you also need the latest workbench.library to make this work. AsyncWB 45.29 (1.5.2004) - The "Execute command" window now remembers the command history, again. A fixed-size file is used to avoid invalidating the disk as Jörg suggested. AsyncWB 45.30 (9.9.2004) - Pressing tab doesn't terminate the textinput requester any longer (again). - Write protected icons should be deleted, now. AsyncWB 51.1 (30.4.2005) - Bumped version. - changed priority of commands (programs without icon) started through "Execute Command" to 0. - Aligned copy buffer for faster DMA transfers. - Added NOHISTORY tooltype to keep the history from getting written to disk. - No longer deletes icons of skipped files. AsyncWB 51.2 (7.7.2005) - Fixed newly introduced bug (BUFFERSIZE tooltype and some others crashed). AsyncWB 51.3 (10.11.2005) - Now builds with gcc 4.0.0 with -Wall -Werror. - No longer allocates MEMF_PUBLIC memory. - Now uses TimedDosRequesters instead of EasyRequesters. - Added the tags OC_BuiltInLanguage, OC_BuiltInCodeSet, TDR_CharSet, LAYOUT_CharSet to display the requesters and GUI in catalog charset. - Removed empty sections. AsyncWB 51.4 (13.11.2005) - All processes are created with "NP_WindowPtr, NULL" now to ensure that TimedDosRequester() calls of them do actually display the requester. This fixes the missing requesters when using Workbench ARexx scripts. Thanks to Mario Cattaneo for the report. AsyncWB 51.5 (19.11.2005) - The requester that asks for confirmation to delete something is no longer opened inactive. Thanks to Mario Cattaneo for the report. - The following requesters are no longer opened inactive: relabel volume error, rename error, new drawer error, execute error, copy hook error, text input hook error, delete hook error. AsyncWB 51.6 (17.3.2006) - No longer tries to create hardlinks (always softlinks). - The path to a linked object is no longer converted to an absolute path, now. AsyncWB 51.7 (21.3.2006) - Data vu: the vague feeling of having fixed a particular bug before. Or in other words, copying softlinks should really work, now. - The progress requester uses a separate process, now. AsyncWB 52.1 (10.12.2006) - Bumped to V52; no functional changes. AsyncWB 52.2 (20.9.2007) - Now builds with -Wwrite-strings. - Fixed a "read after the end of an array" bug which by luck did always read NULL which was passed to Stricmp(). This caused a crash when using "Execute Command..." before locale.library patched Stricmp(). Thanks to Carl Moppett for the report. AsyncWB 52.3 (17.11.2007) - When deleting the contents of a directory failed and the user selected "Skip" or "Skip All" in the requester, an error requester was displayed which reported an error code of -2147483647, fixed. Thanks to David Rey for the report. AsyncWB 52.4 (21.12.2007) - Labels in text input requesters are now using the label font selected by the user in the GUI preferences. - When copying a file which has an associated icon, UpdateWorkbench() is now called after both the icon and the file have been copied. It used to be called after copying the icon but before copying the file, which in text mode drawers prevented the Workbench from showing the correct attributes beside the file name. - Slightly changed the order of the operations during a rename action to allow Workbench (52.9+) to always correctly update the displayed icons when in "show .info files" mode. - Disk icons no longer get converted to drawer icons when copied. AsyncWB 52.5 (16.9.2008) - Now uses the 'global' copy buffer specified in prefs/Workbench as default rather than the hardcoded 32kb. AsyncWB 53.1 (26.11.2008) - Bumped to 53. - Changed to newlib from clib2. - Fixed up makefile.os4. - Added mkrelease script. - Increased copy, delete and text input process stacks from 8192 to 40k and added NP_Child tag. - Increased default execute stack from 4096 to 16k. This stack is overridden by WBCTRLA_GetDefaultStackSize. - Replaced memory pool handling with ASOT_MEMPOOL. - Removed some dead code. AsyncWB 53.2 (2.4.2010) - Added the URL feature which allows you to enter a URL in the command string and it launches your browser. The previous implementation was using the obsolete openurl.library and was disabled. The new implementation uses launch-handler. Currently supported prefixes include: "http:", "https:", "ftp:", "file:" and "mailto:". Everything else will be assumed to be a command. - Increased stack of all child processes from 40k to 80k to avoid intuition.library stack swapping. - Updated mkrelease and AutoInstall scripts to use the new path SYS:Utilities/Commodities used by AmigaOS 4.1 Update 1. AsyncWB 53.3 (27.6.2010) - Replaced DOS packets with standard DOS function calls. - Replaced custom StrnCpy() with Strlcpy(). - Replaced custom sprintf() with safer SNPrintf(). - Replaced custom StrLen() with strlen(). - Standardized the version string. - Fixed up makefile.os4. - Fixed mkrelease script. - Some code cleanup to remove macros. AsyncWB 53.4 (1.11.2010) - Ported buffer allocation from C:Copy. This causes ASyncWB to no longer free and reallocate the copy buffer for each file, but allocate it only once and reuse it. Also the allocation now takes cacheline and block sizes into account. If the buffersize is set to 0 (i.e. same as the size of the file to be copied), the buffer is of course freed/reallocated for each file. This change can increase copy speed quite a bit depending on the number of files to be copied. Thanks to Jörg Strohmayer for the heads up! - To avoid fragmentation as much as possible, the size of the target file is now set immediately after opening it and before the first data is written to it. Errors from this operation are threated as fatal errors and cause a program abort. This is *not* done if the target is RAM: as there fragmentation doesn't matter and would just cause the process to be delayed because the pager may kick in before it is actually needed. Thanks to Jörg Strohmayer for the suggestion! - Removed ExAll() options and support. This should have been done long ago already. AsyncWB 53.5 (6.2.2011) - Fixed cloning directory comments, dates and protection bits. AsyncWB 53.6 (28.5.2011) - Added HISTORY option to CON: output window specification. (bug #6999) - Added workbench.cd to upload archive. - Renamed makefile.os4 to makefile. AsyncWB 53.7 (9.8.2011) - Disabled optimization added in 53.4 due to bug 6932 in JXF. AsyncWB 53.8 (19.12.2011) - Added feedback mechanism for copy/delete operations. This is done by an augmented Copy/Delete-DataMsg. It tells, if the operation was successfull. It is also used, to suppress requesters. These features are needed for the cut-n-paste operation of the contextmenus commodity. - Removed use of semaphore in copyProc() and deleteProc(). Allowing multiple copy/delete processes simultanously. AsyncWB 53.9 (8.6.2012) - Replaced strcpy() with safer Strlcopy(). - Replaced custom clrmem() with ClearMem(). - When storing command history to a file, the file size is no longer set. Instead, the file is just appended to. - Fixed two bugs in the stringfilter() hook. First, the BufferPos was not checked for a zero value during EO_REPLACECHAR or EO_INSERTCHAR. Second, the WorkBuffer size was not respected. The limit is SG_DEFAULTMAXCHARS which is 128 characters. - Fixed to initialize the input string to zero before querying it from the string.gadget. AsyncWB 53.10 (9.6.2012) - Version bump only. AsyncWB 53.11 (17.6.2012) - Fixed a text corruption bug which could occur due to a race condition between input.device and AsyncWB (bug #6064). - Replaced custom peekQualifier() routine with WINDOW_Qualifier query. - Replaced some deprecated function calls. - Added tab cycling to all gadgets so the requesters can be totally controlled using the keyboard now. AsyncWB 53.12 (30.1.2013) - Some code cleanup. AsyncWB 53.13 (31.1.2013) - Added check for illegal infinite copy, when an ancestor is copied into a drawer. This would lead to a crash. AsyncWB 53.14 (2.3.2013) - Fixed problem with the copy loop checking when copying files from one volume to another. (bug #8268) - Fixed handling of copy loop error messages which would crash when the copy operation was aborted by the user. (bug #8267) AsyncWB 53.15 (19.2.2014) - Fixed crash when using "Force Delete" option. (bug #8620) AsyncWB 53.16 (9.11.2014) - Now allows again copying of icons without a corresponding file (bug #8002). - Added some more error handling code in Copy() function. AsyncWB 53.17 (28.11.2015) - Replaced almost all usage of obsolete FileInfoBlock structures (only lockSame() still remains to be dealt with). AsyncWB 53.18 (29.11.2015) - Fixed ReleaseDirContext() potentially being called twice on the same context if an error occurred in the ScanDir() function. - Simplified handling of soft links which was overly complex and got rid of the isDir() and CheckIfLink() functions. - Now requires dos.library 53.56 or newer. AsyncWB 53.19 (29.11.2015) - Now compiles completely without -Wno-deprecated-declarations and . - Rewrote the IsParentOf() function (formerly CheckLoop()) so that it now only continues checking if SameLock() returned LOCK_SAME_VOLUME. Also made the return value more sensible. AsyncWB 53.20 (2.12.2015) - Fixed checking of SameLock() return value in IsParentOf() (bug #9402). AsyncWB 53.21 (8.12.2015) - Now uses OpenClass()/CloseClass() for opening and closing BOOPSI classes. AsyncWB 53.22 (9.12.2015) - Now registers as a commodity and can be controlled through Exchange (can be turned active/inactive and removed). - Removed FindTask("ASYNCWB") and task->tc_Node.ln_Name modifying as it's now up to commodities to ensure that there is never more than one version of AsyncWB running at one time. AsyncWB 53.23 (14.12.2015) - No longer posts an ERROR_OBJECT_EXISTS error requester when overwriting is canceled (bug #8487). - The broker title and description are now localised (bug #9416). AsyncWB 53.24 (20.3.2016) - Removed NP_Child from CreateNewProc() calls for copy, delete and textinput processes (bug #9107). - Replaced newlib calls with equivalent utility.library calls. AsyncWB 53.25 (18.5.2016) - Copy progress now with big file support AsyncWB 53.26 (18.5.2016) - Fixed some type casts AsyncWB 53.27 (7.12.2016) - Increased buffer sizes to allow input of file names of up to 255 characters. AsyncWB 53.28 (23.06.2017) - Fix up an old safety check in allocate_copy_buffer() that used TypeOfMem() to now use IMMU->GetMemoryAttrs() hilighted by bug #9576 AsyncWB 53.29 (11.7.2017) - Now coppes the file before the icon, and sets an additional flag to ensure the icon is also skipped if copy the file fails or the user chooses to skip the file. Fixes bug #9578 AsyncWB 53.30 (27.8.2017) - Added validity checks for BPTR pointers in allocate_copy_buffer(). AsyncWB 53.31 (14.02.2019) - Allocate_copy_buffer() now also checks that fssm_Device is a valid BPTR. - Division by zero safety check ------------------------ AmigaOS 3.2 project ------------------------- AsyncWB 47.1 (8.7.2020) - Ported to OS3.2. - Now uses requester.class V47 if it is available. - Now locks the window height. AsyncWB 47.2 (18.7.2020) - Fixed some further bugs introduced during porting. AsyncWB 47.3 (23.8.2020) - Fixed NULL pointer dereference when updating selection. AsyncWB 47.4 (6.9.2020) - Fixed: relabelling always relabelled SYS: instead of the intended volume. - Fixed: copying sub-sub-directories was failing in some situations. - Replaced problematic strlcpy() implementation with a better one. AsyncWB 47.5 (6.9.2020) - Replaced strlcpy() with V47 Strncpy() to save a few bytes. - Reworked button spacing. Requires layout.gadget V47.25. AsyncWB 47.6 (7.9.2020) - Now uses localized "Delete" instead of "AsyncWB" for the titles of delete confirmation requesters. AsyncWB 47.7 (15.9.2020) - Fixed: an Enforcer hit was possible after some operations, and the objects were not being reselected. AsyncWB 47.8 (16.10.2020) - Added $STACK cookie to ensure stack is at least 5K. AsyncWB 47.9 (30.01.2021) - Added new tag BUTTON_TextPadding to Ok/Cancel buttons. AsyncWB 47.10 (11.3.2021) - When copying disks, now changes the destination icon type to WBDRAWER.