ELF is a long filename editor.
It lets you easily keep, remove and replace sections of long filenames
in many files within a directory in one operation. This is useful for
"cleaning up" media and other files which you have have aquired with
undesired information embedded in the filenames.

ELF requires long filename support! - it should work under most versions
of windows (except 64-bit - see below), but to use it under pure DOS you
must have a long-filename drive such as LFNDOS loaded.

When you run ELF it presents a list of all the filenames in the current
directory. You can change directory with F2 - select the new directory
you wish to go to ('..' means UP) and press ENTER to go there - once you
are where you want to be, press F10 to stay there and return to the long
filename editor. Pressing ESC while in the CD screen will exit the program.

ELF keeps two filenames for each file - the original name, and the "new"
name. Various commands allow you to generate the new name from the orignal
name or edit it manually - the new name can be "Locked" which tells ELF
that you are happy with it and it should rename the file when you exit.

As you move around the files displayed on the screen, any Locked files
are shown as the new name in white on dark-blue. Unlocked files for which
a new name has been successfully generated by the latest auto-edit are
shown as the new name in light-blue on dark-blue, and unlocked files for
which the latest auto-edit did not complete are shown as the original name
in green on dark-blue. If the currently selected (cursor) file is not
locked, it is always shown as the old-name with editing section attributes
(see F1 help in program).

You can use the arrow, page and home/end keys to move around the filenames
and character positions (see F1 help in program).

When positioned on a particular filename, you may press:

   'E' = Manually edit the filename:
          Ins   = toggle insert mode
          Del   = delete character
          Home  = go to beginning
          End   = go to end
          Enter = Accept changes (and Lock the name)
          ESC   = Abandon changes

   'D' = Mark character under cursor to be deleted from filename.
         DELETE sections must EXACTLY match in a filename for the
         auto-edit to be successful.

   'K' = Mark character under cursor to be kept in the filename exactly
         as it is. KEEP sections must EXACTLY match in a filename
         for the auto-edit to be successful.
         NOTE: Translations are NOT applied to KEEP sections.

   'R' = Mark character under cursor to be replaced in the filename.
         When starting a REPLACE section, or pressing 'R' when already
         positioned within a REPLACE section, you will be prompted for
         the text to replace the section (same editing keys as 'E').
         REPLACE sections must EXACTLY match in a filename for the
         auto-edit to be successful.
         NOTE: If you add a REPLACE section to the left of another, the
               replacement text moves ... it's best if you define the
               REPLACE sections from left to right.

 SPACE = Mark character under cursor to be copied to the new filename.
         This type of section does NOT have to exactly match - all text
         is copied up until the next DELETE, KEEP or REPLACE section (or
         the end of the name if this is the last section in the template).
         Characters within a COPY/TRANSLATE section are translated with
         the COPY translate table (see F3).

 ENTER = Applies the current auto-edit template to all unlocked files,
         showing the new names for files in which it was successful.
         (ie: Performs an auto-edit of all unlocked filenames)

   'A' = Locks all files for which new names were successfully generated
         by the last auto-edit - once Locked, names will not be changed
         by auto-edit again.

   'L' = Locks the current filename, most useful to relock after unlock.

   'U' = Unlocks the current filename, allowing it to be regenerated by
         an auto-edit.

   '?' = Displays the original names for all files on screen.

    F2 = Change directory (see above)

    F3 = Edit COPY translation table:
           Up/Dn/Left/Right/Home/End = change position
           <c> = move directly to character
           F1  = Enter new (translation) character
           F2  = Reset translations (1:1)
       ESC/F10 = Exit translation editor

    F4 = Edit MATCH translation table:
         Translating characters in matching of DELETE/KEEP/REPLACE
         sections can be helpful to match slight variations.
         eg: setting '_', '=' and '+' to translate to '-' will
             effect a match on ANY of those characters.

    F5 = View current file content
          F1     = toggle Ascii/Hex display
        Up/Down  = Back/Forward one line
      PgUp/PgDn  = Back/Forward one screen (24 lines)
      Left/Right = Move display left/right (side scroll)
         Home    = ASCII: Move to column 1
                     HEX: Align on 16 byte boundary
     ^PhUp/^PgDn = Move to start/end of file
       ESC/F10   = Exit file viewer

    F6 = Mark current file for deletion.
         The file will be deleted instead of being renamed when you
         exit the program. You can cancel this with 'U'nlock.

   F10 = Exit the program, and rename all files for which the new name
         has been Locked, and Delete any files marked for deletion.
         NOTE: Any files which you have not Locked will NOT be renamed,
               even if they show the new name from the last auto-edit
               be sure to press 'A' following an auto-edit if you are
               happy with the new names.

   ESC = Quit (exit) the program without renaming any files.

Command line arguments:
-----------------------
 -C<1>=<2> = Specify a character translation for COPY/TRANLATE sections
             all occurances of <1> in the section will be replaced with
             <2>. NOTE: to enter SPACE, leave blank:
                  eg: '-C_='  means translate '_' to ' '
                      '-C=_'  means translate ' ' to '_'

 -M<1>=<2> = Specify a character translation for MATCH of sections.
             Enter SPACE same as above.

 -D        = Starts ELF at the directory selection screen, and returns
             to the directory selection screen when you exit the editor.
             Useful if you want to edit a number of directories.

 @file     = Load command arguments from the specified file (one per line).
             (Must be a DOS format 8.3 file)

MISC notes:
-----------
Although it works with long names, ELF is actually a 16-bit (DOS)
program - It won't run under 64-bit windows (sorry; talk to Microsoft)
you may want to configure a windows shortcut with a screen layout of 80
columns by 25 lines.

ELF will abort if it finds filenames longer than 127 characters.

ELF will abort if it finds more than 512 files in a directory.

You need to be careful that DELETE/KEEP/REPLACE sections following a
COPY section are unique (will not occur within the text occupying the
copy section)... this is because COPY does not have a fixed length,
and "goes until it sees the next section(s)". Consider the filename:
   long filename .txt
If you wish to remove the space before ".txt", you may try:
   long filename .txt
   CCCCCCCCCCCCCDCCCC
But you will find that this template results in 'longfilename .txt'.
The reason is that COPY stops when it hits the text of the DELETE
section - in this case ' '. Since ' ' occurs between 'long' and 'filename'
it is this ' ' which gets deleted. You could use a REPLACE on a larger
(unique) string to remove the space, or you could take advantage of the
fact that when looking for the end of a copy section, ELF combines
adjacent DELETE/KEEP/REPLACE strings to help keep them unique:
   long filename .txt
   CCCCCCCCCCCCCRRRRR='.txt'     <= Replaces ' .txt' with '.txt'
   CCCCCCCCCCCCCDKKKK            <= Look for ' .txt' to end COPY

