SPFLite Changelog

What's new in SPFLite 3.0.24069

Mar 10, 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'.

New in SPFLite 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.

New in SPFLite 3.0.23313 (Nov 9, 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:
  • INST DEFAULT -F MyNewList.TXT KEEP
  • would add the files in the specified file to the current session.
  • The following would reopen the current Edit tabs in a new INSTANCE
  • INST MYNEWINST -F * END
  • 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 UsersYouDocumentsSPFLiteMACROS 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.
  • e.g.
  • Enter the command "MACLIB MyMacs" sets the profile value to MyMacs.
  • Enter SET to reach (SetEdit) mode and create a line
  • MACLIB.MyMacs=C:MyStuffMyMacros|C:UsersMeDocumentsSPFLiteMACROS
  • 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.

New in SPFLite 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.

New in SPFLite 3.0.23253 (Sep 10, 2023)

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

New in SPFLite 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.

New in SPFLite 3.0.23088 (Mar 30, 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

New in SPFLite 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.
  • 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.
  • 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.
  • 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.
  • 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)

New in SPFLite 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 UsersyouDocuments
  • "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. 

New in SPFLite 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 [COLMAX]. This will create a standard CSV (Comma Separated Value) file of the current FM displayed filelist. The COLMAX 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.

New in SPFLite 2.6.22138 (May 19, 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.

New in SPFLite 2.5.22066 (Mar 7, 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.)

New in SPFLite 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.

New in SPFLite 2.5.21285 (Oct 12, 2021)

  • Correct handling of the Custom Colors option of the color selection tool, it was not properly saving the custom colors in the CFG file. As well, clarify the instructions in the Help file for how to save the colors.
  • Correct the display of Scheme 14 in the Options => Schemes dialog. It was not being displayed in the correct colors or font.
  • Add refresh of the new BG2 display in the Options => Screen/Scheme tabs when a new color is selected. This refresh was missing from the new BG2 display support.
  • Correct handling of colorize AUTOCAPS, the previous release had accidentally crippled it.
  • Correct the routine which tracks the length of the current maximum length line, it was not properly examining all data lines. An incorrect maximum length value can affect other SPFLite functions which depend on it. e.g SORT
  • Adjust spacing of the KEYMAP dialog elements. No functional changes were made.
  • Correct removal of the Invert attribute (used by the FIND command). It was not properly handling the length of the reset.
  • Alter the New Release procedure to ensure Compiler Debugging support is not included in the production version as it can visibly reduce performance.
  • If STATE LOAD detects a line count mismatch, but there is no other STATE data other then the previous top-of-screen position, it will still set the position if possible. (Assuming the Profile has START PRIOR set)
  • Correct the RUN command. It was not sending the whole file for processing if the display was not sitting at the top-of-file line.
  • Revised search routine for handling colorize keyword search.
  • Repair the LOCATE FIND and LOCATE CHANGE commands. They were 'broken' a few versions ago by changes to the handling of FIND hilighting.
  • Repair .ZFIND and .ZLOC support, another area 'broken' by other changes and upgrades.
  • Repair the handling of the CAPS:Auto setting. Another casualty of prior changes to improve the loading time of large files.
  • Repair the checking of record lengths when RECFM = F is specified. Same cause as the previous item.
  • Add a warning message if the file being loaded contains any embedded NULL (X'00') characters. NULLS can cause other application programs to truncate lines prematurely depending on how carefully their input handling was written.
  • Corrections to the saved top-of-screen position in the STATE file. It was not being properly set during END processing, and was also not adjusting for any Special Lines (PROF, TABS etc.) currently being displayed.
  • Prevent duplicate entries from being created in the 'Non-Text Files' list.
  • Add checking when an edit is cancelled due to a missing Profile, so that an attempt to switch to the now canceled tab is not made.
  • Add 3 new macro functions:
  • Get_LeftScrn_Col retrieves the leftmost visible screen column
  • Get_RightScrn_Col retrieves the rightmost visible screen column
  • Get_BottomScrn_LPtr retrieves the LPtr of the last displayed data line on the screen.

New in SPFLite 2.5.21238 (Aug 27, 2021)

  • Correct SAVEAS command. It was not always checking if the new filename was an existing file before proceeding
  • Correct error in performing case-conformant text changes. A line of debugging code had been accidentally left in, messing up the logic
  • Enhance HELP to better support the addition of the Macros Help data into the main Help file
  • Create a new SET option. If an entry SET PENDING.xxx = Y is created, it will allow a MACRO named xxx to be processed even when there are pending Line commands outstanding. Normally macros are not allowed to run with outstanding Line commands
  • Correct error in command validation. A previous logic change was made that ended up preventing RESET, CANCEL and UNDO from being allowed to run if there were pending Line commands. This has been corrected
  • Change macro function SPF_SHELL so that requests with SYNCH specified are issued with the CMD option /C to ensure the CMD window is closed when the command finishes and return is made to the macro
  • Correct handling of PFK issued commands and how they interact with a Pending Line command state
  • Revise STATE handling internals to relax the stringent re-loading rules. If you use STATE, all your existing STATE files remain perfectly usable, no action on your part is required
  • HOWEVER -- Once you have moved to this release, STATE files created by this new version will NOT be usable if you revert to an earlier version
  • Prevent File Manager line command LINES from generating STATE loading error messages since it will be replacing the STATE information anyway
  • Correct error is setting the cursor position with a left-mouse-click. Depending on the column, it could falsely indicate that a text area was being selected
  • Improve message display on line 2 of the screen. The display will now be sensitive to whether it is an Error message, or simply an informational message. If you desire, you may now select 2 background colors for the Messages / Error setting on the Options => Screen dialog. The BG1 value will be used for informationsl messages, and the BG2 value for error messages. This enables you to make error messages more highly visible
  • Correct logic flow in an initial SPFLite installation to prevent a crash caused by an incorrect sequence of module calls
  • Correct RELOAD logic. 2.5.21186 changes to RELOAD incorrectly triggered a reset of the Retrieve stack

New in SPFLite 2.5.21186 (Jul 5, 2021)

  • Correct the new option to open Help files in Full Screen instead of windowed. One condition was overlooked and not honoring the setting.
  • Alter the Title Case logic so that words like (isn't, don't, I've etc) don't end up as (Isn'T, Don'T, I'Ve etc.).
  • Adjust the File Manager LOCATE command to use the new Windows Explorer collating sequence. It was still using the old sequence, which basically prevents it from working properly.
  • Correct the Get_Find_Len macro function. It was returning the length of the command line search operand rather than the length of the actual found string, which can occur with Picture and Regex searches.
  • Replace the RETRIEVE/RETF logic with a re-write. The previous version was not working reliably and would sometimes fail to save new commands to the retrieve stack.
  • Optimize the File Manager directory read process to remove duplicate filename checking when processing only a single file path. For very large folders, the un-needed processing was causing severe slowdowns.
  • Correct handling of File Profiles when performing SAVEAS, CREATE and REPLACE commands to ensure the file being written is using it's correct Profile. Previously they were written using the loaded file's Profile. This could trigger some formatting errors and STATE hashing errors when certain Profile variables were different between the two Profiles. Such as PRESERVE, MINLEN, AUTOxx and RECFM.
  • Correct serious error in SAVEAS. It was not saving the entire file if the current top-of-screen line was not the first line.

New in SPFLite 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.

New in SPFLite 2.5.21149 (May 30, 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

New in SPFLite 2.4.21112 (Apr 22, 2021)

  • Revise the Crash handler so that Loop style crashes also have the option to save the data in modified tabs before allowing termination to proceed.
  • Code cleanup to corect the handling of internal trace entries when a crash or loop condition is detected.
  • Correct the CFGMaint tool to handle FM Layout parameters in the same manner as the main SPFLite program.
  • Allow CLS, TOP and BOTTOM to be requested in a SPF_CMD macro call.
  • Correct STATE creation from an MEdit session when exiting via END.

New in SPFLite 2.4.21104 (Apr 15, 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.

New in SPFLite 2.4.21101 (Apr 12, 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.

New in SPFLite 2.3.21053 (Feb 24, 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.

New in SPFLite 2.3.21026 (Jan 27, 2021)

  • Correct painting of FM screen when Banding is turned on.
  • Correct BACKUP's handling of the table of $Backup folder locations.
  • Add a new validation of CHANGE operands to prevent a Loop/Cancel condition when MINLEN > 0 and the CHANGE is modifying Blanks to Nulls. This type of CHANGE will now be rejected.
  • Increase the font size for the left-hand Contents column for the CHM Help files.

New in SPFLite 2.3.21016 (Jan 18, 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
  • Searck 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]

New in SPFLite 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.

New in SPFLite 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 SPFLiteCLIP 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

New in SPFLite 2.2.20151 (May 31, 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

New in SPFLite 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.

New in SPFLite 2.1.20019 (Jan 20, 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.
  • Revise code which supports clearing the Line Command area when the first character it typed in that area The old code would very infrequently miss this clearing action.

New in SPFLite 11.0.19235 (Aug 25, 2019)

  • Correct (again) the macro functions Get_Clr and Set_Clr.
  • Remove the -WINE command line option, SPFLite will now automatically detect whether it is running under Linux WINE.
  • Correct timing of an internal Attention reset. Error was causing the next character typed after completing a macro in File Manager to be treated as if it was followed by an immediate Enter.
  • Correct error in FM Nest routine which was not exiting correctly. This was triggering an overflow error in the debug trace table, causing a crash.
  • Correct error in PROF USE command which prevented a change of USING value from being properly processed.
  • Tweak the new (CmdHome) primitive to better handle the Edit Line Number field.

New in SPFLite 11.0.19227 (Aug 15, 2019)

  • Correct CRASH ERROR on a DELETE command when high-lighted FIND results are visible immediately before the delete activities.
  • Correct Primary WDIR command which somehow was messed up in V11.
  • Correct CUT command to stop nulling RFIND parameters.
  • Add missing Equate for the FMGet_Mode function return values. The name FM_EQU_FLISTData will be added for a display of specific FLIST contents.
  • Ensure SOURCE and COLLATE options of Profile do not allow null or blank entries. If missing ANSI will be assumed.
  • Add new KB primitive (CmdHome) which will position the cursor based on the type of line the cursor is currently on. If on the Primary command line, it basically does a (Home) function, if on a data line, it does a (LineNo) function.
  • Correct macro functions for Color hilight line support. They were basically just not working since Version 10 was released.
  • Correct handling of the SKIP option when the File Manager FF command encounters a file with a previously unseen file type.

New in SPFLite 11.0.19196 (Jul 16, 2019)

  • Bug fixes:
  • Correct Set_Csr macro function to re-institute the 3rd parameter as optional, instead of mandatory.
  • Revise the IMacro facility. The timing of when the macro was invoked was a bit too early in the processing and some macro functions were processing data before the edit was fully initialized.
  • Correct UNDO temporary file handling. a) not all files were being removed when an Edit ended, and b) multi-instances of SPFLite were still performing 'abandoned' UNDO file cleanup even though other instances were running.
  • Remove Quick Renum option. It was simply causing more internal problems with other routines than it's usefulness justified.
  • Enhancements / New Features:
  • Add cleanup routine for the new temporary clipboard files (those starting with an underscore _ . Using temporary style names helps prevent the CLIP folder becoming full of old 'forgotten' CLIP data.
  • Improve mouse keyboard mapping to allow it to function in the FM Line command area. Previously any click in the Line Cmd area simply positioned the cursor, now you can insert keystrokes in the area.

New in SPFLite 11.0.19192 (Jul 12, 2019)

  • Correct macro function Is_Line_Cmd and Is_Primary_Cmd in File Manager.
  • Correct Set_Line(0,xxx). V11 restricted Set_Line completely in FM, when Set_Line(0,xxx) should still be allowed.
  • HEX ON failed totally due to incompatibility with the new PA1 key support.
  • Correct handling of the FM Line Command area. The recent change to left align new entries in the field was mis-handling overtype mode keying.

New in SPFLite 11.0.19187 (Jul 8, 2019)

  • Bug fixes:
  • Correct error in SORT when using alternate COLLATE sequence. The keys for descending sorts were not being built correctly.
  • Correct error in the SAVE of MEdit files when there are zero lines left in the file at SAVE time.
  • Correct error in the COPY line command. If the A destination line was placed on an X'd indicator line, it was not adjusted properly.
  • Correct FF (Find in File) command handling to prevent accidental enqueue of the filename when it should not be done.
  • Correct File Manager LINE command to prevent loss of current STATE data when it exists. LINE was re-creating STATE from scratch as if no previous version existed.
  • Add additional error message to File Manager ADD command when issued against an unsupported entry type.
  • Improve SPFLite restart into Screen Maximized mode so that a subsequent Restore Screen will actually return to the last non maximized location.
  • Correct line number handling when using Quick Renum mode.
  • Correct the establishment of default (Enter) and (NewLine) keys on an initial SPFLite install. The Enter/Ctrl-Enter pair was not established correctly.
  • Enhancement / New Features:
  • Alter File Manager MAKELIST behaviour when creating new entries to pick up, where possible, the File Pattern mask and move it to the new FLIST entries.
  • Add a new File Profile option - IMACRO - to specify a macro to be run immediately after loading the file. An initial macro can also be provided on the command line by prefixing the macro name with a @ character. See the Help for details.
  • Add a new command line option, -DO to specify a DO macro to be run after normal initialization is complete. The DO macro will be executed in the File Manager tab.
  • Add additional totals to the File Manager total line. The total line will now include totals for Lines (when available), and for the Total Size of the files.
  • Add a W line command to File Manager to perform a "Windows Shell Open" on a file. i.e. Open it in its default application.
  • Added support for the and / line command modifiers to the FM Line Command parsing support.
  • Add a new SORT option to File Manager. The 'Name' item now has a Name* setting in addition to the previous Name+ and Name- values. The Name* is taken as a request to display the list items in their native unsorted sequence. i.e. in the order they were retrieved, either from the disk directory, or from their sequence in an FLIST file.
  • Open up Macro support to allow use in the File Manager tab. There are a whole new set of Macro functions to provide the needed interfaces to the File Manager data. Macros in File Manager can, of course, use all the additional module support provided by thinBasic. The FILE module of thinBasic alone provides over 40+ file maintenance functions. Review the SPFLite Macros documentation for full details.
  • Add a new general macro function - SPF_Post_Do to allow specifying a standard DO macro string to be executed immediately following macro execution. This can be used, for example, to perform actions not otherwise allowed in a macro, like Opening a new edit session in another tab.
  • Replace the handling of temporary labels in Macros. The functions of Request_Label$ and Release_Label$ are being replaced with Get_Handle$ and Drop_Handle$ in macros. (The old names will still be supported as aliases of the new versions for some time). The assigned labels will now be persistent and not 'disappear' at the end of macro execution. This will enable companion macros to mark and pass identified lines between the individual macro executions.
  • Alter entering commands into a File Manager line field, to start commands in position one when starting a new command. This now operates the same way line commands are handled in an Edit tab.
  • Added a new KB primitive (PA1) to simulate what the PA1 key did on the old 3270 terminals - allow you to 'throw away' your typing since the last screen refresh. Typically you would do this after discovering you had been typing away, but NOT where you thought the cursor was and you'd overtyped a bunch of good data. As long as you hit PA1 before any of the normal Attention keys (Enter, PFn, PgUp, PgDn, etc.) the screen will be refreshed back to it's last display. Repeated PA1 keys with no other intervening keys will 'toggle' the display between the two versions.
  • Revise the File Manager screen history support. It will now function more like a Browser history. There are two new KB primitives which are available, (FMBack) and (FMFwd) which request moving back and forth in the FM screen history. This will alleviate having to re-enter criteria repeatedly when moving between the various FM screen display modes.

New in SPFLite 10.2.10129 (May 13, 2019)

  • Correction to RCHANGE when using Mapping Strings. The mapping string was getting corrupted on second and subsequent RCHANGE operations.
  • Change WDIR primary command in File Manager to use the current FM File Path, which was not being done previously. The FM File Path is the most likely place a user would want a WDIR window to be positioned, so this change is a user convenience.
  • Add a COND parameter to the SAVE command, to match the existing option in SAVEALL COND. The new support means you can use SAVE COND in Multi-Edit sessions; when that is done, only modified files are saved, rather than saving all files. For multi-edit sessions involving a large number of files, SAVE COND can save considerable time if only a few of the files are modified. On single-edit sessions, SAVE COND will only save the file if it has been modified since the last SAVE (or, when last loaded).
  • Correction to file cleanup routine that removes temporary files (such as JOB files, STATE files, etc.) when they were older than their retention days. An error caused all such files to be removed if ANY file in its folder was older than the documented retention. (Oops, sorry about that :-)
  • When a file with STATE information is opened for any reason (Edit, Browse, or View) the State file is "touched" to indicate that it is still needed and being used, by causing its file timestamp to be updated to the current date and time. That means as long as you are actively using a file in SPFLite that has State information, the State won't get deleted for being too old – even if the data file itself is not being changed.
  • Removed a seldom-used option to take a folder name as the Profile name for files which do not have a file extension. Its primary purpose was to assist users having IBM Mainframe data with non-standard dataset names, but this option did not fully serve the purpose it was intended for.
  • Correct an error in the Data Shift (<< and >>) line commands which was corrupting the color attributes of the line.
  • Alter the FM MAKELIST command to use the current File Pattern Mask when possible as the mask field for newly created FLIST entries. Previously it always inserted a single * as the mask.
  • Completely revise the design of the Backup and Restore feature, released in V10.2.19107. After reviewing how this process was handled, Robert and I were sure we could do better. So the following changes have been made:
  • Instead of a hybrid format for the Backup file that combined the data file and any associated STATE information, the Data and State files are backed up separately, and are always unmodified copies of the original files (the files are said to be "binary equal").
  • The backup of the Data file will now maintain the file extension of the original file. This means that, should you need to, these files can be opened using its normal application programs using the names you see in the Backup folder.
  • Restore now has two operating modes. A standard Restore ("RS") will restore (and overwrite, if necessary) the data file back to its original folder with its original name. A Recover with Timestamp ("RST") will copy the backup file to the original folder without replacing the original file. The file thus copied back will have its special file name (with the backup date and time as part of its name) just as you see it in the $BACKUP directory. This allows file comparisons between the current file and the backup version, and in cases when you are not sure whether the current file or the backed up one is the one you want to keep, and you want to work with both of them.
  • Added a Backup Retention control feature, to assist in managing your backup files. This allows you to control how long backup files are kept, by specifying a retention period (in days), or the number of versions of backup you wish to keep, or by a combination of these two methods. By carefully choosing the backup retention factors, you can avoid accumulating large numbers of backup files that have outgrown their usefulness, without having SPFLite delete them too soon.
  • When you use File Manager to view a $BACKUP folder, it will add a file mask string to hide STATE file backups from the display. Seeing two line items for a single backup could be a distraction if you were not especially interested in the State information. You can erase the file mask to stop hiding these State files if you wish.
  • Deletion of a data file will now delete the associated State file. Previously, the State information was not deleted until it was 180 days old, even though its data file no longer existed. When viewing a $BACKUP folder with File Manager, deleting either the Data file or the State file will remove both of them together. Thus, it is not necessary to "un-hide" the State files, or to delete them separately, to be sure both are deleted at the same time.
  • If your backup retention criteria causes removal of all active backups from a $BACKUP folder, the $BACKUP folder itself will be removed, since it would no longer be needed. If you subsequently perform a new BACKUP command after the $BACKUP folder was deleted, a new $BACKUP will be created again.
  • If you have already begun to use Backup and Restore under the original release, your existing Backups will be migrated to the new format automatically. The only thing you need to do is eventually delete the old-format backups (files having a file extension of .BACKUP) once you are satisfied with the new version's support.

New in SPFLite 10.2.19107 (Apr 19, 2019)

  • Changes between 10.2.19103 and 10.2.19107:
  • Correct error in FM which no longer displayed the Line count. Triggered by the changes to STATE files in the 10.2.19103 release.
  • The 10.2.19103 version change to the search for other instances of running SPFLite caused some problems. To alleviate this a new Command line option of -TITLE xxxxx was created to allow a substitute string for the window title to replace the SPFLite version number.
  • Correct error in screen re-sizing routines which could trigger crashes under some circumstances.
  • Correct Windows API calls for Clipboard support to properly handle the returned data handles. This also corrects some crash incidents.

New in SPFLite 10.2.19103 (Apr 19, 2019)

  • Changes between 10.1.9014 and 10.2.19103:
  • Allow the Touch line command in FM to alter Read-Only files.
  • Correct INI handling quirk which prevented INVCHAR from being set to a blank.
  • Add the VV line command to the File Manager line command valid list, it was missing.
  • Correct Parsing of FM line commands with a repeat number to prevent exceeding the # of files in the current list.
  • Cleanup message box handling in the Crash intercept routine.
  • Alter the SPFLite version numbering format from using the last digit of the year to using the last two digits of the year. As the year rolls over from 2019 to 2020, we would have ended up with a possibility of out of sequence versions. e.g. This version updates from 10.1.9014 to 10.2.19103.
  • Correct error in STATE SAVE which did not correctly process color hilite values. This error could under some circumstances trigger a crash when reloading the file. Add an identifying header line to the beginning of the STATE file.
  • Add support to the Options and Profile dialogs so that the ESC key can be used to cancel out of the dialog. This can be useful if the dialog ends up positioned with the Cancel/Done buttons off the screen.
  • Add a new Primary command - ALIGN - to assist in performing column alignment operations when editing data files. See details in the Help file.
  • Change FM Line Command RENAME to be case sensitive. Formerly you could not 'correct' the desired case of a filename because the command thought the old/new names were identical.
  • Correct the KB (Record) function. It was not always removing the trailing (Record) string from the recorded entries.
  • Alter the AUTOBKUP support to use the new BACKUP and RESTORE support. This support will now backup the file itself along with any associated STATE file. The old support effectively dropped all STATE information. The new BACKUP and RESTORE support will allow for multiple Date/Time stamped Backups to exist. The former BKP support only allowed for one level of backup.
  • This new support backs up the data file and it's STATE information together. The backups are stored in a separate $BACKUP folder created in the original data file's folder. The FM RESTORE command will restore the files to their original location. File date and time stamps are maintained throughout. More info in the Help document.
  • With the introduction of this new Backup support, the old VSAVE support has been withdrawn.
  • Alter the definition of the C/CC line commands so that they can be used while in Browse mode for line range selection (as for CUT).
  • Correct error in parsing command operand strings which also equal color selection operands.
  • Add keyboaard accelerator shortcuts to most dialog boxes so that answers to simple prompts (like Y / N) can be done via the keyboard rather than having to click the button with the mouse. The required shortcut key will be displayed with an Underline in the button text.
  • Correct adding additional spaces to the command line on Retrieve.
  • Add a new literal type, a D-Literal, which stands for a Delimited String. This allows you to specify a prefix string and a suffix string and locate strings which match this regardless of the number of characters between Prefix and Suffix.
  • e.g. A D-Literal of D"(|)" would find strings such as (A) (123.45) (= xxx =) A D-Literal of D"/*|*/)" would find comments like /* Say something here */ More information is in the Help documentation
  • Correct the Win 64 version of the "Open with SPFLite" REG file in the distribution. It had the wrong location for the location of the EXE file.
  • Change the search for running copies of SPFLite to ignore different version numbers.
  • Remove previous migration support for the color based changes between the 8.5 level versions and the version 10 and up versions.
  • Add a new Options => General item. "Warn on Open of Non-Text files?" This option, if selected, will cause SPFLite to check the extension of files being opened against the list of Non-Text files (specified in the Options => FM tab). If it matches, the user will receive a prompt to comfirm whether to proceed or not. Editing of non-text files opens an exposure to accidentally altering and damaging such files.
  • Correct error in the KB (Up) command. If vertical scrolling was not in effect, the cursor did not wrap to the bottom at top of screen. Also correct similar scrolling errors in File Manager, which was not honoring the setting in Options => KB => Scroll Up/Down with arrow keys?
  • Cleanup the Help Topic Index which had drifted out of sync with the latest versions of the Help file. This should assist the "Help xxxx" commands locate the correct page to open when Help is requested.
  • STATE changes. Usage of a STATE file will 'touch' the file. This will mark it active so that is does not get prematurely deleted for no activity in 180 days.
  • File Manager will now, when deleting a file, also delete any existing STATE file at the same time.

New in SPFLite 10.1.9014 (Jan 16, 2019)

  • Changes between 10.1.8351 and 10.1.9014:
  • Prevent a mouse marked text select area from including the Top / Bottom of Data lines.
  • Eliminate use of the Options => General => Valid Character string as the criteria for what characters can be validly displayed on the screen. SPFLite will now evaluate the current chosen font and determine which characters do not have a valid glyph. A new Invalid Character substitution is available so the user can choose what to display instead for the invalid characters. This substitution character may be a blank. As well, entering an "N" or "n" will request no translation be done.
  • The initial execution of this SPFLite version will create the new Invalid string definition based on your prior Valid string definition; you may want to 'tweak' this definition, but it is not necessary.
  • The now unused Options => General => Valid Character string has been re-purposed and will now be used to specify the ACTUAL invalid characters that are to be considered as P'.' characters. The specification uses the same simple syntax as the WORD line command. This avoids having to type avery long string of characters.
  • Correct searches using Hex literals (e.g. X'FF'). The logic previously was performing CASE processing causing incorrect results if the Hex value happened to also be an alphabetic character.
  • Tweak the logic which hi-lites found strings so that if the command ITSELF uses color hi-liting operands (+colorname etc.), then the search will not also add the invert color option to mark the found item. Previously this double color setting obscured the actual user's requested color setting.
  • Add the number of lines pasted to the PASTE command successful message.
  • Correct the FOLD support which had gone AWOL during the Version 10 upgrades.
  • Correct the re-display of non-data lines (TABS, WORD etc.) when overtyped.

New in SPFLite 8.5.8144 (May 26, 2018)

  • Correct RFIND handling when prior commands like EXCLUDE have altered the last line position.
  • Correct missing internal flag setting. EXCLUDE/SHOW requests were not always triggering UNDO Save processing.
  • Correct internal logic error. With large files (> 10,000 lines) and use of Colour Highlighting, internal data structures could be corrupted.

New in SPFLite 8.5.8104 (Apr 16, 2018)

  • Add macro support for sub-tables within the Global storage support. This enables multiple 'tables' to exist within the global storage area. See the full description in the Macros Help document.
  • Correct initialization of 2 File Manager related INI values. One was missing and one had a wrong value. Error could cause crashes during File Manager column sorting.
  • Correct handling of :ZALL and :ZALL selection criteria. i.e. make them work as intended.
  • Treat a SAVEAS command in a CLIP session as if it were a CREATE command rather than triggering an error message saying to use CREATE.
  • Correct failure to add newly created files to the Recent Files list.
  • Correct error in AUTOFAV file masking support.
  • Add -NOLOOP command line option to request SPFLite internal loop detection logic be turned off. This can assist with I/O operations to slower external file systems over network connections.

New in SPFLite 8.5.7231 (Aug 22, 2017)

  • Correct error in validating E-type literals. The macro validation was inadvertently interfering with normal operand parsing.
  • Correct CHANGE handling of M and E type literals to properly adjust for the dynamic length of the change strings.
  • Add a simple #INCLUDE ability to SUBMIT jobstreams.
  • Alter macro function SetLine() to ensure any Color hiliting for the line does not exceed the text line length.
  • Alter macro function Set_CLR_Line() to allow specifying a CLR line longer than the text line without an error message. The CLR line will be truncated to the text line length.
  • Correct the BackTab keyboard primitive. It was crashing when used in HEX mode.
  • Add the back quote ` (x'60') to the Colorize scan for quoted strings along with the normal ' and ".
  • Correct handling of RFIND values so they are not 'lost' during other primary commands which also use the common internal search routines.

New in SPFLite 8.5.7156 (Jun 6, 2017)

  • Correct error in colorize keyword lookup, it was ignoring the last WORD table entry.
  • Yet another re-write of the BOUNDS command and the associated BNDS line data entry. Basically now, the BNDS line data, when Enter is pressed, must be valid; it is no longer possible to just overtype a BNDS line and leave old < and > characters around and expect SPFLite to just 'know' to ignore them.
  • Correct several errors in MEdit support. Line command (D)etach wasn't working, first file wasn't being marked modified correctly, a CANCEL command was crashing SPFLite and some other errors in marking lines and files modified.
  • Correct handling of certain substitution characters. Some were failing to be resolved properly.
  • Revise the Get_Line$() macro function to allow retrieval of all line types, even normally non-modifyable lines. These non-modifyable lines are still restricted from being 'saved back' using Set_Line$ function.
  • Create a new macro function Get_Modified_FileName() to allow requesting the modified status of a particular filename within a MEdit session. If used in a non-MEdit session, it will act just like the simple Get_Modified() function.
  • Remove limitations on the number of files an FM ALL MEDIT command could handle. Also, when more than 100 filenames are entered, it will pop-up an option to allow suppression of the File-Watch function. As the number of files increases, there is more risk of exceeding program Stack space, and less likelihood of File-Watch even being needed.

New in SPFLite 8.5.7027 (Jan 28, 2017)

  • Correct handling of Left arrow in Command line when command line has shifted left due to length.
  • Correct handling of a RESET command issued within a macro.
  • Add support for number of new commands to handle text numbering similar to that provided by the ISPF NUMBER command. command. Check the documentation for details on these new commands.
  • Enhance Macro function Set_Line() to allow setting a string into the Command line. (Experimental)
  • Correct error in Request_Label$() macro function. (Loop when no existing normal label exists)
  • Alter the dialog building on systems where the default font size has been altered so that dialog labels are displayed in an appropriately scaled font. This will prevent the truncation of labels on systems which run in larger text font mode.
  • Revise the SPF_Parse() macro function to provide additional flexibility in specifying the macro operands. Please refer to the Macros Help file for full details.
  • Correct the operation of the Macro HALT command when issued with no operands. It was terminating the macro without allowing thinBasic to perform it's normal cleanup functions.
  • Corrected error in the (Swap) keyboard function when operating in PowerType mode.
  • Correct error in the TC Line command. Depending on the specific data content, the processing could perform an incorrect Title Case operation.
  • Correct error in handling changes to the BNDS line.
  • Correct screen drawing when HEX ON, HIDE ON and excluded lines are used together.
  • Add new option to the File Manager lists. The dates for files modified since the SPFLite session started, as well as those modified since yesterday at 1201 AM will be color hi-lighted to make them stand out in the list.
  • Add a new option to the SORT command (MARKUNIQ). This option allows you to mark unique sort lines in the file as USER lines. This will allow manipulation of unique / non-unique lines in a file in a convenient manner.

New in SPFLite 8.4.6153 (Jun 2, 2016)

  • Correct error in handling a move of a COLS line.
  • Correct building of STATE file data when filtering using Excluded lines or U/NU is active.
  • Correct handling of the Re-Open files logic when SPFLite is started using -INIT to specify an alternate INI file.
  • Improve handling of the Windows Clipboard to report when errors occur while reading / writing the clipboard.
  • Ensure File Manager path entries entered on the screen contain a trailing \ for consistency.
  • Correct cursor positioning when left/right autoscrolling occurs while in HEX mode.

New in SPFLite 8.4.6075 (Mar 15, 2016)

  • Revise the handling of searches which have trailing blanks in the search string and how they are treated when there is a partial match at end of line. Previously, SPFLite would treat an end of line as if it had been extended with blanks. This is being changed so that this creation of 'virtual blanks' is no longer done.
  • This means that search strings must match the actual real data present in the line. e.g. a search for "ABC " will no longer match a line which simply ends in "ABC".
  • If you require the more flexible search as it used to be done, please explore using Picture Literals and use the { and } arguments, or the other alternative would be to use a Regex expression. Both of these provide powerful tools for text searching.
  • The former SPFLite method was not exact and could cause incorrect lines to be selected. e.g. What if the search for "ABC " did NOT want to be satisfied with a line ending in simple "ABC"?
  • Correct loop in (Edit), (Browse) and (View) KB primitives when the selected filename is effectively null.
  • Revise International character support and replace the global option with a new setting "Only English letters A-Z and a-z are considered alphabetic". This should provide for more consistent handling of Upper/Lower case conversions. Please see the Help file for more information.
  • Standardize the insertion point for special lines like BNDS, COLS, MARK etc. Previously some were inserted before the selected line, and some were inserted after. They will now all be inserted before the line containing the line command.
  • Upgrade the macro support to use the latest version of thinBasic. Also make the standard \SPFLite\Macros folder become the default folder for #INCLUDE directives.
  • Correct error in the line number lookup code.
  • Reinstate the change which causes the Enter key to perform a reset of a marked area automatically. This change inadvertently crippled the TT line command and was withdrawn. The replacement code no longer interferes with the TT line command.
  • Correct the new CLONE command to use the proper Profile for the cloned file rather than using DEFAULT.
  • Correct error in the RUN command which created a temp. file with two periods preceding the file extension.
  • Revise handling of line commands when an error condition is detected along with other valid commands being present. Where possible now, the valid commands will be performed before the error condition is reported.
  • Correct initialization routine. The default status of the INS/OVR keyboard flag was being cleared after being set.
  • Add Date and Time to the filename used to save Crash Reports. This will uniquely identify each one and prevent overlay of previous reports when multiple crashes occur close together.
  • Correct handling of the command line -INIT option. It was not handling INI file names other than fully qualified ones.
  • Correct error in the Keyboard Trap which was not handling "Null'd" keys properly

New in SPFLite 8.3.5337 (Dec 3, 2015)

  • Clicking on the Date to change sort order in File Manager was broken. Fixed.
  • Correct display of the 'Page n of m' Status bar message when running in PAGE ON mode.
  • Alter START FIRST in PAGE mode to position on the first real data line rather than on the Start of Data line

New in SPFLite 8.3.5295 (Oct 22, 2015)

  • Add a new FM primary command - ALL. It supports operands of: BROWSE, CLONE, EDIT, MEDIT, PRINT, TOUCH and VIEW. It acts on all normal files currently being displayed, regardless of the method used to select the files.
  • Expand the normal ALL FM line command to support VIEW. (Overlooked when BROWSE was split into BROWSE and VIEW commands).
  • Expand the handling of column sorting in File Manager. File Manager will now save the column sorting data uniquely for each type of display. e.g. Recent, Found, FilePath, Favorites etc. and switch to the saved values whenever the basic display is changed from one to another.
  • Expand the display of the current filename in the Title Bar when editing files in MEDIT mode to display the filename of the top screen line when the cursor in not located within the edit lines (e.g. on the command line)
  • Add a new facility we have called 'Block Insert Mode'. This enhances the edit capabilities when a block of text is highlighted. If Insert mode is set, and the cursor is located within the Highlighted block, then characters can be Inserted, Deleted or Backspaced over within the block and the typing duplicated for EACH LINE in the block. The Highlighted block will dynamically expand or contract to adapt to the changes. This is a 'sort of' mini PowerType mode.
  • Replace the Regular Expression engine used internally with a much more powerful, industry standard one. We have chosen to use PCRE (Perl Compatible Regular Expression) as the engine. This will provide significantly enhanced search abilities using the RegEx literal type (R"xxx").
  • Add two new CHANGE only literal types. These new functions provide some major new abilities in making text changes.
  • - E"xxxxx" which allows the invocation of a MACRO to perform the actual change of the found string. This will allow creation of complex change commands beyond the scope of normal SPFLite supported options. Refer to the Documentation for full details.
  • - M"xxxxx" which provides a powerful Mapping function to allow complex transformations of the found string. Refer to the Documentation for full details.
  • Add two new AUTO file directives INCLUDE and EXCLUDE. These allow early filtering of the data lines and the ability to choose only certain lines for complete colorization. Lines rejected by these operands will be colored in the normal SCHEME 0 default.
  • Modify the file mask support in File Manager so that the * wild card handling is more compatible with that used in Windows Explorer when followed by a .(period). A mask with *. will skip to the LAST period, not just the NEXT period. Any other character following the * will still skip to only the NEXT occurrence of that character.
  • Some instability has been detected in the internal Hash routine used by SPFLite to ensure the validity of the State files and the User keyboard definition file (SPFLite.KBD). As a result, the hash routine has had to be revised.
  • The conversion to the new hash algorithm will be automatic, both your KBD file and newly created STATE files will be written using the new algorithm. This unfortunately means these files are not backward compatible should you for any reason go back to an older version of SPFLite after using this new release.
  • If you DO back off this new release, your old KBD file has been retained for you with the name SPFLite.Pre8.3.KBD. Simply swap this back to SPFLite.KBD to regain your old definitions.
  • The new STATE files however will be rejected. Unfortunately this cannot be prevented. All the real data files are unaffected, only the STATE information would be lost.
  • Modify the validation of the previous screen position. Previous changes to accommodate multi-monitors prevented the rejection of invalid locations.
  • Modify SUBMIT so that the temporary Submit file is created with the same extension as the file being edited.
  • Correct the handling of the 'Close FM on last file close', recent changes to choosing the next tab to display when one closes had crippled this support.
  • Correct saving of the saved FM criteria during shutdown.
  • Correct handling of PROF USE when removing an existing USE profile.
  • Correct handling of MIXEDCASE in colorize AUTO files.
  • Correct Status Bar initial display of the selected text # and @ values.
  • Correct Status Bar display of file date/time for New files and SaveAs files.
  • Correct the ~X substitution variable, it was not returning the Extension with a leading period.
  • Correct handling of Inserted line cleanup. Some combinations of KB sequences were not being handled the same as real ISPF.
  • Correct handling of internal debug stack during Macro processing.
  • Correct error in colorize parsing triggered by an unclosed quoted string.
  • Correct error in parsing filenames with folder names containing periods, and filenames without extensions.
  • Correct loop when searching for blanks and a totally null text line occurs.
  • Correct UNDO processing to properly retain PROF display lines.
  • Correct UNDO processing. It was incorrectly always leaving the file in modified status.

New in SPFLite 8.2.5174 (Jun 24, 2015)

  • Correct cursor positioning performed by the Primary PASTE command.
  • Correct button label in the Choose Default INI pop-up dialog.
  • Expand the number of allowable SCHEMEs in an AUTO colorize file to 30.
  • Correct logic of ESCAPECHR handling in AUTO colorize files.
  • Correct handling of command line options, -V and -B were being ignored, and FM path requests were not always being honored.
  • The EXIT command has been extended to accept either END or CANCEL as operands, this allows a quick shutdown using CANCEL instead of END to terminate each tab. If CANCEL is used, it also accepts the DELETE / PURGE operands.
  • When editing multiple files in MEdit, the filename of the file on which the cursor is located will be shown in the Windows title bar. This will assist in knowing which file is being worked on when the =FILE> lines are not visible.
  • Correct error in the 'Portable Version' support, it was not properly switching the default INI file location to the portable drive. In addition, restructure the portable file structure to reduce clutter in the main EXE file folder.
  • Revise tab switching logic when tabs are closed to swap to the most recent active tab before the one being closed.
  • To make use on Non-US keyboards easier, aliases have been created for the / and \ line command modifiers. . will equal / and .. will equal \ For example c. will mean copy to the bottom of the file, just like c/
  • Allow an overriding Profile to be specified on the external command line startup of SPFLite. This is equivalent to specifying the Profile on an normal Primary Edit command. The .profilename operand should be entered on the command line immediately following the filename. If the filename is quoted, the .profile name should appear following the quoted filename

New in SPFLite 8.2.5165 (Jun 18, 2015)

  • Correct a serious problem in handling the Status Bar. This problem was causing SPFLite to randomly become totally non-responsive.
  • Add a new AUTO colorize word type. Colorize will now support a NUMERIC directive to specify a unique color for totally numeric 'words'.
  • Correct handling of the File Manager FF exemption list. V8.2 accidentally created a problem in storing the value properly in the INI file.
  • Correct a minor formatting error in the File Manager Quick Launch bar.
  • Prevent loss of previous FIND/CHANGE criteria caused by file write processes (SAVE, VSAVE, CREATE, etc.)
  • Correct error which prevented using an RFIND/RLOCFIND function key to perform an initial FIND / CHANGE command.
  • Correct error when a file is reloaded following a notification of modification by an external program. The edit mode (Edit, Browse, View) was not being re-established properly, all sessions were converted to Edit sessions.
  • Correct badly formed entry in the Recent FLIST when a file was saved.
  • Correct handling of marked text to prevent inadvertent text selection during mouse operations.
  • Correct screen marking routine, particularly in the Command line.
  • Correct handling of color hi-liting by CHANGE commands. Removal of color from a line's text was not always fully processed.
  • Correct CLIP command. It was not properly honoring a private clipboard name operand.
  • Correct handling of the Tab mode flag internally, caused various errors in the handling of tabs.
  • Correct saving of MARK columns.
  • Improve saving of FM NOTE data when swapping away from the FM tab.
  • Correct (CopyPaste) to work properly with FM NOTE fields.
  • Correct error in handling line label/Tag toggle commands.
  • Correct action of Bksp when in a highlighted area, it was not properly handling multi-line marked areas.
  • Correct handling of command line operands which provide starting values for the File Manager display.
  • Add a safety check in the file open routines to ensure that the filename requested is not actually a folder name.
  • Correct error in RCHANGE, it was not allowing it's use as the starting point for a full CHANGE command.
  • Correct error in building the VSAVE filename when the file being edited is still an unsaved clone file (e.g. the name is *.extn).
  • Correct 'broken' Primary BOUNDS command.
  • Correct mis-positioned COLS line. It was being inserted after the requested line rather than before.
  • Correct the COPY command which was not properly handling the inclusion of files which needed different SOURCE translate tables from the primary file.
  • Correct tab selection when a new file is opened from Windows Explorer and passed to an existing SPFLite instance.
  • Correct initialization handling of the DEFAULT.INI file, it was incorrectly being reset to defaults.
  • Correct an error in re-sizing operations that could cause a crash.

New in SPFLite 8.2.5103 (Apr 14, 2015)

  • Correct keyboard handling of the extra keys present on foreign language keyboards. An incorrect index was triggering a crash.
  • Correct handling of PROFILE USING. Altered values were being stored in the incorrect INI file (i.e. not the USE'd profile).

New in SPFLite 8.2.5085 (Mar 27, 2015)

  • Alter the field delimiter used internally for FLIST contents. Previously a comma was used, but since a comma is a legitimate character for a filename users who had such filenames found FM simply didn't work. The delimiter has been altered to a | (vertical bar). If you do not manually create FLISTS, then the change will be transparent and you need do nothing.
  • However once you migrate to this version, if you back off to a prior SPFLite version, your FLISTS will probably not work. They will need to be manually edited to change all | back to ,
  • Improve File Manager 'nesting' so that when browsing up/down folder structures, a return to a prior level will re-display the previous scroll and cursor positions.
  • Correct false warning message when loading RECFM F LRECL nnnn files. The message incorrectly warned that the file was not a multiple of the LRECL value.
  • Add a new option to File Manager to allow choosing the location within a list of Directory entries. They can be positioned at the Top (as is done currently), at the bottom, or in-line in alphabetical sequence within the filenames.
  • Correct error in routine which deletes unused Insert lines. If additional Insert lines are requested before cleanup has been performed on prior lines, it was possible for extraneous '''''' lines to remain.
  • Prevent unresolved '''''' lines from being written to a file if they exist at the time of the write operation.

New in SPFLite 8.1.5064 (Mar 6, 2015)

  • Correct error in the FM VER line command which could trigger a crash if the FLIST ends up empty and is deleted.
  • Alter list of FLIST files in FM so that only the filename (minus path) is displayed. If the cursor is over a single line, the full path will be shown in the FSPEC line in the headings.
  • Correct loss of cursor during Minimize / Restore activity, or loss / regain of focus (sometimes).
  • Correct error in COPY and PASTE commands when the insertion point is marked with a 'B' line command on the Bottom of File line.
  • Correct error in the UNDO process which can cause program crashes. If chained commands cause UNDO processing to be followed immediately by a switch to a different Tab, depending on the size of the edit datasets, and the speed of the processor, a crash can occur.
  • Add a new function - ACTION - which can optionally be used to request an automatic SAVE or VSAVE to be performed after 'n' data altering interactions.
  • Correct macro function Get_Find_LPtr(). If the status of excluded lines changed during the FIND/CHANGE command, the returned LPtr could be incorrect.
  • Correct error in the DELETE ALL xxx command. The deletes were performed correctly, but the setting of the modified flag for the file was not being set correctly depending on the state of excluded lines adjacent to the line(s) being deleted.
  • Add additional validity checking to AUTO file statements and improve the contents of the error message.
  • Rename the FM line command VERIFY to NORM (Normalize) to avoid conflict with the recently added View command. The command can be entered as N or NORM. (Or the block mode NN/NN version). As well, NORM will no longer re-write an FLIST which has not actually been altered.

New in SPFLite 8.1.5002 (Jan 3, 2015)

  • Correct AUTO colorization when using comments with start/end delimiters. (Like /* */)
  • Correct loop in macro handling of SPF_CMD items.
  • Correct PRINTER SETUP saving of a printers DUPLEX setting.
  • Correct screen size calculation error which caused width to slowly grow.
  • Relax pseudo line label syntax to allow use of .0 to indicate the *** Top of Data **** line. This will allow commands such as ADD and LINE to use the top of data line as a valid reference. e.g. "LINE N .0" would insert a blank line at the top of the file.
  • Correct command table entry for VV command (alias of REVERT). It was not flagged as being eligible for command chaining.
  • Expand AUTO color controls to support COMMENT1 thru COMMENT9 statements.
  • Remove validation of previous screen position vs the current desktop so that previous locations on multiple screen configurations are not treated as being invalid INI values.
  • CREATE and REPLACE with MM line markers were not deleting the lines following the file creation. Corrected.
  • Correct the OPEN logic to use the name of the currently running EXE file for the new session rather than assuming it is named SPFLite.EXE.
  • Alter the timing of the automatic 'Check for New Version' to later in the initialization process. It was failing to initialize completely if for some reason it could not reach the SPFLite Web Site.
  • Alter File Manager display of FLISTS so that if all files are from a simple single-path request, the list will only display the filename (without the repetitive path) for easier reading.

New in SPFLite 8.1.4311 (Nov 8, 2014)

  • Enhancements:
  • Add support for new built-in Tags :Z :ZF and :ZNF. These new tags will allow command chaining based on the lines processed by the immediately prior command.
  • :Z includes all lines examined by the prior command
  • :ZF includes all lines selected by the prior command
  • :ZNF includes all lines examined but not selected by the prior command
  • This will allow commands like
  • CHANGE ALL "ABC" "DEF"; LINE ] ALL :ZF
  • which would change all "ABC" to "DEF" and then Indent all the changed lines.
  • COPY INSERT.TXT AFTER .A; EXCLUDE all :ZF
  • to copy a file into the edit and immediately exclude all the inserted lines.
  • CHANGE ALL "AAA" "BBB" .L1 .L2 X NU; CHANGE ALL "CCC" "DDD" :Z
  • which would do the first change, with its specialized line range, and then do the 2nd change to the same set of lines, without needing to repeat the .L1 .L2 X NU operands.
  • Full details may be found in the Help file under "Working with Command Chaining".
  • Add a new EXCLUDE command to File Manager. This will enable bulk excludes of files from the list based on the same type of Mask string allowed on the Mask line for FilePath or the Mask operand of FLIST entries. This command would be useful for example when using FF (Find in Files) and there is a class of filenames which you would prefer be exempted from the FF operation.
  • Add a new Primary command - THEME - to allow quick saving and loading of the custom color settings. Often, if you want to experiment with a different set of colors, it becomes awkward since there is no simple way to revert back to what you had. Now you can save your settings and 'play' with new settings. It's also possible to share such 'themes' with other users by posting your themes on the SPFLite Forum.
  • Add a new Primary command - VIEW. This is a complementary command to the existing BROWSE which has been altered to make it impossible to accidentally modify the data. BROWSE is now a *true* browse, changes are impossible. VIEW is now the browse tool to use when you may want to modify the data, but want additional protection against accidentally saving. A companion change also added the (View) KB primitive.
  • Add support to the FF (Find in Files) command to better handle files which do not have an existing Profile to control the reading of the file's data. You may now Abort the FF command, or have the file type automatically added to the FF file exemption list and continue.
  • Expand message handling ability. When one interaction generates multiple messages, the most severe message is the one issued. When multiple messages are issued internally, this message will be prefixed with a + sign. If HELP is immediately issued, the full chain of messages will be displayed in a pop-up list box for review.
  • Error / Bug Fixes:
  • Correct handling of cursor positioning when multiple primary commands are entered separated by ; delimiters.
  • Correct handling of SPFLite.EXE command line operands specifying a starting path and mask for File Manager.
  • Correct handling of EOL hex character strings as delimiters.
  • Correct SAVEALL command which was crippled by the V7 => V8 restructuring.
  • Correct cursor positioning when mouse scrolling. The cursor remained 'locked' to the screen location rather than following the text line on which it was located.
  • Correct error in (( line command when the shift created a null length line.
  • Correct error in cursor positioning when switching back to File Manager after CANCELing out of an Edit tab.
  • Correct cursor positioning following a line command sequence C -> A to put cursor in the line number area rather than the data area.
  • Alter the RESET command to remove RETRIEVE from items reset when using the ALL operand.
  • Correct some pop-up dialogs to be properly MODAL so that they can not be ignored or dismissed without taking the needed pop-up action.
  • Add documentation to the FF Command (Find in Files) to indicate that it DOES support column range operands. It had always supported columns, however the documentation did not indicate it was supported.
  • Add missing documentation for the (CondLineNo) KB primitive.
  • The ability to use KEYMAP to remap the NumLock key has been withdrawn. This support was always tricky to implement and is being withdrawn due to problems in maintaining it. The key is now classed like Shift, Caps Lock etc. as being un-mappable.

New in SPFLite 8.0.4216 (Aug 6, 2014)

  • Add an option for printed output to have background banding in the same manner as the screen background banding. See the additional option fields located on the PRINT SETUP dialog.
  • Corrected another error in reading RECFM V files, lengths > 256 were not being handled.
  • Added a new command line option -WINE, which tells SPFLite that it is running under the Wine emulator on Linux. This triggers some minor differences in screen handling which improves operation.
  • Corrected loss of mouse wheel function after certain setup dialogs.

New in SPFLite 8.0.4181 (Jul 1, 2014)

  • Corrected checking of changes to File Manager file-path to only be done after Enter is pressed, it was doing it after each keypress.
  • Corrected error in reading RECFM V files introduced by the new code for RECFM VBI and VLI.
  • Correct handling of the Keyboard Hook routine to prevent accidental doubling of keyboard entries under some initialization combinations.
  • Alter the default master key mapping table so that the Ctrt-Alt key mapping of all keys with printable values (i.e. the letter, number and special character keys) will now be (Passthru) instead of (Null). This default will simplify the initial setup for all new users who require non-US keyboards and use of the Alt Gr key to enter national/special characters.

New in SPFLite 8.0.4172 (Jun 22, 2014)

  • Corrected screen refresh not being performed following execution of a user macro.
  • Altered handling of keyboard focus to allow better operation of pop-up dialogs when running under Wine on Linux.

New in SPFLite 8.0.4163 (Jun 14, 2014)

  • Corrected cursor not appearing in tab initially. Only occurred in certain Windows releases.
  • Corrected various error in CANCEL / END which could trigger crashes
  • (Backtab) KB primitive was simply not working properly. Corrected.
  • Corrected crash when deleting multiple individual lines, one of which is the last line, and the Reset Inset Mode on Attention option is active.

New in SPFLite 8.0.4157 (Jun 7, 2014)

  • File Manager keyboard selection of FilePath on the Quick Launch bar is not working. This has been corrected.
  • Crash on Initial Start in the Welcome Dialog for brand new installs. Corrected.
  • File Manager directory display changes should always Home the cursor. Corrected.
  • EXIT and =X do not properly exit the program. Corrected.

New in SPFLite 8.0.4155 (Jun 5, 2014)

  • A major review and revision of SPFLite internal code was completed. The review has had only small effects externally, but incorporates significant internal improvements which should improve long term reliability and performance.
  • A completely revised File Manager was completed, introducing many new features (see below).
  • File Manager:
  • A revised screen layout which has added a single line 'quick launch' line to eliminate the previous set of lines at the top for Recent Files, Open Files, etc. This line remains visible while scrolling the list to remain easy to access. Other changes to File Manager include:
  • Quick access to your list of Profiles. Browse, Edit, Delete etc. line commands are supported.
  • Enhanced FILELIST support. File lists can now contain multiple file path requests, each with their own unique file mask filters.
  • Line commands can now be entered in block mode, similar to line commands in the Editor. e.g. selecting a series of files for MEDIT processing can now be done with MM/MM line commands (or M3).
  • Exclude (X) is now supported to allow 'hiding' of lines in a long file display.
  • Forget (F) is supported for FILELIST displays to request a long term exclusion of lines. This support extends to FILELISTs which include generic path requests. Forget requests are maintained across SPFLite sessions and may be undone or 'remembered' with a RESET F command.
  • A NOTE display column can be added to FILELIST displays where you can enter reminders etc. for a particular file. These are also 'remembered' across SPFLite sessions.
  • FF (Find in File) searches can now be interrupted not only between files, but during an individual file search. Useful when the file list accidentally contains some huge non-text files.
  • A new DEFAULT command which allows you to switch the default line command for a mouse click (normally SELECT) to any other valid line command.
  • Editor Changes:
  • Several improvements to Editor functions
  • File specific STATE setting. You can now not only Specify STATE ON or OFF for all files controlled by a Profile, but can establish a default ON/OFF status for most files and exempt individual files from this default. e.g. You could have STATE ON for all .TXT files and exempt SPECIAL.TXT from this default since you know it is updated often outside SPFLite.
  • Simplification of Line Command aliases. Many block mode line commands had optional aliases to match the ISPF naming conventions. e.g. we had Uppercase commands of UC / UCC / UCUC. In this release we have eliminated 'doubling the command name' as an option. So Uppercase is now simply UC / UCC where the last character is repeated for the block mode. So line commands like LCLC, MDMD, MNMN, OROR, PLPL etc. are all gone.
  • Colorize support has been improved. When the basic color theme of the AUTO file differs widely from the color scheme used for a normal edit screen (e.g. different background colors), some areas of the colorized screen could be painted in unreadable colors. New settings in the .AUTO file allow specifying the colors of these non-text-data areas.
  • Dynamic colorization has been added. Previously when editing a line, colorization was only performed the next time the line was fully displayed. This has been changed so that colorization occurs 'as you type'.
  • An AUTOCAPS mode is available when editing programming languages where it is desirable to have language keywords uppercased for readability. This support is dependent on the existing AUTO colorize support being activated. Keywords defined in the .AUTO control file will be updated to be in Uppercase. This action is in two stages. The first Uppercases the keywords only on the screen display. This is to prevent Uppercasing during typing; if typing the word 'forget', you wouldn't be happy with 'FORget' just because FOR was a language keyword as you typed the 'r'. When the file is saved, the uppercasing is finalized and written to the file.
  • A new Options -> General selection is available to activate Keyword hi-lighting on the command line. This will trigger the hi-lighting of known command name and operand keywords on the command line. This is helpful where you might accidentally enter what you thought was a simple text literal and 'forgot' that it was a supported keyword operand for the command. It can make deciphering an error message a bit simpler.
  • The support for recognizing changes to the BNDS line has been re-written again to react more logically to changes made to the line. By matching the old and new BNDS line, and recognizing specific changes, it will make altering this data simpler and more reliable.
  • The PFKSHOW help lines now have an improved sort routine which should organize the display to handle key names in a more 'natural' manner. e.g. F2 will sort before F10.

New in SPFLite 7.1.4050 (Feb 20, 2014)

  • Improve loading performance for large files.
  • Add two new RECFM varieties VBI and VLI to support alternate format variable RDW (Record Descriptor Words). See 'Working with non-Windows Files' for more details.
  • Improve performance of the translation routines used between ANSI and external SOURCE values (e.g. EBCDIC ANSI.

New in SPFLite 7.1.4016 (Jan 18, 2014)

  • Correct a few places where the move of the FILELIST files to a new folder was not being handled correctly.
  • Correct handling of Escaped (\) values in picture literals.
  • A Profile reset was not setting the START option correctly to FIRST. Corrected.
  • Correct BOTTOM command in FM, it simply wasn't working.
  • The (Swap) primitive has been enhanced to properly copy color highlighting attributes during the swap.
  • Correct File Manager Delete Line Command. It was not properly handling the 'Delete to recycle Bin' option.
  • Correct processing of PROFILE USING commands. INI values for the involved profiles were not being set correctly.
  • Correct Get_Curr_Line$ macro function. It was removing leading/trailing blanks when it shouldn't have.
  • Correct error in cursor positioning after an (EraseEOL) function, the cursor set request was being issued with an incorrect internal priority level.
  • Correct saving of FM status on exit when displaying a single FILELIST.

New in SPFLite 7.1.4001 (Jan 7, 2014)

  • Primary-command changes:
  • New ULINE, REVERT, NULINE and NREVERT commands to support the new User Lines support. See also the U/UU and V/VV line commands, described below.
  • Extended Find/Change color operands.
  • New COLLATE command to provide temporary character set usage for Hex and SORT.
  • New SUBCMD and XSUBMIT commands provide additional capabilities for SUBMIT.
  • Repeatable DELETE. Like RFIND/RCHANGE you can now 'step' through the file performing selective deletes.
  • New { and } Picture codes to support finding strings which begin or end lines and optionally have spaces between the literal and the line start/end.
  • New TOP option for scrollable commands (commands that can trigger repositioning of the screen).
  • FIND command alias FF supports using CC blocks to mark the search line range.
  • Enhanced SOURCE command and user-defined translation tables.
  • RegEx literals are now supported for JOIN.
  • New Z labels (.ZCSR, .ZFIND and .ZLOC) available.
  • New ADD command allows macros a simple means to insert text lines.
  • New WDIR command, similar to the DIR primary command, to open a Windows Explorer dialog for the “containing directory” of the current edit file.
  • New FOLD command to force the Edit display into all uppercase, without actually changing the data itself.
  • Enhanced CLIP command to now accept an optional private clipboard name.
  • IMPORTTABS renamed to XTABS.
  • Extended SORT fields: The SORT command will now support 5 sort keys (like ISPF) and the limit of 64 characters on the size of each key has been removed.
  • New SCROLL operand for PAGE.
  • Line-command changes:
  • New U/UU and V/VV commands to support the new User line functions.
  • New TX/TXX and TU/TUU commands. These line commands will ‘toggle’ the excluded state (TX/TXX) or the User Line state (TU/TUU) of lines within their range.
  • New xNOTE commands: Similar to NOTE commands, xNOTE commands provide a way to enter “extended” types of NOTE lines into a file.
  • K line command modifier is now the & modifier.
  • Macro changes:
  • New Request_Label$ and Release_Label$ functions.
  • Implicit Block-Mode line macros.
  • SET symbol substitution added to SPF_CMD.
  • File Manager changes:
  • New WDIR line command: Like the WDIR (“Windows Directory”) primary command.
  • When the Find in Files command FF is issued, a copy of the FF command, including the string being searched for, will appear on the Found Files FILELIST display.
  • Key Mapping and Function changes:
  • Enumerate functions now work on highlighted text.
  • Implicit highlighting of single characters.
  • Enhanced (Swap) function. The (Swap) function is now enabled in Power Typing mode and additionally, a “swap” operation can be performed when only one area is highlighted. When this is done, the “swap” is actually performed like a “text move”.
  • Parameterized cursor movement functions: Existing functions (Left), (Right), (Up) and (Down), and a new function (Column) now take a numeric ‘n’ parameter.
  • Lenient (Edit) and (Browse) processing. Previously, it was necessary for the user to be very precise about how the text was highlighted. Now, any leading or trailing spaces and delimiters are trimmed before processing.
  • New (CopyLcmd), (CopyAdd), (CopyPateAdd), (DataDeleteMark), (DataBackSpace), and (FMCompact) primitives have been added.
  • New (CharSet) function replaces the previous (ANSI) function.
  • Other changes:
  • Relocation of .AUTO and .FILELIST files: These are now located in new folders AUTO and FILELIST under the main SPFLite directory.
  • Adjustable sequence (Line Number) area size. The size of this area can be adjusted now from 5 to 8 digits.
  • Vertical Insert Cursor is now available as an option.
  • Added support for International characters for P'.' Picture Literals.
  • Use of ADS discontinued. Due to Microsoft's stated direction of moving away from ADS usage, SPFLite has converted STATE saving to normal data files.
  • Ability to automatically mark files of a specified name pattern to as Favorites.
  • SPFLite will now remember the screen-sizing state (Max/Normal) it was in when closed and restore that state the next time it is started.
  • Enhanced AUTO file color codes. Several new options for coding the color values have been provided.
  • Highlighting of non-default BOUNDS in the Status Bar.
  • Many minor bug fixes:
  • Enhance EOL=AUTO(NL) processing to handle another weird line ending created by Hercules.
  • Correct setting of Profile name for files with no extension when the Option "Use DIR name as Profile when no extension" is selected.
  • Correct handling of the RESET command when issued within a macro.
  • Improve line range operand validation and make messages consistent.
  • Correct KB primitive (Paste) in File Manager when used with a private clipboard name. (The name was being ignored)
  • Clarify the File Manager Help data for the Open Files display.
  • Keyboard recording could not be started/stopped from the File Manager display. This is now supported.
  • Internal command table error effectively disabled the PL line command. This has been corrected.
  • Restriction of MINLEN to a maximum of 32 characters has been removed.
  • Correct error in the default for RESET. RED was inadvertently being cleared when not requested.
  • Corrected error in Keyboard primitive (Swap) which prevented 'bailing out' of an incomplete swap operation.
  • Correct error in handling alternating background colors when AUTO colorization is active.
  • Correct separate errors in handling RECFM F and RECFM V files.
  • Correct End of List message for the File Manager Open Files list to include the count of files.
  • Correct error in the SPLIT command when multiple split characters occur on the same line.
  • Correct error in line command parsing which caused the entry of specific 0 (zero) numeric operands to be ignored. e.g. a TS0 line command.
  • Correct setting of Profile name when doing a SAVEAS from a newly created file. i.e. from an (Empty) new file tab.
  • When HILITE AUTO OFF was in effect, some aspects of colorization specified by an AUTO file were still being utilized. Corrected to properly ignore the entire AUTO file.
  • Correction to macro function SPF_CMD. The passed command line was not having SET symbol substitution performed. This will now be done.
  • Correct colorize parsing. Handling of escaped characters within a quoted string was skipping 1 too many characters.
  • Expanded the KB primitives to work in non-PowerType mode.
  • DIR command will now accept a file-pattern operand to filter the contents of the selected directory.
  • Corrected long standing random bug in FIND search routine.
  • Correct setting of screen sizes and default File Manager sort criteria during the initial startup run.
  • Correct screen resizing when the cursor is on a line which no longer exists following the resize. (Screen has shrunk)
  • Correct error in validation of the Scroll > field. Error was causing unneeded overhead by repeatedly updating INI file status when not needed.
  • Correct handling FB EBCDIC file with EOL=NONE. LRECL was being incorrectly handled.
  • Correct the Data Shift line commands < and >. They were not correctly performing the shift as per normal ISPF handling.

New in SPFLite 7.0.3217 (Aug 6, 2013)

  • Correct saving of the Options -> Screen -> Insert cursor size value.
  • Correct sample ONLY.MACRO code. (misplaced closing parentheses).
  • Create a new macro function HALT which combines the functions of Set_Msg and the STOP command. This will simplify error handling in macros since only a single statement is needed to issue a message and terminate the macro.
  • The following macro functions:
  • SPF_CMD, SPF_SHELL, SPF_EXEC, SPF_DEBUG, SET_MSG and HALT have been enhanced to support multiple string operands and will concatenate them together with a single separating blank to simplify the creation of long command or message operands.
  • SPF_EXEC and SPF_SHELL have had two optional leading parameters created to allow finer control of how the command is to be run. You may now choose whether to run the command asynchronously or not; and to choose whether the command is to run in a Hidden or Normal window.
  • Add macro function Get_Uniq_ID to return a unique ID number for the current edit session. Unique in that it will never be duplicated within a single SPFLite instance.
  • Add macro function Get_FullPath(fname) to return a fully qualified path if the passed filename is only a simple name.
  • Create the Set_TopScrn_LPtr macro function to accompany the Get_TopScrn_LPtr function. This will allow macros to easily set a desired line to be the new top-of-screen line when the macro exits. Or to re-establish the position of the screen as of macro start by saving the value from the Get_TopScrn_Lptr function at the beginning of the macro.
  • Further correction to handling generic FILELISTs in File Manager.
  • Correct CHANGE handling of replacement null strings.
  • Correct handling of line labels. Moving a line label by simply re-entering it on another line was not being done properly.
  • Create new keyboard primitives:
  • (NewLineNS) and (TxtNewLineNS). These are identical to the basic (NewLine) and (TxtNewLine) except that they will NOT cause the screen to scroll when the bottom screen line is reached; they will move the cursor up to the Command line. (NS = No Scroll)
  • (DeleteMark) This will delete any single line marked text. If no such text is selected, it will delete nothing.
  • Improve editing of a newly entered BNDS line by matching the new line to the old to detect what has changed.
  • Correct error in building the line control field for special lines which have also been changed (e.g. flagged with ==CHG> )
  • Correct default setting of the macro LoopTest flag (it was reversed)
  • Correct error in key validation during KEYMAP processing.
  • Eliminate (Clip) and (Set-Edit) sessions from being placed in the Open files list when exiting. Prevents annoying error messages on the next startup.
  • Correct handling of K (kept) line commands. The retained command was not always being re-inserted on the correct line.
  • Revise validation of changes to the Scroll Amount field. When the previous contents are not completely overtyped, it was not always detecting which characters were actually changed, causing validation errors.
  • Correct handling of pending block more line macros to allow scrolling commands to be processed.
  • Correct handling of inserted lines. Entering a single character did not always trigger detection of the line being 'changed' for removal of the '''''' indicators.

New in SPFLite 7.0.3185 (Jul 5, 2013)

  • Correct crash when Cross-Hair cursors are used and the file is in HEX mode.
  • Correct the B(rowse) line command in File Manager when used to move to a lower directory folder.
  • Correct error in handling FILELIST entries with generic file paths.
  • If Re-Open files at start is active, only allow the files to re-open with the first instance of SPFLite. When multiple instances are allowed, the 2nd and subsequent instances will simply open to the File Manager tab.

New in SPFLite 7.0.3182 (Jul 2, 2013)

  • Add aliases to Help command for MACRO and BASIC to open the macro Help files.
  • Correct LINE command internal flags so that line range operands are accepted properly.
  • Remove some old DEBUG code in File Manager that shouldn't have stayed in the release version.
  • Alter the macro functions which return Line command status data to always return status as of the macro start, rather than 'real time' as macro actions proceed.

New in SPFLite 7.0.3117 (Jul 1, 2013)

  • Bug and Error Corrections:
  • MAKELIST command will no longer overwrite an existing FILELIST if it already exists.
  • Multiple file re-opens at startup did not always paint the initial screen using the correct colors if different tabs were using different colorize schemes.
  • Correct error in KeyMap which 'loses' PFK SHOW definitions when a key mapping is updated.
  • Correct error in initial program setup when choosing the initial defaults for Enter and Newline. It was incorrectly setting lowercase W to (NewLine).
  • Correct crash on a (Tab) primitive when the cursor is below the last screen line.
  • Correct handling of BOUNDS setting on several commands. Add BOUNDS support to the TS/TB commands.
  • Correct intermittent errors in Profile saving where changes to Profile variables were not properly saved.
  • MEDIT processing has received some internal improvements to enable it to handle larger numbers of files at one time.
  • Further performance improvements have been made to the handling of large data files.
  • Correct handling of Re-Open files at startup to properly handle filenames which contain commas.

New in SPFLite 6.2.3061 (Mar 12, 2013)

  • Fixed loss of mousewheel control if a CANCEL out of the Options dialog is performed rather than a DONE exit.
  • Corrected handling of SET command with no operands. It was not opening an Edit of all SET variables as it should.
  • Corrected loss of colorize support if running with STATE OFF

New in SPFLite 6.2.3060 (Mar 1, 2013)

  • PRIMARY COMMANDS:
  • The keywords PREFIX and SUFFIX may now also be abbreviated as PFX and SFX.
  • A new Profile option, MINLEN, defines the minimum length for lines in a file. When MINLEN is greater than zero, whenever the file is edited and lines are inserted, modified or copied from the clipboard or from another file, the minimum line length will be enforced, by blank-padding any lines that are shorter than MINLEN characters. One reason to use a MINLEN value greater than zero is to avoid the existence of zero-length lines, which can create certain issues with FIND and CHANGE pictures.
  • The SWAP primary command, which accepts the operands PREV, NEXT and PRIOR, now additionally accepts FIRST, LAST, HOME and LIST. SWAP FIRST will select the leftmost file tab. SWAP LAST will select the rightmost file tab. SWAP HOME will select the File Manager tab. SWAP LIST will switch to File Manager and display the Open FILELIST from which you can choose a tab.
  • The OPTIONS primary command now accepts an optional keyword to select a specific tab within the Options Dialog. The keyword can be used to select the General, File Manager, Submit, Screen, Mouse or Keyboard tab. If this new operand is omitted, the General tab is displayed as was done previously.
  • A change Picture of P'!' copies the entire found-string as-is. Now, you can also copy the entire found-string and convert the value to upper or lower case. A change Picture of P'!>' copies a found-string of any length and converts it to upper case. A change Picture of P'!', and P'«' for P'!

New in SPFLite 6.1.3024 (Jan 26, 2013)

  • Remove a debug statement which prevented the SUBMIT console from being closed.
  • Correct a problem in handling the UNDO file names.
  • Temporarily suspend the Loop Detection logic in SPFLite for review. There have been a lot of mysterious problems related to this. It will be re-activated in a future release when these problems are resolved.

New in SPFLite 6.1.3011 (Jan 14, 2013)

  • Correct a long standing bug (since V5.0) which could cause unpredictable crashes and/or loops when doing a SAVE (or AUTOSAVE during END processing).
  • This only occurred for long running SPFLite sessions which had performed numerous file edits/saves.
  • Line command parsing was not correctly recognizing associated primary commands if the command line was built using =SET variables. This is now supported.

New in SPFLite 6.1.2325 (Nov 21, 2012)

  • Bug fixes:
  • Correct saving of File Manager Scroll Amount setting.
  • Correct screen width handling with certain fonts. Calculation error could cause width to 'creep' larger with every SPFLite startup.

New in SPFLite 6.0.2184 (Jul 3, 2012)

  • Correct error in Line command processing which could result in false errors
  • of "Pending command" following an otherwise perfectly successful line command.
  • Correct another error in Line command processing which could trigger a
  • variety of false validation errors.

New in SPFLite 6.0.2096 (Apr 13, 2012)

  • FILTER functionality has been enhanced to allow filters to perform actions beyond simply modifying text lines and returning them. Filters now can perform customized search functions and can, like the FIND command, cause scrolling to a desired line and cursor positioning and hi-lighting of text strings.
  • Filters can now also act as summarization tools. e.g. performing some calculation based on the input lines, and insertion elsewhere of new text lines containing the calculation results. Think like a SUM function that inserts a Total line.
  • Colorize will now properly handle multiple /* */ comment strings on a single line.
  • Correct error in SORT. It was incorrectly only selecting input lines located from the top displayed screen line onward instead of selecting from ALL lines.
  • If the SOURCE format is changed while active Edit data exists, a warning will be issued to remind users to SAVE the current data immediately to prevent problems reloading in the future.
  • Alter the default key mapping for the keypad, for New users only, to mimic the normal, printed, non-Numlock mode key labels. i.e. Home, End, PgUp, PgDn etc.
  • Correct the AUTOSAVE default for any Initial Profile settings to AUTOSAVE ON PROMPT.
  • When a Normal or Shifted version of a key in KEYMAP is nulled (""), it will be set to (Passthru) rather than (Null) as this is the normal desired setting. Also, (Passthru) can no longer be accidentally combined with any other key settings.
  • Correct error in (Tab) primitive when display is in Hex mode.
  • Correct handling of columns during a CHANGE command.
  • Correct error in TF line command if a right boundary is specified which is smaller than the line indent value. Also correct handling when a long 'word' is actually bigger than the left/right bounds allow.
  • Correct error in TAG command syntax checking.
  • Correct action of LOCATE command when a pending line command state exists.
  • If START NEW is set and the .START line is in excluded state at file load time, the .START line will be removed from excluded status.
  • Correct cursor positioning in File Manager to properly remain on the last line item selected.
  • Correct PROFILE NEW xxxx command. It was not properly using the specified Profile name when saving the new profile. Also correct handling of PROF USING, the USING value was incorrectly being propagated to the 'used' Profile.

New in SPFLite 6.0.2080 (Mar 22, 2012)

  • Major new Functions / Facilities:
  • You can now perform Multi-Edit sessions: the ability to edit multiple files, at the same time, in the same edit tab. You begin a Multi-Edit session by selecting multiple files from a File Manager list, using the M line command on each desired file and then pressing Enter after all files have been selected. When you SAVE or END a multi-edit session, every file in the session will be saved at the same time. See "Working with Multi-Edit Sessions" in the Help file for more information.
  • File Manager now supports named collections of files, and refers to these collections as FILELISTS. A FILELIST is itself a text file containing a list of file names of interest to you. A FILELIST is retained between SPFLite sessions. There are a number of pre-defined FILELIST names, and you may also create your own named FILELISTs as needed. There is a RECENT list, having the most recently opened files (up to a user-specified maximum number). There is a standard FAVORITE list of files you want to be remembered as favorites, and you can create you own private, named favorites as well. For example, you can create a "Project" FILELIST containing all files for some project, even if these files reside in different folders.
  • The new primary command SUBMIT provides the ability to submit an edit file to an external process (which may be an executable program or batch file) in a manner similar to the ISPF SUBMIT command. The facility is flexible enough to be usable in a wide variety of applications. It is expected that a principle use of the SUBMIT command will be to submit jobs for execution on mainframe systems operating under control of the Hercules emulator program. The SPFLite 6.0 installation includes the utility program SPFSUBMIT.EXE which may be used to submit jobs from SPFLite to a Hercules emulated card reader device using Socket I/O. SUBMIT can be issued from an Edit, Browse or Clipboard session.
  • A new primary command FILTER allows a range of lines to be filtered through an external process and then returned to the edit file. This allows the user to apply data transformations to a file using any desired utility program, without leaving the SPFLite edit session. A sample filter program, ReverseLines, has been included with SPFLite, to give you an example of what you might do with filters. This new function effectively now allows users to code macros in any scripting language which allows use of re-directed Input/Output or named input/output files.
  • A new edit primary command PTYPE allows Power Typing, a way to perform simultaneous editing of multiple lines of text in parallel.(Some editors refer to this as "column mode editing".) A number of keyboard primitive commands have been added, and enhanced, to support Power Typing. See the Help article, Working with Power Typing Mode, for more information.
  • A new primary Find in Files command FF, only available for use in File Manager, provides the ability to search through a list of files for the presence (or absence) of a particular string. The operation will return a list of the files which match the search criteria. The list can be used to initiate an Edit or Browse of those files, or to use as the basis for further searches of other different string criteria. A Find in Files search returns a FILELIST, for which you can perform any commands that can be done on any FILELIST.
  • NOTE lines are now supported. NOTE lines are non-data text lines that may contain any desired user comments. NOTE lines are not part of the data file per se, and do not have line numbers. New, blank NOTE lines are created with the NOTE line command. Data lines can be Made into Notes using the MN line command, and note lines can be Made into Data lines with the MD line command. You can also convert the special lines that appear in a PROFILE display into NOTE lines or data lines. See the Help article, Working with Notes, for more information.
  • New and Enhanced Primary Commands:
  • The CANCEL primary command now accepts two new operands, DELETE (DEL) or PURGE. They will, after terminating the Edit, cause the underlying file to be Deleted (sent to the Recycle Bin if that option activated) or Purged (bypassing the Recycle Bin, even if that option is enabled).
  • A new PROFILE option START allows you to control how a file is positioned when opened. You can choose FIRST (line 1 of file); LAST (bottom of file); LABEL (position to a user-defined label of .START); NEW (like LABEL, but the .START label is always moved to the last line of the file when closed); or PRIOR (positions file to last-known location). It is expected that START NEW will be useful in viewing SYSOUT files that get externally modified, possibly in conjunction with the EOL AUTO feature.
  • New LOCATE options, FIND and CHANGE, will locate lines which have been previously changed by a FIND, CHANGE or similar command. All other LOCATE options such as FIRST, LAST etc. are supported as usual. In addition, a new keyword CURRENT (abbreviated as CURR) may be used with LOCATE FIND or LOCATE CHG to locate the line that was most recently found or changed.
  • LOCATE LONG allows lines to be found that exceed a size operand or exceed the LRECL value (when LRECL is > 0), and LOCATE SIZE locates lines that are exactly a certain length. LOCATE NOT LONG and LOCATE NOT SIZE are also allowed.
  • The primary commands that change the exclusion status are now "unified". This means that EXCLUDE, FLIP, SHOW, NEXCLUDED, NSHOW and NFLIP all have the same underlying syntax and take the same operands as EXCLUDE does, including the optional string argument. As a result of this change, FLIP, which previously applied to all lines by default, now requires the ALL keyword for this action to occur.
  • The SORT primary command now performs a "stable" sorting operation; this maintains the original ordering of data lines when the sort keys on adjacent lines are considered equal.
  • FIND and CHANGE can now utilize regular-expression search-strings when the search direction is specified as LAST or PREV, relaxing a prior restriction. When this is done, the search is limited to the left-most only occurrence of the search string. Additionally, there are now no restrictions to using PREV, LAST, PREFIX or SUFFIX with Picture search strings, which now also perform better.
  • A new primary command EXIT or =X allows SPFLite to be closed, which is functionally the same as clicking the X button in the upper-right corner of the SPFLite window. The command =X is an abbreviation for EXIT.
  • A new edit primary command RENAME allows the currently-edited file to be renamed while being edited. When issued, RENAME will cause a Rename popup to be displayed, which asks for a new file name.
  • A new primary command RELOAD will discard any unsaved changes in the current edit file and then reload the file from its current contents on disk. If any unsaved changes exist, a popup will ask for confirmation of the Reload.
  • FIND, CHANGE and similar commands will now report the number of lines in which a string is found or changed, in addition to the number of times the string itself is found.
  • PRESERVE C. New option C to PRESERVE command causes trailing blanks to be retained except when the last nonblank character on the line is a \ backslash. This is intended for use in C-like languages that use \ for line continuation and do not allow blanks to follow it.
  • As a companion to the UNDO command, there is now a REDO command. Sometimes when doing repeated UNDO commands to reach a previous edit status, it is easy to UNDO more than intended. REDO allows you to reapply changes, effectively reversing the UNDO.
  • A new TAG option of SET operates much like TAG ON, except that lines not eligible to have the new tag assigned will have any old tag cleared. This allows a line range to get a new tag without the need to pre-clear the line range of old tags beforehand.
  • When the DELETE command is used to delete the entire edit file by using the ALL option, DELETE cannot be abbreviated as DEL. This is a safeguard to prevent deleting the entire file by accident, in case an X|NX option or line labels should have been used but were forgotten.
  • PROFILE EDIT profile-name allows editing of any existing Profile, either from an Edit session or from the File Manager. As well, the PROFILE NEW profile-name may be issued either from an Edit session or from the File Manager. For both commands, the SPFLite Profile Editor window is displayed so that the Profile information can be created or changed.
  • A new primary command COMPRESS can be used to compress repetitive spans of strings down to single occurrences. You can also compress repetitive occurrences of any string to any shorter string, regardless of whether or not the shorter string has any characters in common with the longer string.
  • A new REVERSE operand on RFIND, RLOCFIND and RLOC allows repeated FIND or LOCATE operations to be done in the direction opposite to the initial direction. This allow you to ‘change your mind’ as to the search direction without having to re-issue the original FIND or LOCATE command.
  • You can now perform a virtual save operation during the course of editing a file, using the new primary command VSAVE. A virtual save will save the edit session to a temporary file, without committing the edit changes to the permanent file you started editing. If you are editing a critical file and experience a system outage, the VSAVE files can be used to resume editing, while if the edit ends normally, the VSAVE files are automatically deleted.
  • Duplicate adjacent lines can now be deleted with the new primary command DELETE DUP. DUP is now a reserved word on the DELETE command, so if you wish to delete lines that contain a literal of DUP it must be quoted like 'DUP'.
  • The new LEFT and RIGHT operands of FIND and CHANGE allow strings to be searched for and changed at most once per line. Either the left-most or right-most string is found on a line, and any additional occurrences of the same string are ignored.
  • A new primary command SAVEALL saves every open edit file. SAVEALL by itself will unconditionally save all edit files, whether currently in a modified state or not. SAVEALL COND will save all edit files that are in a modified state, but unmodified edit files will not be saved. SAVEALL will not save files opened in browse mode, even if such browsed files are in a temporarily modified state.
  • The COPY primary command now supports the full ISPF syntax for COPY, including BEFORE and AFTER keywords and start/end line numbers for copied file. The copied lines may replace an existing block of line if they are marked as a UU or TT block, if the BEFORE / AFTER option is omitted. The PASTE command now also permits the BEFORE/AFTER option as well as ERASE to clear the clipboard after the operation.
  • Enhancements have been made to primary command RETRIEVE processing. The RETRIEVE ‘command stack’ will now hold the last 50 commands. A new RETF command will retrieve commands in the ‘forward’ direction, as opposed to the 'backward' direction done by RETRIEVE; the command stack can be cleared by RESET RETRIEVE.
  • The APPEND primary command will insert a string at the end of every line in a line range. The complementary PREPEND primary command will insert a string in column 1 of every line in a line range.
  • The PRINT SETUP command can now define "formatted printing" of pages with page numbers, headers and footers, file names, and other variable information inserted.
  • New and Enhanced Line Commands:
  • The =TABS> line may now use a + character as a "repeating virtual tab" position. If used, the + may appear only once as the last code on the =TABS> line, and must be preceded by an * tab code. Using the distance in columns between the + code and the last * code that precedes it, ‘virtual’ tab positions are implied indefinitely to the right, starting in the column where the + appears.
  • The K (Keep) line command modifier, and the -/+ (post-exclude and post-unexclude) line command modifier, can now coexist for the line commands A, B, C/CC, O/OO, and OR/ORR. On CC, OO and ORR the block-header lines themselves will not be excluded or unexcluded by the -/+ modifier, but only the lines within those blocks.
  • The MARK line command now allows codes < and > to more accurately place the column marker lines, in addition to the * code which remains available.
  • G/GG and J/JJ are now defined as ‘physical’ glue and join operations that do not involve data trimming. To trim data before gluing or joining, the new line command TG/TGG and TJ/TJJ are now supported. Additionally, for the Glue commands G/GG and TG/TGG, a user-defined string can be specified to insert in between the glued lines, using the GLUEWITH command.
  • Two separate blocks of text may now be swapped by marking one block with M/MM and the other block with the new Swap line command W/WW.
  • A new Overlay/Replace line command OR/ORR is similar to the standard Overlay line command, but will unconditionally overlay data from the 'sending’ lines to the ‘receiving’ lines.
  • New keyboard primitive functions (FindNext) and (FindPrev) will find the next or previous text that is currently highlighted. These actions are typically performed in other text editors using the keys Ctrl-F and/or F3, and may be mapped in SPFLite to any desired key.
  • New and Enhanced Keyboard Primitives:
  • A piece of text on one line can now be swapped with another (non-overlapping) piece of text on the same line or on another line by using the new keyboard primitive function (Swap).
  • New keyboard primitive functions (Edit) and (Browse) allow you to directly jump into a file for editing or browsing through a highlighted a file name. For example, suppose Alt-E is mapped to (Edit). Then you would highlight a file name and press Alt-E. This causes that highlighted file to be opened up in a new Edit tab.
  • A new keyboard primitive command (ToggleHome) will toggle the position of the cursor between column 1 and the first non-blank character of the line.
  • The (SetInsert) and (ResetInsert) primitives have been enhanced to save the existing insert-mode state internally prior to changing it. A new primitive called (RestoreInsert) takes the insert-mode state saved by the most recent (SetInsert) or (ResetInsert) and restores it. If neither (SetInsert) nor (ResetInsert) have yet been performed, (RestoreInsert) does not change the insert mode from its current setting. These new and enhanced functions are useful in keyboard macros that need to modify the insert mode a certain way and then restore it to what it was previously.
  • New keyboard primitive commands (JustifyL), (JustifyR) and (JustifyC) enable you to left-justify, right-justify or center (center-justify) a span of highlighted text. The Justify commands act by removing spaces from one side of the highlighted text, and adding it to the other side of it.
  • When Power Typing mode is in effect, and a span of text is highlighted on the first line, these commands will apply the justification to every line in range of the Power Typing command.
  • A new keyboard primitive function (Ansi) will display a 16 by 16 grid of characters which may be used to insert any characters into the clipboard, including ones not currently mapped to a key. The same display may be accessed in the KEYMAP window, by clicking a new button, “Show ANSI Character map”.
  • New keyboard primitives (ScrollLeft), (ScrollRight), (ScrollUp) and (ScrollDown) allow the screen to be scrolled while leaving the cursor in its current location.
  • A new keyboard primitive (ClipClear) will clear the contents of the clipboard.
  • Keyboard functions can take a repetition factor so that if you need a function run several times, it only needs to be specified once. For example, to move the cursor right 3 times, you could say (Right)(Right)(Right) or with a repetition factor it is just (3:Right).
  • New and Enhanced Mouse Support:
  • When a file tab is clicked with the right mouse button, it closes the file in the same way that the END command does. The PROFILE option AUTOSAVE is handled in the same way as is done for END.
  • Previously, the mouse could be used to highlight a section of a single line (a 1-dimensional highlight) or a square block of text (a 2-dimensional highlight). Now, you must hold the Shift key when doing a 2-dimensional highlight, while 1-dimensional highlighting is done without the Shift. This change means that 2-dimensional highlighting will not occur accidentally but only when intended, and makes normal highlighting easier and faster. There are enhanced capabilities available with highlighted text; see the Help for more information.
  • You may now perform a ‘word select’ by double-clicking on a word, and highlighted text may be deleted and replaced with new text in one step, which is especially useful when Insert Mode is on.
  • When you hold down the Ctrl key while using the mouse wheel, the number of lines or columns moved is increased by a factor of 4; this is termed Turbo Motion.
  • When using a 3-button mouse, the middle mouse button may now be mapped in the same way as the left and right buttons.
  • In addition to allowing use of all three mouse buttons, you may now use any combination of Shift, Ctrl and Alt, for a total of eight possible mappings for each button. And defining these mouse definitions is simpler, as they are now part of the KEYMAP facility, meaning an easy, one-step process just like keyboard keys are defined.
  • Cosmetic / Interface Changes:
  • Previously, when a file was Saved by an END command, the normal "File Saved" message would never appear since the Edit tab itself was removed as part of END processing. To ensure that you do receive a notification that the file was indeed saved, the message "File Saved" will appear in the message area of the status line, as a reminder that the automatic save took place. This message will disappear as soon as any key is pressed.
  • When the scroll amount field is blanked out for any reason, the default scroll amount will be restored without an error message being displayed.
  • The File Manager has new and updated primary and line commands, and has been reformatted to make it more functional, easier to use, easier to read, and with less clutter that allows more useful information to fit on the screen. See the section on Working with the File Manager for complete details.
  • A change has been made in the way screen colors are applied to file tabs. In prior versions, the Active and Inactive tabs had both a foreground color and a background color option available. With version 6.0, the background color is settable for both Active and Inactive tabs, but now the foreground color is decided based on whether the file is in a Modified or Unmodified state. The former use of (M) to indicate modified status was removed. For the File Manager tab, and tabs in GUI windows like SPFLite Global Options, the foreground text color used will be the same as the Tab Text - Unmodified Files color.
  • The visual spacing of messages in the multi-use status box (where “KB Recording” appears), and the “scroll progress bar” which appears below it, have been adjusted slightly so as not to overlap, so that when both are present the message portion is easier to read.
  • A new Option is available, Visual BEEP. This provides a short visual 'blink' when an error occurs that would normally trigger an Audible BEEP. For users that turn Audible BEEP off because it is disturbing, or for users that are hearing-impaired, this provides an alternative. Audible and Visual BEEPs may be activated independently from each other. As well, the audible BEEP is now produced as the standard Windows 'Asterisk' sound and can therefore be enabled, disabled and/or customized as desired through the "Sounds and Audio Devices" option in the Windows Control Panel.
  • The installation process for SPFLite will now add a Windows Explorer context menu item that says, “Open with SPFLite”. This will allow a file to be quickly opened by SPFLite for editing by right-clicking on the mouse. At present, if you uninstall SPFLite, the uninstall process will not remove this context menu item; it can be manually removed by right-clicking on the RemoveOpenWithSPFLite.reg file and selecting Merge.
  • SPFLite will no longer steal the Windows focus back to itself when it is not the currently active task, and a file it is editing is modified by some outside application. SPFLite will now wait to notify you about the outside file modifications until you again click on SPFLite to make it the active task. This change makes it easier to use SPFLite collaboratively with other software, such as a compiler IDE or debugger, which may also have their own editing facilities.
  • In File Manager, the END command will now return to the parent directory, or to the prior FILELIST, of the currently displayed one. The same action will occur if you right-click the File Manager tab.
  • Performance Enhancements:
  • A change was made in the way SPFLite detects and responds to keystrokes in Repeat mode vs non-Repeat mode. The change allows SPFLite to process keystrokes more quickly and reliably, and prevents certain types of key combinations from being misinterpreted if typed at very high speeds. When a mapped key has the Repeat checkbox left blank, the key is now acted upon during “key-down time” instead of during “key-up time” so there is no longer a latency in responding to these keys.
  • The code used when searching for Picture strings has been totally redone. It is now 4-5 times faster and also now allows reverse searching. i.e. using the PREV or LAST operands of Find/Change.
  • Within the Key Map window, you can now jump from one of the eight various definitions (with or without Shift, Ctrl and/or Alt) of a key to another by using the Tab and Back-Tab keys. This reduces the need to frequently switch between the mouse and keyboard when entering many definitions for the same physical key.
  • Miscellaneous Changes:
  • It is now possible to have deleted files either sent to the Windows Recycle Bin or immediately deleted, based on new CANCEL command options and new handling of File Manager line commands D and U. The default action when files are deleted is controlled by a new global option checkbox, Delete to Recycle Bin.
  • Two new codes for Picture literal searches have been created; the P'%', which indicates the "special" characters defined in the DLMS setting; and P'@', which indicates all character NOT in the DLMS setting. i.e. the two types used to define a WORD in string searches.
  • As well, you can now 'escape' a character in a picture code which might be a defined picture code like @ by prefixing it with a \ (e.g. P'\@') When ‘x’ is a letter, it is matched literally including case, even when CASE T is in effect.
  • The new change Picture/Format code of P'!' or F'!' is used to represent the entire found search string value, regardless of that string’s length. The ! code can be used more than once, which would cause the found string value to be replicated as many times as there are ! codes. To use an actual ! in a change Picture or Format as a literal value, it must be escaped as P'\!' or F'\!'.
  • You can now create SET symbols and reference them in an edit session. Symbols are created with the SET command or in a SET edit session, and may be used in primary commands with the notation =NAME.
  • The Enumerate Facility allows a selected set of columns in a range of lines to be enumerated, that is, sequenced starting from an initial value on the first line and incrementing by 1 for each subsequent line, within a fixed field on a set of lines. Enumeration requires that Power Typing mode is be enabled, and one or more columns on the first line of the Power Typing line range are highlighted. Enumerated values may be in decimal or hex and are unsigned. When these conditions are true, one of the Enumerate keyboard primitive commands (Enum), EnumHexLc) or (EnumHexUc), can be issued. Increments other than 1 can also be used.
  • A new set of End of Line profile options, EOL AUTO/AUTONL allow for automatic detection of line terminations, possibly containing inconsistent and spurious line terminators, so that files edited across different system, mainframe SYSOUT files, and other inconsistently-terminated text files can be opened, viewed and edited in a reasonable way. EOL AUTO/AUTONL may be applied to non-mainframe files as well, to handle situations where a file’s line termination is inconsistent for some reason. A possible cause of this is a file shared between Windows and Unix on a network and edited with different editors applying different line endings.
  • SPFLite now supports Private Clipboards. Ten are provided for and are referred to as CB0 thru CB9. The clipboards are Global (shared among all active Edit tabs) and are also Permanent (saved and restored between SPFLite sessions. These are ideal for storing a variety of boilerplate type text. New keyboard primitives are available for moving clipboard data between the normal Windows clipboard and these new Private clipboards. These primitives can be easily used to create a coordinated 'set' of keyboard macros to access this new support. The default keyboard definitions contain Copy and Paste macros set up on the 0-9 keys.

New in SPFLite 5.0.1270 (Sep 27, 2011)

  • Correct checking of PROFILE STATE. It was being done after the check for the NTFS status of the drive rather than before.
  • Pending line controls (e.g. A/B) were not being correctly detected by primary commands like COPY issued from macros.
  • Line command processing was not properly detecting incomplete block commands followed by Immediate commands.
  • UU block line commands with the K (keep) modifier were not being properly retained following their use in a command.
  • CANCEL command could not be issued if there were line commands in 'Pending' status.
  • SAVE issued for a file with zero lines in it was incorrectly skipping the actual writing of the empty file.
  • The Tab expansion using the IMPORTTABS value was not correctly expanding text when only 1 character followed the Tab character.
  • A replacement EBCDIC.TXT file to alter the EBCDIC ANSI translation was not being properly recognized during initialization.

New in SPFLite 5.0.1232 (Aug 22, 2011)

  • Minor bug fixes and corrections

New in SPFLite 5.0.1208 (Jul 29, 2011)

  • File Manager was not handling file masks with trailing * properly.
  • Add additional validation to BNDS setting when loading a file Profile.
  • RESET command was not always clearing previous error message text.
  • Correct handling of Enter key when NumLock is ON. (i.e. by toggling it with Shift-NumLock.
  • RESET was not being processed if there were outstanding line command errors. It should always be performed regardless of such errors.
  • Cosmetic changes to several messages.
  • Corrected handling of shutdown when modified, unsaved new files are being processed.
  • Pending line commands were suppressing the action of scrolling commands such as LOCATE, FIND etc.
  • Clarify STATE error message when file changes prevent re-establishing the previous STATE environment.
  • Editing of a new file type was not properly picking up the DEFAULT profile's parameters. As well, new profiles will start as UNLOCKED.
  • CAPS ON processing was not being properly handled in INSERT mode.
  • Correct formatting of the PROFILE NEW dialog. Some fields were not spaced properly.
  • File manager will now handle file names with leading blanks. However, use of such names is discouraged as it can be very confusing.
  • Cursor performance improved during rapid cursor movement. It will now be much more visible than before. Cursor also will no longer 'disappear' when the user has the Windows cursor blink rate set to 'Off'.
  • Altered the test for SPFLite residing on a removable drive when installed in 'portable' mode. Windows basic device type API insisted that a USB connected hard drive was not removable. Another API was found that acted more reasonably.

New in SPFLite 5.0.1189 (Jul 12, 2011)

  • Keymap will no longer accept changes that leave the ENTER key undefined as this makes further use of SPFLite impossible.
  • Global BOUNDS or BNDS settings were not being correctly honored by Primary commands like FIND/CHANGE. Boundaries were only being honored if they were specified on the commands themselves.
  • If specified bounds were included on a primary command, SPFLite was not allowing an arbitrary large value to be used for the right boundary which was larger than the current maximum length record. For example, specifying FIND P'^' 73 1000 on a file with all records under length 100 was rejected.
  • Data entry in the Scroll amount field (upper right) was not being handled properly.
  • The Keypad DEL key was not functional.
  • The Keypad Enter key incorrectly had a default assigned of RCHANGE.
  • UP and DOWN commands were incorrectly calculating the new screen position when excluded lines were present.
  • Multiple adjacent ranges of excluded lines were not being 'collapsed' into one range following a line delete command.
  • File Manager was not handling Directories with very long names if the name was being abbreviated to fit a narrow screen display.

New in SPFLite 5.0 (Jul 12, 2011)

  • Support added for EBCDIC input and output files, along with the EBCDIC NL character X'15' as another EOL delimiter character. In addition, you may now specify an LRECL value to specify that the file contains records with a fixed Logical Record Length.
  • When editing EBCDIC files, conversion is done between Ansi code page MS-1252 (used for the editor display) and EBCDIC code page 1140 for user data files.
  • When a non-zero LRECL is specified, you may also specify an EOL of NONE, to indicate that none of the usual end of line delimiters are being used. The combination of a non-zero LRECL and EOL NONE is used to edit files that are a set of fixed-length records stored as continuous stream of bytes with no line delimiters at all.
  • Persistent storage of the labels, tags and line exclude status between Edit sessions. You can now close a file, and resume editing it at another time, with your file's edit session conditions restored to the same state it had at the time it was closed. This feature is enabled with a new PROFILE option called STATE.
  • Add automatic cleanup of stray recovery files that may have been left behind in the event of an SPFLite crash.
  • A change was made to the naming standard for Automatic Colorization files. These files now have names like "type.AUTO", where "type" is the filename extension that defines the file's type. Use of a "type.AUTO" Automatic Colorization file is enabled by a PROFILE command of HILITE AUTO ON. Automatic Colorization files are "linked" to to the file's PROFILE. This means that when a PROFILE USE is in effect, a common colorization scheme can be defined for a group of related file types.
  • Support for the former PROFILE ALIAS command has been removed. See the PROFILE USING operand.
  • Allow use of temporary line labels (also known as line-number pseudo labels) in commands. Temporary labels are .labels where the label value is a numeric line number. To reference line 10 in this way, a temporary line label of .10 could be used. This allows line ranges to be used in commands which also support column ranges (like FIND and CHANGE) without needing to assign some permanent labels to the lines just for the sake of that command and then having to delete them later.
  • New KEYMAP command and totally rewritten keyboard mapping support. The whole concept of PF keys has been replaced (don't worry, it's actually simpler). Now, the commands you desire are actually associated with the key, rather than the former two-stage process of associating a keyboard key with a PF key, and then associating the PF key with an SPF command. As well, the mapping allows for mapping of all control key combinations for the allowable keys (this is sometimes referred to as "chords"). There are 8 variations of each key allowed: Normal, Shift, Control, Alt, Shift-Control, Shift-Alt, Shift-Control-Alt, and Control-Alt.
  • These are now easily managed by a new graphic dialog which allows you to click on a keyboard image to access the commands associated with each key.
  • As well, support is now provided for keyboard macros. This includes a new keyboard Record function to assist in creating these macros. While keyboard recording is in progress, "KB Recording" will appear on the status line.
  • Separate file option preferences for each file type. Many of the formerly global preferences are now settable by file type. The PREFERENCES command is now renamed to OPTIONS and a new PROFILE command is used to display the file-oriented options. Setting of individual Profile options is done via primary commands as in the original ISPF, such as CAPS, TABS, HILITE, etc.
  • The PFSHOW feature now allows specification of from 1 to 5 lines at the bottom of the screen. Only keys which have PFSHOW labels defined (via the KEYMAP facility) will appear in this area. The PFSHOW functionality is now being handled as an OPTIONS|SCREEN setting, and the former PFSHOW primary command is no longer supported.
  • The status line is no longer optional, and now appears as a conventional Windows-style status line at the bottom of the screen. The redesigned status area contains many new, useful fields in a concise, ease-to-read format.
  • The primary commands OPEN and EDIT have been swapped to have consistent meaning with other commands. BROWSE starts a browse tab, EDIT starts an edit tab, and OPEN will now open a new instance of SPFLite.
  • The primary command CRLF has been renamed to EOL (End-Of-Line) to better reflect its meaning. As well, the operands have been renamed from WIN/UNIX/MAC to CRLF/LF/CR to also better reflect their meaning. Also added is the ability to use a user specified 1 or 2 byte hex string as the delimiter. The EBCDIC NL character (X'15') is also now available, as is the ability to say EOL NONE to have no delimiters at all, which requires a specified LRECL value to delimit lines by their length alone.
  • The sort criteria for the File Manager may be quickly changed by left-clicking on the column headings. If currently sorted on the clicked column, the sort will switch direction (a + will appear next to the column heading for ascending order, and - will appear for descending order). If clicked on a different column, it will switch to an ascending sort on that column. In addition, a new option to sort on file extension has been added. As a result, the SORT type entry line at the top of the screen has been removed.
  • File Manager has altered the file type criteria from being a simple list of file types, to using the Windows standard file masking characters. For example, previously you might have had criteria like txt;BAS;CPP which would now be entered as *.txt; *.BAS;*.CPP. But more importantly, you could now enter criteria like PRJ*.C?? or *.B* to specify a much finer filtering of the resultant list.
  • New Keyboard Primitive commands:
  • TxtHome Moves cursor to 1st visible data column of the current line. Like Home in a normal editor.
  • TxtNewLine Like NewLine, but moves cursor to the 1st visible data column of the next line rather than the line number area.
  • LineNo Moves the cursor to the line number area of the current line.
  • LastTab Tabs to the last (rightmost) tab marker.
  • EndOfText Moves cursor to 1 past last non-blank on the line, unlike EndOfLine which moves the cursor to 1 past the last character on the line, blank or non-blank.
  • LowerCase Will lower-case selected text on the screen.
  • UpperCase Will upper-case selected text on the screen.
  • TitleCase Will title-case selected text on the screen.
  • SentenceCase Will sentence-case selected text on the screen.
  • SetInsert Will turn Insert mode ON regardless of its current setting.
  • ResetInsert Will turn Insert mode OFF regardles of its current setting.
  • CutPaste Will act like Copy if text is selected, and if no text is selected will act like Paste.
  • Date Will Paste, at the current cursor location, the current Date in your normal Windows Short format.
  • Time Will Paste, at the current cursor location, the current Time in the format hh:mm:ss AM. (12 hr format with trailing AM/PM indication.
  • ClipDate Will insert the current date, in normal Windows short format, into the Clipboard.
  • ClipTime Will insert the current time into the Clipboard in the format hh:mm:ss AM (12 hr format with trailing AM/PM ndication).
  • IsoDate Will Paste, at the current cursor location, the current Date in ISO format YYYY-MM-DDD.
  • IsoTime Will Paste, at the current cursor location, the current Time in the format hh:mm:ss (24 hr format without AM/PM).
  • ClipIsoDate Will insert the current date, in ISO format, into the Clipboard.
  • ClipIsoTime Will insert the current time into the Clipboard in the format hh:mm:ss (24 hr format without AM/PM).
  • ClipPath Will insert into the Clipboard the full path and filename of the currently edited file.
  • ClipName Will insert into the Clipboard the filename of the currently edited file.
  • New key mapping capabilities for labels and tags. To define a key to set a label or tag, {.label} and {:tag} are used. To define a key to clear a label or tag, {.} and {:} are used. To define a key to toggle a label or tag, {..label} and {::tag} are used.
  • New line command H/HH ("Here"), which can be used as a destination for the line copy (C/CC) and move (M/MM) commands in much the same manner as A/B line commands are used. The lines marked by H/HH will be REPLACED by the copied or moved lines; the lines originally marked with H/HH are deleted.
  • Two new line commands U/UU ("Use") and T/TT ("Take") may be used to specify line range operands to many of the Primary commands (CHANGE, CREATE, CUT, etc.) When a valid range has been marked with these commands, affected Primary commands will react as if a line range had been specified as part of the command itself. These new line commands effectively replace the use of the C/CC and M/MM line commands when used in conjunction with Primary commands, which now use U/UU in place of C/CC and use T/TT in place of M/MM commands.
  • The existing C/CC and M/MM are now used exclusively to copy and move lines around in the edit file, and are not referenced any more by primary commands.
  • The Primary command line area will now scroll left and right as needed so that commands of any length can be entered. Previously, if commands like FIND and CHANGE were entered with long text literals, it was very easy to 'run out of room' to enter the desired command.
  • Support for the 'K' line command modifier ("Keep"). When added to a line command, the command will be retained following the normal line operation.
  • For example if a CK is entered on a line, and A on another, then after the copy of the line from the CK line to following the A line, the CK line command will remain in the line-command area. All that is needed is another A command to repeat the Copy. Unlike ISPF's implementation, 'kept' line commands are only removed by specifically blanking them, or via a RESET COMMAND primary command.
  • Support for two new line command modifiers, '+' and '-'. When added to a line command, it requests that the lines, following the specified line operation, be Excluded ('-') or UnExcluded ('+') from the display. For example, copying lines using a CC- / CC pair to mark the source lines, will perform the Copy and then hide the lines marked by the CC Commands as if the lines were marked with XX line commands as well. If a CC+/CC pair were to be used, any excluded lines within the CC+/CC block will be unexcluded upon conclusion of the copy command. When + or - is added to an A or B line command, the A or B itself is not changed, but the target lines themselves that are moved or copied After or Before that point are excluded (-) or unexcluded (+) as the move or copy takes place.
  • A new primary command TAG and associated enhancements to other commands now provide a powerful tool to locate and mark (i.e. TAG) lines. These 'tagged' lines, whether contiguous or not, can now be isolated for processing by other commands. Thus you are able to apply multiple criteria to select the lines to be processed. For example, the following commands:
  • TAG :AB ALL 'AB' 10
  • CHANGE 'ONE' 'TWO' ALL :AB
  • would first Tag all lines which have AB in column 10 with the Tag :AB, and then would change ONE to TWO on ONLY those lines previously tagged with :AB.
  • Tags can be set 'en masse' via the TAG command, or by manually by entering a Tag in the line number field. A tag is a : followed by up to 5 letters. A tag is much like a line label (.HERE) except the same tag can appear on any number of lines.
  • A special 'generic' tag of :ZALL can be used to reference every line having a line tag of any kind whatsoever regardless of tag name. Similarly, a tag of :\ZALL can be used to reference every line NOT having a line tag. :ZALL and :\ZALL are useful on commands such as FIND, CHANGE and EXCLUDE.
  • A label and a tag may co-exist on the same line (the label and tag are said to be "co-located"). When this condition exists, only the label will be visible in the sequence area of the affected line. When the cursor is placed anywhere on the affected line, the tag name will appear below on the status line. Additionally, for such lines, the blank column that normally appears between the sequence number field and column 1 of the data line will contain a : colon as a visible reminder that this line, which has a visible label, also has an undisplayed tag name. If the label for this line is removed (in the usual way) the undisplayed tag will reappear.
  • The primitive keyboard command "(Delete)" will now delete a currently highlighted block of text on the screen. This works for highlighted blocks having single lines and for multi-line blocks.
  • For consistency, the CUT command will now accept a REPLACE keyword even though this is the default if APPEND is not coded. In addition, CUT will now accept the X and NX selection criteria to be used along with normal line range selection.
  • The CREATE and REPLACE commands may now optionally use the full range of line range commands, tag selection and X / NX selection when specifying the lines to be included.
  • The SORT command may now optionally use the full range of line range commands, tag selection and X / NX selection when specifying the lines to be included. This means that scattered lines may be sorted independently of the intervening lines. (For SORT X to operate the same as mainframe ISPF, it must be specified in SPFLite as SORT X DX to keep sorted lines excluded.)
  • Also, new codes may be added to explicitly request a case sensitive sort (C) or a case insensitive sort (T). These C or T codes may stand alone to apply to the entire sort, or may be combined with A or D to control individual sort fields. The default for SORT's case sensitivity is the same as the current profile setting for the CASE option, which is also C or T. (Note that the current CASE setting also appears as the letter C or T on the status line.)
  • Former uses of Tritus SPF will notice these features and options are essentially the same as the Tritus SPF implementation of SORT.
  • Two new primary commands NFIND/NF and NEXCLUDE/NX. These are effectively the negative versions of FIND/F and EXCLUDE/X, that is, they perform the 'NOT found' version of the tests that normal FIND/EXCLUDE do. For example, NFIND 'ABC' 10 will locate the 1st line that DOES NOT HAVE the characters ABC in column 10. NEXCLUDE ALL 'ABC' 10 would exclude all lines which DO NOT HAVE the characters ABC in column 10. In particular, starting from a file with no lines excluded, the command NX 'ABC' ALL will result in only lines containing 'ABC' still displayed. (Some editors refer to this capability as an ONLY function.)
  • Two new primary commands SHOW and NSHOW. SHOW directly corresponds to EXCLUDE (X) with the same syntax, and NSHOW directly corresponds to NEXCLUDE (NX) with the same syntax. Whereas EXCLUDE/NEXCLUDE only consider non-excluded lines (and based on some criteria, select lines to become excluded), SHOW/NSHOW only consider excluded lines, and based on some criteria, select lines to become un-excluded.
  • Many of the commands which support line range operands (CHANGE, CREATE, DELETE, EXCLUDE, FIND, FLIP, LC, NEXCLUDE, NFIND, RESET, SC, SORT, TAG, TC, UC) will now also support two new operands DX and MX. These are used to override the normal action of line searching where a located line, if in excluded (X'd) state, will be unexcluded.
  • The DX option (don't change exclusion) will leave the excluded status unchanged. That means, previously excluded lines will remain excluded, and previously unexcluded lines will remain unexcluded.
  • The MX option (make excluded) will force the line into excluded status, regardless of what its prior exclusion status was (excluded or not excluded).
  • MX and DX should not be confused with X or NX. X or NX on a command is used to decide which lines should be used or acted upon, based on their current exclusion status. MX and DX control what the exclusion status of those lines is to be set to, after the command in question is completed. The distinction is important to understand, because X or NX can be combined with MX or DX on the same command. Example: To change all occurrences of 'ABC' to 'DEF' on excluded lines, and then leave them excluded, can be done by the command:
  • CHANGE 'ABC' 'DEF' ALL X DX
  • Two new line command modifiers which apply to some specific line range commands: (C, D, LC, M, O, S, SC, T, TC, UC, X, H, U). The / forward modifier and the \ backward modifier are used to represent a range of lines that extends from the entered line all the way to the top (\) or all the way to the bottom (/) of the file. For example entering D/ as a line command means "Delete all lines from here to the bottom".
  • The / forward modifier may be thought of as a shortcut to typing '9' many times to mean 'all the lines from this point forward' like a line command of D99999. Instead of typing all those 9's you can just say D/ to do the same thing.
  • The \ backward modifier is basically the same idea, but it works in the opposite direction.
  • The LOCATE command has now been greatly enhanced to not only locate specific line numbers or labels, but can now be used to generically search for lines in various conditions. e.g. LOCATE NEXT LABEL will find the next line containing any label. LOCATE CHANGE will find lines flagged by the ==CHG> line marker. Other options are EXCLUDED, TAG, SPECIAL, KEEP, LONG, and COMMAND. The FIRST, LAST, NEXT and PREV keywords are also supported. LOCATE LONG is used to find lines longer than the specified LRECL length.
  • A new Picture-like string called a Format is now supported. Format strings use a type code of F instead of P. Format strings differ from Pictures in that the codes other than those used for copying string characters (=, < and >) are not associated with positions in the source text. This makes it possible to use F strings to "insert" and "format" values in ways traditional P strings cannot do.
  • New features with Picture and Format strings: The ~ tilde code may be used to skip over, or "delete" corresponding positions from the source string; a change Picture or a Format need not be the same length as the search string; the use of search picture codes like $ and @ in change pictures has been relaxed; these codes are now permitted (whereas in ISPF, these codes cannot be used in change pictures even though they otherwise have no special meaning).
  • A new command CASE, which takes an operand of C or T. CASE is a PROFILE setting and is associated with the file type. CASE controls how a search string is treated in FIND, CHANGE and similar commands, and is used when a string is not enclosed in quotes, or if a string is enclosed in quotes but does not contain a type code like C or T. CASE does not affect letters that are within R strings, and does not apply to X strings, but does apply to P and F strings.
  • For CASE C, the case of letters is treated "as is" or case-sensitive; for CASE T, the case of of letters is treated as case-insensitive. The current state of the CASE option is shown on the status line as a C or T.
  • The current CASE setting is respected by the SORT command. As well, when Picture or Format search strings (with string types of P or F) contain letters, the matching process for these letters respects the CASE C or CASE T mode in effect at the time.
  • When search strings contain explicit C or T string types, the C or T search string and its case-sensitivity is honored as in traditional ISPF, and the CASE mode in effect at the time is disregarded for such strings.
  • In conjunction with this change, SPFLite fully supports and respects search strings of both types C and T, which it did not do previously.
  • Case-conformant text changes may be achieved by using a string of T'xxx' as a change-string value. The character casing of the result string will conform to the casing of the source string, which is determined on a string by string basis. When a case-conformant change string is longer than the search string, the upper or lower casing of the 'tail end' of the result is determined by 'propagating' the case of the last letter of the search string.
  • For example, CHANGE T'one' T'two' will change 'one' to 'two', 'One' to 'Two' and 'ONE' to 'TWO'.
  • CHANGE T'ONE' T'FOUR' will change 'One' to 'Four' because the casing of lower-case 'e' in the third position of 'One' becomes propagated to the fourth position of T'FOUR' to become 'r'.
  • A new "show" line/block command S/SS is used to un-exclude a range of lines, regardless of the prior exclusion status of a block. If the S line command is placed on an excluded line range, that entire excluded range becomes un-excluded. This is a new use for the S line command, and the legacy ISPF S line command has been renamed to SI (Show Indentation).
  • The S/SS line commands may be thought of as the opposite of existing line commands X/XX.
  • KEEP and DROP primary commands may be used to selectively delete certain lines when groups of two or more adjacent lines have the same line tag.
  • A relative line label uses a defined line label to define a region of lines with respect to that label. The following describes all allowable forms of relative line labels:
  • .ABC the line .ABC
  • .\ABC or .ABC or .¬ABC all lines other than line .ABC
  • .>ABC all lines after line .ABC
  • .>=ABC the line .ABC and all lines after it

New in SPFLite 4.4.9 (Mar 29, 2011)

  • Allow Preferences - ImportTabs to be set to 0 (zero) to indicate no Tab expansion is desired.
  • Correct handling of file watch thread during close and save of a file. Depending on timing program crashes could occur after the save.
  • Remove obsolete progress bar logic during load/save of files.
  • Correct error in PRINT command in font handling which could cause a crash at end of print.

New in SPFLite 4.4.8 (Mar 29, 2011)

  • Correct intermittent crashes with the SAVE or END commands in Edit. (hopefully)
  • Correct character case testing in the Picture literals to correctly handle the additional characters in the European languages.
  • Correct display handling of long path names in File Manager when screen width is very narrow.
  • Correct handling of Newline key when display is in Hex mode.
  • Correct changes using regular expressions as a search string to properly use the length of the actual found string in the change operation.
  • Correct synchronization of file watching threads during thread create and destroy functions.
  • Correction to UP/DOWN commands when Scroll=CSR and display is in Hex mode.
  • Correction to stop incorrect highlighting of screen text when an UP/DOWN action immediately follows a cursor positioning using the mouse.

New in SPFLite 4.4.5 (Mar 29, 2011)

  • Correct error in CANCEL of a newly created file.
  • Correct error in calculating visible top/bottom of display screen. This could affect positioning performed by Find / RFind / Change / RChange processing.

New in SPFLite 4.4.4 (Mar 29, 2011)

  • Bug fix for an error in Find/Change when using the WORD option.

New in SPFLite 4.4.3 (Mar 29, 2011)

  • Bug fix for a small error in the new text marking code.

New in SPFLite 4.4.2 (Oct 23, 2010)

  • Enhancements / New Features
  • The SPFLite screen can now be re-sized by normal stretching operations, in addition to specifying the width and height in the Preferences - Screen setting. Altering the Font selection or Font size is still done in the Preferences settings.
  • Add monitoring of files while they are being Edited/Browsed for changes by other applications in the system. When modifications are detected, you will be given the option to reload the modified data and replace the text currently in the edit buffer.
  • Add Column Marking. This option is similar to TABS. It will provide a slim vertical line on the screen at specified column locations to assist in aligning columnar data. The columns specified are independent of TABS columns; they may be the same, or different. The color of the vertical line is specified in the Preferences - Screen tab. The column marking is retained between sessions, and may be different for each file type. The new MARK line command is otherwise handled just like the TABS line command.
  • FIND, EXCLUDE and the 1st operand of CHANGE may now use Regular Expression format for the search. This is similar to the Use of the Picture literal (e.g. P'==##==') for those users who are familiar with and comfortable using Regular Expressions. The operand is coded, like the Picture literal except the leading literal type character is 'R'. For example to find the letters ABC at the end of a line code R'ABC$'. Full details of the Regular Expression syntax will be in the Help file.
  • Expand key mapping again to add the Ctl and Alt combinations with the numeric (0-9) and special character keys (`-=[];'\,./). As well, allow Ctl and Alt keys to be mapped as individual keys and still be used in combination with other keys.
  • Prevent Numlock key from altering the overall system Numlock status.
  • Add Numlock support. The keypad may now be mapped as before for use as Function keys, etc. and will function this way when NumLock is OFF. When NumLock is ON (i.e. LED is lit) the keypad will function as a normal numeric keypad. Since the NumLock key is mappable, toggling between NumLock ON and NumLock OFF must be done with the Shift-Numlock combination.
  • Display column numbers in status line when cursor is on TABS, BNDS or MARK lines.
  • Add TOP and BOTTOM/BOT scroll commands.
  • BNDS added to the settings maintained by file type, like TABS, CAPS, DLMS and MARK.
  • If OPEN creates an Empty file because the file did not exist, and is still empty when an END command is entered, you will be prompted as to whether you really wish to save the empty file or delete it.
  • Prevent DLMS line command from removing the blank as a delimiter. If DLMS=> line is completely blanked/erased, then the default set of DLMS characters will be recreated.
  • Line range operands (.aa, .bb, etc.) support has been added to the following commands: FIND, CHANGE, RESET, SORT, and EXCLUDE
  • Alter text select to use inverse video of the selection area rather than a simple line box around the selection.
  • Some New 'primitive' key functions are now available, these are all to provide a more familiar Windows style Cut / Paste operation ability:
  • 'MRKx':
  • four companion commands MRKU, MRKD, MRKL and MRKR (Up, Down, Left and Right) to support marking (MRK) of text via the keyboard in the same manner as text can be selected with the mouse.
  • The keyboard text selection will support selecting areas larger than a visible screen as well as stretching/shrinking of the selected area. Mouse support for selection is still restricted to a single screen.
  • For new SPFLite installs, these will be defaulted to the Shift-Up, Down, Left and Right arrow keys.
  • 'KCPY':
  • new keyboard function to separate the Cut of marked text on the screen from the classic ISPF CUT command which is related to whole text lines selected with CC/MM line commands. It functions like the normal Windows Ctl-C keyboard command.
  • For new SPFLite installs, this will be defaulted to the Ctl-C key.
  • 'KPAS':
  • which is a new keyboard level paste command, different from both the Primary PASTE and BPAS (below) commands. KPAS will allow pasting from the Clipboard into the middle of text lines, as well as pasting into the Primary command line. The function will honor the INS/OVR status to either Insert the text (shifting existing data right) or Overtype the existing data. If more than one line exists in the clipboard, only the 1st line will be used.
  • For new SPFLite installs, this will be defaulted to the Ctl-V key.
  • 'BPAS':
  • (Block Paste) this is the previous BPASTE primary command which has moved to become a keyboard function for compatability with the other cut / paste functions. BPAS will also now position the cursor following the last character of the pasted data.
  • For new SPFLite installs, this will be defaulted to the Alt-V key.
  • Maintenance / Bug Fixes:
  • Correct handling of the NewLine key when below the last line.
  • Correct positioning following Paste / Overlay.
  • Correct an error which caused the Back-Tab function to 'disappear'.
  • Reset ==CHG> indication on any activity in the line number field as well as text field.
  • For clarity, add spacer pixels between text margins and screen border.
  • Add missing aliases for the line commands TAB, BND and DLM.
  • Add aliases .ZF and .ZL for .ZFIRST and .ZLAST.
  • Correct Move --> Overlay to work like SPF itself regarding equal characters in the two lines.
  • A mouse click to position the cursor on the command line will automatically move the cursor to the left margin if the command field is blank.
  • UNDO now properly restores the modified data indicator along with the data.