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

Changes in FL Tools 5.00

Version 5.00 (2008-07-25)


Contents

This page Other pages
Summary of Changes Main Page
Changes in FL Licence
Changes in FLCOLOR Summary of History
Changes in FLCUST Changes in 4.08
Changes in FLFIND Using FL on Linux
New Tool FLVIEW User Guides
Problems Fixed  
Other Points  


Summary of Changes

FL

  1. Default command prefix character changed
  2. Command synonyms introduced
  3. Environment variables supported in commands
  4. /I (Inherit) option added to the #A, #R, and #W commands
  5. Shortcut notation for /D (Date) option introduced
  6. Action of #W+ and #W- commands enhanced
  7. New parameters on the #M (Mode) command introduced
  8. Subset cycling for the #M (Mode) command introduced
  9. New parameters on the #S (Sort) command introduced
  10. #ATTR (Attributes) command introduced to change file and directory attributes
  11. #DATE (Date) command introduced to change file dates
  12. #PATH (Path) command introduced to move files and directories
  13. #FILE (File), #NAME (Name), and #EXT (Extension) commands introduced to rename files and directories
  14. Algorithmic name-generation for #FILE, #NAME, and #EXT commands introduced
  15. Retention of previous commands revised
  16. Processing of overtyped commands revised
  17. Automatic setting of column layout revised
  18. Column sizing algorithm for panel layout 1 revised
  19. Column separators enhanced
  20. Immediate-update option eliminated
  21. Attribute display revised
  22. Processing of upper/lower case in filespecs revised
  23. Display of full filespec introduced
  24. Display of drive information enhanced
  25. Display of F-key lines enhanced
  26. Activity bar introduced
  27. Control of working-directory scope introduced
  28. Control of panel size introduced
  29. Ability to save screen contents introduced
  30. Control of maximum scroll introduced
  31. Control of page scroll introduced
  32. Support for large files introduced
  33. Built-in help enhanced
  34. Default color scheme revised
  35. New version of the profile
  36. Support for Linux Wine Console introduced

FLCOLOR

  1. FLCOLOR removed from the FL toolset

FLCUST

  1. Synonym-definition panel introduced
  2. New panel items added to the "Colors" panel
  3. New options added to the "Other Settings" panel
  4. Obsolete options removed from the "Other Settings" panel
  5. F-key, A-key, and synonym definitions updated when special chars changed

FLFIND

  1. FF.BAT/CMD files introduced
  2. Defaulting rule for relative path changed

FLVIEW

  1. Tool to edit/view multiple file types introduced

Problems Fixed

  1. (FL) Leading "*" in command field lost in some circumstances
  2. (FL) Contents of command field lost when F-key pressed
  3. (FL) System directory on NTFS drive
  4. (FL) Displayed F-key line wrong for consecutive shift-key presses
  5. (FL) Incorrect processing of insufficient-memory conditions
  6. (FL) #A, #R, #W commands failed when current directory deleted
  7. (FL) Duplicate entries in list when multiple file patterns
  8. (FL) Text modes ASIS and MIXED produced incorrect output in some situations
  9. (FL) Empty-list line showed wrong path
  10. (FL) Empty-list line present in non-empty list
  11. (FL) ALT alphabetics not recognised with SHIFT or CAPS LOCK
  12. (FL) #OQ command processed wrongly when not at start of command
  13. (FL) CTRL-DEL did not erase last byte of command line

Other Points

  1. FL User Guide not updated for this release
  2. Using the Windows recycle bin from FL

[Back to Contents]


Changes in FL

  1. For historical reasons, FL versions 1 to 4 used "/" as the default command prefix character. However, "/" is not in fact a good choice for the command prefix character, as it is the same as the option prefix character on DOS, OS/2, and Windows, and the same as the directory-separator character on Linux. With a native Linux version of FL planned for a future release, the time has come to sever continuity with previous releases and change to a more sensible choice of command prefix character.

    The command prefix character is the most-used of FL's special characters. It makes sense therefore to choose a character that:

    • is near the front of the keyboard,
    • does not require you to press a shift key,
    • is not common in filespecs.

    Keyboard layouts vary markedly between countries, but on the UK keyboard the single apostrophe (') and the hash ("#") are good choices; the semicolon (";"), comma (","), and square brackets ("[" and "]") are also worth considering.

    Using FLCUST you can choose whatever character you prefer for the command prefix character, so you may be wondering what difference this change makes. In fact it makes only one difference: it affects the documentation. In version 5.00, all of the documentation has been changed to use the new command prefix character (except where the problems of using "/" are illustrated).

    So, what is the new default command prefix character? It is this:

    • the hash character:  #

    This character is also known as the "pound" character in some parts of the world.

    [Back to Summary of Changes]

  2. A significant enhancement for this release is the introduction of command synonyms. Using FLCUST, synonyms can be defined for any commands, including:

    • Operating-system commands (for example: COPY)
    • Applications (for example: Adobe Acrobat Reader)
    • FL's internal commands (for example: #R)

    As each command is processed, FL checks the first blank-delimited word in the command, and if it is a synonym, the synonym is replaced by the text defined for that synonym. Note that FL does not check the replacement text for a synonym, so one synonym cannot invoke another synonym.

    The synonym name is a string of non-blank characters, one to eight bytes in length. The synonym name is not case sensitive, and can contain any typable non-blank character (the name is not limited to alphabetics and numerics).

    The replacement text for the synonym is a string of up to 60 characters. All characters are valid in this string, including blanks. In many cases the replacement text is the name of the command to be invoked, but it can also include options or fixed parameters (provided it is valid for these to precede the parameters typed on the FL command line or automatically appended by FL). Note however that FL's command joiners (#&, #&&, and #||) are not valid in the replacement text.

    Usage notes:

    1. To suppress the echoing of commands on the line-mode screen, the FL command line can be prefixed with the "!" character (the exclamation mark). This can still be done when the command actually begins with a synonym, and it does not prevent recognition of the synonym. It is also valid for the replacement text to begin with the "!" character.

    2. By default, FL includes files and directories in the list without regard for their attributes. If you prefer normally to omit files and directories that have specific properties, define synonyms for FL's #A, #R, and #W commands, and include in the replacement text the required attribute selection option.

      For example, if you normally want to omit files and directories that have the hidden (H) or system (S) attributes, specify "/A:-HS" as the attribute selection option in the replacement text (see examples below). Then, on the rare occasions when you want to include files and directories that have the hidden or system attributes, simply specify the /A option without any value when you type the #A, #R. or #W command; this overrides the option contained in the replacement text.

    3. If you want to define a synonym for an FL command, the synonym name can be identical to the FL command – this does not cause a recursive definition.

      For example, if you want to specify attribute selection options as described above, you can define a synonym called #R that invokes the FL command #R with the required attribute selection option.

    4. Another possibility is to eliminate the need to prefix each FL command with the command prefix character (default: "#") by defining synonyms for the FL commands that you use.

      For example, you could define R as a synonym for #R, S as a synonym for #S, and so on. You need to choose synonym names that will not conflict with the names of other commands on your system (operating-system commands, tools, or applications), as the FL synonym always takes precedence.

    5. Two synonyms that you may find useful are MD (Make Directory) and RD (Remove Directory). See below for examples of how to define these for Windows.

      The definition for MD uses the #O (Omit) command, which means that you cannot construct the name of the new directory from parts of the filespec on the line where the command is entered – you must always type the name in full (including any path if the directory is not to be created in the current directory).

      The definition for RD uses the /S and /Q options of the RD command, which cause all files and sub-directories in the specified directory to be deleted, without asking for confirmation. In this case, the filespec of the directory deleted is that of the line where the command is typed. If you want to be asked for confirmation before the directory is deleted, omit the /Q option.

    Examples:

    Note: for display on this page, long definitions have been split over two lines (indicated by the ellipsis "..."). However, on the Synonyms panel each definition must be contained entirely on one line.

    Synonym Replacement Text
    c copy
    ab !"c:\program files\adobe\acrobat 6.0\...
    ...reader\acrord32.exe"
    wp !"c:\program files\windows nt\...
    ...accessories\wordpad.exe"
    #a #a /a:-hs
    #r #r /a:-hs
    #w #w /a:-hs
    md !#o md
    rd !rd /s /q

    [Back to Summary of Changes]

  3. When you invoke FL from the operating-system's command line, you can specify environment variables which are substituted by the operating system before the command is passed to FL. Example:

    F.BAT %APPDATA% %HOMEDRIVE%%HOMEPATH%

    In the new release you can do the same thing with commands typed on the FL command line. Examples:

    #R %APPDATA% %HOMEDRIVE%%HOMEPATH%
    #A %WINDIR%
    

    FL processes each command line as follows:

    1. The command line is split into separate commands; then for each command the steps below are performed.
    2. If the command begins with a synonym, it is substituted.
    3. If environment variables are present, they are substituted.
    4. The command is identified as an external command, or as a specific internal command.
    5. If filespec substitution codes are present, they are substituted.
    6. The command is executed.

    Hence it is possible for a synonym's replacement text to contain one or more environment variables, and for the value of an environment variable to contain a command name, command parameters, or command options.

    If the command contains two or more occurrences of the percent character, FL checks if the first and second occurrences identify an environment variable. If they do not, FL then checks the second and third occurrences, and then the third and fourth occurrences, and so on. Percent characters are removed only if they delimit an environment variable.

    Usage notes:

    1. Although the percent character is valid in filespecs, it is not widely used (an examination of the author's Windows XP drive showed that of the 79,000 files and directories on the disk, only 81 used the percent character as part of the name).

    2. The percent character is not limited to use in file patterns – you can use it anywhere in the command. For example, if you sometimes want to use one file editor, and sometimes a different one, you could define your FL "View" key as follows:

      !#r #\*.* #|| %editor% #

      Outside FL you set the environment variable "editor" to the filespec of the file editor that you want to use for that session.

    3. It is possible to define your FL command prefix to be the percent character, but be aware that this disables FL's recognition of environment variables. However, you can still use environment variables in external commands passed to the operating system, by coding an "escape sequence" consisting of two consecutive percent characters at each place where you want one percent character.

    [Back to Summary of Changes]

  4. Prior to FL version 4.08, no options were valid on the #A, #R, and #W commands. FL version 4.08 added support for various options, including the filtering options: /A (Attributes), /D (Date and time), /T (Tree), and /Z (Size). This introduced the question of whether the values of any of these options should be inherited from the current list when a new list was generated. Experience has shown that the rules defined for the #R command in version 4.08 result in puzzling behaviour in certain circumstances, and so the behaviour is revised in this release.

    In the new release, the inheritance capabilities are extended, but must now be requested explicitly, by using the new /I (Inherit) option. This capability is also added to the #A and #W commands (previously no inheritance occurred for these commands). The syntax of the /I option is as follows, where [ ] denote optional items:

    /I[:][A][D][F][T][Z][*][0]

    Note: the "0" above is the numeric digit zero, not a capital letter "O". The option values have the following meanings:

    Option
    value
    Meaning
    A Inherit the attributes filter
    D Inherit the date and time filter
    F Inherit the file-pattern filter
    T Inherit the tree filter
    Z Inherit the size filter
    * Inherit all filters
    0 Inherit no filters

    "/I:0" is the default if the /I option is not specified, and "/I:*" is the default if the /I option is specified without a value.

    Inheritance is useful when you want successively to refine a list, that is, apply a succession of filters one after the other in order to create a shorter, more-specific list. Example:

    #r c:\*abc*.* /t
    #r /i /d:2005-20051231235959
    #r /i /z:100k
    #r /i /a:a
    

    Usage notes:

    1. When a list is constructed using the #A, #R, or #W commands, the value for each filter is obtained from one of three possible sources. In order of decreasing precedence, these sources are as follows:

      • The filter can be specified explicitly, in the form of one or more file patterns or the /A, /D, /T, or /Z options.

      • For filters not specified explicitly, the filter can be inherited from the existing list, by using the /I option with the appropriate option value.

      • If neither of the above applies, the default filter is used. The default filter for each filter type applies no constraints for that filter type.

    2. There is an asymmetry between the file-pattern filter on the one hand, and the attributes, date, size, and tree filters on the other.

      • If you inherit the file patterns, you can also inherit any of the other filters, without regard for their values. Specifically, each pattern inherits the specific filters defined for it, even if those filters differ one from another.

      • If you do not inherit the file patterns, you can inherit the other filters only if all existing file patterns have the same value for the filter(s) to be inherited. For example, if all existing file patterns have the same value for the date filter, but have different values for the size filter, the date filter can be inherited, but the size filter cannot (an error is diagnosed if you attempt to inherit the size filter without also inheriting the file patterns).

      The following example illustrates what happens when various alternative commands are used as the third command of a set of three:

      First two commands Valid? Description
      #R *.c /D:*** /Z:10k Yes Build list
      #A *.h /D:*** /Z:1k Yes Add to list
      Third command Valid? Description
      #R /I Yes Inherit all filters
      #R /I:F Yes Inherit file patterns only
      #R /I:FDZ Yes Inherit file patterns, date filter, size filter
      #R /I:D Yes Inherit date filter only
      #R /I:Z No More than one size filter exists

    3. The introduction of inheritance results in one significant incompatibility with previous releases, namely the meaning of "#R" by itself. In previous releases this command regenerated the list using the existing filters, but in the new release it regenerates the list using the default filters. The previous behaviour is now given by "#R /I".

      Version 4.08 introduced the ability to define a function key to be a tree-mode toggle, by assigning the command "#R /T:+" to a function key. With the introduction of inheritance, the command to perform the tree mode toggle is now "#R /I /T:+".

      Occurrences of "#R" without file patterns will be changed in your profile to "#R /I" when you migrate your profile using FLCUST.

    [Back to Summary of Changes]

  5. The values specified for the /D option on the invocation of FL, or on the #A, #R, or #W commands, allow accurate filtering by date and time, but the notation is long-winded for some cases. To address this, a shortcut notation is introduced. The date and time contains six components (year, month, day-of-month, hour, minute, and second). For each of these components you can specify an asterisk to signify that you want the corresponding value from the current date and time. For example, to list all files and directories on the C: drive that have been created or changed since midnight, use:

    FL C:\ /T /D:***

    The "***" denotes current year, current month, and current day-of-month, while the omitted components (hour, minute, and second) default to "000000". To list all files and directories that have been created or changed since midday, use:

    FL C:\ /T /D:***12

    In this example, the hour is specified ("12"), while the omitted components (minute and second) default to "0000".

    [Back to Summary of Changes]

  6. The #W+ and #W- commands cycle through the open FL windows, in forward and reverse directions respectively. However both commands do nothing if there is only one FL window open, and there is no indication that the command has been processed correctly. In the new release this behaviour is changed: if there is only one FL window open, the #W+ and #W- commands return an error and display a message.

    Although there is intrinsic value in this change (the command no longer seems to be ignored), the greater benefit comes from assigning the following definition to a function key:

    #W+ #|| #W *.*

    If this function key is pressed when there are two or more windows, the next window is made the current window. Because the command "#W+" succeeds, the command "#W *.*" is not executed. However, if the function key is pressed when there is only one window, the command "#W+" fails, and this causes the command "#W *.*" to be executed. This creates a new window listing all of the files and directories in the current directory.

    You can specify any filespec in place of "*.*". For example, if your data drive is "D:", you could specify "D:\" as the filespec in order to open the new window in the root directory of your data drive. If no filespec is specified, "*.*" is assumed.

    Note: the windows referred to here are FL windows (created by FL in response to the #W command), not operating-system windows. The FL window number is shown in the top left corner if there is more than one window.

    [Back to Summary of Changes]

  7. The #M (Mode) command has been enhanced with some additional parameters. The full command syntax is shown below; brackets [ ] indicate optional items, while braces { } contain alternatives, one of which must be specified:

    #M  [C {0|1|+|-} ]
      [D {0|1|+|-} ]
      [F {0|1|2|3|+|-} ]
      [K {0|1|2|3|4|+|-} ]
      [P {0|1|2|+|-} ]
      [T [A|F|L|M|P|U|W|+|-] ]
      [X [0|1|+|-] ]

    The parameters are all optional and can be specified in any order. Note that for the T and X parameters, the parameter value is also optional. If the parameter value is not specified, the current setting of that parameter is displayed. The parameters control the following:

    Parameter Description
    C Column layout
    D Drive-info line
    F Fullspec lines
    K F-key lines
    P Panel layout
    T Text mode
    X Execution mode

    The parameter values have the following meanings:

    Parameter Value Description
    all + Change to next higher value
      - Change to next lower value
    C 0 Show file size, date, and time.
      1 Show file drive and path.
    D 0 Do not show the drive-info line.
      1 Show the drive-info line.
    F 0 Do not show the full-filespec lines.
      1 Show the full-filespec lines without a box.
      2 Show the full-filespec lines with half a box.
      3 Show the full-filespec lines with a full box.
    K 0 Do not show any F-key lines.
      n Show "n" F-key lines (n=1 to 4).
    P 0 Show subset of file data, with command field for each line.
      1 Show all file data, with one command field for the panel.
      2 Show file names in multi-column format, with one command field for the panel.
    T A (ASIS) Show filespec as stored by the file system.
      F (FIRST) Show each filespec component in lower case with an upper-case first letter.
      L (LOWER) Show filespec in lower case.
      M (MIXED) If filespec component contains at least one lower-case letter, show component as stored by the file system (ASIS), otherwise show each word in component in lower case with an upper-case first letter (WORD).
      P (PROFILE) Show filespec as defined in the profile.
      U (UPPER) Show filespec in upper case.
      W (WORD) Show each word in filespec in lower case with an upper-case first letter.
      omitted Display the current text-mode setting.
    X 0 Stop at first line that results in a non-zero return code.
      1 Continue executing lines regardless of the success or failure of the commands on each line.
      omitted Display the current execution-mode setting.

    Usage notes:

    1. Previous releases did not define the P parameter name, requiring the parameter value (0, 1, or 2) to follow immediately the #M. This style of command has been withdrawn; in the new release the P parameter name must be specified in order to change the panel layout. Use of the old style of #M command in F-key definitions in your FL profile will be corrected automatically when you migrate your profile using FLCUST.

      Note: "panel layout" was called "screen mode" in previous releases.

    2. Text modes other than "P" apply the same mode to all components of the filespec; only text mode "P" allows you to use a different setting for each component.

    3. After activating text mode "A" or "M" (or activating text mode "P" if one or more components uses text mode "A" or "M"), you must refresh the list using the #R command in order to see the correct mixture of upper and lower case.

    [Back to Summary of Changes]

  8. On the #M (Mode) command, the "+" and "-" values advance to the next higher value and next lower value respectively, and wrap around when the end of range is reached. If you don't want to cycle through all possible values, specify in parentheses the values that you want to cycle through, separated by commas. For example, to toggle the panel layout between 0 and 1 without going through layout 2, use the following:

    #M P+(0,1)

    To cycle the text mode between ASIS, LOWER, and WORD, use:

    #M T+(A,L,W)

    [Back to Summary of Changes]

  9. The #S (Sort) command has been enhanced with two new parameters, "W" and "Z". These are described below.

    1. Although FL is mostly used interactively, it can also be used as a command-line tool to create a disk file containing a list of files satisfying the specified selection criteria. This is done by redirecting the output from FL to a disk file. Example:

      F.BAT C:\ /T /S:P /Z:10M >BIGFILES.TXT

      In this example, /S:P (Sort by Path) has been specified, but this results in an unexpected ordering in the disk file. The following example illustrates what can result when /S:P is specified:

      F:\photos\digital
      F:\photos\film
      F:\photos\memcard
      F:\photos\digital\animals
      F:\photos\digital\people
      F:\photos\digital\places
      F:\photos\digital\plants
      F:\photos\digital\animals\birds
      F:\photos\digital\animals\insects
      F:\photos\digital\animals\mammals
      F:\photos\digital\animals\birds\robins
      F:\photos\digital\animals\birds\robins\b000306.jpg
      

      This apparently wrong ordering results because the major sort performed on the files is sort by path, and the subsequent minor sorts do not correct the problem already introduced by the major sort. To obtain the correct ordering, the whole filespec needs to be sorted as a single entity – specifying /S:PNE as the sort option would not produce the desired result.

      In the new release, the W sort code is introduced. This sort code causes the list to be sorted using the whole filespec. Since this determines the ordering completely, no minor sort codes can be specified (they would have no effect). However, the "+", "–", and "R" sort suffixes can still be used.

      /S:W is primarily intended for use when outputting the file list to a disk file. Although /S:W is valid on the FL panel, it results in an ordering that is not very useful.

    2. In previous releases, the S parameter was used ("#S:S") to sort by size. However, this notation is inconsistent with the size filter available on the #A, #R, and #W commands, and with the size setting of the /I (Inherit) option of those commands; in both cases Z is used ("/Z:min-max" and "/I:Z"). Z was chosen for the size filter because /S was already used for the sort option on the #A, #R, and #W commands.

      In the new relese, Z is added as an alias of the S parameter on the #S command, so both "#S:S" and "#S:Z" will sort by size.

    These changes also apply to the /S (Sort) option of the #A, #R, and #W commands.

    [Back to Summary of Changes]

  10. An #ATTR (Attributes) command has been introduced to display and change the attributes of files and directories. This command operates on the file or directory on the line where the command is typed. Like the #R (Refresh) command, FL does not append the filespec of the current line, and you do not need to use the #O (Omit) command. The syntax of the command is shown below:
    #ATTR
    #ATTR  attrs
    #ATTR +attrs
    #ATTR -attrs
    

    where "attrs" is one or more of the attribute letters "AHRS" (denoting archive, hidden, read-only, and system, respectively). The attributes can be specified in any order, and in upper or lower case. The special character "*" (denoting all four attributes) can also be used. Note that the directory attribute cannot be changed using the #ATTR command; however, if the "D" attribute is specified, it is accepted but ignored. The various forms of this command are as follows:

    #ATTR
    The existing attributes of the file or directory are displayed so that they can be modified to construct the new attributes. For directories, "D" (denoting the directory attribute) is displayed in addition to any other attributes that pertain. If all attributes are off, the null string is displayed (#ATTR "").

    #ATTR attrs
    All attributes are set. Attributes specified are switched on; attributes not specified are switched off. If the null string is specified (#ATTR ""), all attributes are switched off. If the asterisk is specified (#ATTR *), all attributes are switched on.

    #ATTR +attrs
    The attributes specified are switched on; attributes not specified are not changed.

    #ATTR -attrs
    The attributes specified are switched off; attributes not specified are not changed.

    The "+" and "-" specifications can be used together, with no intervening blanks. Example:

    #ATTR +rh-a

    This switches on the read-only and hidden attributes, switches off the archive attribute, and leaves unchanged the system attribute.

    [Back to Summary of Changes]

  11. A #DATE (Date) command has been introduced to display and change the dates and times of files (this command is not valid for directories). This command operates on the file on the line where the command is typed. Like the #R (Refresh) command, FL does not append the filespec of the current line, and you do not need to use the #O (Omit) command. The syntax of the command is shown below; brackets [ ] indicate optional items:
    #DATE [YYYYMMDDhhmmss | *]
    #DATE /D [YYYYMMDD | *]
    #DATE /T [hhmmss | *]
    #DATE /F "filespec"
    

    where "YYYYMMDDhhmmss" is a 14-digit number specifying year (YYYY), month (MM), day of month (DD), hour (hh), minute (mm), second (ss). The special character "*" can be used for any of these components where the current value is wanted (example: "#DATE ***120000" sets the file date and time to midday today). The various forms of this command are as follows:

    #DATE [YYYYMMDDhhmmss | *]
    The file date and time are set to the specified date and time, or to the current date and time if "*" is specified. If no value is specified, the date and time of the file are displayed so that they can be modified to construct the new file date and time.

    #DATE /D [YYYYMMDD | *]
    The file date is set to the specified date, or to the current date if "*" is specified; the file time is not altered. If no value is specified, the date of the file is displayed so that it can be modified to construct the new file date. The /D option can precede or follow the value.

    #DATE /T [hhmmss | *]
    The file time is set to the specified time, or to the current time if "*" is specified; the file date is not altered. If no value is specified, the time of the file is displayed so that it can be modified to construct the new file time. The /T option can precede or follow the value.

    Note that on FAT disks (FAT12, FAT16, FAT32), times are stored with a resolution of two seconds. Hence if you specify for a file on a FAT disk a value for "ss" that is not a multiple of two, it is adjusted down to the next lower multiple of two.

    #DATE /F "filespec"
    The file date and time are set to the date and time of the file or directory specified by "filespec". If "filespec" is not fully specified, it is resolved using the usual rules. Relative directory notation is valid, but wildcard characters are not. If "filespec" contains blanks or other special characters, it must be enclosed in double quotes; in other cases the double quotes are optional. The /F option can precede or follow the filespec.

    [Back to Summary of Changes]

  12. A #PATH (Path) command has been introduced to move files and directories from one directory to another. This command operates on the file or directory on the line where the command is typed. Like the #R (Refresh) command, FL does not append the filespec of the current line, and you do not need to use the #O (Omit) command. However, you can still use the #D, #P, #F, #N, and #E substitution codes in the command parameter in order to obtain the relevant part of the filespec. The syntax of the command is shown below; brackets [ ] indicate optional items:

    #PATH ["newpath"] [/R]

    The file or directory is moved from its current location to the location specified by "newpath". If "newpath" is not fully specified, it is resolved using the usual rules. Relative directory notation is valid, but wildcard characters are not. If "newpath" contains blanks or other special characters, it must be enclosed in double quotes; in other cases the double quotes are optional.

    Note that the #PATH command can move directories as well as files, and that it can move them between directories on different drives, as well as between directories on the same drive.

    If "newpath" is omitted, the existing path of the file or directory is displayed so that it can be modified to construct the new path. The FL command line is only 60 characters in length, so if the data displayed results in a command line that is too long, the excess characters are discarded and the "+" symbol appended to indicate that information is missing.

    If the new filespec is identical to an existing filespec, the command fails. The /R (Replace) option can be specified to cause the existing file or directory to be deleted before the move is performed.

    Caution: if the file list contains files from more than one directory (for example, because you are operating in tree mode), relative directory notation by itself operates with respect to the current directory on the current drive (the one shown at the top left of the screen). If you want to move the file or directory relative to its own path, you must use the #P substitution code. Examples:

    What you type What FL does
    #path .. File is moved from its drive to the parent directory of the current directory on the current drive.
    #path #p.. File is moved to the file's parent directory.
    #path #p..\old File is moved to the directory "old" which resides in the file's parent directory.
    #path ..\.. File is moved from its drive to the grand-parent of the current directory on the current drive.
    #path x:.. File is moved from its drive to the parent directory of the current directory on the X: drive.

    The #PATH command can sometimes fail when applied to a directory, even though the command is syntactically correct. This is caused by the directory being in use in another operating-system window (the directory to be changed is the current directory in the other window, or is on the path to the current directory in the other window). The solution is to change the current path in the other operating-system window so that the directory to be changed is no longer in use. Microsoft Windows adds a further complication, due to its idiosyncratic directory-management model. Without going into details, the simple solution is to exit from FL in all operating-system windows, ensure that the directory to be changed is not in use in any of them, and then restart FL and re-issue the command.

    [Back to Summary of Changes]

  13. #FILE (File), #NAME (Name), and #EXT (Extension) commands have been introduced to display and change the names and extensions of files and directories. These commands operate on the file or directory on the line where the command is typed. Like the #R (Refresh) command, FL does not append the filespec of the current line, and you do not need to use the #O (Omit) command. However, you can still use the #F, #N, and #E substitution codes in the command parameter in order to obtain the relevant part of the filespec. The syntax of the commands is shown below; brackets [ ] indicate optional items:
    #FILE ["newname.newext"] [/R]
    #NAME ["newname"] [/R]
    #EXT ["newext"] [/R]
    

    The "name.ext" part of the filespec is changed to "newname.newext", as appropriate for the command used. If the new name or extension contains blanks or other special characters, the parameter must be enclosed in double quotes; in other cases the double quotes are optional.

    For the #EXT command, "newext" must not begin with a dot. To remove the extension from a filespec, specify the null string "" as the parameter on the #EXT command.

    If the parameter is omitted, the existing name and/or extension of the file or directory is displayed so that it can be modified to construct the new name and/or extension. The FL command line is only 60 characters in length, so if the data displayed results in a command line that is too long, the excess characters are discarded and the "+" symbol appended to indicate that information is missing.

    If the new filespec is identical to an existing filespec, the command fails. The /R (Replace) option can be specified to cause the existing file or directory to be deleted before the rename is performed.

    The #FILE, #NAME, and #EXT commands can sometimes fail when applied to a directory, even though the command is syntactically correct. This is caused by the directory being in use in another operating-system window (the directory to be changed is the current directory in the other window, or is on the path to the current directory in the other window). The solution is to change the current path in the other operating-system window so that the directory to be changed is no longer in use. Microsoft Windows adds a further complication, due to its idiosyncratic directory-management model. Without going into details, the simple solution is to exit from FL in all operating-system windows, ensure that the directory to be changed is not in use in any of them, and then restart FL and re-issue the command.

    [Back to Summary of Changes]

  14. To complement the #FILE, #NAME, and #EXT commands described above, FL offers enhanced support for the generation of the new name and extension from the old name and extension. This support uses the wildcard characters "*" and "?", and control characters "<" and ">". (On commands presented to the operating system, the "<" and ">" characters usually cause redirection of standard input and output, but because FL's rename commands are performed directly by FL, these characters serve no purpose, and so are available for other uses.) Consider a rename command such as:

    RENAME CONFIG.SYS *.*OLD

    In this command, the new filespec "CONFIG.SYSOLD" is constructed from the old filespec "CONFIG.SYS" by using the pattern "*.*OLD" to control the picking of characters from the old filespec. Note that the name and extension are processed separately. In the following description, "string" is used to denote either the name or extension.

    The new string is generated by scanning the pattern from left to right, and copying characters from the old string to the new string, according to the characters present in the pattern. The characters in the pattern have the following meanings:

    *
    Copies the remaining characters in the old string to the new string. If the scan pointer is already at the end of the old string, no characters are copied. If the scan pointer is at the start of the old string, the entire string is copied.

    ?
    Copies the next character in the old string to the new string. If the scan pointer is already at the end of the old string, no character is copied.

    >
    Moves the scan pointer in the old string one character to the right, without copying anything to the new string. This has the effect of skipping the character at which the scan pointer is currently pointing.

    <
    Moves the scan pointer in the old string one character to the left (that is, backspace). This makes the previous character available for copying to the new string.

    There is one special case. If one or more "<" characters immediately follow the "*" character in the pattern, both the scan pointer in the old string AND the scan pointer in the new string are moved to the left. This action has the effect of erasing one or more characters at the end of the new string. As soon as some other character is found in the pattern, "<" reverts to its usual action of backspacing only the scan pointer in the old string.

    char
    The char is a data character which is copied from the pattern to the new string. The scan pointer in the old string is not altered.

    The following table illustrates how the wildcard and control characters can be used to achieve particular results:

    What you want to do What you specify
    for the pattern
    Use old string in its entirety *
    Prefix old string with "ABC" ABC*
    Suffix old string with "XYZ" *XYZ
    Remove 3 chars at start of old string >>>*
    Remove 3 chars at end of old string *<<<
    Change 3 chars at start of string to "ABC" ABC>>>*
    Change 3 chars at end of string to "XYZ" *<<<XYZ
    Interchange 2nd and 3rd chars in string ?>?<<?>*
    Interchange 2nd-to-last and 3rd-to-last chars *<<<>?<<?>?

    Although this enhanced name generation can be used for a single file, it is of most use when you want to apply the same change to all of the files that are named in a similar way. Proceed as follows:

    1. Create a list containing only the files to be renamed. Example: "#R ABC*.C" lists all C files that have names beginning "ABC".

    2. Enter the command to perform the rename on the first line only, and press your execute key to rename that file. For example: "#NAME >>>XYZ*" changes the prefix "ABC" to "XYZ".

    3. If the #NAME command has given you the result that you want, enter the command "#=" on the second line in the list and press your execute key. This causes FL to place "=" commands on all of the remaining lines in the list.

    4. Press your execute key to apply the same rename to the remaining files in the list.

    [Back to Summary of Changes]

  15. Several changes have been made to the way that commands are retained for re-use, and echoed in the command field:

    1. Commands that are typed in a command field are stored in a command stack, and can be recalled by using the CTRL-UP-ARROW and CTRL-DOWN-ARROW keys. In previous releases, FL chose not to store a command line if it was the same as the previous one, in order to store in the command stack as many different command lines as possible.

      In the new release this action is enhanced further, by not storing any command line which is already in the command stack – the commands in the stack are simply re-ordered. The size of the command stack is fixed, so command lines are not retained indefinitely.

      Note that commands that originate from the function keys or ALT/CTRL alphabetic keys are not stored in the command stack.

    2. In addition to the command stack there is a previous-command buffer that contains the previous command line processed. This is the command line that is executed when the "=" command is used. In previous releases, all commands executed were stored in this buffer, but experience has shown that this is not the most useful behaviour.

      In the new release, the previous-command buffer retains only command lines which modify (or potentially modify) the files or directories in the list; these are:

      • External commands (that is, commands passed to the operating system)

      • The following internal FL commands:
        #ATTR, #DATE, #EXT, #FILE, #NAME, #PATH

      If a command line contains one or more commands in the categories shown above, the command line is stored in the previous-command buffer. No other FL commands are stored in the previous-command buffer; this includes commands such as #R (Refresh), #W (Window), #M (Mode), and #S (Sort).

    3. In previous releases, the command line just executed would be echoed to the command field in some circumstances, and not echoed in other circumstances, with no obvious rhyme or reason.

      In the new release, the command line is echoed only if the command line contains one or more commands which modify (or potentially modify) the files or directories in the list. This is the same convention as that used for the previous-command buffer, and leads to the following simple rule:

      • If the command line is echoed in the command field, that command line has been saved in the previous-command buffer.

    4. Finally, the "#=" command has been enhanced so that the line on which "#=" is typed is replaced by the command to be executed, instead of being replaced by "=". This allows you to be sure what command will be executed on that line and on the subsequent lines containing "=", before pressing your execute key.

    [Back to Summary of Changes]

  16. If "yes" is specified for the "Overtyped commands blanked" option on the "Other Settings" panel in FLCUST, FL erases the existing content of the command line when a new command is typed, provided that both of the following are true:

    • The first character on the line is the asterisk "*".
    • The keyboard is in replace mode (that is, not insert mode).

    This action is revised in the new release by adding a third condition:

    • The character typed is not the blank character.

    This means that if you want to re-execute the previous command (which is displayed in the field prefixed with an asterisk), you can use either the DELETE key to remove the "*", or the SPACE-BAR to overtype the "*" with a blank.

    [Back to Summary of Changes]

  17. The algorithm controlling the automatic setting of the column layout has been revised. The column layout and panel layout settings affect the contents of the FL panel as follows:

    Panel
    layout
    Column
    layout
    Left of
    panel
    Centre of
    panel
    Right of
    panel
    0 0 Name.ext Command field Size/date/time
    0 1 Name.ext Command field Path
    1 0 Name.ext Path Size/date/time
    1 1 Name.ext Size/date/time Path
    2 Either Name.ext Name.ext Name.ext

    The column layout is set as follows:

    • For panel layout 0, column layout 1 is used if the list contains entries from more than one directory, and column layout 0 is used otherwise. The column layout is reset to the appropriate setting when the list is generated, regenerated, or modified (that is, whenever you use the #A, #R, or #W commands).

      Note: if you create a list in tree mode, but the panel shows column layout 0 instead of 1, it means that files satisfying your selection criteria were found in only one directory.

    • For panel layout 1, column layout 0 is used when the list is generated initially, but thereafter whatever setting you use is remembered for that FL window. If you create a new window, the column layout is inherited from that of the existing window. Changing the column layout used for panel layout 0 does not affect the column layout used for panel layout 1.

    • For panel layout 2, the column layout setting is not applicable.

    [Back to Summary of Changes]

  18. In previous releases, the width of the path column on panel layout 1 was the same as the width of the command field on panel layout 0. If the "max width of file column" profile option was set to a large value in order to show as much of the name and extension as possible on panel layout 0, the path column became unusably narrow on panel layout 1. In the new release, the column sizing algorithm for panel layout 1 has been revised.

    Essentially, after allowance has been made for the attribute, size, date, and time columns, the space remaining is split into two equal halves, one for the file column and the other for the path column. However, if one column has unused space, while the values in the other column are truncated, the unused space is moved to the column that needs it, in order to minimise the amount of truncation required.

    The profile option "max width of file column" is ignored for panel layout 1 (and also for panel layout 2), but the "min width of file column" and "min extension when truncated" options apply as normal.

    [Back to Summary of Changes]

  19. In previous releases, the column separator was simply a column of blanks in a user-specified color. In the new release a vertical line is used to separate columns. The color of the vertical line is controlled by specifying the foreground color for the column separators.

    If you want a plain separator column (no vertical line) in a contrasting color (as supported in previous releases), define the foreground color for the column separators to be the same as the background color.

    If you want the vertical line only, without a contrasting separator column, define the background color for the column separators to be the same as the background color for normal text.

    [Back to Summary of Changes]

  20. Originally FL was a bit lax with regard to updating the screen. Specifically it did not update the file properties (attributes, size, date, time) after a command had been executed on that file. Version 4.01 introduced the "immediate update" profile option that caused FL to update the file properties immediately after a command, and also to update the list size and disk space information.

    Introduction of the #ATTR, #DATE, #EXT, #FILE, and #NAME commands has clearly illustrated that delaying screen update serves no useful purpose, and so the immediate update option has been withdrawn. In the new release FL always updates the screen immediately. Note that FL updates the file properties only on those lines where commands are entered, and FL does not regenerate the list until explicitly requested to do so via the #R command.

    [Back to Summary of Changes]

  21. FL displays one file attribute following the name and extension. The attribute displayed is the first one that is "on" in the order of precedence defined in the profile (use the "Other Settings" panel in FLCUST). The attribute is identified by using the initial letter of its name – except for the archive attribute, which in previous releases used the tilde character ("~"). Since "a" is used to indicate the archive attribute on the #A, #R, #W, and #ATTR commands, in the new release "a" is used also for the archive attribute in the file list.

    However, those users who never back-up their files may find that a sea of "a" characters in the attribute column is intrusive, so for those users a profile option has been added allowing the character used for the archive attribute to be defined by the user. Any character can be used, including tilde or blank. Note that the character defined does not affect the #A, #R, #W, or #ATTR commands – for those commands "a" or "A" denotes the archive attribute.

    [Back to Summary of Changes]

  22. The processing of upper and lower case in filespecs has been revised, as follows:

    1. The "Path case" option in the profile behaved rather oddly for some of the possible values, and so its definition is changed in this release:

      • The "Path case" profile option becomes "Directory name case", and applies to all directory names wherever they occur (in the path or in the current list).

      • The "Name case" profile option becomes "File name case", and applies only to the names of files; it does not apply to the names of directories.

      • The "Extension case" profile option is extended to apply to directory extensions as well as file extensions. Directory extensions are entirely valid, but are rarely used.

    2. For the MIXED setting, if a filespec component (drive, directory name, directory extension, file name, or file extension) contains at least one lower-case letter, the filespec component is shown using the ASIS setting. If the filespec component is entirely upper case, it is shown using the WORD setting (previously the LOWER setting was used).

    3. In version 4.08, the WORD setting was changed so that all characters other than the standard alphanumerics were treated as word delimiters. However, this has the effect of treating NLS characters as delimiters. NLS characters are characters such as accented vowels used by non-UK/US languages, and should be treated as alphabetics and not as delimiters.

      In the new release, only those non-alphanumeric characters that are typable on most keyboards are treated as word delimiters; these are shown below. Note that the single quote is not treated as a word delimiter, as it is most often used as an apostrophe.

      Brackets ( ) [ ] { } < >
      Mathematical = + - * /
      Logical | & ^ ~ \
      Punctuation : ; . , " ! ?
      Others % # @ _ blank

    [Back to Summary of Changes]

  23. Modern operating systems can result in very long filespecs, and previous releases of FL had no way of displaying these long filespecs. In the new release, the full filespec of the current line can be shown above the drive-info line, in one of three possible styles: without a box, with half a box, or with a full box. Be aware that the presence of the full filespec reduces the space available for the list itself, with the "full box" style reducing it the most.

    The display of the full filespec and its style are controlled by a profile option on the "Other Settings" panel in FLCUST. The colors of the full filespec and its box are controlled via the "Colors" panel in FLCUST. The #M command with the F parameter can also be used to control the display of the full filespec.

    [Back to Summary of Changes]

  24. Previous releases of FL showed the drive size and free size on the list trailer line. Consequently, it was often necessary to scroll to the bottom of the list in order to see this information. In the new release, the drive information is displayed in a fixed position, on the line above the F-key line.

    The display of the drive information is controlled by a profile option on the "Other Settings" panel in FLCUST. The colors of the drive information line are controlled via the "Colors" panel in FLCUST. The #M command with the D parameter can also be used to control the display of the drive information line.

    The drive information displayed has been enhanced, and now includes the following items:

    • drive letter
    • drive label (also known as the volume label)
    • file-system name (FAT, FAT12, FAT16, FAT32, NTFS, HPFS, CDFS, or UDF)
    • drive size
    • used size
    • free size

    Usage notes:

    1. If the drive label or file-system name is too long to fit in the space provided, the last character is replaced by the "+" character (as is done with abbreviated paths and file names). Drive labels on CD and DVD disks can be longer than the maximum allowed for hard disks.

    2. There are some combinations of circumstances where FL is unable to determine one or more of the drive label, file-system name, or sizes. In these cases, the names are shown as "???", and the sizes as zero. This can occur, for example, when running the DOS version on Windows XP, or the 16-bit OS/2 version on Windows 2000. However, be aware that there are some cases where the operating system returns incorrect sizes which FL cannot identify as incorrect (for example, listing a CD or DVD disk when using the 16-bit OS/2 version on Windows 2000).

    3. In order to obtain the name of the file system, the DOS version of FL uses a low-level call that Windows NT/2000/XP/Vista disallows for file systems that are not FAT12 or FAT16, and a pop-up window appears asking if you want to close the application. Logic has been added to allow the DOS version of FL to determine if it is running on Windows, and bypass the offending call if it is. However, this test is not definitive, and depending on your installation you may still see the pop-up window. You can safely click the IGNORE button in this case.

    [Back to Summary of Changes]

  25. In previous releases of FL, panel layout 0 showed two F-key lines (for the unshifted F-keys, and for the CTRL F-keys), but panel layouts 1 and 2 showed only one F-key line. When a shift key was pressed for a shift that was not displayed, the bottom line of the screen changed to show the F-key definitions for that shift. The following changes have been made in the new release:

    1. All panel layouts now show the same number of F-key lines.

    2. The number of F-key lines displayed can be controlled via an option on the "Other Settings" panel in FLCUST; any number between "0" and "4" can be specified. "0" displays no F-key lines, whilst "4" displays all F-key lines. The default for new and migrated profiles is "2".

      The number of F-key lines displayed can also be controlled by using the #M command with the K parameter.

    3. The order in which the F-key lines are shown on the screen can also be specified via an option on the "Other Settings" panel in FLCUST. All possible orderings are supported.

    4. In previous releases, it was possible to specify different colors for the two displayed F-key lines. In the new release the interpretation of these colors is changed: the first color is for the active F-key line, and the second color is for the three inactive F-key lines:

      • If no shift keys are currently pressed, the active F-key line is the one for the unshifted F-keys, so that line is displayed in the active color.

      • When a shift key is pressed, the line for the unshifted F-keys changes to the inactive color, and the line corresponding to the shift key pressed changes to the active color.

    5. In previous releases, a single color was used for the F-key numbers of all F-key lines. In the new release an additional color has been introduced so that active and inactive F-key lines can have different colors for the F-key numbers.

    6. Finally, the F-keys have been separated into three groups of four F-keys each, with a blank between each group. This corresponds to the physical grouping of the F-keys on most desktop keyboards and some laptop keyboards.

    [Back to Summary of Changes]

  26. When many directories are listed (for example, the command "FL C:\ /T" on a Windows drive), it can seem as though FL has got stuck, because nothing seems to happen for several seconds (the duration of this inactivity depends on the speed of the processor, the speed of the disk drive, the number of directories and files being listed, and whether the operating system has already cached the directory tree in memory). In the new release, FL displays an "activity bar" to show that FL is processing normally. The activity bar can be enabled or disabled via on option on the "Other Settings" panel in FLCUST.

    [Back to Summary of Changes]

  27. With DOS, OS/2, and Windows, use of multiple drive letters is common. Different drive letters are typically used for such things as: the operating-system drive, one or more data drives, a back-up drive, a diskette drive, CD and DVD drives, and USB drives (which can be external hard disk drives, external CD and DVD drives, flash memory drives, or memory-card readers). FL makes use of these drives very convenient. For example, to copy files from your data drive to a USB-connected back-up drive you could:

    1. Start up FL.

    2. Use the "Up Directory" and "Down Directory" function keys to navigate to the directory containing the files to be copied (the source directory).

    3. Use the command "#R d:" to switch to the "d:" drive (the target drive).

    4. Use "Up Directory" and "Down Directory" to navigate to the directory to receive the files (the target directory).

    5. Switch back to the source drive and issue the command "COPY # d:" for the first file to be copied, and "=" for the remaining files to be copied.

    For each drive, FL maintains a "working directory", which is the most-recently viewed directory on that drive. Initially, the working directory is the same as the current directory, but this ceases to be true as soon as you start to navigate around the directory tree. Whenever you issue an external command, FL ensures that the current directories on the drives that have been visited are made the same as the working directories on those drives.

    When you use the #W command to create a second or subsequent window, you are effectively creating a new FL session, which in principle has its own set of working directories, different from those of the first window. In previous releases, all FL windows (in a single OS window) had the same set of working directories, so navigating to a different directory on drive "d:" in the second window would change the working directory for that drive in the first window. Sometimes this is the desired behaviour, and sometimes it is not.

    In the new release it is possible to control how FL maintains its working directories, via the "Working-directory scope" option on the "Other Settings" panel of FLCUST:

    • If you choose "FL window", the scope of the working directories is restricted to the FL window. This means that each FL window has its own set of working directories, which can be different from those of other FL windows in the same OS window. When a new FL window is created, it inherits the working directories from the current FL window.

    • If you choose "OS window", FL maintains a single set of working directories for all FL windows in that OS window.

    [Back to Summary of Changes]

  28. FL has always tailored the number of rows in its panel to match the number of rows on the screen. In version 4.08, this was extended to allow FL to tailor the number of columns in its panel to match the number of columns on the screen, thereby using all of the screen available. However, experience shows that with a windowed operating system, matching the size of the FL panel to the size of the virtual screen is not usually the best choice – better usability results if the FL panel is matched instead to the size of the window.

    The new release of FL introduces a panel size setting that allows you to specify the panel size that FL should use – screen or window. This is controlled by the "Panel size" setting on the "Other Settings" panel in FLCUST.

    [Back to Summary of Changes]

  29. If panel size is set to "screen", FL rewrites the entire virtual screen when FL starts. If panel size is set to "window", FL constructs the FL panel in the top left corner of the virtual screen, and blanks the remainder of the screen (it does this to avoid commands and responses prior to FL start-up confusing the output from commands entered on the FL panel). In either case, the previous contents of the screen are lost.

    In the new release, a profile setting has been added to allow you to save the contents of the screen at FL start-up, and re-instate them when FL ends. This is controlled by the "Save screen at start" setting on the "Other Settings" panel in FLCUST.

    [Back to Summary of Changes]

  30. In previous releases, when you scrolled to the bottom of the list (CTRL-END key, or #B command), FL would place the current line at the top of the last page, and not at the bottom of the last page. This is counter to the way that most file editors work. Also, if you are about to process a series of files in the list, and scroll to the bottom of the list, you probably want to process the files in reverse order; placing the current line at the bottom of the last page would be more useful in this case.

    In the new release, you can specify whether the CTRL-END key and #B command should move the current line to the last line on the last page (giving you a symmetric maximum scroll), or to the first line on the last page (giving you an asymmetric maximum scroll – same behaviour as previous releases). This is controlled by a profile setting on the "Other Settings" panel in FLCUST.

    [Back to Summary of Changes]

  31. In previous releases, when you used the PAGE-DOWN key to scroll by one page towards the end of the list, FL placed the current line at the top of the next page. But when you used the PAGE-UP key to scroll by one page towards the start of the list, FL placed the current line at the top of the previous page. If you have scrolled to the bottom of the list in order to process a series of files in reverse order, it would be more useful if the current line were placed at the bottom of the previous page when scrolling towards the start of the list.

    In the new release, you can specify whether the PAGE-UP key should move the current line to the last line on the previous page (giving you a symmetric page scroll), or to the first line on the previous page (giving you an asymmetric page scroll – same behaviour as previous releases). This is controlled by a profile setting on the "Other Settings" panel in FLCUST.

    Note: the ALT-PAGE-UP and ALT-PAGE-DOWN keys provide a line scroll capability – the list is scrolled up or down by one line, moving the current line in synchronism with the list. Symmetric page scroll behaves in the same way as line scroll, but with the scroll amount equal to one page instead of one line.

    [Back to Summary of Changes]

  32. Certain file systems support large files; these file systems have 64-bit file sizes instead of 32-bit file sizes. Large files have a maximum size of 18,446,744,073,709,551,615 bytes (18.4 exabytes, written as 18.4EB). HPFS (OS/2) and NTFS (Windows) are examples of file systems that support large files; FAT12, FAT16, and FAT32 are examples of file systems that do not.

    The new release of FL now supports large files, provided that both the file system and the operating system are compatible (for example, HPFS on OS/2, NTFS on Windows). FL cannot support large files if the operating system does not support large files natively (for example, DOS with an NTFS driver installed); in such a situation the file size displayed by FL for a large file is determined by the file-system driver, but is likely to be the low-order four bytes (that is, the remainder obtained when the file size is divided by 4GB). A freeware read-only NTFS driver for DOS can be obtained from the www.sysinternals.com web site.

    A side effect of the support for large files on Windows is that file times of files on NTFS drives are now displayed with a resolution of one second. File times of files on FAT drives have a resolution of two seconds. Be aware that if you run the DOS vesion of FL on Windows, the file times displayed by "FL for DOS" can differ from those displayed by "FL for Windows" by up to two seconds; this is caused by the different interfaces used to obtain the file information on DOS and Windows.

    [Back to Summary of Changes]

  33. In previous releases, the built-in help showed the FL commands using the default values for the special characters (command prefix character, command suffix character, repeat command character, options prefix character). In the new release, the built-in help uses the characters chosen by the user for the command prefix character, command suffix character, and repeat command character. For the options prefix character, FL uses "-" if the command prefix is "/", and uses "/" if the command prefix is any other character.

    Note: in this release the built-in help does not show the user-defined values for the primary execute key, secondary execute key, or newline key (the help shows the default values).

    [Back to Summary of Changes]

  34. A smart new default color scheme has been introduced. The default color scheme is the one that is used when you create a new profile, or run FL without a profile. If you want to see what this color scheme looks like, start FLCUST specifying the name of a non-existent profile, and when you get to the "Customisation Menu" panel, press function key 12 (Test) to see the FL screen with the default colors.

    [Back to Summary of Changes]

  35. Some of the changes introduced for version 5.00 have required a new version of the profile. FL accepts only the current version of the profile, but FLCUST accepts all previous versions. You must migrate your existing profile to the new version by editing and saving it with FLCUST.

    [Back to Summary of Changes]

  36. FL has been modified to make it possible for FL to run on Linux Wine Console. The changes need to be activated (they are not active by default). Refer to this page for more details.

    [Back to Summary of Changes]


Changes in FLCOLOR

  1. The screen output services used by the FL toolset allow 16 colors to be used (one of which is black). However, most display hardware supports more than 16 colors. FLCOLOR was a tool that allowed you to choose 16 colors from a larger palette of 64 colors. These 16 colors were then used in place of the standard ones. However, there were some limitations with this:

    • On DOS, FLCOLOR worked satisfactorily. However, it affected all applications, including the DOS command line.

    • On OS/2, FLCOLOR would work only when the command window was in full-screen mode; in windowed mode, the colors reverted to their standard settings. The number of occasions when full-screen mode is used on a windowed operating system is likely to be very small.

    • On Windows, the necessary support in the screen output service is not available, and it is unknown whether Windows even supports this capability.

    For these reasons, FLCOLOR has been withdrawn, and is no longer included in the FL toolset.

    [Back to Summary of Changes]


Changes in FLCUST

  1. A panel has been added to allow command synonyms to be defined. For each synonym, you define its name (1 to 8 characters) and the replacement text (up to 60 characters). There is no limit on the number of synonyms that can be defined – if you fill up the first screen, simply press the PAGE-DOWN key to scroll to a page with empty lines. Empty lines in the list are discarded when the profile is saved. Use the F5 key to sort the list by synonym name.

    [Back to Summary of Changes]

  2. The colors of the following items can now be defined using the "Colors" panel:

    • Column separators foreground color
    • Full filespec box
    • Full filespec text
    • Drive information labels
    • Drive information values
    • Active F-key numbers (formerly: All F-key numbers)
    • Active F-key labels (formerly: Base F-key labels)
    • Inactive F-key numbers
    • Inactive F-key labels (formerly: Ctrl F-key labels)

    [Back to Summary of Changes]

  3. The following options have been added to the "Other Settings" panel:

    1. "Archive attribute char" allows you to specify the character to be used to indicate that a file has the archive attribute set.

    2. "Symmetric max scroll" allows you choose symmetric scrolling behaviour for the #T and #B commands, and the CTRL-HOME and CTRL-END keys.

    3. "Symmetric page scroll" allows you choose symmetric scrolling behaviour for the PAGE-UP and PAGE-DOWN keys.

    4. "Number of F-key lines" controls the number of F-key lines shown on the FL screen. The #M (Mode) command with the K parameter can be used to change the number of F-key lines when FL is running.

    5. "F-key lines display order" controls the order of the F-key lines on the screen (top-most to bottom-most).

    6. "Drive info line" allows the drive information line to be switched on or off. The #M (Mode) command with the D parameter can be used to control the drive information line when FL is running.

    7. "Full filespec line" allows the full filespec line to be switched off, or switched on in one of three possible styles (no box, with half a box, or with a full box). The #M (Mode) command with the F parameter can be used to control the full filespec line when FL is running.

    8. "Activity bar" allows the activity bar to be switched on or off.

    9. "Working-directory scope" allows the scope of FL's working directories to be switched between FL window and operating-system window.

    10. "Panel size" allows the size of the FL panel to be fitted either to the size of the operating-system window, or to the size of the virtual screen.

    11. "Save screen at start" allows the contents of the virtual screen to be saved when FL starts, and re-instated when FL ends.

    [Back to Summary of Changes]

  4. The following options have been removed from the "Other Settings" panel:

    1. The "Allow output redirection" option has been withdrawn, as it served no useful purpose. Output redirection is now always allowed.

    2. The "Column gap on top" option has been withdrawn, as it was of little value. The column gap is now always on top.

    3. The "Immediate screen update" option has been withdrawn, as it was of little value. The screen is now always updated immediately.

    [Back to Summary of Changes]

  5. If you change the command prefix character, command suffix character, or repeat command character, FLCUST will now automatically change your function-key, alpha-key, and synonym definitions to use the new prefix, suffix, and repeat characters. This makes it easy to experiment with different characters, to see which ones you prefer.

    [Back to Summary of Changes]


Changes in FLFIND

  1. FLFIND uses FL to generate the file list. There are two ways of exiting from FL:

    • #Q (Quit) command
    • #C (Change Directory and Exit) command

    For the #C command to work correctly on OS/2 and Windows, FL must be invoked via the file F.BAT (F.CMD on OS/2). The same situation exists for FLFIND – the #C command will not work correctly unless FLFIND is invoked via a BAT file that does the necessary processing. The new release adds this BAT file, which is called FF.BAT (FF.CMD on OS/2).

    [Back to Summary of Changes]

  2. The primary purpose of FLFIND is to find a file whose location in the directory tree is unknown. So the common case is to invoke FLFIND specifying only the name and extension:

    FLFIND name.ext

    This causes FL to search the directory tree starting at the root directory on the current drive. You can also easily search other drives:

    FLFIND dfr:name.ext

    This causes FL to search the "D:", "F:", and "R:" drives, starting at the root directory on each.

    Occasionally you may want to search a directory sub-tree (that is, not starting at the root directory). With previous versions of FLFIND, you could do this only by specifying the fully-qualified path of the sub-tree. This becomes inconvenient when the path is long, and long paths are common on OS/2 and Windows (relative directory notation was ignored in previous releases).

    The new version of FLFIND now honours relative directory notation in the path specified on the invocation of FLFIND:

    Example Action
    FLFIND .\name.ext Search for "name.ext" in the current directory and all its sub-directories.
    FLFIND ..\name.ext Search for "name.ext" in the parent directory and all its sub-directories.
    FLFIND xyz\name.ext Search for "name.ext" in directory "xyz" residing in the current directory, plus all sub-directories of "xyz".

    Note: when you use relative directory notation like this, if you also specify one or more drive letters, the starting directory for the search is evaluated with respect to the current directory on each drive.

    [Back to Summary of Changes]


New Tool FLVIEW

  1. It is useful to have an FL function key that can edit or view files of any type. For this to be possible, FL must invoke the tool or program that is appropriate for the file extension, but FL does not know what tool or program is appropriate.

    FLVIEW is a user-customisable program that addresses this problem. When you want to edit or view a particular file, you invoke FLVIEW from the FL command line, and FLVIEW then invokes the tool or program appropriate for the file extension.

    Refer to the FLVIEW User Guide for more information about this tool.

    [Back to Summary of Changes]


Problems Fixed

  1. (FL) One feature of FL that is sometimes useful is the ability to see which files have been operated upon. When a command is executed, immediately afterwards FL displays on the command line the command prefixed with the "*" character (the "*" causes FL to ignore the line in subsequent processing). On the next interaction, the command line is changed to show "*" alone. So the presence of the "*" indicates that the file has been operated upon. However, in some circumstances the "*" characters were lost, for example when sorting, or when changing column mode (#MC command). This has been corrected. In the new release the "*" characters remain until the list is regenerated (#R command).

    [Back to Summary of Changes]

  2. (FL) If several commands were typed (without pressing the execute key), and then a function key was pressed (for example, to switch panel layout or column mode), the contents of the input field on the current line were lost. This has been corrected.

    [Back to Summary of Changes]

  3. (FL) On an NTFS drive, Windows creates in the root directory a hidden system directory called "System Volume Information". In the previous release, code was added to exclude this directory from the list, but this is now considered to be inadvisable and the relevant code has been removed.

    If you do not want "System Volume Information" and other system files and directories appearing in the list, define synonyms for the #A, #R, and #W commands that specify "/A:-S" as an option (see earlier description of support for synonyms).

    [Back to Summary of Changes]

  4. (FL) When a shift key is pressed, FL updates the bottom line of the screen to show the F-key definitions for that shift. However, in previous releases the F-key line displayed would revert to the normal case after an F-key or typing key had been pressed, even when the shift key remained pressed. This has been corrected.

    Note: when FL loses control of the keyboard, FL cannot see shift-state transitions, and in these situations the F-key line displayed may not correspond to the shift key pressed. FL loses control of the keyboard when an external command is invoked (for example, a full-screen editor invoked from FL), or when the window containing FL loses the focus.

    [Back to Summary of Changes]

  5. (FL) If FL ran out of memory while creating the list, FL would in certain cases lose addressability to some of its own data areas, resulting in the detection of an internal error, incorrect output, or a processing exception. In principle this could happen on any operating system, but was most likely to occur with the DOS version of FL (either running on native DOS, or in a DOS window on OS/2 or Windows). This has been corrected.

    [Back to Summary of Changes]

  6. (FL) Windows has a drive and directory "model" that is different from DOS and OS/2, and requires more complex code in order to provide the normal FL directory listing capabilities. An oversight meant that if another command window deleted the current directory on a drive that had been previously visited by FL, FL would not be able to relist that drive using commands such as "#R d:*.*" – the command failed repeatedly due to the deleted current directory (although "#R d:\" would work). This has been corrected.

    [Back to Summary of Changes]

  7. (FL) If two or more file patterns were specified, and a file or directory matched more than one pattern, that file or directory would appear in the list once for each pattern that it matched. For example, if the command "#R *ABC* *DEF*" were used in a directory that contained the file "ABCDEF.TXT", that file would be listed twice. This has been corrected -- duplicate entries no longer appear in the list.

    [Back to Summary of Changes]

  8. (FL) In certain situations text modes ASIS and MIXED produced incorrect output. Although the list showed the correct mixture of upper and lower case for names and extensions, the paths could be incorrect up to the point in the path where the specified file pattern started. This has been corrected.

    [Back to Summary of Changes]

  9. (FL) The empty-list line is displayed when FL finds no files satisfying the selection criteria. There is no name or extension associated with this line, but there is a drive and path. When only a single directory was being searched, the drive and path of the empty-list line were correct. However, when two or more directories were being searched, or FL was operating in tree mode, the drive and path of the empty-list line were that of the last path encountered, whereas they should have been that of the first path encountered (that is, the drive and path shown in the top left corner of the screen). This has been corrected.

    [Back to Summary of Changes]

  10. (FL) If the #A (Add) command was used when the file list showed the empty-list line, and files were found satisfying the selection criteria, the files found were added to the empty-list line (that is, the empty-list line remained on the screen), whereas the empty list line should have been removed from the screen. This has been corrected.

    [Back to Summary of Changes]

  11. (FL for Windows) The ALT alphabetic keys were not recognised if a SHIFT key was also pressed, or CAPS LOCK was in effect. This has been corrected.

    [Back to Summary of Changes]

  12. (FL) Auto-quoting resulted in incorrect quoting if the #OQ (Omit Quoting) command was used part-way through a command (the part of the command to the left of #OQ should be auto-quoted, but was incorrectly processed). This has been corrected.

    [Back to Summary of Changes]

  13. (FL) The CTRL-DEL key, which erases data from the cursor position to the end of the input field, failed to erase the last byte of the field. This has been corrected.

    [Back to Summary of Changes]


Other Points

  1. The "FL User Guide" (the file "FLGUIDE.HTM") has received only minimal updates for this release. There may therefore be some errors, omissions, or contradictions in the manual.

    Note: the manual does not include any of the changes made in the various version 4 and version 5 releases, and hence is quite out of date. To understand the changes that have been made in version 4, read the files "FL4nn.HTM" (nn=00 to 08).

    [Back to Summary of Changes]

  2. When files and directories are deleted from FL, they are not recoverable other than by using a specialised recovery tool, such as:

    In contrast, when files and directories are deleted using Windows, those files and directories are not really deleted; instead they are moved to the recycle bin, from where they can be easily recovered by the user.

    If you would like to be able to use the Windows recycle bin from FL, you might like to investigate the following tools:

    Note: these tools are mentioned merely for your information – they have not been tested to ascertain their reliability – so use them at your own risk.

    [Back to Summary of Changes]


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