ARCHandler 2.1 ================ ARCHandler is Copyright © 1994, 1995 Rafael D'Halleweyn. All rights reserved. 0. Contents ----------- 1. Introduction 2. Distribution 3. History For full documentation you should read the included AmigaGuide (in the `Help' drawer). 1. Introduction --------------- ARCHandler installs a filesystem that gives you transparent access to the files in archives: you can read, change and execute those files/programs from archives without the need to extract them first. You can test the program without installing it first, just double-click the `ARCHandler'. When you have decided to install ARCHandler you should use the included `Install' script. It needs the Commodore `Installer' program. The Installer program should be somewhere in your path. You can use the `Remove' script to deinstall ARCHandler. The `Script' drawer contains several scripts for directory utilities. These are not installed by the Install script. 2. Distribution --------------- This package is released as shareware. This means you can copy it freely as long as you don't ask any money for it, except perhaps a nominal fee for copying. If you use this package on a regular base, you should send me a contribution of 500 BEF or USD 20. Send money by International Money Order, EuroCheck (in BEF!) or Cash. Magazines that want to include ARCHandler on their coverdisk(s) should also register ARCHandler (one registration fee) and send one free copy of the magazine (including disks) to the author. The package is Copyright © Rafael D'Halleweyn, All Rights Reserved. The author reserves the right to change the status of this package whenever he finds it appropriate. This package should not be spread in any other form than an LhA (or equivalent) archive and all parts of it should be spread together. The package may not be altered in any way and cannot be used for commercial purposes without the prior written permission of the author. The archive should contain the following files: ARCHandler (dir) ARCFiles Disk.info Drawer.info Volume.info C (dir) FindCommand FromARC PrefLanguage StartARC StartARC.info ToARC Catalogs (dir) «language» (dir) archandler.catalog ... archandler.cd Help (dir) «language».info «language» (dir) ARCHandler.guide ... Pictures (dir) ARCHandlerArcPrefs.pic ARCHandlerCxPrefs.pic ARCHandlerDevPrefs.pic ARCHandlerKeyReq.pic ARCHandlerMain.pic Scripts (dir) FromARC.dmrx FromARC.dopus Scripts.txt Scripts.txt.info ToARC.dmrx ToARC.dopus ARCHandler ARCHandler.info ARCHandler.txt ARCHandler.txt.info Help.info Install Install.info Remove Remove.info Scripts.info ARCHandler.info Distribution of the program on any medium (CD, floppy, ...) in such a way that it is ready to be used (eg. as a front-end for a CD-ROM) requires the permission of the author. The installation-script (`Install') and the extra commands it uses (`FindCommand', `PrefLanguage' and `StartARC') are also copyrighted and can't be used in any other project/archive without the prior written permission of the author. 3. History ---------- =========================================================================== ·release 1.0 [37.129 (12.7.94)] -First release. ----------------------------------------------------------------------- ·release 1.0a [37.131 (14.7.94)] -Volumes that have the same name as a device couldn't be used through the handler (reported by Erik Bergen). -Removed a nasty Enforcer hit. -Made some changes to the installation script. =========================================================================== ·release 1.1 [37.157 (21.8.94)] «never released» -ARCHandler now uses it's own routine to list lha-archives. As a result, ARCHandler no longer needs the PIPE-device. The strange files, that sometimes showed up, should also be gone. Listing is now also a bit faster. -Files are now extracted much faster (upto 5 times faster for small files like icons). -ARCHandler won't start to list an archive when another process is already listing the same archive. -Added a '.backdrop' file to the root of the filesystem. Now you can permanently leave out files and drawers. -The handler now supports ACTION_COPY_DIR_FH (DupLockFromFH), ACTION_EXAMINE_FH (ExamineFH), and ACTION_PARENT_FH (ParentOfFH). Suggested by Nicola Salmoria and Matthias Scheler. Currently these packets only work with normal files and files in archives, they don't work with the extra icons the handler produces nor with the backdrop-file. -ARCHandler now adds a '/' to TEMPDIR when there wasn't one (LhA needs this). Suggested by Tattoo Mabonzo. -ARCHandler no longer uses LhA to extract uncompressed files (`-lh0-'), this should speed up access to archives in archives. -Added a new startup-option: ONLYEXT; when you use the ONLYEXT- option, ARCHandler will only check the filename-extension to decide on the filetype (suggested by Nicola Salmoria). -Some preparations for a writable filesystem and some general fixes. -ARCHandler now returns a `disk not validated'-error when there's something wrong with an archive or with LhA. -The handler now adds DISKINSERTED/DISKREMOVED events to the input stream when it's started/removed. This way, the Workbench notices the new volume faster. -Added two support commands for shell users, ToARC and FromARC. -The DISKICON and DRAWERICON arguments may now be upto 96 characters. -`Smarter' installation script. -Added ToARC and FromARC scripts for DiskMaster. =========================================================================== ·release 2.0 [37.290 (3.2.95)] -ARCHandler is no longer a real handler (one that lives in the 'L:' directory). Instead, ARCHandler is now a program, you can place it everywhere, even in your WbStartup directory. -The most visible change is the graphical user interface (GUI). The GUI is fully font/locale sensitive. Almost all of the settings can be changed (and saved) with this GUI (you no longer have to mess with the `Startup' field). The settings that can't be changed with the GUI are set while installing ARCHandler. The GUI has context sensitive online-help. -The internals of the handler have completly been rewritten. It now uses coroutines to implement a multi-threaded filesystem: there's no longer a need for extra processes to complete packets (an ACTION_FINDINPUT of an archive will still need an extra process since LhA can't be used in this multi-threaded environment, the same is true for the filerequesters). -ARCHandler is now also a commodity, with a `Hot Key' and a `Flush Key'. -Instead of scanning the DosList on every ACTION_EXAMINE_NEXT packet, ARCHandler now scans the DosList every x seconds (x can be changed). -ARCHandler also listens to DISKINSERT, DISKREMOVED events. Both events will trigger a rescan of the DosList. ARCHandler also checks the list of archives, when it finds an archive that exists on a removed volume, the archive will be freed if it was not in use (or if it is in use, it will be freed when the archive is no longer in use). -The `FlushARC' command is gone, there's now a `Flush Key' and a 'Flush' gadget. The use of the DISKINSERT and DISKREMOVED events should also replace some uses of this command. The `FlushARC' command will no longer work, please delete it if you still have it. -All the extra files that ARCHandler needs are now placed in one directory (default is `PROGDIR:ARCFiles'). This directory should contain a `Volume.info', resp. a `Drawer.info' if you want icons for volumes without a disk-icon, resp. icons for archives. -Non-archive files are now writable. The default volume `Disk.info' and the icon for the archives are also writable (the position information of the icon is ignored). -ACTION_LOCATE_OBJECT (Lock()) supports exclusive (ACCESS_WRITE) locks. -The filesystem now has full support for the following packets: ACTION_COPY_DIR_FH; ACTION_EXAMINE_FH; ACTION_FH_FROM_LOCK; ACTION_PARENT_FH and ACTION_RENAME_DISK. It also has partial support for the following packets: ACTION_CHANGE_MODE; ACTION_FINDOUTPUT; ACTION_FINDUPDATE; ACTION_DELETE_OBJECT; ACTION_RENAME_OBJECT; ACTION_SET_COMMENT; ACTION_SET_DATE; ACTION_SET_OWNER; ACTION_SET_PROTECT; ACTION_SET_FILE_SIZE. -ARCHandler should now also work correctly on systems using the MultiUser FileSystem (muFS). I hope to add full MultiUser support in a future version. The only thing that has to be done is access-checking. ACTION_EXAMINE_OBJECT and ACTION_EXAMINE_NEXT should already return the correct protection/file owner, even for the virtual files (icons), these are always owned by root and are readable by all, but only changeable by root. -The ARCHandler archive contains NewIcons. You won't see these icons unless you have the NewIcons package installed. If you don't have the NewIcons package installed you can remove the `IM1' and `IM2' tooltypes. NewIcons was written by Nicola Salmoria, the artwork is based on work by Roger McVey. ----------------------------------------------------------------------- ·release 2.0a [37.312 (11.4.95)] -Because of the low number of new registrations I have been forced to protect my hard work with a key file. Everybody who has registered should already have his/her key file. An unregistered copy will pop up the main ARCHandler window from time to time. The KEEPTIME (see further) and BUFFERS arguments are sometimes reset to zero. Using an illegal key file is DANGEROUS! -When an extracted file is closed it isn't immediatly deleted. When the same file is opened again in a short time, the file doesn't have to be reextracted. This speeds up access through MultiView and directory utilities. The time a file is kept can be changed with the KEEPTIME argument/tooltype (defaults to two seconds). There's no slider to change it yet. -You can now use devices and assigns in the root directory. A device will be expanded to its volume (if it has one, otherwise it will fail), an assign will be expanded to its path (only binding, non-late assigns, using the first part of a multi assign). -Sometimes an archive whose contents wasn't yet completely parsed was already flushed. This generated several Enforcer hits. This error only occured under very rare conditions and was very hard to find. -ARCHandler has never been able to use directories deeper then 254 levels (that should be enough), but it never checked if you tried to go deeper (you almost never do). ARCHandler will no longer allow you to go any deeper, it will return with an error "too many levels". This only gave problems when you used the Workbench to copy `Archives:Ram Disk' to `Ram Disk'. This resulted in a very long chain of directories `Ram Disk:Ram Disk/Ram Disk/...', that way you quickly reached the 254 limit. -You can now rename archives. I also changed (fixed?) some other renaming stuff. -ARCHandler could lock up when you used it to access archives in archives (ie. Archives:Archives/Work/arc1.lha/arc2.lha/file.txt). -Fixed some things that could cause an Enforcer hit. -Fixed something in the multithreading that could have messed things up pretty badly. -After using an archive in an archive you no longer have to flush before you can quit. -Slashes are removed from the start of directory names in archives. -The key up events were also used when you used the keyboard to change a slider or a checkbox (causing a slider to move two positions). -Device Preferences wouldn't show the actual priority of ARCHandler (ie. you used a utility to change the priority of ARCHandler). -When you had seeked through a volume icon in the root of the filesystem ARCHandler no longer changed the icon to a drawer icon. This shows when you are using PDPro. Reported by Kaikumaa Timo. While testing ARCHandler with PDPro I had several other crashes, I still had crashes when ARCHandler was NOT running! I do not recommend using PDPro together with ARCHandler! -Small problem fixed that happened when a file extraction failed. ARCHandler now returns an ERROR_OBJECT_NOT_FOUND when it finds that the archive is corrupt. The Workbench didn't like the other errors. -ARCHandler couldn't be started from ToolManager, fixed. -Using ASLFR_DoSaveMode tag for directory requesters. This allows you to create new drawers from within the directory requesters. -An exclusive lock in an archive wasn't correctly unlocked. -Recompiled with SAS-C 6.55. -Split Installer options in two so that they are all visible. -Install script forgot to add 'LhA' to the path it got from the user when it couldn't find 'LhA' by itself. -Included German translations by Martin Stengle. Thanks Martin. -Included French translations by Florent Monteilhet. Thanks. -Removed some mistakes reported by Erik Bergen from the guide and the installation script ----------------------------------------------------------------------- ·release 2.0b [37.352 (23.7.95)] -Complete support for six actions: ACTION_CREATE_DIR [CreateDir()]; ACTION_DELETE_OBJECT [DeleteFile()]; ACTION_RENAME_OBJECT [Rename()]; ACTION_SET_COMMENT [SetComment()]; ACTION_SET_DATE [SetFileData()] and ACTION_SET_PROTECT [SetProtection()]. Please note that small changes in a large archive can take a _very_ long time: be patient. -Removed bug that was introduced in 2.0a: the number of archives in use could become negative, this prevented ARCHandler from quitting. -All windows and requesters are now build by my own layout engine. This has resulted in some changes to the GUI. -All non-requester windows have menus (with menu-help). The preference windows have menu items to restore, use the last saved or use the default preferences. -All archive specific preferences can now be changed from a seperate window. -The KEEPTIME argument can now be changed with a slider in the archive preferences window. -The archive preferences window now contains a cycle gadget to select the type of archive recognition: filename, filename and contents, contents only. The 'Only Extension' checkmark is gone. The 'ONLYEXTENSION' argument is now obsolote (but still suported) and superseded by the 'RECOGNITION' argument (short form 'RECOG'). RECOGNITION takes a number from 0 to 2 indicating the recognition type (0: filename, 1: name and contents...). -LhA-archives with type 1 header weren't handled correctly. -ACTION_DISK_INFO and ACTION_INFO now return a more sensible value for id_NumBlocks and id_NumBlocksUsed. -ACTION_DISK_INFO and ACTION_INFO said that the volume was write protected. -The keyrequester is now resizable. And the key-gadget is now a real gadget (and a bit different). -The message port pointed to by the dol_Task field in the device node is now named (its name is the name of the device). This should prevent Diavolo Backup from generating Enforcer hits. Reported by Martin Korndörfer, author of Diavolo Backup. -Changed FindCommand and PrefLanguage (commands used by Install script). I hope this fixes problems with the Install script and different shells. -The preference windows won't close when you are trying to use or save an impossible setting. -Changed the behaviour of the unregistered version a bit: it will only pop up the nag requester when it is started and when it is finished, and saves of the preferences are ignored (you can use the Tool Types to change them). -Tried to use memory pools where-ever possible. -Smarter buffer allocation, I try to allocate a large block without expunge, and if that fails I try a smaller block with expunge. -When there is a problem with the underlying filesystem ('volume not mounted', 'disk is full', ...) you should get the name of the volume with the problem (instead of 'Volume Archives is write protected'). ARCHandler uses its own requesters for this. -Optimized unnecessary seeks. -FromARC didn't work, fixed. -Danish translation by Jacob Laursen, thanks. -Finnish translation by Timo Kaikumaa, thanks. =========================================================================== ·release 2.0c [37.355 (4.10.95)] -ARCHandler wasn't able to use fonts that contained all the characters (from 0 to 255, XHelvetice is an example of such a font). -You can now use 'ARC:.' to get to the same directory as the current directory but on the Archives: volume. This should replace ToARC. -I was using to much options to link FromARC and ToARC. Using the correct options I was able to reduce their size by 50%. -ARCHandler sometimes marked the icons for the volumes as directories, tried to change that. -Tested ARCHandler with the Ami-FileSafe demo from Aminet. AFS seems to think that ACTION_FINDUDPATE (MODE_READWRITE) gives exclusive access to a file (this is different from the standard FastFileSystem). As a result ARCHandler can't change archives on an AFS partition. =========================================================================== ·future release? -Fully writable filesystem, with the ability to create/change files in archives. -Support for more archive types (zip/zoo/tar/...). -Support for crunched files (XPK/PowerPacker/Imploder/...). These are just some of the features I might add to a future release. I don't guarantee that any of these features will ever be implemented (but I hope they will). If you've got any good ideas for a future release let me know.