Table of Contents ----------------- 1. Introduction 2. Changes in this release (1.0.1) 3. License and source code 4. unace binary 5. Limitations of AceXpander 6. Limitations of unace 7. Personal note Introduction ------------ AceXpander is a Mac OS X graphical user interface to the unace command line utility. With AceXpander installed, you can simply double-click on any ACE archive(s) in the Finder and the contents of the archive will be extracted to a sub-folder of the same folder where the original archive is located. To configure AceXpander, or to use additional program features, you have to launch the application, e.g. by double-clicking on the application icon in the Finder or in the Dock. For a detailed description of AceXpander's features, see the MANUAL document (available from AceXpander's Help menu). ACE archives can only be created with WinAce. For more information about this Windows application, see http://www.winace.com. You can check for the most recent version of AceXpander on its homepage http://www.herzbube.ch/drupal/?q=acexpander If you are interested in AceXpander as a developer, you should have a look at the README.developer document. Changes in this release (1.0.2) ------------------------------- - re-implementation of the entire project with Objective-C - added universal binary support For more details see the ChangeLog document. License and source code ----------------------- AceXpander is licensed under the GNU General Public License (GPL). See the file COPYING inside the application bundle, or start the application and choose the appropriate item in the Help menu to view the detailed license. The source code for AceXpander can be downloaded from its homepage http://www.herzbube.ch/drupal/?q=acexpander. You will get the source files ready for building with Xcode. Alternatively you may also get the source code from this subversion respository: http://herzbube.ch/svn/acexpander/ unace binary ------------ AceXpander packages its own version of the unace binary so that it can be distributed and run as a stand-alone application. If you wish you may set your own version of unace in the Preferences dialog, however you should be aware that AceXpander may stop working properly after you make this change, because AceXpander makes a number of assumptions about how unace is working, which command line switches and options it uses, and how its output on stdout is formatted. Of course you can always change your preferences back to use the unace that was packaged with this application. Limitations of AceXpander -------------------------- - I develop and test AceXpander with whatever version of Mac OS X is installed on my system at home, so every release of AceXpander potentially runs only on exactly one version of Mac OS X: the one that was installed at my home at the time of release. Since minor versions of the OS are often not that different from each other, it is reasonable to expect that AceXpander runs on earlier minor versions of the OS than the one that it was released for (e.g. a release for Mac OS X 10.4.6 may also run on 10.4.3). In effect, you will just have to try out whether it works or not. - If you turn on the "Use password" option, the password you enter will be passed to unace in clear text. If someone watches your system's process list that person might be able to catch the password as it is part of the unace command line. It is also possible (notably if you also turn on the option "Debug mode") that the password might appear in clear text in one of the text boxes in the result window. - AceXpander has too many features. I tried to keep them down to a reasonable number, but as this is a learning project for me, I often couldn't resist... Limitations of unace -------------------- - If you try to extract a password-protected file but specify an incorrect password, unace first extracts the encrypted file from the archive, but is then unable to decrypt the file, and dies. Unfortunately, the encrypted file is left lying around for you to clean up :-( - If you try to extract a file without the overwrite option turned on, and a file with the same name already exists, unace dies with a segmentation fault. In combination with the above problem with password-protected files, this may prove to be quite nasty. Imagine this situation: 1) In your first try to extract a password-protected file, you mistype the password and get an error message. 2) In your second try, you type the correct password, but you still get an error message. Reason: you didn't turn on the overwrite option, but there is still the encrypted file from 1) lying around. After a couple of tries you might start to think that you have the wrong password, but in effect you just have to delete a file, or turn on overwrite. - If you try to extract a file with the overwrite option turned on, and a file with the same name already exists, you must also have the "assume yes" option turned on in AceXpander, otherwise unace dies with a segmentation fault. AceXpander takes care of this problem for you by always turning on the "assume yes" option when the overwrite option is turned on. Technical note: the problem actually exists because of how AceXpander interacts with unace: when invoking unace, AceXpander explicitly sets all possible switches on the unace command line, even if the specified setting is the default for unace and therefore could be omitted (the reason why I coded it like this is that I did not want AceXpander to have specific knowledge about unace defaults; the less AceXpander knows about unace, the better). Now for the "assume yes" option: as explained, even though the option is turned off in the GUI, and "off" is unace's default for the switch, AceXpander still explicitly sets the switch on the command line to "-y-". Now the bug in unace is that the overwrite switch stops working as soon as "-y-" is set explicitly; if "-y-" is not set explicitly, the overwrite switch works fine. - If the archive contains a directory, and a directory with the same name already exists in the file system, unace is not able to extract the directory and its content - even if the overwrite option is turned on. - Often when unace encounters an error, it dies with a segmentation fault. This is not a big problem, the error handling on the part of AceXpander just becomes somewhat un-differentiated. If you're only using the GUI and are not interested in what happens under the hood of AceXpander, you can forget about this issue. Personal note ------------- I would like to thank Marcel Lemke for providing us with unace, and Kolja Koischwitz for porting unace to the Mac. I would also like to mention another GUI frontend to unace, MacUnace by Gabriel Gritsch, which has influenced some of AceXpander's features (http://www.gritsch-soft.com/). Martin Moser has contributed the project logo and the important parts of the application and document icons; for this I am very grateful since I am a most un-artistic person. And, of course, a big Thanks to you for trying out this little program. It is my first Cocoa application, and in fact, it is also the first Open Source software that I release. As such it is probably full of shortcomings, if not bugs. If you see something that needs improvement, please don't hesitate to let me know. Patrick Näf