Note: There are links at the bottom of this page to access the full change history for the current SPFLite2 as well as the full change history for the original SPFLite release. 

Between 3.0.24026 AND 3.0.24069 (Mar 09/2024

    • If using Beta versions, the option to run only a single Instance was crippled. This has been corrected.

    • An error in how AUTO files were loaded has been corrected. It was effectively turning colorization off.

    • If an "EDIT file-name" command is issued, and the file does not exist, it is supposed to create an Empty file. It has not been doing so for some time. This has been corrected.

    • The MRF (Most Recent File) list was not being consistently reset during startup, depending on the startup options. This has been corrected.

    • A variety of problems related to the handling and display of messages has been corrected. Particularly with messages related to tab startup and shutdown. There were several messages of this type which were simply 'disappearing'.

Between 3.0.23313 AND 3.0.24026 (Jan 26/2024)                                                                                         


    • The number of UNDO levels option will be removed as a Profile Level item and will become an Options => General item. Automatic migration will be done and the setting will be made to the highest value currently used by any Profile.

    • Correct several errors in handling UNDO/REDO commands. Errors were corrected in the commands CLIP, COPY, and in the main UNDO support itself.

    • Correct an error in how internal data memory tables are expanded to prevent affecting special line storage (e.g. PROF lines).

    • Correct MINLEN command. If the MINLEN value was increasing, it was failing to adjust the existing lines in the session.

    • Correct macro function Get_RBound. If RBound was 0 (MAX) is was incorrectly returning the maximum length data line.

    • Correct PRESERVE handling when AUTOCAPS ON is also specified.

    • Correct coding error in the DIFF support for removing comments from the data being compared.

    • Correct error in parsing the -FILEOPEN file contents which could cause the contents to be ignored.

    • Correct error in a FIND PREV type search. It was not finding strings which were ON the cursor line to the left of the cursor column.

    • Add several enhanced Primitives to support TABS delimited column mode editing. 

So, what is Column Mode Editing?                                                       


           Well, it uses the TABS settings to organize the data into 'columns', and  normal KB activity will honor column widths IF ASKED FOR. This means character typing in INS, OVR or DIN mode. The DEL, BS, DataDelete and DataBS will also adapt to the new mode.

How is it asked for? The new Primitive (TabBNDS). This will toggle this new  mode. It will be displayed in the INS/OVR box of the Status Bar.   

Other new associated Primitives are:

(TabShift)   - Will take all data from the current cursor column and shift it right to the next 'column' boundary.

(TabRelease) - In INS mode, you may 'push' characters into the next column. When this would occur, the function will be stopped, with an Audible/Visible Beep. (TabRelease) will temporarily stop column oriented activity for the current line.

Note: When typing in a column, if all further columns are blank, the check for overlowing a column will not be made, as no further data is impacted.        


    • Add several requested new MACRO functions:                                             







   For details of these functions, please see the Help Documentation

    • Correct cursor positioning of 'N' inserted lines when there is actual data in the MASK line.

    • Correct handling of the -F * operand in the INSTANCE command.

    • Correct error in the SUBMIT handling of INCLUDED files.

    • Correct error in the Line Command table which caused some line commands to reject / or \ modifiers.

    • Update macro function Get_Profile$() to add the new MACLIB profile parameter. 

    • Correct parsing error when a Picture literal contains only a single '*'.

    • Minor tweaks to INSTANCE support. If the -F filename has no path specified, the SPFLite HomeFolder will be added. An extra reset of the Most Recent Files list when the END operand was used, was removed. Some overlooked Doc. changes were completed.                                                                        



Between 3.0.23259 AND 3.0.23313 (Nov 09/2023)

    • Correct File Manager handling of FLISTS with a mixture of single path and extended path requests.

    • Correct error in the main Line Command table for the TR command.

    • Alter PRESERVE OFF handling so that if the trailing blanks to be removed contain any Attribute values (like hi-lighting), the line will retain the needed blanks to retain the hi-lighting.

    • Correct the COPY command. It was incorrectly using the Current Directory rather than the directory from which the loaded file was read. This caused incorrect "Missing File" messages.

    • If "Minimize to Tray" is activated, the ToolTip text has been modified to display the Instance name if other than DEFAULT.

    • Add new -FILEOPEN command line option. This allows you to specify the name of a text file containing filenames to be opened. You can open multiple files in tabs, or in MEdit sessions. For individual files you can also specify if they are to be opened in View or Browse modes. Read the new section - "FileOpen Startup Files" in "Working With" in the Help file.

    • Add the new Primary command INSTANCE (alias INST). This command can be used to switch the SPFLite session to another Instance. It will start a new SPFLite Instance and optionally close the current session.

If there are active Edit tabs, the command provides optional operands to allow you to request they all be CANCELed or ENDed. If END is chosen, each tab will use the current AUTOSAVE option to determine if, and what level of prompting to perform. There is also a KEEP option which does not close the current session.

    The syntax is:

      INSTANCE new-instance-name

      INST          [ END | CANCEL | CAN | KEEP ]

                             [ -F { * | FileOpen-Name } ]

                   [ -D DoMacro-Name ]

Other than new-instance-name which MUST be operand one, the remaining operands can be entered in any order.

     Notes: Some accompanying changes were made:

        • The command line -F operand will now accept an * to indicate the current _FILEOPEN.TXT contents are to be treated as the FILEOPEN data.
        • To accomany the above, the INSTANCE command will, as long as the new Instance-name is not the Current Instance Name, create a valid _FILEOPEN.TXT file in the SPFLite Home folder (the one holding the CFG file) with the list of the currently open tabs.
        • The passing of files to be opened to an existing Instance has been improved to support multiple files and/or MEdit lists.
        • The KEEP option also allows you to request the current session be kept open. If the new-instance-name equals the current name, the _FILELIST.TXT file can be used to ADD open files to the session.

For example, if running normally as DEFAULT the command:


would add the files in the specified file to the current session.

The following would reopen the current Edit tabs in a new INSTANCE


    • Extend the File Manager ALL command to support the END and CANCEL commands. These of course can only be used when displaying the Open Tabs list.

    • V3.0.23253 revised the handling of FM line commands to correct several inconsistencies. The support for the C/CC line commands (used with the CUT primary command) was crippled. It has been restored.

    • Add a new macro function Get_Instance$ to return the name of the Instance the session is running under.

    • Correct error in re-opening files when more that 1 tab was a MEdit session. The MEdit tabs were incorrectly merged into a single MEdit session.

    • Correct error in the command table definition for the FM ML command.

    • When creating a new INSTANCE, if the Instance being used as the model for the new Instance has unique EFT, KBD, SET and Retrieve tables, then they will be used for the new Instance. Previously, those 4 tables were always copied from the DEFAULT Instance. If they do not have unique tables then the copy will still be made from the DEFAULT Instance.

    • Correct erroneous message when a Primary CMD command is entered in a special edit tab (CLIP, SetEdit and EFTEdit).

    • Add support to the Edit line command M (Move) to allow moving whole files around in MEdit mode.  The M command is placed on the =FILE> line, and an A/B line command to mark the new position. The new position must be located before another =FILE> line or the **Bottom** line.

    • Add a new Profile option - MACLIB. MACLIB allows you to specify 1 or more alternate folders to use as the source for macros, IN PLACE OF the normal Users\You\Documents\SPFLite\MACROS folder. The default for MACLIB is NONE.

The list of folders is NOT specified directly by the MACLIB operand. The MACLIB value is the name of a SET symbol containing the list. This makes it easier to Enter/Edit the list in SetEdit rather than entering a long string as a MACLIB operand.


Enter the command "MACLIB MyMacs" sets the profile value to MyMacs.

Enter SET to reach (SetEdit) mode and create a line


Notes: The example adds the normal MACROS folder after the new user folder, but there is no requirement to do so. You may enter any set of folders you desire. Also, multiple filenames are separated using the | character.

The effective MACLIB list (specified or NONE) is automatically added to the thinBasic #INCLUDE search list.

Between 3.0.23253 AND 3.0.23259 (Sep 16/2023)


    • Correct the NFIND logic. It was accepting a TOP operand, but never actually acted on it.

    • Correct handling EFT override profile handling. The override were supposed to be temporary, but were actually being saved to the profile if it was unlocked.

    • Correct a serious error in MEdit which caused incorrect saving of the MEdit session files.



Between 3.0.23169 AND 3.0.23253 (Sep 10/2023)


    • There are new Profile options:

     AUTONAME - Defaulted to NONE, if not NONE it specifies the name of a different AUTO file to be used for text colorization. (Rather than the normal Profile Name)

MODE     - Defaulted to EDIT. Can be used to specify the type of tab to be opened when a simple SELECT or LMB click is done on a file in File Manager. Choices are EDIT, VIEW and BROWSE.


    • Correct handling FM Line command repeat values that exceeds the size of the current list

    • Correct the handling of a MODE xxxx and AUTONAME xxxx Profile overrides in the EFT list.

    • Correct File Manager error in not saving the STANDARD / ALTERNATE format setting for each of the display types. (FilePath, Recent, Favorites, etc.)

    • Correct CFGMaint. It was not always actually saving the corrected value for error entries when doing an IMPORT.

    • Correct handling of MEdit session re-open at startup to maintain the MEdit file order.

    • Correct EFT validation. Blank lines were not being skipped as they should have been.

    • Corrections to handling some FM Line commands, and to issuing FM Line commands in macros.

    • Correct allocation of UNDO files for MEdit sessions.

    • Prevent internal updating of the EFT table if an actual (EFTEdit) session is running.

    • LOCATE with 'color' operands has been corrected to handle excluded lines properly.

    • LOCATE with LONG operand also received a correction in the command parser.

    • Corrections to handling some FM Line commands, and to issuing FM Line commands in macros.

    • The FM DEFAULT command has been eliminated.

    • Correct BACKUP handling of files which have no extension.

    • INSTANCE support has been extended to allow the EFT (Extended File Type) table to be maintained uniquely by Instance ID.

    • An extensive internal revision was done to 'tidy up' the handling of Tab Creation/Deletion and inter-tab communication. The handling of file Profiles was also simplified.

    • The EFT (Extended File Type) support is being extended, and will take over handling other file type related choices.

     ** File types which should share the DEFAULT profile

     ** File types which should be treated as non-text files

     ** File types which should be Opened by the Windows default app for that file type


This means the DEFAULT extension list specified in Options => General will be removed, as well as the no-text list in Options => FM.

These former lists will be automatically converted to the equivalent EFT table entries, you do NOT need to perform any conversion.


   Please review these extensions to EFT in the Help file.



Between 3.0.23088 AND 3.0.23169 (Jun 18/2023)

    • Correct the SET command. It was not handling an empty SET table properly.

    • Correct the (Paste) KB primitive, It was not handling a Paste into the command line properly.

    • Correct colorization scan, it was not handling the AUTOCASE of a single delimiter character properly.

    • The macro function Get_Profile$ has been re-written to properly perform what the HELP file indicates. As well the BNDS, MASK, MARK and TABS line data can be retrieved either with the functions Get_xxxxLINE$ or with Get_Profile$("xxxxLINE").

    • When loading a file using an XMACRO, the routine that validates the SOURCE attribute will be skipped, to avoid issuing extraneous messages.

    • Correct error in saving Hilite entries in the STATE file. The length of color fields was incorrect if within 1 character of the line length.

    • Macro Get_Profile$ will now, for EMACRO, IMACRO and XFORM return the ON / OFF value as the last operand in the string.

    • Correct handling of the Dialog for missing Profiles. If SKIP or SKIP(W) is chosen the entry was being added to the wrong CFG table.

    • Remove the option for whether 2D mouse movement may be used to mark text in an edit session. 2D selection will now always be allowed.

    • The handling of File Manager Line commands has been revised to better handle Repeating and Block mode commands.                                          

    • The primary commands RECFM, EOL, and LRECL control how your data files are processed during reading and writing. There are a variety of combinations of these parameters which are illogical. Validation in the individual commands has not prevented the creation of these illogical combinations.

So, these individual commands are internally becoming 'pass-through' commands, meaning they no longer perform the validation and actual change to the Profile settings. The command is restructured and passed to a new DCB command, which will 'do all the work'.  The new command can, of course, be used directly and is the recommended approach. For most users, using the old commands is probably still more familiar and will continue to operate.

The format of the new command is:

      DCB [ RECFM operand ] [ LRECL operand ] [ EOL operand ]

      i.e. A standard TXT file would be spacified as DCB RECFM U LRECL 0 EOL CRLF

The operands following the keywords RECFM, LRECL and EOL are identical to the operands of the former commands.

This allows for proper validation of the parameters and will prevent the accidental creation of illogical sets of parameters.

Between 2.7.23056 AND 3.0.23088 (Mar 29/2023)

    • Correct (PA1) primitive KB function. It was not performing the flip/flop  between old and new screen images when pressed repeatedly.

    • Alter the (DataDelete) and (DataBackspace) primitive characteristics to allow their use in the FM tab on the Command Line. Correct (DataBackspace) operation on the command line.

    • Re-establish the alternate form of the Line Command modifiers / and \ as described in the Help for Extended Line Command Modifiers. This uses the sequences of . and .. as substitutions. (Easier to use on non-English keyboards). This support 'disappeared' about 3-4 years ago.

    • Tweak messages for the SAVE command in a CLIP session to better indicate 'where' the data was saved. (i.e. Named or Windows clipboard)

    • Revise the (Copy), (CUT) and (Lift) primitives so that if there is no 'marked' area, the clipboard is left untouched.  If it IS necessary to actually clear the clipboard, use the (ClipClear) primitive.

    • Add support for a normal Windows ScrollBar on the right of the screen. This feature is optional; to activate it go to Options => Screen and toggle the "Add Vertical ScrollBars" option.

    • Minor correction to macro function SPF_Post_Do regarding marked text areas.

    • Minor correction to the (LowerCase) primitive. It was not checking for an active Marked area before proceeding.

    • Revise internal MSGBOX routine to support custom text on the dialog buttons.

    • Remove the FM Line command PURGE. The option to perform a Permanent Delete can now be done with the DELETE/DEL/D line command by adding a 'U' as an operand. e.g DEL U

    • Improve the clarity of text in the popup DELETE confirmation dialog.

    • Revise the FM line command LINES, which updated the STATE information for a file.  If the file currently HAS a LINES value, it will skip the overhead of performing a STATE rebuild. This is helpful when you want to select a large range of file lines where only a few are actually missing LINES data.

When needed, a U operand can be added to request an unconditional STATE update regardless of whether a LINES value currently exists.   e.g.  L U

Between 2.7.23019 AND 2.7.23056 (Feb 25/2023)

    • Reverse the change to the colorization QUOTED command default in AUTO files. The revised default (of 3 sets of quotes "" '' and ``) seems to be causing more problems in colorization than before. So the default will go back to being the single double-quote.

    • Add support for Alias names for the colorization schemes. This helps to remember what each of the schemes are used for.  These Aliases can optionally be used to replace hard-coded scheme numbers in the AUTO files.

    • Correct the (DataInsert),  (DataDelete) and (DataBackspace) KB functions as well as the CHANGE logic for handling CHANGE DataShift mode changes. A revision to avoid spaces within quoted strings was just not up to handling lines with multiple individual quoted strings.

    • Alter the display of the INS/OVR value in the status bar to better hi-light when the setting differs from the user's default as specified in Options => Keyboard. As well, (DataInsert) mode will be indicated by the DIN designation. i.e. the StatusBar may now display INS, OVR or DIN.

    • Review the various KB Primitives related to INS/OVR mode. The following changes have been made. While there are numerous changes, most users will be unaffected by them.

      • The following function names have been deprecated; they will still function normally but should eventually be replaced by their new names. These functions are normally only used by multi-step KB macros.
      • (SetInsert)    - Replace with (SetINS)
      • (ResetInsert)  - Replace with (SetOVR)
      • Add (SetDIN)   - a new function to switch to DataInsert mode. Note the new designation of DIN (DataINsert) will be displayed in the StatusBar.

    • The 3 functions (SetXXX) will save the current insert mode and immediately switch to the requested mode (INS, OVR or DIN). The saved mode doesn't actually need to be used. i.e. The (SetXXX) functions may be     used as a simple "Please switch to XXX mode".

    • The (RestoreInsert) function is unchanged and will still perform a restore of the saved insert mode created by the (SetXXX) functions.

    • (Insert) is also unchanged and will continue to toggle between INS and OVR mode. (Insert) will also continue to reset DIN mode.

    • (DataInsert) has been modified to better operate as a toggle. If in INS or OVR mode, (DataInsert) will save the current mode and switch to DIN mode. If already in DIN mode, it will revert to the previously saved mode when DIN mode was entered.

    • (ClearInsert) will revert the insert mode to the mode specified in Options => Keyboard for initial startup mode.

    • When the (PA1) KB primitive (cancel screen input) was implemented, we created a small Oops! It turns out it should have been called PA2. So PA1 is now deprecated (but will still work). The proper name for the function is now (PA2)

    • Correct DIFF error which did not allow specification of a Tab # operand if the tab was a 'special' tab (e.g. CLIP). Also correct missing color hilights by DIFF on Inserted and Deleted lines.

    • Correct line command handling to do with clearing the completed line commands. Some were being 'left behind'.

    • When the FM Line Command EXEC was introduced, it introduced some confusion with the equally named EXCLUDE primary command. (Both could be abbreviated to EX) So EXEC processing has been merged with the W line command (which opened a file using its default application.  The W line command, if it includes an optional operand, will now process the selected file using that operand as the command.

   i.e. W         against TEST.BAS will open TEST.BAS in its default App. W NOTEPAD against TEST.BAS will open TEST.BAS in the NOTEPAD App.

    • Additional corrections to colorization scan logic to better handle comments on lines which also have quoted strings.

    • Improve the DIFF command removal of comments feature to match the improved comment handling in colorization support.

    • Corrections to program startup to handle running from a portable install of SPFLite. Some previous changes had inadvertently crippled the portable operation.

    • Add additional new selection criteria to those commands which support string searches. The new operands are:

     C - Locate the string ONLY within a source Comment

     Q - Locate the string ONLY within a Quoted literal

     T - Locate the string ONLY in normal text (not a Quote, not a Comment)

The operands can be combined to create custom searches. e.g Entering  C T - locate the string within a comment, or in normal text, but not within quotes.

These new operands are only supported if the Profile being used specifies a valid AUTO colorization configuration. 

Between 2.7.22344 AND 2.7.23019 (Jan 19/2023)

    • Return code 4 from Macros was removed in a previous release. This change removes support for a Return Code 4 from an XFORM macro's Write routine. This used to be used to specify that the Write was simply 'not performed'. This change is highly unlikely to impact any users.

    • Add a new KB primitive (TrackC) - Track Create - to establish a new Track point. This is mainly intended for use in KB macros that may otherwise not create a new track point.

    • Enhance the SET substitution support. Previously the substitution could only replace entire space delimited 'words' in the command line.  You may now use the normal concatenation symbol | to concatenate the SET text to the following characters. e.g. If SET ABC = DEF was defined, then =ABC|GHI would create DEFGHI.

    • Adjust Crash handling. A Loop Detect will only create a Crash Report when the option to crash is chosen. If "Continue Execution" is chosen, no report is written.  Also correct the filename message when the data is saved in a .CrashSave file.

    • Correct the handling of the English Only / Not English Only internal Character List. It was not being generated correctly.

    • RETRIEVE will now ensure the command line scroll offset is reset so that the left end of the retrieved command is in position 1.

    • Add a new FM Line Command - EXEC / EX. This command requires a single operand, the name of a normal system command, BAT file or program.  SPFLite will invoke the command and add the fully quoted filename from the selected FM line.  e.g. EX NOTEPAD would open the selected file in the NOTEPAD editor.

    • Refresh the Status Bar after a macro execution to pick up any changes that may have been created by macro processing. (BNDS, CHANGE CS/DS etc.)

    • Correct color attribute management logic in swapping Scheme numbers. It was inadvertently resetting other non-Scheme attributes.

    • Improve the DataShift mode of the CHANGE command, the (DataInsert) and (DataDelete) KB primitives to prevent spotting and altering spans of blanks that are within quoted strings. Previously the code could inadvertently alter the format of the quoted string.

    • Reinstate the checking for a new SPFLite release. It allows the choice of automatic checking every 7 or 30 days, or specifying a Manual Check. A Manual Check requires the clicking of a button on the Options => General screen to perform the check.

    • Add some tracking of the usage of various SPFLite functions (Primary Commands, Line Commands etc.) Add a new option to the CFGMaint utility to create a tracking data file (a normal CSV type file). These hopefully can be collected and reviewed to assist SPFLite Support.

    • Correct the Picture types '&' and '%' (Word and non-word) to properly use the WORD values from the current active Profile.

    • Correct errors in the colorization scan to better handle comments and quoted strings.

Between 2.6.22194 AND 2.7.22344 (Dec 10/2022)

    • Correct the SORT command.  It was not maintaining the associated STATUS of lines during the sort.  (USER, .Labels, :Tags and HANDLES)

    • Alter the TF LINE command to match the current writing style guides regarding the number of spaces recommended after a word ending in punctuation. Previously TF inserted 2 spaces, it will now only insert one.

    • Change the RESET command to be more selective about when it triggers the creation of an UNDO point. Previously, *ANY* RESET command variation would trigger this, even if the RESET did not alter any UNDO related data.

    • Correct the handling of a 'changed elsewhere' notification, which results in the file being re-loaded, so that the cursor is properly activated at the completion of the reload activity.

    • Correction to RESET handling pending LINE commands.

    • Correct the FIND result message for Hex strings in an EBCDIC file to properly display the EBCDIC HEX of the found string, NOT the ANSI HEX value.

    • Alter the PROFILE RESET FUNCTION to RESET all Profile settings to the original SPFLite Profile defaults.  Formerly it was resetting values to the current DEFAULT Profile settings, which may (and probably have) been altered since the original SPFLite startup values were established.

    • Add new support for 'Extended File Types'.  This support provides a more flexible method of assigning a particular file to a PROFILE than the current simple "use the file extension".  Full details are in the Help file under "Working with Extended File Types".  Note this addition removes the old PROFILE USING support.  Any existing USING usage will be automatically converted to EFT as part of the first execution of this release.

    • Correct the handling of PRESERVE C. Truncation following a / character should only be performed if all following characters are blank. (It wasn't)

    • Correct handling of RFIND for the 'D' - Delimiter and 'R' - Regex search strings.  The resume search location was not being set correctly.

    • Enhance the MACRO TRACE output so that the functions which return an actual data result (not just a RC) will display the actual result.  For string results, only a max of 32 characters will be displayed.

    • Alter RELOAD to remove an unneeded internal RESET ALL before the actual reload.

    • Alter the macros HALT and Set_MSG to restrict the allowable RETURN CODE values to 0 and 8 (OK and FAIL).  The formerly allowable RC of WARN (4) is no longer available and will be treated as FAIL.

    • The DROP and KEEP commands have been removed.

    • ADD new option to the Options -> Screen to allow specification of a 'scale' factor for the size of the font used for the Status Bar and Tab Titles.  The default is set to 1.0, smaller values (like 0.9) will reduce the font, larger values (like 1.2) will increase the font size.  As well, alter the Status Bar allocations to better adjust for the different Font sizes. Also, OPTIONS => STATUS will now allow the user to specify a desired width (in characters) for each box.

    • Assign some new default color values to the USER Schemes so that a new installation will at least have a variety of colors for those experimenting with colorize support.  Previously, these colors were all the same, giving the appearance that colorize was simply not working.  The colors may not be suitable, but that is easily corrected with an Options => Scheme session.

    • Correct MACRO function Get_Profile$. The "NAME" option had accidentally been crippled. This was corrected and the new field "LOCK" added. The LOCK STATUS was previously combined with the NAME data, they have now been separated.

    • Extend the BACKUP command to allow it to backup the CLIP, DIFF, SET and EFT sessions. The backups will be stored in a standard $BACKUP folder, located within the HomeData folder (normally \Users\you\Documents\

    • "Tidy up" the message text for many of the PROFILE commands and displays to be more consistent in format.

    • Correct the LINE commands M/MM, C/CC and R/RR to properly handle xNOTE lines. The lines were being copied and converted to standard NOTE lines.

    • Correct the FM SELECT line command to properly handle LNK (shortcut) files that reference filetypes marked in FM as Windows executable type.

    • Correct the LOCATE command. It was not rejecting line numbers bigger than the file size.

    • Tighten up the command parsing code in checking quoted operands.

    • Correct handling of RETRIEVE following a Command line error.

    • Update the PROF NEW xxxxx command so that when a new Profile is created, you will immediately be placed into the Profile Edit Dialog to customize the new profile as needed before actually using it for the first time.

    • Allow CLIP, DIFF, SetEdit and EFTEdit to use unique Profile entries.  If a Profile exists, these special Edit sessions will use them, otherwise the previous DEFAULT Profile will be used.  The special Profile names are (of course) CLIP, DIFF, SETEdit and EFTEdit.

    • Correct crash error if switching to HEX mode in a Multi-Edit session.

    • Add ; style comment support in SET entries, either as separate lines, or following the actual entry.

    • Alter the macros Get_Find_xxxx and Get_Loc_xxx functions to return Line/Column/Length values that are compatible with the Get_Csr-xxxx functions.

    • Correct DIFF code to properly perform deblocking of data from the clipboard when low value line control characters are present.

    • Correct command keyword lookup to properly exempt all the different types of quoted strings. (C type, T type etc.)

    • Correct error in the internal general search routine in handling certain combinations of the optional search criteria.

    • Correct cursor positioning logic to properly handle multiple requests when processing stacked Primary commands.

    • Rename the designation of new Tabs to (New) rather than (Empty) to better reflect how the tab was created. 

Between 2.6.22138 and 2.6.22194 (Jul 13/2022)

    • Correct the (RestoreInsert) primitive to re-display the new INS status in the StatusBar.

    • Corrections to the (SWAP) primitive, to fix random crashes.

    • Correct handling of the MAX operand of the ALIGN command.

    • Add new FM primary command CSV [ALIGN].  This will create a standard CSV (Comma Separated Value) file of the current FM displayed filelist.  The ALIGN operand will trigger formatting with the column widths set to the longest value.

    • Stop adding an LRDATE column to all Recent/Path FM displays.  Can't even remember a reason why this was ever done in the first place.

    • Correct handling of attribute characteristics when inserting text with (DataInsert) mode set.

    • Revise KEYMAP dialog to correct various text formatting problems and improve the Hints information.

    • Allow the (Record) KB primitive to accept a private clipboard name to receive the saved recording.  e.g.  you may now code (Record/MyCBName)

    • Introduce the (CmdPad) KB primitive.  This function will load the CMDPAD.CLIP file and insert the commands into the KB processing stream the same way a DO file is processed.  Full details on the new CMDPAD facility can be found in the HELP file under "Working with" => Command Pad.

    • Add a new startup command line option.  The option -SCRSIZE may now be used to request the SPFLite screen be opened with a specific size rather than the values from the previous termination.  You may specify -SCRSIZE FULL, or -SCRSIZE hhXww, where hh is the screen height, and ww is the screen width.    e.g.  -SCRSIZE 43x100 for 43 lines by 100 columns.

Between 2.5.22066 and 2.6.22138 (May 18/2022)

    • Changes to CREATE/REPLACE/SAVEAS commands
      • If no line-range-operands are specified, a default of ALL lines will be assumed.

      • CREATE, if it detects an existing filename, will, along with the error message, replace the command line with the fully substituted complete pathname to allow simple re-entry / retry of the command.

      • CREATE will now accept a keyword of REP/REPLACE (which effectively turns it into a REPLACE command). Useful for the circumstances of the previous point.

      • CREATE / REPLACE, if entered on a 'special' tab which has no associated PATH (like CLIP) will always pop-up an OpenFile dialog to allow for the specification of the pathname. For normal tabs, the path of the file displayed in the tab will be used if the name is not fully qualified.

    • For the primary file manipulation commands (BROWSE, EDIT, VIEW, SAVEAS, CLONE, CREATE and REPLACE), the filename operand may now use the system Environment variables (like %USERPROFILE%) and they will be replaced with the associated value.

    • Correct the handling of START LABEL processing.  It was missing a flag setting which caused inconsistent results in positioning top-of-screen at file load startup.

    • Correct the handling of -STD color operand in FIND/CHANGE searches. Basically, -STD was being ignored.

    • Correct errors in the handling of Attribute characteristics (color) lines by PASTE.  The extension of short lines was not being done correctly.

    • Alter the LOCK access to the HnDIndex file so that simultaneous instances of SPFLite starting up are not prevented from accessing the file.

    • Remove the ancient kludge of using 999999 as a repeat value for line commands or a .9999999 for primary commands when what is wanted is 'the last line'.  For primary commands use .ZL (last) and for line commands use / (here to last line) or \ (here to top line).

    • Correct handling of RESET [COMMAND].  Processing was not correctly distinguishing User issued RESET commands from internally issued RESET commands.  Also ensure the WORD, HIDE and SOURCE operands are properly exempted from ALL processing.

    • When a Macro returns with a WARN or FAIL return code, the command line will be restored to the ORIGINAL command invoking the macro, rather than the last Primary command (which may have been issued internally by the macro itself.

    • Alter the interaction between functions which set the Top-Of-Screen position and those which set the Cursor Location (which can also reposition the Top-Of-Screen) to better adapt to the actual current screen positioning.

    • Add Date and Time to the name of the CrashSave files created when an SPFLite crash occurs.

    • Alter the CFG file access routines (which use SQLite) to add double quote marks around internal table names.  When the file-type of a file contains special characters (e.g.  an @) the Profile name must be quoted in the SQL syntax.

    • Correct the restrictions on making changes in BROWSE mode.  BackSpace was being denied on the command line, just a wee bit too restrictive.

    • Allow the Profile MASK line to contain SET variables.  These will be substituted as the MASK line is being inserted.

    • Introduce a new 'Tracking' facility.  This is designed to proide a simpler way to return to a previous working location in a file after 'jumping' to a different location to review code, or copy code snippets.  See the new    "Tracking" section in the Help "Working with ..." topic.

    • Correct the Profile Edit Dialog code, it was simply failing to process the new EMACRO field.

    • Remove the QUERY command used to display the current state of various configuration and Profile settings.  All the commands that alter these settings will now accept a ?  operand to trigger a status display.  This will standardize things, as previously some commands, when entered without operands, would treat it as a display request, while others did not.

e.g.  formerly, to display State status, the command would be QUERY STATE, now it will be STATE ?

In conjunction with this, those commands which simply turn conditions ON or OFF, will now treat a command with no operands as a 'toggle' request.

e.g. HEX will now toggle the HEX ON / HEX OFF status. 

One last part of this, the QUERY KB function, which searched for and displayed which KB mapping used    a specified primitive, has been moved to the KEYMAP command, which is probably more appropriate. 

e.g.  the former "QUERY KB insert" command would now be "KEYMAP QUERY insert" (or KEY Q insert) using abbreviations.  This is probably a minimal disruption item as this feature is rarely used.

    • Enhance the SET ALIAS.cmdname support to handle substitution / insertion of the command line operands via variables.  The variable names =0 thru =9 will now be substituted with the relative operand number from the command line.  e.g. SET ALIAS.MyCmd = CHANGE =2 =1 ALL  would create a MyCmd which performs a CHANGE ALL with the operands reversed.

    • Revise the Routine for handling a missing Profile.  If the command triggering the action was initiated by a macro, then the pop-up Dialog will be suppressed.  A new Profile will automatically be created for the file-type, containing the actual running values (NOT a copy of the stored running profile).

    • Revise the format of the filename used in the CrashSave routine so that it retains the original filetype.  This will prevent multiple filetype recovery files all having the .CrashSave filetype.

    • Improve speed of a DELETE ALL request.

    • Remove support for the old enhanced line range feature.  This allowed use of line range requests like (.<=123 OR .>=567) or (.>ABC AND .<DEF).  This feature was rarely used and was created for additional flexibility before the introduction of full macro support.

    • When prompting for a full Path/Filename for a file, the dialog will be populated with whatever parts of the full path/fileame that are known.

    • Correct the NFIND search routine. It was not handling the D type literal search type.(i.e. the delimited search version)

    • Enhance the CUT command to support string search conditions (like FIND supports) to the line selection abilities.

Between 2.5.21346 and 2.5.22066 (Mar 07/2022)

    • Alter the check for embedded NULL (X'00') characters in a file so that it is performed after Unicode conversion to avoid false warnings.

    • Correct DIFF command handling of tab number operands when there are some ineligible tabs (like Clip sessions) open.

    • Correct case handling for AUTOCAPS and AUTOCASE during colorization.  They were broken by a bug fix in the previous release.

    • Correct macro function SPF_INVCHARS to honor the Invalid character choice of "N" for no replacement.

    • Correct handling of the SET PENDING.macname=Y support, which allows a macro to continue executing even when there is a "Pendling Line Command" state.

    • Correct handling of a line range with the SPLIT command.

    • Correct PROF display immediately after file load.  It was not properly removing any prior PROF display lines.

    • When warning errors are detected in an AUTO (Colorize) file, the name of the exact colorize file will be included in the message.  This will remove confusion when the file Profile invokes the USING option.

    • Improve the Status Bar display which shows the Profile in use to identify when a USING(profname) is in effect.

    • Normalize (sort, remove Dups) the list of file extensions in the Options => FM tab display to ease editing the list.

    • Alter logic for how/when commands are saved in the RETRIEVE stack.  It was not handling PFK initiated RFIND/RLOCFIND triggers of command line FIND / CHANGE commands properly.

    • Add additional validation to internal pointers in the Tab removal process.

    • Adjust LOCATE message generation to prevent multiple messages being issued for what is a single error.

    • Correct handling of an empty =WORD> string to properly reset the WORD value to its default.

    • Correct colorizing of the Status Line Mode box, it was not properly highlighting certain modes (Browse, View, etc.)

Between 2.5.21285 and 2.5.21346 (Dec 12/2021)

    • Correct the CHANGE command handling of +color operands, it was setting the color attribute bits incorrectly.

    • Add MAX to the command operand hilighting for ALIGN, it was missing.

    • ALIGN command was not setting the Modified status. Corrected.

    • Repair the handling of the Macro functions Get_Find_LPtr, Get_Find_Col and Get_Find_Len which were 'broken' by the fix in 2.5.21285 for the ZFIND and ZLOC variables.

    • Relax the validation on Tag operands to allow more than just alphanumeric characters.

    • Alter the last three valid NOTE line types (WNOTE, XNOTE and YNOTE) so that they are purely temporary.  i.e. They will NOT be saved and restored by  normal STATE processing.

    • Alter the handling of error messages generated during file load from normal message line style, to insertion as WNOTE lines at the top of the initial screen display.

    • Correct error in the screen display logic when a data line is exactly 1 byte shorter than the screen width available.

    • Correct handling of PREFIX and SUFFIX in the negative search routine.  The boundary condition testing for the prefix/suffix was not thorough enough.

    • Add a new item to Options => FM. This option will allow you to specify whether FM will use the standard MS Explorer style logical sorting, or whether you prefer the simple ANSI sorting used in older SPFLite versions.

    • Correct PRINT handling.  When not printing in color, it was using the TextHi color, which MAY not be dark depending on the user's color choices.  It will now use BLACK when not printing in color.

    • Add a color Export / Import ability to the CFGMaint utility. This will allow color 'themes' to be copied between Instances within the CFG file, or shared with other users in the forum.  e.g. there might be old 'green screen' themes, 'blue / white' themes, etc.

    • Correct cursor positioning after an EraseEOL in the command line when the command length exceeds the screen width.

    • Remove the HnDIndex.txt file (which provides enhanced HELP search ability) from the EXE load module itself, and install it as a separate file along with the main SPFLite.CHM file.

    • Improvements to colorization support:

                 NOTE: These changes may trigger error messages for some current AUTO files which may need correction manually.

      • A new type of WORD directive has been added - AUTOCASE.  This new option will cause the word to be displayed in the exact case of the text in the AUTOCASE statement.  e.g.  "AUTOCASE 5 OkCancel" would display the text OKCANCEL as OkCancel.

      • A check for duplicate WORD / AUTOCAPS / AUTOCASE words will now be performed.

      • The QUOTED directive may now optionally specify the delimiters to be used to identify quoted strings.  If no optional parameters are entered it will operate as previously with single, double and back quotes as the delimiters. Delimiters are entered as pairs (leading and trailing) which do not need to be the same character.

e.g. The current QUOTED 5 statement is treated as QUOTED 5 "" '' ``

An example with different delimiters might be QUOTED 5 <> if the  < and > were the quoted string delimiters.

Links to the Full Change History

    • Current SPFLite2 release - here
    • Previous SPFLite release - here

Created with the Personal Edition of HelpNDoc: Transform Your Help Documentation Process with a Help Authoring Tool