- The longest complete filespec possible
on HPFS, NTFS, VFAT, and FAT32 drives is 260 bytes (including the null).
In version 3.02, FL limited the drive+path+null to 128 bytes, and limited the
name+extension+null to 128 bytes.
In version 4.00 FL has been enhanced to support the longest filespec possible
on each operating system.
By a careful modification to FL's internal storage management, the support
for longer filespecs has been achieved without any significant increase in FL's
memory requirements.
[Back to Summary of Changes]
- When a file name or path is too long
to display in its entirety, the excess characters are replaced by a single plus
character ("+") to indicate that characters have been omitted.
The "+" can occur at the left-hand or right-hand end of a directory path, or at
the right-hand end of a file name.
[Back to Summary of Changes]
- The definition of a file extension
has been changed from "characters following the first dot" to "characters
following the last dot".
[Back to Summary of Changes]
- In 8.3 compatibility mode,
the test for a valid 8.3 file name has been made more rigorous; this will
result in some files displaying in unaligned mode when previously they would
have displayed in compatibility mode.
[Back to Summary of Changes]
- A "d" is now displayed
in the file-atttribute field for directories.
[Back to Summary of Changes]
- The file-size field
has been increased from 7 digits to a full 10 digits.
This ensures that even the largest of AVI files will have their sizes displayed
correctly.
[Back to Summary of Changes]
- The file-year field
has been increased from 2 digits to 4 digits.
[Back to Summary of Changes]
- File dates are now always shown
in ISO format ("YYYY-MM-DD").
In this release there is no customisation option to control this, although this
might be added in the future.
[Back to Summary of Changes]
- The file-time field
has been expanded by adding the "seconds" field.
PC file systems store the time of last change with a resolution of 2 seconds.
This means that the seconds field is always a multiple of two.
[Back to Summary of Changes]
- The column spacing
of the size/date/time fields has been reduced from 2 blanks to one blank.
The reduced column spacing worsens readability, but has been done to
minimise the reduction of the size of the input fields on the mode-0 screen.
Even so, when long file names are present the input fields become very short.
Be aware however that FL has always supported horizontally-scrollable input
fields that allow you to type commands of up to 60 bytes in length; the problem
is that you cannot see the command in its entirety.
If you find the length of the input fields on the mode-0 screen too short, try
the mode-1 screen instead (command: #M1).
This aspect of the screen design may be subject to further change in future
releases.
[Back to Summary of Changes]
- A trailing backslash
has been added to the paths on those screens that display paths (the mode-0
screen in tree mode and multiple-pattern mode; the mode-1 and mode-2 screens in
all modes).
[Back to Summary of Changes]
- The path/size/date/time information
on the input line of the mode-1 screen has been omitted in order to provide a
longer input line.
[Back to Summary of Changes]
- The path/size/date/time information
on the input line of the mode-2 screen has been repositioned in order to
provide a longer input line.
This information is now shown on an adjacent line.
[Back to Summary of Changes]
- The digital clock
on the right-hand side of the top line of the screen has been withdrawn.
It may be re-instated in the future, depending on future screen redesign.
[Back to Summary of Changes]
- The "Line x of y" field
in the centre of the top line has been moved to the right-hand side to replace
the clock, and its color changed to the color defined for "highlighted text" in
FLCUST.
[Back to Summary of Changes]
- The file pattern (directory path) field
on the left-hand side of the top line has been expanded to occupy the left and
centre of the line, to accommodate the longer paths that are now common.
[Back to Summary of Changes]
- The disk-size and free-size fields
on the trailer line of the mode-0 and mode-1 screens are now restricted to
three significant digits.
The sizes are shown in units of KB (kilobytes), MB (megabytes), GB (gigabytes),
TB (terabytes), PB (petabytes), or EB (exabytes).
The units are multiples of 1000, not multiples of 1024.
The units used are chosen automatically, with the decimal point inserted as
required.
The character used for the decimal point is derived from the NLS settings
defined for the system.
The disk size is ROUNDED up or down to three digits, but the free size is
TRUNCATED to three digits; this ensures that the amount of free space actually
available is AT LEAST the amount shown.
Note that when the PC-DOS version is used on Windows 98 to list files on a
FAT32 disk that is bigger than 2GB, both the disk size and free size are
restricted to a maximum of 2GB.
This is caused by Windows 98's compatibility behaviour for DOS-mode
applications.
[Back to Summary of Changes]
- Minor changes have been made
to other aspects of the screen design.
Further revisions are possible in future releases.
[Back to Summary of Changes]
- The END key now moves the cursor
to the column immediately following the last non-blank character in the input
field, instead of leaving a blank.
The reason for this change is to make FL consistent with every other
character-based tool that has input lines (for example: file editors).
[Back to Summary of Changes]
- In version 3.02,
FL allowed an empty sub-directory to be displayed – FL showed the ".."
entry with the date and time of the parent directory.
However, FL did not allow an empty root directory to be displayed.
This was particularly annoying when using removeable R/W media such as
diskettes, ZIP disks, JAZZ disks, and R/W optical disks.
FL has been enhanced to support empty lists in a consistent fashion.
For each file pattern specified (or defaulted) on the invocation of FL or
via the #R (Refresh), #A (Add), or #L (Load) commands,
FL will now display at least one line.
If there are no files or directories that match the pattern, the line displayed
for that pattern has "(empty list)" in the filename column, and blanks in the
size, date, and time columns.
If FL is in tree mode or multiple-pattern mode, the directory path of the empty
list is displayed as usual.
Commands can be entered on the empty-list line as normal, and the #D
(drive), #P (path), and # (whole filespec) commands are replaced by the
values for the empty list.
However, the #N (name), #E (extension), and #F (file) commands have
no meaning on the empty-list line; if coded in a command, they are replaced
by the null string.
[Back to Summary of Changes]
- The processing
when multiple file patterns are specified has been changed.
In version 3.02, FL would discard those patterns that were in error or which
had no files, and display the list resulting from the remaining patterns.
In version 4.00, FL now discontinues processing if one of more of the file
patterns is in error.
This gives you the opportunity to press the command recall key, correct the
error, and issue the command again.
A file pattern might be in error for one of the following reasons:
- The drive is not ready (for example, it is a CD-ROM drive that does not
contain a CD-ROM).
- The drive specified is not valid (example: "FL 8:\OS2").
- The path specified does not exist.
[Back to Summary of Changes]
- To allow errors in the file patterns
typed with the #R (Refresh), #A (Add), and #L (Load) commands to be
corrected easily, these commands are now stored in the command recall stack
if typed from the keyboard.
They are not stored in the command recall stack if obtained from a
function-key.
[Back to Summary of Changes]
- In version 3.02,
file patterns typed on the OS/2 command line could be enclosed in quotes in
order to list files whose names or extensions contained special characters,
such as blanks.
For example:
FL "C:\* *.*"
would list all files in the root directory on the C: drive that contained at
least one blank in the name (for example: "EA DATA . SF").
In version 4.00 this capability has been extended to file patterns specified
with the #R, #A, and #L commands on the FL command line.
[Back to Summary of Changes]
- Version 3.02 had
a curious "other drives" capability whereby if FL could not find any files
matching the specified file patterns, FL would look on other drives for files
matching the first specified file pattern after the pattern had been fully
resolved.
However, only drives C: to E: were scanned.
If FL found some files, it then asked whether you wished to continue.
This other-drives behaviour is considered inappropriate, and has been
withdrawn.
[Back to Summary of Changes]
- A blank command has been added
at the end of the command-recall stack.
This serves two functions:
- It indicates when you have cycled through all of the saved commands that
are available for recall.
- It provides an empty line on which you can type the command you want,
having decided that the command you want is not present in the command-recall
stack.
[Back to Summary of Changes]
- All list-sorts now perform
both a major sort and one or more minor sorts.
This is done in order to ensure that the file order after sorting is completely
predictable (that is, not determined by the order in which the files'
directory-entries happen to occur).
The major and minor sorts are as follows:
Major sort
| Minor sorts (in order)
|
Name
| Extension, path
|
Extension
| Name, path
|
Path
| Name, extension
|
Size
| Name, extension, path
|
Date/time
| Name, extension, path
|
Note that directories are:
- Forced to the top of the list for sort by name, extension, or path.
- Forced to the bottom of the list for sort by size.
- Occur in their natural position in the list for sort by date.
[Back to Summary of Changes]
- The #R (Refresh) command
has been enhanced to provide an "intelligent" up-directory function for the
specific command "#R .." (either typed explicitly or via a function key).
The display is refreshed with the contents of the parent directory, but with
the current line being the child directory from which the command was issued.
Early versions of FL had this capability, but it was limited to the standard
function-key definitions.
The change for this release supports this capability on the user function-key
definitions too.
(Note: in a previous release this capability of the standard function keys was
inadvertently disabled, and the OS/2 version in 3.02 does not exhibit it.)
If you want the current line in the parent directory to be the first line in
the list (that is, the same behaviour as version 3.02), use the following
sequence of commands:
#R .. #& #T
[Back to Summary of Changes]
- The #C command (Change Directory and Quit)
has been enhanced for OS/2 to circumvent undesirable side-effects that #C
has in the OS/2 environment.
PC DOS does not suffer from these side effects, and so the change is not
required for the PC DOS version of FL.
There are two existing ways of exiting from FL:
- #Q (Quit) exits to the original directory; it affects neither the
current drive nor any of the current directories on other drives.
- #C (Change Directory and Quit) exits to the specified drive and
directory (default: the directory on display), and also changes the current
directories on other drives to the ones last viewed on the FL screen.
#C works fine on PC DOS, but on OS/2 the operating system saves and
restores the working environment around the invocation of FL.EXE, with the
result that FL cannot easily change the current drive and directories to those
last viewed on the FL screen.
The way that FL does in fact achieve this is by creating a child process with
the required current drive and directories, and then deleting the parent
process.
This has two undesirable side effects:
The enhanced support for #C circumvents both of these disadvantages, but
without incurring any significant penalty.
The enhanced support is enabled as follows:
- Set the environment variable FL_EXIT_FILE to a valid full filespec.
This will cause FL to write a tiny temporary file with that filespec on exit
from FL.
Choose the filespec as follows:
- The drive and path can be any existing drive and path.
If you have a RAM drive, the root directory on the RAM drive would be a good
choice.
Otherwise, the TEMP or TMP directory would be sensible choices, as usually
these directories are omitted from back-up processing.
- The file name can be any valid name; "FLEXIT" is suggested.
- The file extension must be BAT for PC DOS and Windows, and CMD for OS/2.
Examples:
SET FL_EXIT_FILE=M:\FLEXIT.BAT
SET FL_EXIT_FILE=C:\TEMP\MYFL.CMD
- Invoke FL via the F.BAT or F.CMD files provided with FL.
You can rename these files if you wish to use some other name.
Notes:
- FL must be invoked via a BAT or CMD file.
This will cause problems if the file patterns specified as parameters contain
multiple adjacent significant blanks, or certain other special characters such
as the comma.
Avoid specifying these as parameters to F.BAT or F.CMD.
- The OS/2 version of FL contains code to test whether a drive is "ready".
If the drive is not ready, FL does not attempt to set the current directory on
that drive.
This avoids an irritating time-out or pop-up window that might otherwise occur.
Drives that are not "ready" are usually removeable drives that do not contain
any media (e.g. diskette drive, CD-ROM drive, R/W optical drive, removeable
hard-drive).
- If you have two or more EIDE drives and a motherboard/BIOS combination of
fairly recent vintage, you may find that those EIDE drives that you are not
currently using power-down after a pre-set time.
The problem with this is that such drives still appear to be "ready".
If FL tried to set the current directory on such a drive, there would be an
irritating wait while the disk powered up.
To avoid this, FL sets the current directory only on the drives actually
visited during the current FL session.
Be aware that if you enter on an FL command line a command such as:
#O CD E:\MYDATA
to set the current directory on a drive that you have NOT visited during the
current FL session, that directory will remain the current directory on that
drive ONLY during the FL session; on exit, FL will not set the current
directory on that drive, and the current directory will revert to its prior
setting.
- Because FL always writes the same temporary file, do not exit from FL from
two or more windows at the same time.
(This restriction could be avoided by using the process id as the file name in
FL_EXIT_FILE, but the additional processing needed to determine the process id
would have to be done outside FL, and this extra complexity is not warranted.)
- If environment variable FL_EXIT_FILE is not set,
#C behaves in the same way as previous releases.
[Back to Summary of Changes]
- The limit on the maximum number
of files and directories that can be listed has been revised in order to make
it possible to list more files.
In version 3.02 the limit was a total of 8191 files and directories.
The limit has been changed as follows:
- For 32-bit OS/2, the limit has been increased to 99999.
This limit is determined by the size of the "Line x of y" fields on the top
line of the screen.
This version of FL was tested on the development system by listing in tree
mode the combined contents of 9 drives (including a back-up drive) – a
total of 39360 files and directories.
On a freshly-booted system (i.e. disk cache empty), this took 55 seconds on a
166MHz Pentium I with 64MB of memory.
Tested when the system had been in use all day (i.e. disk cache full), it took
31 seconds.
Sorting the list took approximately 1.5 seconds.
- For 16-bit OS/2, the limit has been increased to 16375.
This limit (effectively 16K) corresponds to the number of pointers that can be
stored in a 64KB segment, and cannot be increased further without redesigning
FL's internal storage management.
- For PC DOS, the limit is academic, as memory exhaustion occurs before the
implementation limit of 16375 is encountered.
On the development system, using PC DOS 7.0 running in a DOS box on OS/2 Warp
3, the MEM command indicated that the largest executable program size was 629KB
(644064 bytes), but only circa 5200 files and directories could be listed
before memory exhaustion occurred.
[Back to Summary of Changes]
- The order of the columns
when the output of FL is redirected to a file has been changed from:
name.ext size date time disk\path
to:
size date time attrs disk\path\name.ext
The reason for this is to avoid potential confusion introduced by blanks in
filespecs (for example, when parsing the output in REXX).
The file attributes are also output for the first time.
[Back to Summary of Changes]
- The invocation option
which displays the line-mode help has been changed from "?" to "/?".
This makes FL consistent with other DOS and OS/2 commands.
Also, it makes it possible for the first time to restrict the list to files
that have names that are precisely one character long.
[Back to Summary of Changes]
- FL.EXE is no longer modified
by FLCUST.EXE when setting the customisation options; FL.EXE now always reads
the FL profile FL.PRO.
Note: FL looks for the profile ONLY in the directory from which FL.EXE was
loaded.
[Back to Summary of Changes]
- FL had some support for previous versions
of the profile, but the code did not work correctly.
Support for previous versions of the profile has been withdrawn – only
profiles from version 3.02 will be accepted.
[Back to Summary of Changes]