© Copyright Clive E. Chapman 2000. All rights reserved.

Changes in FL Tools 4.01

Version 4.01 (2000-11-20)


Contents

This page Other pages
Summary of Changes Main Page
Changes in FL Licence
Changes in FLCUST Summary of History
Problems Fixed Changes in 4.00
Cautions Changes in 4.02
  User Guides


Summary of Changes

FL

  1. Alignment of file extensions made user controllable
  2. Maximum column widths made user controllable
  3. Displayed letter case of filespec made user controllable
  4. Attribute display-precedence made user controllable
  5. Command redisplay after execution improved
  6. #W (Window) command updated to accept quoted file patterns
  7. File properties updated immediately after command executed
  8. Limit of 8 file-patterns/options eliminated from F.BAT for Windows NT/2000
  9. Limits on maximum number of files that can be listed explained

FLCUST

  1. Action of END key enhanced
  2. Option to align file extensions added

Problems Fixed

  1. (FL) #W command not remembered in command history
  2. (FL) Intelligent up-directory function inoperative for mixed-case filenames
  3. (FL) Windows filetype association for REXX programs inoperative
  4. (FL) Query form of SET command inoperative
  5. (FL) Spurious parameters present on commands passed to OS/2
  6. (FL) Incorrect file status display after "=" command
  7. (FL) "(empty list)" line appeared when list not empty
  8. (FL) "#A .." command treated as "#R .." command
  9. (FL) "#A xxx" command entered on a directory line treated as "#R xxx"
  10. (FL) "#A xxx" followed by "#SP" sorted paths into wrong order
  11. (FL) Erroneous action for certain keys on the keyboard
  12. (FL) NUMLOCK key ignored
  13. (FL) RIGHT-ALT key behaved erroneously on Windows
  14. (FL) Multiple shift keys pressed simultaneously produced undefined results
  15. (FL,FLCUST) No profile resulted in black characters on a black background

Cautions

  1. (FL) Default for COPY and MOVE commands on Windows allows overwriting

[Back to Contents]


Changes in FL

  1. Version 1 of FL supported only 8.3 file names, and displayed the files with the file extensions aligned. When support for long file names on HPFS disks was added in FL version 3, the 8.3 compatibility mode was also added. With this mode active, files whose names satisfied 8.3 rules were displayed in upper case with file extensions aligned; all other files were displayed in whatever case was stored by the file system, with file extensions unaligned. Preferences vary, but generally the FL screen is easier to read if file extensions are aligned. The new release extends support for aligned file extensions to all files.

    The 8.3 compatibility mode has been withdrawn; it is replaced by the "Align file extensions" option, which affects only alignment, and not use of upper/lower case. This option can be set in FLCUST on the "Other Settings" panel.

    [Back to Summary of Changes]

  2. In the new release, when displaying a list of files FL will adjusts the width of the file-name and file-extension columns automatically, according to the files present in the list. There are column width limits, but these can be customised using three controls. These controls belong in the FL profile, but for this release they can be set using environment variables:

    SET FL_MIN_FILE_WIDTH=nn
    This specifies the minimum width of the file column. FL will not make the file column narrower than this. The value must be in the range 1 to 25. The default is 8. (The file column is the combination of the file-name column and file-extension column. A list that contained files with one-character file names and no file extensions could fit within a file column that was one character wide.)

    SET FL_MAX_FILE_WIDTH=nn
    This specifies the maximum width of the file column. FL will not make the file column wider than this. The value must be in the range 5 to 25, and not less than FL_MIN_FILE_WIDTH. The default is 25.

    SET FL_MIN_EXTN_WIDTH=nn
    This specifies the minimum width of the file-extension column. This width applies ONLY when the longest file name combined with the longest file extension is too big to fit within FL_MAX_FILE_WIDTH. When this happens, FL starts discarding trailing characters in the file extension until the file fits. If the extension reaches FL_MIN_EXTN_WIDTH before the file fits, FL stops discarding characters from the file extension and starts discarding characters from the file name, until the file fits. FL_MIN_EXTN_WIDTH is the number of characters excluding the dot, and must be in the range 2 to FL_MAX_FILE_WIDTH-3. The default is 3.

    When FL discards characters, it replaces the last displayed character with "+", to indicate that there are more characters than can be displayed. The "+" can occur at the end of the file name, or the end of the file extension, or both. Note: it is quite possible for the file extension column to be narrower than the value given by FL_MIN_EXTN_WIDTH, or not be present at all.

    If you want to experiment to see how you like different settings, issue the relevant SET commands from the FL screen; on return to the FL screen, use the #R command to refresh the screen. FL will reconstruct the screen using the new settings (but note that these settings will persist only for that FL session; you must set the environment variables outside FL if you want them to have permanent effect).

    [Back to Summary of Changes]

  3. Mixed-case file names are now commonplace although many legacy applications still create only upper-case file names. This tends to lead to FL screens with some file names in mixed case, and others completely in upper case. The new release of FL now allows control over the case used for file specs. This control belongs in the FL profile, but for this release file-spec case can be set using an environment variable, as follows:

    SET FL_FILE_CASE=dpne

    where:

    d
    The case used for drive letters
    p
    The case used for paths
    n
    The case used for names
    e
    The case used for extensions

    For each of the above, one code-letter from the set AULMCW can be specified, although not all of them produce different results in all cases. The code letters can be specified in upper or lower case, and have the following meanings:

    A
    (ASIS) Within FL, the relevant part of the file spec is used in whatever mixture of upper and lower case is stored by the file system.

    U
    (UPPER) Within FL, the relevant part of the file spec is converted entirely to upper case.

    L
    (LOWER) Within FL, the relevant part of the file spec is converted entirely to lower case.

    M
    (MIXED) If the relevant part of the file spec contains at least one lower-case character, MIXED is the same as ASIS; otherwise it is the same as LOWER.

    C
    (COMPONENT) This is the same as MIXED, but with the initial letter of each component capitalised. A component is any part of the file spec that is preceded and followed by the component delimiter characters; these characters are backslash and dot.

    W
    (WORD) This is the same as MIXED, but with the initial letter of each word capitalised. A word is any part of the file spec that is preceded and followed by the word delimiter characters; these characters are backslash, dot, dash, underscore, and blank.

    *
    (any other character) This is the same as ASIS.

    Notes:

    1. The default setting is equivalent to the command:

      SET FL_FILE_CASE=AAAA

    2. The conversions to upper, lower, or initialised mixed case do not affect the files on disk. However, the conversions do affect the file specs passed to commands entered on the FL command line (i.e. what you see is what you get).

    3. The old "8.3 compatibility" mode specified in the FL profile no longer affects the case used for file specs within FL. Its replacement (the "Align file extensions" option) affects only the alignment of file extensions.

    4. Quirks in the Watcom compiler and/or Windows NT/2000's emulation of the 16-bit OS/2 environment mean that FL sees only upper-case for the current directory on each drive on Windows NT/2000. Consequently, ASIS is the same as UPPER for that part of the file path that corresponds to the current directory.

    If you want to experiment to see how you like different settings, issue the SET command from the FL screen; on return to the FL screen, use the /R command to refresh the screen. FL will reconstruct the screen using the new settings (but note that these settings will persist only for that FL session; you must set the environment variables outside FL if you want them to have permanent effect).

    Preferences vary, but it is more restful on the eye if file specs are displayed with consistent use of letter case. The following settings provide this consistency: UUUU, LLLL, CCCC, WWWW (but not AAAA or MMMM).

    [Back to Summary of Changes]

  4. FL has traditionally displayed for each file only one of the five possible file attributes. The attribute displayed was selected according to an order of precedence that was fixed by FL. In the new release, the order of precedence can be controlled by the user. This control belongs in the FL profile, but for this release the order of precedence can be set using an environment variable. The default order of precedence is equivalent to the following SET command:

    SET FL_ATTR_PRECEDENCE=DHSRA

    The value specified for FL_ATTR_PRECEDENCE must contain one occurrence of each of the letters ADHRS, in upper or lower case, coded in the order of precedence required (highest precedence first, lowest precedence last).

    [Back to Summary of Changes]

  5. The display of a command on the FL command line after the command has been executed has been revised to avoid the command being overwritten by the "*" character, or by the "*rc=nn" string if the command failed.

    [Back to Summary of Changes]

  6. In version 4.00, the #A, #L, and #R commands were changed so that the file patterns could be enclosed in double quotes (to allow the file patterns to contain blanks). This change applied also to the #W command, although this was not documented.

    [Back to Summary of Changes]

  7. In previous releases, when a command modified the file on the line where the command was entered, the file properties (size, date, time, and standard attributes) were not updated on the FL screen until a #R (refresh) command was issued. In the new release, these properties can be updated immediately, by specifying the "auto update" option. This option belongs in the FL profile, but for this release it can be set using an environment variable with the value YES or NO in upper or lower case (only the first letter is significant). The default for auto update is equivalent to the following SET command:

    SET FL_AUTO_UPDATE=NO

    [Back to Summary of Changes]

  8. The "F.BAT" file for Windows NT/2000 has been modified to remove the restriction of a maximum of 8 file patterns/options on the invocation of the BAT file. This change does not apply to the PC DOS version of "F.BAT", as PC DOS and Windows 95/98 do not support the necessary BAT-language extensions. Note: this means that the BAT file in "FLDOS.ZIP" now differs from the BAT file in "FLOS1.ZIP" (used for Windows NT/2000).

    [Back to Summary of Changes]

  9. In version 4.00, the file limits were relaxed. For 32-bit OS/2, the limit was raised to 99999 files, although at the time this was tested only to circa 40K files. However, FL does not attempt to eliminate duplicate entries, and is quite happy for the same directory tree to occur multiple times in the list. Using this technique it was possible verify that 100K files can be listed successfully using the 32-bit OS/2 version of FL.

    Note: the 16-bit OS/2 version is limited to 16K files, and the DOS version is even more restrictive – about 5K files, depending on memory available.

    [Back to Summary of Changes]


Changes in FLCUST

  1. In previous releases, the "End" key on the FL and FLTREE function-key panels moved the cursor to the end of the field containing the cursor. This has been changed to move the cursor to the end of the data in the field (this is the same behaviour as the command line in FL).

    [Back to Summary of Changes]

  2. On the "Other settings" panel for FL, the "8.3 compatibility mode" setting has been replaced by an "Align file extensions" setting (see above).

    [Back to Summary of Changes]


Problems Fixed

  1. (FL) In version 4.00, the #A, #L, and #R commands were changed so that they were remembered in the command recall stack if entered on the FL command line. Unfortunately the #W command was overlooked. In the new version, this change applies to the #W command too.

    [Back to Summary of Changes]

  2. (FL) Version 4.00 re-instated the intelligent up-directory function that had inadvertently been disabled in an earlier release. However, the fix was not complete; although it worked for file names that were entirely upper case (as found on FAT16 disks), it did not work for file names that contained lower case characters (as found on HPFS, NTFS, and VFAT disks). This has been corrected.

    [Back to Summary of Changes]

  3. (FL) Windows NT/2000 support the FTYPE and ASSOC commands that allow REXX programs to be invoked by typing only the name of the REXX program (for example, by typing "MYCMD PARMS" instead of "REXX MYCMD PARMS"). This worked correctly for the FL command line in version 3.02, but an erroneous bug fix for 4.00 disabled this capability. This has been corrected.

    [Back to Summary of Changes]

  4. (FL) FL performs special processing to allow environment variables to be set for the duration of the FL session. Although the forms "SET" and "SET ABC=XYZ" worked correctly, the form "SET ABC" did not. This has been corrected.

    [Back to Summary of Changes]

  5. (FL) When certain programs were invoked from the FL command line using the 16-bit OS/2 version on Windows NT/2000, the program invoked would sometimes exhibit strange errors. EOS2 for example would sometimes attempt to edit multiple files, while other programs would receive imaginary parameters that had values related to previous commands issued on the FL command line.

    The precise cause of this is not known, but it is believed to be due to a coding error in the Watcom compiler's implementation of the C "system()" function. The underlying operating-system call used by "system()" is probably "DosExecPgm", and this call is notorious for requiring one of its string parameters to be terminated by TWO consecutive nulls. If the Watcom library were specifying only one null, this could explain the appearance of imaginary parameters.

    This problem has been circumvented by using for the 16-bit OS/2 version the "DosExecPgm" call itself, in place of "system()". So far, the strange errors have not recurred.

    [Back to Summary of Changes]

  6. (FL) After a command has been executed, FL checks the file or directory on the line where the command was entered to see if the file or directory still exists. If it no longer exists, FL displays the "deleted, moved, or renamed" string in the size/date/time columns. When the "=" command was used to repeat the previous command, and the previous file no longer existed, FL did not bother to check any of the files for which the command was repeated – it just assumed that those files also no longer existed. Consequently, the "deleted, moved, or renamed" string could be displayed for files which still existed. This could happen for example:

    • With the DEL command, when the first file was R/W but the later file was R/O.

    • With the MOVE command, when the later file already existed in the target directory.

    • With the RENAME command, when the new name of the later file was already in use in the target directory.

    • With user-written BAT or CMD files, which dispose of files according to some criterion that is opaque to FL.

    This behaviour of FL was deliberate design, and probably originated as a performance optimisation from 10 years ago when processors and disks were much slower than they are today. This is no longer necessary, and FL now correctly displays the "deleted, moved, or renamed" string when commands are repeated.

    [Back to Summary of Changes]

  7. (FL) Version 4.00 introduced the "(empty list)" line that allowed empty drives and directories to be displayed. However, experience showed that it appeared on more occasions than one would expect. Partly this was due to an incorrect implementation for the /T (tree) invocation option, but it was also due to the original definition of the circumstances under which the line should appear. The definition has been revised and the implementation corrected. The "(empty list)" line now appears only when there are no files in the list.

    [Back to Summary of Changes]

  8. (FL) When the #A (add) command was used to add files in the parent directory to the current list ("#A .."), the command was wrongly treated as "#R ..", resulting in the listing of the parent directory replacing the current list. This has been corrected – the listing of the parent directory is now added to the current list.

    [Back to Summary of Changes]

  9. (FL) When the #A (add) command was used to add files in a different directory to the current list, the result depended on whether the line on which the command was entered was a file line or a directory line. If it was a file line the command worked correctly, but if it was a directory line the new list replaced the existing list. This has been corrected.

    [Back to Summary of Changes]

  10. (FL) When the #A (add) command was used to add files in a different directory to the current list, the #SP (sort-on-path) command sorted the paths into the order in which the different directories had been added to the list, instead of sorting the paths into alphanumeric order. This has been corrected.

    [Back to Summary of Changes]

  11. (FL) FL's keyboard handling was not quite correct, with the result that certain keys on a keyboard might appear as dead keys, or might invoke the functions assigned to particular F keys. The precise manifestation of this problem varied according to the NLS keyboard layout. For example, on the UK keyboard the split-vertical bar key invoked SHIFT-F3; on the Danish keyboard, the ">" key invoked SHIFT-F3, preventing use of redirection on the FL command line.

    It is believed that this problem is now fixed, but be alert to the possibility of incorrect keyboard behaviour.

    [Back to Summary of Changes]

  12. (FL) FL did not honour the setting of the NUMLOCK key – the keys on the numeric keypad were always treated as though numlock were off. This has been corrected.

    [Back to Summary of Changes]

  13. (FL) When running the 16-bit OS/2 version of FL on Windows NT/2000, the RIGHT-ALT key behaved erratically. This has been traced to a difference in behaviour between native OS/2 and Windows emulation of the 16-bit OS/2 environment. Whether this difference was deliberate or a mistake is unknown. When the RIGHT-ALT key is pressed, Windows indicates that the LEFT-CTRL key is also depressed. When the RIGHT-ALT key is released, Windows continues to signal that the LEFT-CTRL key is depressed, even though it is not. EOS2 on Windows NT/2000 exhibits this problem.

    Special code has been added to the 16-bit OS/2 version to circumvent this quirk. This extra code should have no effect at all on OS/2 (which returns the keyboard data correctly). On Windows NT/2000, the keys should always work correctly whatever shift key is pressed (ALT, CTRL, or SHIFT), but the F-key line will not always change correspondingly. When this happens, pressing and releasing the LEFT-CTRL key will restore the normal behaviour of the F-key line.

    [Back to Summary of Changes]

  14. (FL) In previous releases, FL had no clear definition of what should happen when two or three of the different shift keys were pressed simultaneously (that is, ALT+CTRL, CTRL+SHIFT, ALT+SHIFT, or ALT+CTRL+SHIFT). This was apparent on the mode 1 and 2 screens, when pressing ALT and CTRL together caused the F-key line for SHIFT to be displayed. This behaviour was simply an accident of the implementation.

    FL does not allocate meanings to F keys with multiple shifts, and multiple shifts are now diagnosed rather than ignored. An error message is displayed on the bottom line of the screen.

    [Back to Summary of Changes]

  15. (FL, FLCUST) When FL or FLCUST was started with no FL profile available, an optimisation bug in the Watcom compiler caused the top line of the FL screen to be displayed as black characters on a black background, making the text invisible! This has been corrected.

    [Back to Summary of Changes]


Cautions

  1. (FL) During testing of a bug fix for FL, an unfortunate property of Windows 2000 (and probably also Windows 95/98/ME/NT) was discovered. The COPY and MOVE commands have /Y and /-Y options that specify whether a copied or moved file can overwrite a file with the same name in the target directory. For commands typed on the Windows command line the default is /-Y (don't overwrite), but for commands issued by "batch scripts" the default is /Y (overwrite!). In either case, the default can be overridden by setting the COPYCMD environment variable.

    Unfortunately it seems that the term "batch scripts" includes all EXE files, and as a result the default for COPY and MOVE commands entered on FL command lines is /Y, that is, allow overwrite(!!!). This may be counter to expectation. To disallow overwriting, set the COPYCMD environment variable to the value /-Y, although be aware that this may affect the functioning of other BAT and EXE programs.

    [Back to Summary of Changes]


Valid HTML 4.01 Page last changed: 2008-07-25 Valid CSS