This is a quick little module that provides a way of preventing *Close and *Shut from having any (possibly disastrous) effect.
There is now a second version of the module available here. This new version hasn't been rigorously tested (yet) but tries to tell you if it has had to act by turning the mouse pointer a pretty colour.
There's also a little Wimp application that pops up a warning box if the module has been forced to act - useful for knowing if and when something has been trying to close all your files.
On the surface, *close, etc. may seem like very useful commands - they provide a simple way of closing all open files. The trouble is that they do so at a very low level, eg. applications that might be using a file are not informed and this can lead to very nasty data corruption.
As if that wasn't bad enough, it's quite easy for an application to accidentally issue the equivalent *Close command, perhaps due to a bug or crash.
Let's take the example of a situation where you might 'need' to use *close:
*Close to solve this, and delete the now closed file.*close to lead to data corruption.
In practice, this sort of thing doesn't happen often, but when it does it can be absolutely catastrophic. I lost my entire DriveC partition because it had been so badly corrupted that it was unsalvagable.
It's also very easy for an application to issue a *close by mistake (thanks to the way that the OS_Find SWI works). eg. unregistered copies of IRClient issue the equivalent of *Close several times during start up - which is why they crash the Voyager news fetcher, for instance.
What this module does is to sit on the vectors through which *close and *Shut are directed, and intercept them so that they have no effect.
*Shutdown is not affected and will work as normal.
Also, if you really, really do need to use *close, the module provides a couple of commands: *ForceClose and *ForceShut to do this.
NoClose Version 1.02 (02 Sep 1998) (the version with the mouse colouring and Wimp task :)