- In version 4.00,
the width of the file-size column was increased to the full 10 digits needed to
accommodate the largest-possible files on FAT16, FAT32, and HPFS drives (2GB).
This resulted in a corresponding reduction in the width of the command field.
However, most files are much smaller than 2GB, so the extra space in the
file-size column serves no purpose in most cases.
In the new release the width of the file-size column has been made dynamic
– FL adjusts the width of the column to accommodate the sizes of the
files present in the list.
[Back to Summary of Changes]
- When numbers are large,
they become difficult to read if the number does not contain "punctuation" in
the form of the thousands separator.
With the dynamic sizing of the file-size column, it is now feasible to support
the punctuation of file sizes.
Control of punctuation belongs in the FL profile, but for this release
punctuation can be controlled using an environment variable set to YES or NO in
upper or lower case (only the first letter is significant).
The default for punctuation is equivalent to the following SET command:
SET FL_PUNCTUATE=NO
The character used for the thousands separator is derived from the NLS
settings for the system being used.
Punctuation is also applied to the line counter field ("Line x of y").
[Back to Summary of Changes]
- In previous releases,
when a file or directory was deleted, moved, or renamed, FL replaced the
size/date/time columns with the string "deleted, moved, or renamed".
However, the presence of this string makes it more difficult to scan visually
the data in the size/date/time columns.
In the new release, the size/date/time columns are blanked when a file or
directory is deleted, moved, or renamed.
Preferences vary, however, so if you prefer a non-blank indication that the
file or directory has gone, you can set the environment variable FL_GONE_STRING
to whatever string you prefer.
The maximum length for this string is 33 characters; characters in excess of
this are ignored.
If the string is shorter than 33 characters, the string is right-aligned (that
is, the last non-blank character in the string abuts the right-hand edge of
the time column).
Be aware that the length of the "gone" string affects the minimum width of the
size column that FL will use; if you want FL to be able to use a minimum width
of one for the size column, the "gone" string must not exceed 21 characters in
length.
The setting used in previous releases is equivalent to the command:
SET FL_GONE_STRING=deleted, moved, or renamed
[Back to Summary of Changes]
- The minimum width of the size column
is also affected by the length of the string used to identify directories; this
string is "<DIR>" by default, which imposes a minimum width of 5 for the
size column.
In the new release you can specify the string to be used for directories, by
setting the environment variable FL_DIR_STRING to the string required.
The maximum length for this string is 13 characters; characters in excess of
this are ignored.
If the string is shorter than 13 characters, the string is right-aligned (that
is, the last non-blank character in the string abuts the right-hand edge of
the size column).
The default is equivalent to the command:
SET "FL_DIR_STRING=<DIR>"
Note that in order to stop the "<" and ">" characters being
interpreted as redirection characters, the parameter of the SET command must be
enclosed in double quotes (this may not be supported in all environments).
Preferences vary, but setting the DIR string to a single dot results in a
display that is distinctive but not obtrusive.
[Back to Summary of Changes]
- Windows makes common use
of files and directories that contain blanks in the name.
Filespecs containing blanks must be enclosed in double quotes when used on
commands, and this applies to commands entered on the FL command line too.
In addition, even though the name and extension might not contain blanks, when
the directory path contains blanks it is necessary to type some commands with
double quotes, for example:
COPY "#" #N.OLD
The new release of FL provides a solution to this, in the form of
auto quoting.
Control of auto quoting belongs in the FL profile, but for this release
auto quoting can be controlled using an environment variable set to YES or NO
in upper or lower case (only the first letter is significant).
The default for auto quoting is equivalent to the following SET command:
SET FL_AUTO_QUOTE=NO
When auto quoting is enabled, FL adds double quotes around each
blank-delimited token into which a substitution is made and which is not
already quoted.
FL does not add double quotes around blank-delimited tokens into which
substitutions are not made.
This means that in certain cases you must still type the quotes yourself (see
third example in the table below).
The following are all valid and all work correctly:
What you type
| What FL generates
|
COPY # MYFILE.KEEP
| COPY "#" MYFILE.KEEP
|
COPY # #N.OLD
| COPY "#" "#N.OLD"
|
COPY # "# OLD"
| COPY "#" "# OLD"
|
Notes:
- Auto quoting makes it possible to use the same FL profile for DOS, OS/2,
and Windows, as it is no longer necessary to use double-quote characters in the
commands assigned to F-keys in the profile.
- If you generally avoid using filespecs containing blanks for files that you
create, you may find that your REXX programs do not parse filespecs correctly
when auto quoting is enabled.
(Many of the author's own REXX programs had this problem!)
Therefore you should anticipate needing to modify some of your REXX programs
when auto quoting is enabled.
This is the kind of code that you need to use:
parse arg args
args=strip(args)
if left(args,1)=='"'
then parse var args '"' infile '"' args
else parse var args infile args
args=strip(args)
if left(args,1)=='"'
then parse var args '"' outfile '"' args
else parse var args outfile args
/* process rest of args... */
[Back to Summary of Changes]
- If you decide to use FL
with auto quoting enabled, you may nevertheless occasionally come across a
program that will not accept quoted filespecs.
You can disable auto quoting for a single command by prefixing the command with
the new FL command #OQ (omit quoting):
#OQ OLDPROG.REX #N.IN #N.OUT
The effect of the #OQ command is to omit quoting;
filespec substituting and filespec appending are performed as usual.
In contrast, the #O command omits everything:
filespec substituting, filespec appending, and quoting.
[Back to Summary of Changes]
- It is often useful to know
the total size of the files in the list.
In the new release the total size is displayed on the top line of the screen,
to the left of the line counter.
The size is displayed with three significant digits, with a decimal point if
necessary.
If the value is greater than 999, it is suffixed with a string indicating the
units (KB, MB, GB, TB, PB, or EB, representing kilobytes, megabytes, gigabytes,
terabytes, petabytes, or exabytes).
The units are multiples of 1000, not multiples of 1024.
The size does not include the contents of any sub-directories in the list
(unless FL is operating in tree mode and the files in the sub-directories are
themselves in the list).
If a command is entered on an FL command line when auto-update is enabled,
any change in the size of the file on that line updates the displayed list-size
immediately.
If auto-update is disabled, the list size is updated only when the list is
refreshed.
Be aware that if a command entered on one line affects a file displayed on
another line, changes to that second file are not reflected in the list size
(FL checks only the file on whose line the command was entered).
[Back to Summary of Changes]
- The functions assigned to the DEL key
have been revised.
In previous releases, only unshifted DEL did anything useful.
In the new release, SHIFT-DEL is the same as DEL, and CTRL-DEL is the same as
CTRL-E (erase to end of field).
This makes FL more consistent with EOS2.
[Back to Summary of Changes]