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 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