************************************************************************* * NoDelete V1.4 (C) HooverSoft Oct 30th, 1990 * ************************************************************************* USAGE: 1> run NoDelete [extensions] [-p priority] [-y ypos] from CLI only. HISTORY CHANGES TO VERSION 1.35: OCT 1990 Programmed two new options -O and -S (Cheers, John!). These options sort of "fix" a bug whith NoDelete which used to override the file protection bit. CHANGES TO VERSION 1.3: SEP 1990 Lots of changes. Thinking of writing a new documentation. Anyway, introduced command line options -p and -y for run-time setting of priority of NoDelete and of vertical position of titlebar. CHANGES TO VERSION 1.2: AUG 1990 Introduced the possibilty to give multiple extensions on startup. Lists extensions when pressing a key while Nodelete's titlebar is active. CHANGES TO VERSION 1.1: Aug 1990 NoDelete now automatically centers the Dragbar on Screen and calculates the correct width for the window if a extension is specified. Now works fine with AmiOmega. System won't crash if "Yes, Delete!" is selected. Now supports the use of extensions to ask confirmations only for special files ending in defined extension. Will show the selected extension in window's titlebar. NoDelete now checks if another NoDelete is already active and exits if true. CHANGES TO VERSION 1.01: Jul 1990 Now handles protected Files correctly. Previous version didn't complain if file was delete protected. NoDelete sets its priority to a value of -5 directly after startup. CHANGES TO VERSION 1.00: June 1990 Version 1.01 now restores the Dos Vector relative to _DosBase, so this program should work under Kickstart 1.3 as well. If someone already uses Kick 2.0, he or she should let me know if NoDelete works with that. I have heard that the funny instructions in DosBase have been replaced with a regular jump table. WHY USE NODELETE? I wrote this program mainly to make the fantastic public domain game "Omega" more enjoyable to play. The author of this program thought it reasonable to have the system unlink the save-file after having reloaded it to somehow "simulate the continuity of character". Too bad that NoDelete does not work correctly with this program... Footnote: It works now! WHAT IT DOES NoDelete enables you erraneous humans to once again reflect on the righteousness of your decisions concerning the deleting of files on AmigaDos devices. If you try to delete a file or a program tries to remove it, this is mostly done via DeleteFile() of the dos.library. When executed, NoDelete bends this vector to its own routine which brings up this cute little requester on the active window. This requester contains the name of the file that the system is trying to delete. If you really want to delete this file, click to the "Yes, Delete!" gadget. If not, click to the "Oops, no way!"-Gadget of the requester. NoDelete works just fine with aliases, wildcards etc. For problems see the "known bugs"-section of this text. EXTENSIONS Lots of programs, programmers and normal people use extensions in their file system to be able to immediately make out the contents of a file. For example, ".c" specifies the file to be a C source code and ".bas" should contain a basic program's source. There are tons of frequently used extensions, from ".asm" up to ".cfg". If you use NoDelete and you don't want the system to get on your nerves by confirming EVERY rm command, you should use a certain extension on NoDelete's command line to tell NoDelete that it should only ask confirmation for those precious ".c" or ".iff" files and let all others alone. The command line 1> run nodelete .c would tell NoDelete to only intercept the removing of files ending in ".c" and not to worry about any other files that are removed from the device. You can specifiy up to ten extensions when running NoDelete. The command 1> run NoDelete .c .iff .tex .asm will make NoDelete complain about any file which ends in one of the specified extensions and leave all others alone. If you have forgotten which extensions you specified at startup, just activate NoDelete's titlebar and press any key. NoDelete will then give a list of extensions in the titlebar until another key is pressed. COMMAND LINE OPTIONS Finally, HooverSoft is proud to have introduced command line options in NoDelete. So far, four options are supported: -p number where number is an integer between -20 and 9. If given on the command line, NoDelete will set its priority to this value. If you type rubbish or use values not allowed, the default priority of -5 is set. -y ypos where ypos is an integer ranging from zero to 245 (sorry, all you NTSC users...). This number will determine the ver- tical position of NoDelete's titlebar. if you try to fool NoDelete or do not give this option, the default value zero (top of screen) is used. -O Override file protection bit. If this option is given, NoDelete will NOT care about the file's protection status. This option is sort of dangerous, but I think I you are explicitly asked wether you want to delete a file this should be presto! wiped off the disk without return or any other chance of survival..., Anyway, the default now is to consider and respect the file protection. -S if given, this option tells NoDelete to shut up. No screams, no comments! KNOWN BUGS NoDelete cannot take care of the AmigaDos command Delete. God knows how this command erases a disk file... The Shell won't complain if you try to delete any non-existent file while NoDelete has its grip on the system. This is not really a bug because NoDelete works on this basis of cheating the calling function and pretending that everything is just fine and deleted. This also is the cause that the calling program will not be informed if the file in question is delete protected. Sometimes it is possible to get two copies of NoDelete running at the same time. I can't explain how this is to be done, but somehow it works... Anyway this happens very seldomly. THE LEGAL STUFF NoDelete is Public Domain and may be copied freely by everyone except for purposes listed below as long as this notice is left intact. This program is copyright (C) by HooverSoft. It may NOT be copied or sold for commercial purposes without written permssion by the author (Get lost, Carsten Wolf and all you other suckers!). It may be distributed and copied freely for non-commercial purposes only. When distributed, this program should always be accompanied by this file, the documentation. FURTHER PLANS & HOPELESS DREAMS I would like to use CreateTask() to launch a separate Task for Nodelete. This would unlink NoDelete's memory requirements from the current stacksize of the system. It would be nice if "delete" could also be disabled but I am not sure how to do this. PUBLIC FEEDBACK Bug reports (cheers, Jensi & John!), criticism, comments and approvements should be sent to SNAIL: HooverSoft Inc. Joellenbecker Weg 4 4900 Herford BITNET: hoover@math4.uni-bielefeld.de DISCLAIMER Do whatever you like with this program, but listen: you can't blaim it on me if anything goes down the drain! Have fun & God bless you, Hoover