[Date Prev][Date Next][Subject Prev][Subject Next][ Date Index][ Subject Index]

SmartSet & Multilevel UnABort

Harry Binswanger asks:
-> I love smartset.u2, but isn't the abort facility supposed
-> to save more than one level of aborted files? I get only
-> save1.tmp, never save2.tmp or greater. I sure could have
-> used it tonight ...

Alas, no, Harry. AB+ gives you one bite at the apple, that's
all. ABort another file and the .TMP file gets overwritten.
I've never (weelll, hardly ever) felt a need to get more
elaborate than that. My goal was to bypass the "File was
modified--abandon changes? (Y/N)" prompt that pops up every time
you ABort changes with default EP4 set to 1, but to retain the
same level of protection against data loss. AB+ as written
accomplishes that.

I suppose I put the "1" in the .TMP filename with the idea that
someday I might implement multi-level .TMPs. I never got around
to it. If I were going to go multi-level today, I doubt that I'd
simply extend the SAVE1 syntax to SAVE9 or SAVE9999 or whatever.
AB+ is meant to be as fast and unobtrusive as possible, so I
recommend that users direct the .TMP file to a RAMdrive if
possible. Most RAMdrives are parsimoniously configured, to
conserve RAM, and so will often run out of space; or else you'll
have to overwrite existing .TMPs, which defeats the purpose. So
you have to forget RAMdrive and use the hard disk.
Once you've decided to go that route, it seems to me you may as
well adopt a more informative naming convention.

With a tool already in SmartSet (SAVEBAK alias SAB), you can
implement a rigorous multi-level UnABort without too much ado.
SAVEBAK saves the current file to disk under an
automatically-assigned name, derived from the existing filename
and extension. Thus, a file called
FILENAME.EXT will be saved successively as FILE_EXT.001,
... FILE_EXT.999, each time SAVEBAK is executed. You can direct
the files to a specified path location.

What I have in mind involves a simple patch to AB+. First,
create a directory, say C:\UNABORT, to store the temp files.
Disable the line

in frame AB+ that says +"SAVE1.TMP">BX_sa/nv SAVE1.TMPQ2_ and
JM_2.SavebakQ2_. STore and reLOAD SMARTSET.U2.

Now, instead of creating SAVE1.TMP, AB+ calls SAVEBAK to save a
copy of the modified file to C:\UNABORT. Note that every version
of every modified file (up to 999 versions of each file) would be
saved! An alternative that's less thorough but more conservative
of disk space would be to insert BX_sa/nv c:\unabortQ2_ instead
of calling SAVEBAK. That would save the current changes under
the real filename, overwriting any previous version. In either
case, the UNABORT directory will need frequent pruning.

Carl Distefano