- FL version 4.07 introduced a 16-bit
Windows 95 version of FL that supported long file names on Windows systems.
This worked reasonably well on Windows 95/98/98SE/ME,
but had very-poor keyboard response on Windows XP.
(Users of Windows NT/2000 could avoid this problem by using the 16-bit OS/2
version of FL on those systems.)
In the new release the Windows 95 version has been withdrawn,
and is replaced by a true 32-bit Windows version.
Key features of this new version are:
- Supports long file names
- Can list a large number of files
- Has normal keyboard response
- Receives the return code from commands (Windows NT/2000/XP only)
This new version is recommended for all versions of Windows from Windows 95
to Windows XP, and should be used in preference to the DOS, Windows 95,
or 16-bit OS/2 versions.
Please note the following points:
- On Windows 95/98/98SE/ME, FL is unable to obtain the return code
resulting from commands passed to the operating system.
This is a limitation of the Windows command processor on those systems.
- All of the FL tools are provided in OS-specific versions, with the
exception of FLTREE, which for this release is available only in DOS and 16-bit
OS/2 versions.
The DOS version should be used for DOS and Windows 95/98/98SE/ME/XP,
and the 16-bit OS/2 version for OS/2 and Windows NT/2000.
It is hoped to provide OS-specific versions of FLTREE in a future release.
[Back to Summary of Changes]
- This release of FL
adds support for wide screens (FL already supported tall screens).
The smallest screen on which FL will run has been formalised at 10 rows by 80
columns, but FL will run on any screen taller or wider than this, and adjust
its output appropriately.
On the more-recent versions of Windows it is possible to define a command
window to be any size you like – you are no longer restricted to the few
screen sizes supported by the original PC hardware.
Note: in this release the mode-2 screen does not exploit wide screens; that
capability is planned for a future release.
[Back to Summary of Changes]
- The limit on the number of files
that can be listed has been relaxed; for the 32-bit OS/2 and 32-bit Windows
versions, the limit is now circa one billion files
(approximately two to the power of thirty).
The limit on the maximum number of files depends on the version of FL being
used:
- The DOS version of FL does not use a DOS extender, and so is restricted to
memory below 640KB.
In a relatively empty DOS machine (that is, few device drivers loaded below
640KB), FL can list 4000-5000 files, but that leaves no memory available to
execute any programs from the FL command line.
- The Windows 95 version of FL was a DOS version in disguise,
but supporting long file names.
It had a much lower limit – about 1300 files.
- The 16-bit OS/2 version of FL runs in a segmented address space, with the
segment size being 64KB.
As a result FL is limited to about 16375 files
(approximately two to the power of fourteen).
- The 32-bit OS/2 version in previous releases was limited to 100K files,
but that was a purely arbitrary limit which has been relaxed in the new
release.
Although the implementation limit is now one billion files for the 32-bit
versions of FL, that is not the same as the practical limit.
The author has successfully listed 4.2 million files on Windows XP, on a
machine with 2GB of RAM.
The list occupied 1.55GB of memory, and so did not provoke swapping of memory
pages to disk.
If the list is too big to accommodate entirely in memory, page swapping is
likely to be the limiting factor.
Generating the list creates memory pages in a sequential order, but sorting the
list accesses the pages in an order that is effectively random, and it is the
swapping of memory pages to and from disk during the sort that is likely to
result in unacceptable performance.
As a rough guide, FL can list about 3000 files per MB of memory; use this
figure to judge whether you will be able to create a list without provoking
swapping of memory pages.
Having created a list containing one billion files,
you then need to navigate it.
See later items for ways to do this.
[Back to Summary of Changes]
- The /- (Attributes) invocation option
has been renamed, and its function enhanced.
Option names are easier to remember if they have some mnemonic value.
Sadly, the /- option had no mnemonic value, and has been renamed to /A
(Attribute).
In addition, its function has been extended to allow negative as well as
positive specification of attributes.
The full syntax is as follows ([ ]=optional):
/A[:][[+]attrs1][-attrs2]
where the attributes prefixed with "+" are attributes that the files and
directories must have in order to be included in the list, and the attributes
prefixed with "-" are the attributes that the files and directories must
not have in order to be included in the list.
For example, "/A:+FHS" includes only files that have the hidden and
system attributes, whereas "/A:+F-HS" includes only files that
do not have the hidden or system attributes.
If an attribute appears in neither the "+" nor "-" list, that attribute is
ignored when deciding whether to include or exclude a file or directory.
The "+" and "-" symbols apply to the list of attributes that follows the
symbol; if neither symbol is specified, "+" is assumed.
The "+" and "-" can be specified in any order, and can be intermingled.
The following are all equivalent:
/A:F-HS
/A:-SH+F
/A:-H+F-S
/A:-DH-S
The following attribute codes can be specified in upper or lower case (each
letter can be specified no more than once):
Attr code
| Attribute name
| Applies to
|
A
| archive
| files only
|
D
| directory
| directories only
|
F
| file
| files only
|
H
| hidden
| files and directories
|
R
| read-only
| files and directories
|
S
| system
| files and directories
|
[Back to Summary of Changes]
- The /DA, /DD, and /DF (Date)
invocation options have been revised as follows:
- The /DD (Date Directories) and /DF (Date Files) options have been
removed; their function can be obtained in a different way.
- The /DA (Date All) option has been renamed to /D.
Note that the /D option applies to both files and directories.
If you want to list only files or only directories, use the /A option to
indicate this.
Example: if today is 2004-08-04, then:
FL C:\ /T /A:F /D:20040804
lists all files that have been created or changed since midnight, but no
directories are listed.
FL C:\ /T /A:D /D:20040804
lists all directories that have been created since midnight, but no files
are listed.
FL C:\ /T /D:20040804
lists all files and directories that have been created since midnight, plus
all files that have been changed since midnight.
Note that on NTFS drives, directory dates are more volatile, and are not
preserved by XCOPY.
[Back to Summary of Changes]
- The /ZA, /ZD, and /ZF (Size)
invocation options have been revised as follows:
- The /ZA (Size All) and /ZD (Size Directories) options have been
removed, as they did nothing useful.
- The /ZF (Size Files) option has been renamed to /Z.
Note that the /Z option applies only to files, and if it is specified
with an explicit minimum and/or maximum size, the list will not contain any
directories.
Example:
FL C:\ /T /Z:10M
This command lists all files that are 10 million bytes or larger, but no
directories appear in the list.
If the /Z option is specified with neither a minimum nor a maximum value,
size filtering does not occur and the list can include directories.
Example:
FL C:\ /T /Z
This command produces a list that includes both files and directories.
Specifying /Z with neither a minimum nor maximum value is useful when the
current list has size filtering enabled, but you want to refresh the list with
size filtering turned off (see later).
[Back to Summary of Changes]
- The /T (Tree) invocation option
has been enhanced, to allow tree mode to be enabled, disabled, or toggled.
The full syntax is ([ ]=optional):
/T[:][0|1|+|-]
/T:0 turns tree mode off, /T:1 turns tree mode on,
and /T:+ and /T:- toggle tree mode
("next tree mode" and "previous tree mode", but since
there are only two states, /T:+ and /T:- have the same effect).
/T is still valid, and is a synonym for /T:1.
The real value of these enhancements will become apparent when the enhanced
#A, #R, and #W commands are described (see later).
[Back to Summary of Changes]
- Programs running on DOS, OS/2, and Windows
conventionally use the "/" character to prefix options.
However, programs running on Linux conventionally use the "-" character for
this purpose.
Programs that run on all of those systems often accept either character, and FL
has been changed to do this, that is, you can specify the FL options using
either the "/" or "-" characters, or a mixture of both.
Note: if you want to use "/" as your command prefix character,
remember that you must double-up every occurrence of "/"
where you want a real one, and that includes for options on FL commands and
operating-system commands.
For FL commands you have the alternative of using
the "-" character to prefix options.
The following are all valid and equivalent:
Command prefix
| Sample command
|
#
|
#r e:\*.* /t /d:2006 /z:100k
|
/
|
/r e:\*.* //t //d:2006 //z:100k
|
/
|
/r e:\*.* -t -d:2006 -z:100k
|
Note: all FL options are blank-delimited; they cannot be abutted.
Examples:
FL /A:F-S /T /Z:10M (valid)
FL /A:F-S/T/Z:10M (not valid)
[Back to Summary of Changes]
- The #- command
(refresh with different attribute criteria) has been withdrawn.
Use instead the #R command with the /A option (see below).
[Back to Summary of Changes]
- The #L (Load) command
has been withdrawn, as #L is required for a different command.
The Load command may be re-introduced in a future release, with a different
name.
[Back to Summary of Changes]
- The #A, #R, and #W commands
can be viewed as variations of the command that invokes FL.
So in this release these commands have been enhanced to support the appropriate
invocation options, specifically the following options:
Option
| Name
|
/A
| Attribute
|
/D
| Date
|
/M
| Mode
|
/S
| Sort
|
/T
| Tree
|
/Z
| Size
|
The syntax of each of these options on the #A, #R, and #W commands
is identical to the syntax of the corresponding option on the FL command.
Each option begins with the option-prefix character.
FL supports two option-prefix characters:
- The "/" character (as used on DOS, OS/2, and Windows)
- The "-" character (as used on Linux; new in this release)
These characters cannot be altered by the user.
Do not confuse the option-prefix character with the command-prefix character,
which can be altered by the user (using FLCUST).
Notes:
- If you specify the #R command with no file patterns and no options, the
list is regenerated using the existing selection criteria, that is, the file
patterns and option settings are inherited from the current list.
This is the same as the behaviour in previous releases.
- If you specify the #R command with options but no file patterns,
the list is regenerated using the existing file patterns;
options specified on the #R command override the existing options,
but options not specified are inherited from the existing list.
Example: suppose you typed the following sequence of commands
(pressing the RETURN key after each one):
#R *.DAT /D:2004
#R /Z:1M
#R /A:A
- The first command lists all files in the current directory with file
extension "DAT" that have been created or changed since 2004-01-01.
- The second command then regenerates the list restricting it to files that
are also 1MB in size or larger.
- The third command regenerates the list again, restricting it further to
files that also have the archive attribute set.
- If you specify the #R command with one or more file patterns, nothing is
inherited from the existing list.
- If you specify the #A command without a file pattern, FL diagnoses an
error; a file pattern must be specified with the #A command.
Nothing is inherited from the list to which the #A files will be added.
Note that by repeated use of the #A command, you can construct a list
containing files that satisfy different selection criteria for the same
property.
Example: suppose you typed the following sequence of commands
(pressing the RETURN key after each one):
#R *.* /Z:10K-20K
#A *.* /Z:100K-200K
#A *.* /Z:1M-2M
After the third command, the list would contain files from the current
directory that had sizes in the range 10K-20K, plus those with sizes in the
range 100K-200K, plus those with sizes in the range 1M-2M.
This behaviour also applies to the tree mode option.
Example:
#R *.C
#A ..\*.H /T:1
The first command lists all files with extension "C" in the current
directory.
The second command starts at the parent directory and adds in tree mode all
files with extension "H".
If you now use the command "#R /T:+" to toggle tree mode, tree mode is
turned on for the pattern "*.C", and turned off for the pattern "*.H".
The command "#R /T:0" would turn tree mode off for all patterns,
and "#R /T:1" would turn it on for all patterns.
- If you specify the #W command without a file pattern,
FL uses the default file pattern "*.*".
Nothing is inherited from the list on which the #W command was entered.
- The /T (Tree) option has been designed to allow you to define a function
key as a tree toggle (that is, press once for tree on, press again for tree
off).
Example:
#R /T:+
Tip: if you are like the author, you will often list a small directory
sub-tree (say, about 1000 files), and then forget that you are in tree mode and
use the "Up Directory" key to see the parent directory, and have to wait whilst
FL lists a much larger tree containing many tens of thousands of files.
You can avoid this by defining your "Up Directory" key to turn tree mode off,
like this:
#R .. /T:0
It is less irritating to turn tree mode on if it is off when you want it on,
than it is to turn tree mode off if it is on when you want it off.
[Back to Summary of Changes]
- A new #G (Goto) command
has been introduced for use on the FL command line.
This command assists with the navigation of large file lists.
The syntax of this command is ([ ]=optional):
#G[:][+|-]n
where "n" represents one or more numeric digits, and the command suffix
character ":" is optional.
If neither "+" nor "-" is specified, line "n" in the file list is made the
current line.
If "+" is specified, the current line is incremented by "n"; if "-" is
specified, the current line is decremented by "n".
If the new current line is already on the screen, the list is not scrolled.
If the new current line is not on the screen, the list is scrolled so as to
position the new current line in the middle of the screen.
If the new current line is less than half a screen from the start or end of the
list, the scroll position is adjusted so as to show as much of the list as
possible.
[Back to Summary of Changes]
- A new #L (Locate) command
has been introduced for use on the FL command line.
This command enables you to search the list for particular strings, and assists
with the navigation of large file lists.
The syntax of this command is ([ ]=optional):
#L[:] [ ["]ccc["] [options] ]
where:
- :
- is the command suffix character; this is optional.
- "
- is the string delimiter character.
The leading and trailing string delimiter characters can be omitted if the
string does not contain blanks (either specify both, or omit both).
Examples:
#L "my PC data"
#L fl.pro
- ccc
- is the string to be looked for; it can be a complete filespec, or any
substring thereof.
The options are split into four groups according to their function.
Only one option from each group takes effect;
if more than one is specified, the rule is "last wins".
The options are as follows:
- Search options
- These specify which part of the filespec should be searched for a match;
the part searched is called the search zone:
- /D
- (Drive) indicates that the drive should be searched.
For a match to be possible, the string specified must be one or two characters
long, with the first character being a drive letter,
and the second character (if specified) being the colon character.
- /E
- (Extension) indicates that the extension should be searched.
For a match to be possible,
the string specified must not contain the dot, backslash, or colon characters.
- /F
- (File) indicates that the name plus extension should be searched.
For a match to be possible,
the string specified must not contain the backslash or colon characters.
- /N
- (Name) indicates that the name should be searched.
For a match to be possible,
the string specified must not contain the backslash or colon characters.
Note that the dot separating the name from the extension is not
included in the search when comparing the string with a file in the list.
- /P
- (Path) indicates that the path should be searched.
For a match to be possible,
the string specified must not contain the colon character.
- /W
- (Whole) indicates that the whole filespec should be searched.
The string can be a complete filespec, or any substring thereof.
The default search zone depends on the contents of the string, as follows:
Default zone
| Used when
|
/D
| String contains only a drive.
|
/P
| String contains only a path.
|
/N
| String contains neither drive nor path nor dot.
|
/F
| String contains neither drive nor path, but does contain a dot.
|
/W
| String contains two or more of drive, path, name.
|
The common case is a string that does not contain a colon, a backslash, or
a dot.
In this situation FL chooses /N as the default search zone, and if you
want a different search zone you must specify the appropriate option.
For example, if you specify "X" for the string, it could be the X: drive, it
could be a directory called X, it could be a file with name X, or it could be
an extension of X; specify the appropriate option if /N is not the correct
zone.
Tips:
- If you want to search for a particular extension, prefix the string with a
dot; this causes FL to use /F as the search zone, and in most cases you will
find what you are searching for whilst avoiding spurious matches
(although dots in file names are valid, they are not common).
- If you want to search for a particular directory name, prefix and suffix
the string with backslash characters; this causes FL to use /P as the search
zone and will avoid spurious matches.
- Match options
- These specify what should be matched within the specified search zone:
- /L
- (Leading) indicates that the string must match the leading
characters in the zone being searched, that is,
the string must be found at the beginning of the zone.
Example: "CUST" matches "CUSTOMER.TXT" but does not match "FLCUST.EXE" if the
/L option is in effect.
- /T
- (Trailing) indicates that the string must match the trailing
characters in the zone being searched, that is,
the string must be found at the end of the zone.
Example: "BAT" matches "F.BAT" but does not match "BATTERY.TXT" if the /T
option is in effect.
- /S
- (Some) indicates that the string must match some characters
in the zone being searched.
Example: "CUST" matches "FLCUST.EXE" if the /S option is in effect.
This option is the default.
- /A
- (All) indicates that the string must match all characters in
the zone being searched.
Example: "F.BAT" does not match "FF.BAT" if the /A option is in effect.
- Case options
- These specify how the matching should be performed:
- /I
- (Ignore case) indicates that any mixture of upper and lower
case is acceptable when looking for a match.
Example: "Fl.Exe" matches "FL.EXE" if the /I option is in effect.
This option is the default.
- /R
- (Respect case) indicates that the specified mixture of upper
and lower case is required when looking for a match.
Example: "Fl.Exe" does not match "FL.EXE" if the /R option is in effect.
- Direction option
- This option specifies the direction of the search:
- /B
- (Backward) indicates that the search should be in the reverse direction.
If /B is specified, the list is searched in the backward direction,
that is, in the direction of decreasing line numbers.
The search starts at the line preceding the line where the command is
typed, and stops when the first match is found, or at the start of the list.
If /B is not specified, the list is searched in the forward direction,
that is, in the direction of increasing line numbers.
The search starts at the line following the line where the command is
typed, and stops when the first match is found, or at the end of the list.
This is the default.
The options can be specified in any order, in upper or lower case, and can
precede or follow the string.
If conflicting options are specified, the rule is "last wins".
If no string and no options are specified, the string and options are
inherited from the previous #L command.
This provides a "repeat locate" capability, and is of most use when assigned to
a function key.
An additional capability is available when using repeat-locate.
Normally, the search stops when one or other of the ends of the list is
reached.
However, if the repeat-locate command is issued immediately after the "not
found" condition has occurred, the search wraps round to the other end of the
list and searching continues until the current line is reached (the current
line is included as the final line of the search).
When a match is found, the line containing the match becomes the new current
line.
If the match is already on the screen, the list is not scrolled.
If the match is not on the screen, the list is scrolled so as to position the
match in the middle of the screen.
If the match is less than half a screen from the start or end of the list, the
scroll position is adjusted so as to show as much of the list as possible.
[Back to Summary of Changes]
- The invocation of FL
can be viewed as a variation of the #R command.
So in this release, at FL start-up the command stack is initialised with the
invocation command converted to a #R command.
Options which are not valid on the #R command are omitted.
If the invocation command is longer than 60 characters (the length of the FL
command line), the characters in excess of 59 are discarded, and "+" appended
to indicate that some characters are missing.
[Back to Summary of Changes]
- When FL passes a command
to the operating system (for example, the COPY command), FL clears the screen
and displays the command in line mode.
Any responses from the command appear on the line-mode screen below the
command.
When all commands have been processed, FL displays the "Press any key to
continue" prompt; this gives you time to read the responses from the
command(s).
However, this action isn't always wanted.
For example, if a function key is defined to invoke a full-screen editor, on
exit from the editor the "Press any key to continue" prompt is an unnecessary
irritation.
To avoid this, the command can be prefixed with the "!" character,
which causes FL to suppress the prompt.
Clearly, the "!" should be used only with those commands that are suitable.
The following changes are made to the processing of the "!" prefix
character in this release:
- In previous releases, "!" suppressed the display of the prompt after the
command had been executed, but it did not suppress the display of the command
before it was executed.
On slower machines this lead to the screen appearing to "flash" as FL's screen
was replaced by the line-mode screen containing the command, which was almost
immediately replaced by the screen of the program invoked.
In the new release, the "!" prefix suppresses display of the command
as well as display of the prompt.
- In previous releases, the "!" affected only external commands, that is,
commands passed to the operating system.
In the new release, "!" also affects FL's own internal commands.
For example, the #R command produces diagnostic messages if the directory
specified does not exist.
Prefixing #R with "!" suppresses these diagnostic messages.
One useful application of these changes is the following, which should be
assigned to a function key:
!#R #\*.* #|| EDIT.BAT #
If the function key is pressed when the current line is a directory, the
directory is made the current directory and its contents listed.
However, if the current line is a file, the command "EDIT.BAT #" is invoked
to edit the file.
This can be any command and need not be a BAT file – you can invoke your
editor's EXE file directly, or use a BAT or CMD file to do some intelligent
pre-processing before invoking your editor (for example, selecting a different
editor according to the file extension of the file).
Remember the meanings of FL's command joiners:
- cmd1 #& cmd2
The command to the left of the #& is executed,
and then the command to the right of the #& is executed.
- cmd1 #&& cmd2
The command to the left of the #&& is always executed.
The command to the right of #&& is executed only if the command to the left
succeeds (that is, returns a zero return code).
- cmd1 #|| cmd2
The command to the left of the #|| is always executed.
The command to the right of #|| is executed only if the command to the left
fails (that is, returns a non-zero return code).
It is also possible to have sequences of three of more commands:
cmd1 #&& cmd2 #&& cmd3 #&& cmd4
Execution is from left to right and ends with the first command that fails.
cmd1 #|| cmd2 #|| cmd3 #|| cmd4
Execution is from left to right, and ends with the first command that
succeeds.
[Back to Summary of Changes]
- The sizes of the replace-mode cursor
and insert-mode cursor within FL have been revised.
The replace-mode cursor (the underscore) is now set to 20% of the cell height,
and the insert-mode cursor to 100% of the cell height.
[Back to Summary of Changes]
- Drives inherited from older operating systems
often have file names consisting entirely of upper case.
After some time with a modern operating system, newer file names may be mixed
case, whilst the older files are still upper case.
This inconsistency can make it more difficult to read an FL list looking for a
particular file.
To address this, FL supports various options that control the way that the file
names are displayed (see the "Other Settings" panel in FLCUST).
The following changes are made in this release:
- The WORD option now treats all non-alphanumeric characters as word
delimiters (previously only backslash, dot, blank, dash, and underscore were
treated as word delimiters).
The sample filespec on the "Other Settings" panel in FLCUST can be used to
see the effect of the different options.
[Back to Summary of Changes]
- The keyboard service provided by Windows
exhibits "questionable" behaviour in certain circumstances, and this
complicates considerably the processing of keyboard input.
In order to provide consistent keyboard behaviour within FL, it has been
necessary in this release to define an order of precedence for the various
shift keys (ALT, CTRL, and SHIFT).
If two or more of these keys are depressed simultaneously, FL accepts the shift
key of highest precedence, and ignores those of lower precedence.
ALT has highest precedence, CTRL medium precedence, and SHIFT lowest
precedence.
So ALT overrides CTRL and SHIFT, and CTRL overrides SHIFT but is overridden by
ALT. SHIFT is overridden by ALT and CTRL.
Note that the order of precedence (highest to lowest) corresponds to alphabetic
order.
Although this change was prompted by the behaviour of Windows, the change
applies to all versions of FL (16-bit DOS, 16-bit OS/2, 32-bit OS/2).
[Back to Summary of Changes]
- FL treats the various left and right shift keys
as equivalent, so that LEFT-SHIFT produces the same result as RIGHT-SHIFT,
LEFT-CTRL produces the same result as RIGHT-CTRL, and LEFT-ALT produces the
same result as RIGHT-ALT.
However, RIGHT-ALT is not truly equivalent to LEFT-ALT.
RIGHT-ALT is usually labelled ALT-GR on the keyboard, and some operating
systems return different characters when RIGHT-ALT is pressed.
This is particularly common with non-English keyboards, where RIGHT-ALT is
needed in order to obtain special characters or accented vowels.
FL does not interfere with this use.
The result is that whereas all of FL's definitions of the ALT-alphabetic keys
can be obtained using LEFT-ALT, some may be unobtainable using RIGHT-ALT
– an accented or special character will appear at the cursor location
when that combination is pressed.
[Back to Summary of Changes]
- FL defines two ways to exit:
- #Q (Quit) exits to the original directory, leaving the current
directories on the drives visited as they were on entry to FL.
- #C (Change Directory and Quit) exits to the directory on display,
changing the current directories on the drives visited to the ones last
viewed during the current FL session.
On DOS, the #C command presents no problem.
But on OS/2 and Windows NT/2000/XP, programs run as separate processes, and as
a result cannot change the properties of the invoking process (the command
window).
To provide the functionality of the #C command, FL version 2 introduced the
technique of creating a new command window having the required current
directories on the drives visited, and deleting the old command window from
which FL had been invoked.
But this had two very undesirable side effects:
- By default, windows are created slightly displaced from each other.
The result was that repeated invocations of FL would cause the window to appear
to creep around the screen.
- Because the new command window was a new process, the window's command
history (retrievable via the cursor-up or cursor-down key) was lost.
Version 4.00 of FL introduced a different way of supporting the #C
command.
It requires that FL be invoked via a BAT file (CMD file on OS/2), but it avoids
both of the undesirable side effects described above.
The files "F.BAT" and "F.CMD" were provided with the FL package for this
purpose.
Modern operating systems use advanced disk-cacheing techniques that mean
that the BAT-file method has no apparent disadvantages, whereas the new-window
method has no redeeming features.
So this release of FL withdraws support for the new-window method of exiting
FL.
This affects the 16-bit OS/2 and 32-bit OS/2 versions of FL.
[Back to Summary of Changes]
- In order to support the #C
(Change Directory and Quit) command, on exit FL writes a temporary BAT file
for use by the "F.BAT" or "F.CMD" files.
In previous releases, this was written in the directory and with the name and
extension that were specified by the environment variable FL_EXIT_FILE.
The use of a BAT file is still necessary, but the interface has been revised.
In addition, the default value for FL_EXIT_FILE was "C:\FLEXIT.BAT", but
Windows XP does not allow files to be added to the root directory of the
Windows drive if that drive is an NTFS disk and the the user does not have
administrator authority.
So, in this release the followng changes are made:
- Use of the environment variable FL_EXIT_FILE is discontinued; the
environment variable can be deleted.
- FL now uses the standard environment variable TEMP to identify the
directory in which FL can store its temporary files.
The directory specified must not end with a backslash.
Windows defines TEMP by default, and FL on DOS does not use an exit BAT
file, so the only case where TEMP might need to be defined is OS/2.
If TEMP is undefined, FL uses the root directory of the drive that was current
when FL was invoked.
[Back to Summary of Changes]
- Error processing
when the output from FL is redirected to a file has been revised.
When an error occurs (for example, too many files or not enough memory), a
message is displayed on "stderr".
This ensures that it is visible even when "stdout" is redirected to a file.
Error messages are not intermingled with the file list written to "stdout".
When an error occurs, FL exits with a non-zero return code, which can be
used by a BAT or CMD file to detect the error case and take appropriate action.
Note that when an error occurs, the file list may be incomplete, and may be
unsorted.
[Back to Summary of Changes]
- Previous releases have provided
both 16-bit and 32-bit OS/2 versions of FL.
The reason for the continued availability of the 16-bit version was that it
supported long file names on Windows NT/2000.
With the availability of the 32-bit Windows version, there is no longer any
need for the 16-bit OS/2 version, and it is withdrawn from the package.
[Back to Summary of Changes]
- The DET.EXE tool
is withdrawn from the package, as its use is too specialised and not really
related to file and directory handling.
However, it remains available by special request.
[Back to Summary of Changes]