Note: Previous change history for versions prior to Release 2 are available as a link at the bottom of this page.


Between 2.5.21149 and 2.5.21174 (Jun 23/2021)


                              

    • Correct handling of the Alias forms of REPLACE (REP and REPL).  They were not being treated properly as REPLACE.


    • Further revisions and enhancements to the HELP command.  The full search mode is now much more flexible.  Please review the Help command section.


    • Correct test for an existing file in the CREATE logic.  It was not checking unqualified file names properly.


    • Correct RFIND/RCHANGE handling, they were not recognizing the presence of a previous literal string if it was a null string.


    • Replace the FM sort logic with a standard Windows Explorer style ordering. This ordering treats embedded numerical strings as logical numbers regardless of the lengths of the string.  E.G examine the following list to see the effect.


   2string

   3string

   20string

   st2ring

   st3ring

   st20ring

   string2

   string3

   string20


    • Alter the ACTION SAVE processing so that the count process is ignored if the file is in un-modified status.  Once a modification occurs, the ACTION count will continue and eventually the SAVE will be done.  Of course the SAVE will clear the modified state, and the process starts over.



Between 2.4.21112 and 2.5.21149 (May 29/2021)


                              

    • Major internal revision to the way Primary commands are parsed, and the various search/change criteria are managed.  Previously, many of the Primary commands, which did not actually use the search / change criteria, would however still cause these criteria to be reset.  This caused subsequent attempts to perform RFIND / RCHANGE commands to fail with "No previous Find / Change criteria".  This should now work as expected.


    • Correct handling of the CUT NEW option to prevent false prompts when closing a CLIP session for a named clipboard.


    • Alter handling of the START FIRST/LAST option so that these will override the screen positioning done by normal STATE repositioning.  If the STATE location is preferred then START PRIOR should be used.


    • Correct handling of the FM Find-in-Files search exemption list.  If the entry was marked with the (W) option to indicate the file should be normally opened by the associated Windows application, the file exemption search would fail.


    • Correct handling of the UNDO checkpoint files.  Certain commands (like CREATE or RENAME) can cause the active Profile to change.  If there was a difference in the SETUNDO value between the old and new profiles, the UNDO file table could be corupted.  These commands should heve performed re-allocation of the files, and weren't doing so.  This has been corrected.


    • Correct handling of the page margin values in PRINT SETUP.  They were not being saved and restored correctly and were always treated as 0 (zero).


    • Revise HELP command processing to provide a more thorough and consistent search for Help Topics.  HELP will now handle multiple search terms to assist in locating suitable topics.


    • Alter the File Manager status bar to display a message with the line count and position of the current display.  Format is: Line x:y of z  e.g. Line 4:28 of 64  Along with this, the LOCATE command will now accept a simle numeric operand as a request to position to that line.


    • Correct error in handling the Profile WORD setting.  The edit of the line was not properly displaying the line's contents as it was typed.


    • Add a new KB primitive (Refresh) which may be used in File Manager to force a refresh of the display contents.  This may be needed at times to pick up changes (deletes etc.) made by external means. 


    • Correct error in the Edit line move command (M/MM).  Any labels in the selected source line range were dropped instead of being moved along with the data.


    • Add a new option to the KEYMAP dialog.  There is a new Button, which can be used to reset a specific Key (and modifiers) to the default value that SPFLite would have used on a new installation.  Simply place the cursor in the text box for a specific key combination, and press the new button. 


    • Correct messages issued following a FIND for a Delimited style literal.  The message was displaying the raw FIND operand rather then the found string. Also correct the determination of when to display the found string in Hex (When it contains non-printable characters.) 


    • Correct support for Command Chaining.  It has been 'broken' for a long time, but never reported.



Between 2.4.21101 and 2.4.21104 (Apr 14/2021)


                              

    • Correct a nasty bug in the Crash trace logic, which would slowly fill the trace table, eventually triggering a crash.


    • Correction to the State load process.  The Top-of-screen line was not always being properly re-established.


    • Correction CFGMaint tool to handle spaces in the FMLayout string.

                              



Between 2.3.21053 and 2.4.21101 (Apr 11/2021)


                              

    • Significant re-write of the File Manager support.  Please review the Help file section "Working with - File Manager" for full details.


    • Rename the Clone FM Line command to Klone (abbrev. K) to free up the C line command to make it available for its normal C/CC usage.  (See next item)


    • Allow the primary CUT command to be used in File Manager.  When used within File Manager, the C/CC line commands may be used to select which items are to be copied to the clipboard.  The data cut to the clipboard will be the full pathname of the file enclosed in double quotes.  (NOT the contents of the file.) All appropriate CUT operands may be used, APPEND, NEW, RAW, and named clipboards, but not line ranges, X/NX or U/NU.


    • Alter processing of FLIST entries to support both unquoted and quoted path/filenames.


    • Alter the RECALL command to allow an * to be specified as the FLIST name. This will be treated as a request to use the contents of the ClipBoard as the FLIST contents.


    • Allow the Primary RUN command to be used in a CLIP Edit session.  RUN now supports an initial operand of a file extension (.xxx) to provide the filetype for run. If not provided for CLIP, a .BAT will be assumed.  The new operand can also be used to override the extension when RUN is issued in a normal Edit session.


    • Correct macro function SET_CSR. It was not setting the optional high-light when requested.


    • Correct program command line parsing so that UNC format filenames are properly handled.


    • Prevent duplicate entries from being created in the list of file-types which are to use the DEFAULT Profile.


    • Correct the procedure used to move the CFG file to a different location. The HomeFolder and HomeData entries in the new CFG file were not being correctly updated on the initial run using the new location. 


    • Revise startup process of handling command line FileName/FilePath operands to avoid 'collisions' with saved File Manager paths and masks.


    • Enhance the program Crash handler.  The pop-up has been revised to be more readable, and a new option made available which will request an attempt to SAVE all active edit tab data before completing termination. The data is saved in a new file with a suffix of .CrashSave.


    • Add an additional option to the Pop-up Dialog which appears when a new file-type is encountered, and no current file Profile has been established. If the file is actually a non-text file-type, the new option will skip the Open, Add the file-type to the list of non-editable file-types, and add the (W) operand which indicates that, if clicked on, the file is to be opened in the default Windows application for that file-type.


    • Correct an error in HELP command which caused many topic searches to fail and open the Help file at the Introduction.  While fixing the code, the command has been enhanced a bit to be more context sensitive between File Manager tabs and Edit tabs.  New operands of CMD/CMDS and LINE/LINES may be specified to open help directly in the relevant Command summary page (Primary commands or Line Commands). At this time the name of the Macros help file was altered to remove embedded spaces, as in some circumstances this can cause difficulties. The new name is "SPFLiteMacros.CHM".  Same rename for the PDF version of the Help.


    • File Manager can now hi-lite the active Quick Launch Bar selection if desired.  The background color for the selected item can be specified in Options => Screen by the BG2 value for FM Quick Launch Bar.


    • The KEYMAP LIST output will now break out the PFSHOW labels into a separate column to provide more readability.

                              


Between 2.3.21016 and 2.3.21053 (Feb 22/2021)


                              

    • Correct logic of the Backup Retention handler.  It was failing to  delete backups which were past the expiry period.


    • Altered the TitleCase routine to treat additional chacters as 'word' delimiters.  The following characters were added in addition to the space  character:  ,.:;/\=_[]{}()-|'"


    • Treat a request to Open a file, which finds the file already Open in a tab, as a non-error.  A message will still be issued and a switch made to the located tab, but no warning Beep will be made.


    • Correct loading of UTF files to properly handle embedded TAB characters.


    • Remove restriction on the BOM UTF setting so that BOM OFF can be used with ANY of the UTF variations. 


    • Correct handling of stacked commands on the command line when any of the commands involve altering any lines's Exclude status.


    • Correct the reverse search routine to properly establish the resume scan location.


    • Revise the program startup when opening in full-screen mode to prevent the display of a non-fullscreen window during the process.


    • When the pop-up to select a Profile for a previously unseen file type appears, the pull-down list of existing Profile will no longer contain the names of Profiles which are currently set to USE a different Profile.


    • If doing a KB (Paste), the line inserted will also be TAB processed if ImportTabs is set.  This will now agree with how the Primary PASTE command handles it.


    • Alter the (DataInsert) primitive to be a toggle on/off rather than just turning DataInsert mode on and using (Insert) to turn it off.  N.B.  (Insert) will stll perform the turn off as before.


    • Correct END processing.  If AUTOSAVE ON NOROMPT was set, and the file had not been modified (thus not needing a SAVE) then STATE saving was also being incorrectly skipped.


    • Alter the RELOAD processing so that if an IMACRO is specified, it will be re-invoked after the data is reloaded.


    • Correct STATE saving routine handling when immediately prior editing commands used X/NX or U/NU operands for line filtering. 


                              

Between 2.2.20255 and 2.3.21016 (Jan 16/2021)


    • Correct saving of the AutoScroll value, it was saved incorrectly so any  changes were effectively 'lost'.


    • Revise startup sequence on Initial Install so that a window is always present during the process.  Previously there were periods when no window was open  and it gave the appearance that SPFLite had terminated.  If a 2nd copy of SPFLite was started during this period the CFG file was not built properly.


    • Correct handling of the EOL parameter when setting it via the Profile Edit dialog.


    • Correct error in reading INCLUDE files during SUBMIT processing.  The improvements in recent releases for large file handling missed 1 source line only used by the INCLUDE processing.


    • Add a new utility program, CFGMaint, to the installation.  This tool allows you to Export or Import the SPFLite CFG file which contains all your preferences for the program and for all the various file Profiles.  A new section has been added to the documentation "Working with the CFGMaint utility".  Please review this for details on ts capabilities and usage.


    • Correct top of screen positioning logic when the Maintain screen position after line Cmds option is selected.


    • The SPFLite setup program will now add the Installation folder to the system's PATH statement.


    • File Manager will now resolve Shortcut entries (i.e.  .LNK files).  If a shortcut to a normal file, the file will be processed, if it points at a folder, the folder will be opened in File Manager. As the cursor moves over  the list, the real name for LNK files will appear in a Status Line Box. 


    • Add a TOPMOST attribute to Message Boxes. Hopefully this will prevent them opening beneath the main SPFLite Window.


    • Correct an internal typo in managing the Options keyword table.


    • Correct LOCATE parse error for line number zero.


    • The DIFF command has been enhanced considerably.  It will now support: 
      • Use of Left/Right bounds to restrict the range of text comparisons.
      • An Option to remove/nullify source code comments from the comparison based on the AUTO colorization file for the selected file types.
      • Embedded TABS can be ignored (treated as spaces). 
      • Compares can be requested to be case-insensitive.
      • You can exclude lines from the DIFF process. (Either X or NX lines) 
      • Strings of multiple spaces can be reduced to a single space before comparison, this allows comparison to be done properly regardless of indentation, varying comment spacing etc.
      • Format of the saved DIFF report filenames was extended with additional fields.  This will provide for better information on the DIFF LIST  selection panel, and will allow multiple DIFF reports of the same two  files to be retained.


    • Correct the FM Config panel logic to properly invoke EDIT of a Profile.  It was incorrectly following a Profile's USE value and displaying the USE'd Profile rather than the one selected from the panel.


    • Cleanup inconsistency in saving File Manager configuration parameters.


    • Prevent a loop in Find/Change logic when Profile MINLEN > 0 is in effect and  the Change would attempt to shrink a totally blank line.


    • Revise Profile storage routines to eliminate possibility of storing values in an alternate active Profile. 


    • Extend STATE processing so that STATE information is saved when a session is closed, as long as the data is not im modified status.  Ths will now also  perform STATE saving in Browe and View sessions.


    • Correct AUTO colorize scan to correct an error in handling comments which  use bracketed delimiters.  Like /* */ 


    • Add several new default keymappings to the initial Install version of the KEYMAP.  See the HELP file (Differences between SPFLite and ISPF -> Default  Key Definitions).  This change will have no effect on existing installations.


    • Correct logic error in handling the SUFFIX operand of the Negative style search commands.  (Like NFIND, NX etc.) Suffixes were not being determined properly.


    • Alter handling of the BEEP which occurs on error conditions to suppress the BEEP when issued by a command being run from within a macro.  If the macro wishes a BEEP to occur, it must exit via a HALT(FAIL [,message]



Between 2.2.20191 and 2.2.20255 (Sep 11/2020)


    • Correct STATE saving. It was incorrectly including empty Insert lines in the STATE file data.


    • Correct Clipboard read routine.  If the clipboard was empty, a loop would occur.


    • Cosmetic changes to the DIFF output display.  Added file timestamps, and other improvements to the display.


    • LOCATE will now accept an operand alias of "DIFF" to equal the "U" operand. Useful for locating the next DIFF mismatch lines.


    • Add a new option to request an attempt be made to keep the screen position as it was at the time of the Attention (Enter or PFK).  This effctively means that screen (positioning) commands issued by Line Commands outside the currently visible window will be ignored.  This not a 100% guarantee, depending on the various command combinations that are possible, but will usually prevent the screen from 'moving' away from it's last position.

 

See Options => General => "Maintain screen position after Line Cmds" 


    • Correct macro function FMGet_Folder_Class, it was simply not doing what the documentation said it was.


    • Correct handling of UTF8 files which do not have a BOM file marker.  Even though SOURCE=UTF8 was set, they were being treated an ANSI files.



Between 2.2.20151 and 2.2.20191 (Jul  9/2020)


    • Provide support for allowing an external Macro to handle all the File I/O for what would otherwise be unsupported file types.  See XFORM.


    • Optimize code which handles the Clipboard strings.  This will   improve the performance of CUT / PASTE / DIFF when large amounts of data are involved. 


    • Correct PROF EDIT dialog verification routine for the IMACRO and XFORM values.  Clean up message formatting.


    • Correct CFG database routine which was inadvertently doing a TRIM on a field during processing causing a loss of leading blanks.


    • Correct (again) handling of the MARK string.


    • Alter UNDO / REDO to report how many repeats are available in the UNDO stack. 


    • Expand INSTANCES support so that each Instance will have it's own Recent Files FLIST.  e.g.  An Instance named FRED would be using "Recent Files.Fred.FLIST".


    • Correct Options handling of the KBD variables, they were not being saved correctly since the migration to SPFLite2.


    • Alter DIFF processing to use Private Clipboards with temporary names.  This includes: 
      • Modifying the tab headers to identify the files which DIFF compared.


      • The enhanced tab headers help to identify tabs when multiple DIFF reports are open at the same time.


      • DIFF reports will be kept in the \SPFLite\CLIP\ folder for a couple of days for reference.


      • Alter FM OPEN display to display the new DIFF format tab headers rather than calling them all (Clip).


      • Add the USER line flag to all non-equal matches.  This will allow a LOCATE U to quickly move to the next difference section of the report.


      • Add a new DIFF operand - LIST.  A DIFF LIST command will display available reports in the CLIP folder to allow for easier retrieval for viewing. 


    • Revise the File Watch routines to better cope with the slower access times of NAS drives. Remove unneeded delays in shutting down a FileWatch. 


    • When a modified file has been detected by FileWatch, and reload is selected, perform the reload using XFORM, if XFORM performed the original load.


    • Performance improvements to some of the CFG file support routines to improve speed, particularly during the first execution of SPFLite.


    • Add option to the Pop-Up for a missing file type Profile to simply CANCEL out of the file Open.


    • Allow RELOAD in a BROWSE session.


    • Allow the File Manager FF command to be used in the Open Files list.


    • Allow SAVEAS for an XFORM loaded file to use the XFORM WRITE support.


    • Correct parsing error in NUMTYPE.


    • Correct the routine which provides the "Default Folder" for many functions. It was not correctly picking up the current FM folder. 


    • When a new Profile is created dynamically at file OPEN time, SPFLite will now automatically set the SOURCE and EOL values in the new profile based on the characteristics of the first file loaded.


    • The Profile setting primary commands (AUTOBKUP, CAPS, COLS, EOL, etc.) will now, in the confirmation message, indicate whether the new value was saved or not, based on the Profile's LOCK status.


    • Major reorg of the Macros documentation.  The details for all the various macro functions will now appear as items in the left-hand menu, making it easier to quickly 'get to' the desired item, rather than scroll, scroll,   scroll.



Between 2.1.20072 and 2.2.20151 (Jun 1/2020)



    • Correct handling of string storage in the CFG file.  Strings were not being  converted to UTF8 before saving, meaning any text with characters > CHR$(127) were not being saved properly.


    • Correct insertion of the PROF lines into the text when triggered by a PROF  load request of a different Profile.  If the COLS ON/OFF setting was changed by the new Profile an invalid line pointer could be created resulting in corrupted screen displays or an outright crash.


    • Add a new operand to CUT - NEW - which will prevent saving a permanent CLIP file if one of the same name already exists.  If one does exist, a prompt will appear asking permission to overwrite it.


    • The addition of the Profile BOM operand in 2.1.20072 defaulted the setting for this new variable to ON, even when the SOURCE was not UTF8.  This causes an unnecessary error pop-up when editing non-UTF8 Profiles.  Additional logic was added to bypass this annoying message.


    • Extend the Macro Get_Gbl_xxx_Count functions to allow the specification of a sub-table number.  Formerly, only the count for ALL tables was available. 


    • Correct handling of lines with the MM CC and RR line commands to properly handle embedded special lines like TABS, BNDS etc.  Previously these lines could end up without an internal attribute line, triggering crashes.


    • Correct screen positioning when multiple positioning commands are issued in one stacked command sequence.  e.g.  TOP; L 100  The 1st command never actually gets physically displayed and causes the position calculation for the subsequent command to be wrong.


    • Remove the CASE command as a File Manager primary command.  The option was not well known, and had limited usefulness. As well, the code was faulty and simply not worth correcting. 


    • Correct line command handling when the specified count operand caused excluded lines to be part of the copy operation.  The number of lines handled was being incorrectly calculated.


    • Correct PROFILE handling of TABS and MARK.  The Version 2 conversion inadvertently saved the values within quote marks.  This version will 'clean up' that error.


    • Prevent block mode line commands in File Manager from incorrectly using a numeric operand.  


    • Increase size of the File Manager MSG from 64 to 128 characters.  This will aid macros which wish to set longer messages.


    • Correct error handling FM line command entry if a space is the first KB entry in the field.


    • Correct error in handling the prompt when a VIEW session is ended, and the contents have been modified.


    • Revise the routine to determine the valid display characters. Previous code 'missed' some invalid characters.


    • Add a new command DIFF to compare text files and report the differences with marked up and colorized text to indicate insertions, deletions etc.


    • Revise the File Write routine to improve writing speed. This will be most noticeable when writing to a Network Drive.


    • Introduce preliminary Beta support to allow an external macro to perform the loading and saving of files.  Note: this support is for Advanced users as it requires the creation of macros to do the actual 'work'.

     

 At this point the documentation is incomplete as we are still Working through" the details of how all this will work.  Any questions and comments  are welcome and should be done via the SPFLite Forums.

     

This support will provide for two different usage scenarios. 

                                                                     

First: it will provide a means to access file types that SPFLite can not  normally handle.  e.g.  Databases, binary files etc.


Second: it would permit the data from structured type files to be reformatted for easier viewing and browsing.  Or displaying data in Dump format.


The new facility is called Transform and introduces a new Profile option - XFORM.  There is a new "Working with" topic in the Help file discussing this support.



Between 2.1.20019 and 2.1.20072 (Mar 15/2020)



    • Correct ACTION processing to suppress doing the SAVE when the session is a BROWSE or VIEW session.


    • Add additional validation for some of the critical Profile variables.


    • Upgrade the version of thinBasic shipped with SPFLite from 1.9.6 to 1.10.7. No changes to SPFLite itself were required to upgrade this release. 


    • A new Profile option has been added - BOM - to specify whether the BOM (Byte Order Marker) used with UTF8 files should be written when saving the file.


    • Extend PowerType keyboard support to handle the PEN colour keys.


    • Correct X line command to properly position cursor when the range to be excluded will be collapsed into a subsequent excluded line set.



Between 2.0.19350 and 2.1.20019 (Jan 19/2020)



    • Correct CHANGE command using 'D' type search literals.  The CHANGE was not using the correct string length of the located string.


    • Change the sequence of program initialization to resolve the sporadic errors pointing at the PCRE_REGEX_COMPILE routine.


    • Alter Version 2 packaging to completely separate its install from the old V11 and prior releases.


    • Replace the SPFLite Debug Console with a new version.  This version can now be Cleared or Closed via a new CLS command without inadvertently closing the main SPFLite window.



Between 2.0.19344 and 2.0.19350 (Dec 16/2019)



    • Correct error in setting up Keyboard Mapping on a completely new install. The default configuration was not properly stored in the SPFLite.CFG file.



Between 2.0.19339 and 2.0.19344 (Dec 10/2019)



    • Update SQLite interface to support configuration filepaths which contain  international characters.


    • Revise the procedure for moving the configuration file / folders to a new location.  There was a minor chicken-and-the-egg situation in the old procedure.  No change to the external process is required.



Between 11.0.19196 and 2.0.19339 (Dec 05/2019)



    • To reflect the significant changes internally in this release, the name has been revised from SPFLite to SPFLite2.   


    • Since the executable is now called SPFLite2.EXE it allows both the new release and the old to co-exist at the same time.  Installation of this release will NOT alter or change any of the configuration data files of your    old release.


    • Total revision of the way your Options and Preferences are saved.  If you are a 'normal everyday' user, you will not notice any changes to SPFLite appearance or operation.  All your current settings will migrate automatically. 


There is a Release 2 Migration document available from the Start Menu.  It contains more details on migration considerations.


    • For advanced users, SPFLite2 introduces the ability to customize the handling of Options storage, and allows for creating alternate environments for SPFLite where different setting combinations can be maintained.  e.g.  different Keyboard layouts, different color schemes, different screen sizes and or fonts.  As well, the location of the various SFLite sub-folders (FILELIST, CLIP, MACROS etc.  can be moved to a location of your choice.


Read the "Managing SPFLite Instances and Customization" in the Help file for full details on using this new support.


    • Enhance the Crash report to include a trace of the last 25 interactions before the problem ocurred.


    • Correct error in handling of the RIGHT MAX command. 


    • Correct crash in EXIT processing caused by accessing tab related data after the tabs had been closed.


    • Correct macro functions Reset_Gbl_Num and Reset_Gbl_Str when clearing sub-tables.  The reset was not clearing all the entries. 


    • Correct creation of STATE data during CREATE/REPLACE when only a starting line range operand is coded.


    • Prevent KEYMAP LIST from displaying keys which are not even mappable.


    • Correct LEFT/RIGHT MAX scrolling problems.


    • Add a new operand to STATE to allow creation / update of STATE information without having to SAVE the file.  Entering STATE SAVE will perform this regardless of the current setting of STATE (ON, OFF etc.)




Changes Prior to Release 2


    • Changes prior to Version   7 - here
    • Changes prior to Version   8 - here
    • Changes prior to Version 10 - here
    • Changes prior to Release 2  - here



Created with the Personal Edition of HelpNDoc: Full-featured Kindle eBooks generator