Change LOG ========== This is the Change Log for the current SPFLite2 release. Changes for the previous release (SPFLite) can be found in "Changes for Original SPFLite.txt" Between 3.0.23259 AND 3.0.23313 (Nov 09/2023) ============================================= * Correct File Manager handling of FLISTS with a mixture of single path and extended path requests. * Correct error in the main Line Command table for the TR command. * Alter PRESERVE OFF handling so that if the trailing blanks to be removed contain any Attribute values (like hi-lighting), the line will retain the needed blanks to retain the hi-lighting. * Correct the COPY command. It was incorrectly using the Current Directory rather than the directory from which the loaded file was read. This caused incorrect "Missing File" messages * If "Minimize to Tray" ia 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 items * 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 then will be used for the new Instance. Previously, those 4 tables were always copied from the DEFAULT Instance. If they do not have unique tables then the copy will still be made from the DEFAULT Instance. * Correct erroneous message when a Primary CMD command is entered in a special edit tab (CLIP, SetEdit and EFTEdit). * Add support to the Edit line command M (Move) to allow moving whole files around in MEdit mode. The M command is placed on the =FILE> line, and an A/B line command to mark the new position. The new position must be located before another =FILE> line or the **Bottom** line. * Add a new Profile option - MACLIB. MACLIB allows you to specify 1 or more alternate folders to use as the source for macros, IN PLACE OF the normal Users\You\Documents\SPFLite\MACROS folder. The default for MACLIB is NONE. The list of folders is NOT specified directly by the MACLIB operand. The MACLIB value is the name of a SET symbol containing the list. This makes it easier to Enter/Edit the list in SetEdit rather than entering a long string as a MACLIB operand. 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:\MyStuff\MyMacros\|C:\Users\Me\Documents\SPFLite\MACROS\ Notes: The example adds the normal MACROS folder after the new user folder, but there is no requirement to do so. You may enter any set of folders you desire. Also, multiple filenames are separated using the | character. The effective MACLIB list (specified or NONE) is automatically added to the thinBasic #INCLUDE search list. Between 3.0.23253 AND 3.0.23259 (Sep 16/2023) ============================================= * Correct the NFIND logic. It was accepting a TOP operand, but never actually acted on it. * Correct handling EFT override profile handling. The override were supposed to be temporary, but were actually being saved to the profile if it was unlocked. * Correct a serious error in MEdit which caused incorrect saving of the MEdit session files. Between 3.0.23169 AND 3.0.23253 (Sep 10/2023) ============================================= * There are new Profile options: AUTONAME - Defaulted to NONE, if not NONE it specifies the name of a different AUTO file to be used for text colorization. (Rather then the normal Profile Name) MODE - Defaulted to EDIT. Can be used to specify the type of tab to be opened when a simple SELECT or LMB click is done on a file in File Manager. Choices are EDIT, VIEW and BROWSE. * Correct handling FM Line command repeat values that exceeds the size of the current list * Correct the handling of a MODE xxxx and AUTONAME xxxx Profile overrides in the EFT list. * Correct File Manager error in not saving the STANDARD / ALTERNATE format setting for each of the display types. (FilePath, Recent, Favorites, etc.) * Correct CFGMaint. It was not always actually saving the corrected value for error entries when doing an IMPORT. * Correct handling of MEdit session re-open at startup to maintain the MEdit file order. * Correct EFT validation. Blank lines were not being skipped as they should have been. * Corrections to handling some FM Line commands, and to issuing FM Line commands in macros. * Correct allocation of UNDO files for MEdit sessions. * Prevent internal updating of the EFT table if an actual (EFTEdit) session is running. * LOCATE with 'color' operands has been corrected to handle excluded lines properly. * LOCATE with LONG operand also received a correction in the command parser. * Corrections to handling some FM Line commands, and to issuing FM Line commands in macros. * The FM DEFAULT command has been eliminated. * Correct BACKUP handling of files which have no extension. * INSTANCE support has been extended to allow the EFT (Extended File Type) table to be maintained uniquely by Instance ID. * An extensive internal revision was done to 'tidy up' the handling of Tab Creation/Deletion and inter-tab communication. The handling of file Profiles was also simplified. * The EFT (Extended File Type) support is being extended, and will take over handling other file type related choices. ** File types which should share the DEFAULT profile ** File types which should be treated as non-text files ** File types which should be Opened by the Windows default app for that file type This means the DEFAULT extension list specified in Options => General will be removed, as well as the no-text list in Options => FM. These former lists will be automatically converted to the equivalent EFT table entries, you do NOT need to perform any conversion. Please review these extensions in the Help file. Between 3.0.23088 AND 3.0.23169 (Jun 18/2023) ============================================= * Correct the SET command. It was not handling an empty SET table properly. * Correct the (Paste) KB primitive, It was not handling a Paste into the command line properly. * Correct colorization scan, it was not handling the AUTOCASE of a single delimiter character properly. * The macro function Get_Profile$ has been re-written to properly perform what the HELP file indicates. As well the BNDS, MASK, MARK and TABS line data can be retrieved either with the functions Get_xxxxLINE$ or with Get_Profile$("xxxxLINE"). * When loading a file using an XMACRO, the routine that validates the SOURCE attribute will be skipped, to avoid issuing extraneous messages. * Correct error in saving Hilite entries in the STATE file. The length of color fields was incorrect if within 1 character of the line length. * Macro Get_Profile$ will now, for EMACRO, IMACRO and XFORM return the ON / OFF value as the last operand in the string. * Correct handling of the Dialog for missing Profiles. If SKIP or SKIP(W) is chosen the entry was being added to the wrong CFG table. * Remove the option for whether 2D mouse movement may be used to mark text in an edit session. 2D selection will always be allowed. * The handling of File Manager Line commands has been revised to better handle Repeating and Block mode commands. * The primary commands RECFM, EOL, and LRECL control how your data files are processed during reading and writing. There are a variety of combinations of these parameters which are illogical. Validation in the individual commands has not prevented the creation of these illogical combinations. So, these individual commands are internally becoming 'pass-through' commands, meaning they no longer perform the validation and actual change to the Profile settings. The command is restructured and passed to a new DCB command, which will 'do all the work'. The new command can, of course, be used directly and is the recommended approach. For most users, using the old commands is probably still more familiar and will continue to operate. The format of the new command is: DCB [ RECFM operand ] [ LRECL operand ] [ EOL operand ] ie. A standard TXT file would be spacified as DCB RECFM U LRECL 0 EOL CRLF The operands following the keywords RECFM, LRECL and EOL are identical to the operands of the former commands. This allows for proper validation of the parameters and will prevent the accidental creation of illogical sets of parameters. Between 2.7.23056 AND 3.0.23088 (Mar 29/2023) ============================================= * Correct (PA1) primitive KB function. It was not performing the flip/flop between old and new screen images when pressed repeatedly. * Alter the (DataDelete) and (DataBackspace) primitive characteristics to allow their use in the FM tab on the Command Line. Correct (DataBackspace) operation on the command line. * Re-establish the alternate form of the Line Command modifiers / and \ as described in the Help for Extended Line Command Modifiers. This uses the sequences of . and .. as substitutions. (Easier to use on non-English keyboards). This support 'disappeared' about 3-4 years ago. * Tweak messages for the SAVE command in a CLIP session to better indicate 'where' the data was saved. (i.e. Named or Windows clipboard) * Revise the (Copy), (CUT) and (Lift) primitives so that if there is no 'marked' area, the clipboard is left untouched. If it IS necessary to actually clear the clipboard, use the (ClipClear) primitive. * Add support for a normal Windows ScrollBar on the right of the screen. This feature is optional; to activate it go to Options => Screen and toggle the "Add Vertical ScrollBars" option. * Minor correction to macro function SPF_Post_Do regarding marked text areas. * Minor correction to the (LowerCase) primitive. It was not checking for an active Marked area before proceeding. * Revise internal MSGBOX routine to support custom text on the dialog buttons. * Remove the FM Line command PURGE. The option to perform a Permanent Delete can now be done with the DELETE/DEL/D line command by adding a 'U' as an operand. e.g DEL U * Improve the clarity of text in the popup DELETE confirmation dialog. * Revise the FM line command LINES, which updated the STATE information for a file. If the file currently HAS a LINES value, it will skip the overhead of performing a STATE rebuild. This is helpful when you want to select a large range of file lines where only a few are actually missing LINES data. When needed, a U operand can be added to request an unconditional STATE update regardless of whether a LINES value currently exists. e.g. L U Between 2.7.23019 AND 2.7.23056 (Feb 25/2023) ============================================= * Reverse the change to the colorization QUOTED command default in AUTO files. The revised default (of 3 sets of quotes "" '' and ``) seems to be causing more problems in colorization than before. So the default will go back to being the single double-quote. * Add support for Alias names for the colorization schemes. This helps to remember what each of the schemes are used for. These Aliases can optionally be used to replace hard-coded scheme numbers in the AUTO files. * Correct the (DataInsert), (DataDelete) and (DataBackspace) KB functions as well as the CHANGE logic for handling CHANGE DataShift mode changes. A revision to avoid spaces within quoted strings was just not up to handling lines with multiple individual quoted strings. * Alter the display of the INS/OVR value in the status bar to better hi-light when the setting differs from the user's default as specified in Options => Keyboard. As well, (DataInsert) mode will be indicated by the DIN designation. i.e. the StatusBar may now display INS, OVR or DIN. * Review the various KB Primitives related to INS/OVR mode. The following changes have been made. While there are numerous changes, most users will be unaffected by them. * The following function names have been deprecated; they will still function normally but should eventually be replaced by their new names. These functions are normally only used by multi-step KB macros. (SetInsert) - Replace with (SetINS) (ResetInsert) - Replace with (SetOVR) * Add (SetDIN) - a new function to switch to DataInsert mode. Note the new designation of DIN (DataINsert) will be displayed in the StatusBar. * The 3 functions (SetXXX) will save the current insert mode and immediately switch to the requested mode (INS, OVR or DIN). The saved mode doesn't actually need to be used. i.e. The (SetXXX) functions may be used as a simple "Please switch to XXX mode". * The (RestoreInsert) function is unchanged and will still perform a restore of the saved insert mode created by the (SetXXX) functions. * (Insert) is also unchanged and will continue to toggle between INS and OVR mode. (Insert) will also continue to reset DIN mode. * (DataInsert) has been modified to better operate as a toggle. If in INS or OVR mode, (DataInsert) will save the current mode and switch to DIN mode. If already in DIN mode, it will revert to the previously saved mode when DIN mode was entered. * (ClearInsert) will revert the insert mode to the mode specified in Options => Keyboard for initial startup mode. * When the (PA1) KB primitive (cancel screen input) was implemented, we created a small Oops! It turns out it should have been called PA2. So PA1 is now deprecated (but will still work). The proper name for the function is now (PA2) * Correct DIFF error which did not allow specification of a Tab # operand if the tab was a 'special' tab (e.g. CLIP). Also correct missing color hilights by DIFF on Inserted and Deleted lines. * Correct line command handling to do with clearing the completed line commands. Some were being 'left behind'. * When the FM Line Command EXEC was introduced, it introduced some confusion with the equally named EXCLUDE primary command. (Both could be abbreviated to EX) So EXEC processing has been merged with the W line command (which opened a file using its default application. The W line command, if it includes an optional operand, will now process the selected file using that operand as the command. i.e. W against TEST.BAS will open TEST.BAS in its default App. W NOTEPAD against TEST.BAS will open TEST.BAS in the NOTEPAD App. * Additional corrections to colorization scan logic to better handle comments on lines which also have quoted strings. * Improve the DIFF command removal of comments feature to match the improved comment handling in colorization support. * Add additional new selection criteria to those commands which support string searches. The new operands are: C - Locate the string ONLY within a source Comment Q - Locate the string ONLY within a Quoted literal T - Locate the string ONLY in normal text (not a Quote, not a Comment) The operands can be combined to create custom searches. e.g Entering C T - locate the string within a comment, or in normal text, but not within quotes. These new operands are only supported if the Profile being used specifies a valid AUTO colorization configuration. * Corrections to program startup to handle running from a portable install of SPFLite. Some previous changes had inadvertently crippled the portable operation. Between 2.7.22344 AND 2.7.23019 (Jan 19/2023) ============================================= * Return code 4 from Macros was removed in a previous release. This change removes support for a Return Code 4 from an XFORM macro's Write routine. This used to be used to specify that the Write was simply 'not performed'. This change is highly unlikely to impact any users. * Add a new KB primitive (TrackC) - Track Create - to establish a new Track point. This is mainly intended for use in KB macros that may otherwise not create a new track point. * Enhance the SET substitution support. Previously the substitution could only replace entire space delimited 'words' in the command line. You may now use the normal concatenation symbol | to concatenate the SET text to the following characters. e.g. If SET ABC = DEF was defined, then =ABC|GHI would create DEFGHI. * Adjust Crash handling. A Loop Detect will only create a Crash Report when the option to crash is chosen. If "Continue Execution" is chosen, no report is written. Also correct the filename message when the data is saved in a .CrashSave file. * Correct the handling of the English Only / Not English Only internal Character List. It was not being generated correctly. * RETRIEVE will now ensure the command line scroll offset is reset so that the left end of the retrieved command is in position 1. * Add a new FM Line Command - EXEC / EX. This command requires a single operand, the name of a normal system command, BAT file or program. SPFLite will invoke the command and add the fully quoted filename from the selected FM line. e.g. EX NOTEPAD would open the selected file in the NOTEPAD editor. * Refresh the Status Bar after a macro execution to pick up any changes that may have been created by macro processing. (BNDS, CHANGE CS/DS etc.) * Correct color attribute management logic in swapping Scheme numbers. It was inadvertently resetting other non-Scheme attributes. * Improve the DataShift mode of the CHANGE command, the (DataInsert) and (DataDelete) KB primitives to prevent spotting and altering spans of blanks that are within quoted strings. Previously the code could inadvertently alter the format of the quoted string. * Reinstate the checking for a new SPFLite release. It allows the choice of automatic checking every 7 or 30 days, or specifying a Manual Check. A Manual Check requires the clicking of a button on the Options => General screen to perform the check. * Add some tracking of the usage of various SPFLite functions (Primary Commands, Line Commands etc.) Add a new option to the CFGMaint utility to create a tracking data file (a normal CSV type file). These hopefully can be collected and reviewed to assist SPFLite Support. * Correct the Picture types '&' and '%' (Word and non-word) to properly use the WORD values from the current active Profile. * Correct errors in the colorization scan to better handle comments and quoted strings. Between 2.6.22194 AND 2.7.22344 (Dec 10/2022) ============================================= * Correct the SORT command. It was NOT maintaining the associated STATUS of lines during the sort. (USER, .Labels, :Tags AND HANDLES) * Alter the TF LINE command to match the current writing style guides regarding the number of spaces recommended after a word ending in punctuation. Previously TF inserted 2 spaces, it will now onlt 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 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. * The DROP and KEEP commands have been removed. * ADD new option to the Options -> Screen to allow specification of a 'scale' factor for the sizeE 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 calculate the different box sizes. * 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, SET and EFT sessions. The backups will be stored in a standard $BACKUP folder, located within the HomeData folder (normally \Users\you\Documents\ * "Tidy uo" 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. * 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 generalized search routine handling of multiple optional search criteria. * Correct cursor positioning logic to properly handle multiple requests when processing stacked Primary commands. * Correct error in saving New sessions. * Rename the designation of new Tabs to (New) rather than (Empty) to better reflect how the tab was created. Between 2.6.22138 and 2.6.22194 (Jul 13/2022) ============================================= * Correct the (RestoreInsert) primitive to re-DISPLAY the NEW INS STATUS in the StatusBar. * Corrections to the (SWAP) primitive, to FIX random crashes. * Correct handling of the MAX operand of the ALIGN command. * ADD NEW FM primary COMMAND CSV [ALIGN]. This will CREATE a standard CSV (Comma Separated Value) file of the current FM displayed filelist. The ALIGN operand will trigger formatting WITH the COLUMN widths SET to the longest value. * STOP adding an LRDATE COLUMN to ALL Recent/PATH FM displays. Can't even remember a reason why this was ever done in the first place. * Correct handling of attribute characteristics when inserting TEXT WITH (DataInsert) MODE set. * Revise KEYMAP DIALOG to correct various TEXT formatting problems AND improve the Hints information. * Allow the (Record) KB primitive to accept a private CLIPBOARD NAME to receive the saved recording. e.g. you may now CODE (Record/MyCBName) * Introduce the (CmdPad) KB primitive. This FUNCTION will LOAD the CMDPAD.CLIP file AND INSERT the commands into the KB processing stream the same way a DO file IS processed. FULL details ON the NEW CMDPAD facility can be found in the HELP file under "Working with" => COMMAND Pad. * ADD a NEW startup COMMAND LINE option. The OPTION -SCRSIZE may now be used to request the SPFLite screen be opened WITH a specific SIZE rather than the values FROM the PREVIOUS termination. You may specify -SCRSIZE FULL, OR -SCRSIZE hhXww, where hh IS the screen height, AND ww IS the screen width. e.g. -SCRSIZE 43x100 FOR 43 lines by 100 columns. Between 2.5.22066 AND 2.6.22138 (May 18/2022) ============================================= * Changes to CREATE/REPLACE/SAVEAS >> 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 their 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 \ * 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 . 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 oroperly highlighting certain modes (BROWSE, VIEW, etc.) Between 2.5.21285 AND 2.5.21346 (Dec 12/2021) ============================================= * Correct the CHANGE COMMAND handling of +COLOR operands, it was setting the COLOR attribute BITS incorrectly. * ADD MAX TO the COMMAND operand hilighting FOR ALIGN, it was missing. * ALIGN COMMAND was NOT setting the Modified status. Corrected. * Repair the handling of the MACRO functions Get_Find_LPtr, Get_Find_Col AND Get_Find_Len which were 'broken' by the fix in 2.5.21285 for the ZFIND and ZLOC variables. * Relax the validation ON Tag operands TO allow more than just alphanumeric characters. * Alter the last three valid NOTE LINE types (WNOTE, XNOTE AND YNOTE) so that they are purely temporary. i.e. They will NOT be saved AND restored by normal STATE processing. * Alter the handling of ERROR messages generated during file LOAD FROM normal message LINE style, TO insertion AS WNOTE LINES AT the top of the initial screen displey. * Correct ERROR IN the screen DISPLAY logic when a DATA LINE IS exactly 1 BYTE shorter than the screen WIDTH available. * Correct handling of PREFIX AND SUFFIX IN the negative search routine. The boundary condition testing FOR the PREFIX/suffix was NOT thorough enough. * ADD a NEW ITEM TO Options => FM. THIS OPTION will allow you TO specify whether FM will use the standard MS Explorer STYLE logical sorting, OR whether you prefer the simple ANSI sorting used IN older SPFLite versions. * Correct PRINT handling. When NOT printing IN COLOR, it was USING the TextHi COLOR, which MAY NOT be dark depending ON the USER's color choices. It will now use BLACK when NOT printing IN color. * ADD a COLOR EXPORT / IMPORT ability TO the CFGMaint utility. THIS will allow COLOR 'themes' to be copied between Instances within the CFG file, or shared WITH other users IN the forum. e.g. there might be old 'green screen' themes, 'blue / white' themes, etc. * Correct cursor positioning after an EraseEOL IN the COMMAND LINE when the COMMAND length exceeds the screen width. * Remove the HnDIndex.txt file (which provides enhanced HELP search ability) FROM the EXE LOAD module itself, AND install it AS a separate file along WITH the MAIN SPFLite.CHM file. * Improvements TO colorization support: NOTE: These changes may trigger ERROR messages FOR some current AUTO files which may need correction manually. ** A NEW TYPE of WORD directive has been added - AUTOCASE. THIS NEW OPTION will cause the WORD TO be displayed IN the EXACT CASE of the TEXT IN the AUTOCASE statement. e.g. "AUTOCASE 5 OkCancel" would DISPLAY the TEXT OKCANCEL AS OkCancel. ** A CHECK FOR duplicate WORD / AUTOCAPS / AUTOCASE words will now be performed. ** The QUOTED directive may now optionally specify the delimiters TO be used TO identify quoted strings. IF no OPTIONAL parameters are entered it will operate AS previously WITH SINGLE, DOUBLE AND back quotes AS the delimiters. Delimiters are entered AS pairs (leading AND trailing) which DO NOT need TO be the same character. e.g. The current QUOTED 5 STATEMENT IS treated AS QUOTED 5 "" '' `` An example WITH different delimiters mmight be QUOTED 5 <> IF the < AND > were the quoted STRING delimiters. Between 2.5.21238 AND 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 mis-match, 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 kwyword 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 = L 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 PROF LINES 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 cancelled 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. Between 2.5.21186 AND 2.5.21238 (Aug 26/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 IN 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. Between 2.5.21174 AND 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 the 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. * ADD RELOAD AND END TO the list of commands allowed TO be processed when there are pending LINE commands. Between 2.5.21149 AND 2.5.21174 (Jun 23/2021) ============================================= * Correct handling of the ALIAS forms of REPLACE (REP AND REPL). They were NOT being treated properly AS REPLACE. * Further revisions AND enhancements TO the HELP command. The FULL search MODE IS now much more flexible. Please review the Help COMMAND section. * Correct test FOR an existing file IN the CREATE logic. It was NOT checking unqualified file names properly. * Correct RFIND/RCHANGE handling, they were NOT recognizing the presence of a PREVIOUS literal STRING IF it was a null string. * REPLACE the FM SORT logic WITH a standard Windows Explorer STYLE ordering. THIS ordering treats embedded numerical strings AS logical numbers regardless of the lengths of the string. E.G examine the following list TO see the effect. 2string 3string 20string st2ring st3ring st20ring string2 string3 string20 * Alter the ACTION SAVE processing so that the COUNT PROCESS IS ignored IF the file IS IN un-modified status. ONCE a modification occurs, the ACTION COUNT will continue AND eventually the SAVE will be done. Of course the SAVE will CLEAR the modified STATE, AND the PROCESS starts over. Between 2.4.21112 AND 2.5.21149 (May 29/2021) ============================================= * Major internal revision TO the way Primary commands are parsed, AND the various search/change criteria are managed. Previously, many of the Primary commands, which did NOT actually use the search / change criteria, would however still cause these criteria TO be reset. THIS caused subsequent attempts TO perform RFIND / RCHANGE commands TO fail WITH "No previous Find / Change criteria". This should now work as expected. * Correct handling of the CUT NEW OPTION TO prevent false prompts when closing a CLIP session FOR a named clipboard. * Alter handling of the START FIRST/LAST OPTION so that these will OVERRIDE the screen positioning done by normal STATE repositioning. IF the STATE location IS preferred THEN START PRIOR should be used. * Correct handling of the FM FIND-IN-Files search exemption list. IF the entry was marked WITH the (W) OPTION TO indicate the file should be normally opened by the associated Windows application, the file exemption search would fail. * Correct handling of the UNDO checkpoint files. Certain commands (like CREATE OR RENAME) can cause the active PROFILE TO change. IF there was a difference IN the SETUNDO value between the old AND NEW profiles, the UNDO file table could be corupted. These commands should heve performed re-allocation of the files, AND weren't doing so. This has been corrected. * Correct handling of the PAGE MARGIN values IN PRINT SETUP. They were NOT being saved AND restored correctly AND were always treated AS 0 (zero). * Revise HELP COMMAND processing TO provide a more thorough AND consistent search FOR Help Topics. HELP will now HANDLE multiple search terms TO assist IN locating suitable topics. * Alter the File Manager STATUS BAR TO DISPLAY a message WITH the LINE COUNT AND position of the current display. Format IS: LINE x:y of z e.g. LINE 4:28 of 64 Along WITH THIS, the LOCATE COMMAND will now ACCEPT a simle numeric operand AS a request TO position TO that line. * Correct ERROR IN handling the PROFILE WORD setting. The edit of the LINE was NOT properly displaying the LINE's contents as it was typed. * ADD a NEW KB primitive (Refresh) which may be used IN File Manager TO force a refresh of the DISPLAY contents. THIS may be needed AT times TO pick up changes (deletes etc.) made by external means. * Correct ERROR IN the Edit LINE move COMMAND (M/MM). ANY labels IN the selected SOURCE LINE RANGE were dropped instead of being moved along WITH the data. * ADD a NEW OPTION TO the KEYMAP dialog. There IS a NEW BUTTON, which can be used TO RESET a specific Key (AND modifiers) TO the DEFAULT value that SPFLite would have used ON a NEW installation. Simply place the cursor IN the TEXT BOX FOR a specific key combination, AND press the NEW button. * Correct messages issued following a FIND FOR a Delimited STYLE literal. The message was displaying the raw FIND operand rather THEN the found string. Also correct the determination of when TO DISPLAY the found STRING IN Hex (When it contains non-printable characters.) * Correct support FOR COMMAND Chaining. It has been 'broken' for a long time, but never reported. Between 2.4.21104 AND 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. Between 2.4.21101 AND 2.4.21104 (Apr 14/2021) ============================================= * Correct a nasty bug IN the Crash TRACE logic, which would slowly FILL the TRACE table, eentually triggering a crash. Correct similar missing statements IN other functions. * Correction TO the STATE LOAD process. The Top-of-screen LINE was NOT always being properly re-established. * Correction CFGMaint tool TO HANDLE spaces IN the FMLayout string. Between 2.3.21053 AND 2.4.21101 (Apr 11/2021) ============================================= * Significant re-WRITE of the File Manager support. Please review the Help file section "Working with - File Manager" FOR FULL details. * Rename the CLONE FM LINE COMMAND TO Klone (abbrev. K) TO FREE up the C LINE COMMAND TO make it available FOR its normal C/CC usage. (See NEXT ITEM) * Allow the primary CUT COMMAND TO be used IN File Manager. When used within File Manager, the C/CC LINE commands may be used TO SELECT which items are TO be copied TO the clipboard. The DATA cut TO the CLIPBOARD will be the FULL pathname of the file enclosed IN DOUBLE quotes. (NOT the contents of the file.) ALL appropriate CUT operands may be used, APPEND, NEW, RAW, AND named clipboards, but NOT LINE ranges, X/NX OR U/NU. * Alter processing of FLIST entries TO support both unquoted AND quoted PATH/filenames. * Alter the RECALL COMMAND TO allow an * TO be specified AS the FLIST name. THIS will be treated AS a request TO use the contents of the CLIPBOARD AS the FLIST contents. * Allow the Primary RUN COMMAND TO be used IN a CLIP Edit session. RUN now supports an initial operand of a file extension (.xxx) TO provide the filetype FOR run. IF NOT provided FOR CLIP, a .BAT will be assumed. The NEW operand can also be used TO OVERRIDE the extension when RUN IS issued IN a normal Edit session. * Correct MACRO FUNCTION SET_CSR. It was NOT setting the OPTIONAL high-light when requested. * Correct program COMMAND LINE parsing so that UNC format filenames are properly handled. * Prevent duplicate entries FROM being created IN the list of file-types which are TO use the DEFAULT Profile. * Correct the procedure used TO move the CFG file TO a different location. The HomeFolder AND HomeData entries IN the NEW CFG file were NOT being correctly updated ON the initial run USING the NEW location. * Revise startup PROCESS of handling COMMAND LINE FileName/FilePath operands TO avoid 'collisions' with saved File Manager paths and masks. * Enhance the program Crash handler. The pop-up has been revised TO be more readable, AND a NEW OPTION made available which will request an attempt TO SAVE ALL active edit TAB DATA before completing termination. The DATA IS saved IN a NEW file WITH a suffix of .CrashSave. * ADD an additional OPTION TO the Pop-up DIALOG which appears when a NEW file-TYPE IS encountered, AND no current file PROFILE has been established. IF the file IS actually a non-TEXT file-TYPE, the NEW OPTION will skip the OPEN, ADD the file-TYPE TO the list of non-editable file-types, AND ADD the (W) operand which indicates that, IF clicked ON, the file IS TO be opened IN the DEFAULT Windows application FOR thet 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). * File Manager can now HI-lite the active Quick Launch BAR SELECTION IF desired. The background COLOR FOR the selected ITEM can be specified IN Options => Screen by the BG2 value FOR FM Quick Launch Bar. * The KEYMAP LIST OUTPUT will now break OUT the PFSHOW labels into a separate COLUMN TO provide more readability. Between 2.3.21016 AND 2.3.21053 (Feb 22/2021) ============================================= * Correct logic of the Backup Retention handler. It was failing TO DELETE backups which were past the expiry period. * Altered the TitleCase routine TO treat additional chacters AS 'word' delimiters. The following characters were added IN addition TO the space character: ,.:;/\ * Treat a request TO OPEN a file, which finds the file already OPEN IN a TAB, AS a non-error. A message will still be issued AND a SWITCH made TO the located TAB, but no warning BEEP will be made. * Correct loading of UTF files TO properly HANDLE embedded TAB characters. * Remove restriction ON the BOM UTF setting so that BOM OFF can be used WITH ANY of the UTF variations. * Correct handling of stacked commands ON the COMMAND LINE when ANY of the commands involve altering ANY LINES's Exclude status. * Correct the reverse search routine TO properly establish the RESUME SCAN location. * Revise the program startup when opening IN FULL-screen MODE TO prevent the DISPLAY of a non-fullscreen WINDOW during the process. * When the pop-up TO SELECT a PROFILE FOR a previously unseen file TYPE appears, the pull-down list of existing PROFILE will no longer contain the names of Profiles which are currently SET TO USE a different Profile. * IF doing a KB (Paste), the LINE inserted will also be TAB processed IF ImportTabs IS set. THIS will now agree WITH how the Primary PASTE COMMAND HANDLES it. * Alter the (DataInsert) primitive TO be a TOGGLE ON/OFF rather than just turning DataInsert MODE ON AND USING (INSERT) TO turn it off. N.B. (INSERT) will stll perform the turn OFF AS before. * Correct END processing. IF AUTOSAVE ON NOROMPT was SET, AND the file had NOT been modified (thus NOT needing a SAVE) THEN STATE saving was also being incorrectly skipped. * Alter the RELOAD processing so that IF an IMACRO IS specified, it will be re-invoked after the DATA IS reloaded. * Correct STATE saving routine handling when immediately prior editing commands used X/NX OR U/NU operands FOR LINE filtering. Between 2.3.21016 AND 2.3.21026 (Jan 26/2021) ============================================= * Correct painting of FM screem 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. Reorder ALL the topics under Working WITH SPFLite TO be IN alphabetical order (AND remove the "Working with ... " FROM the beginning of EACH SUB-topic). Between 2.2.20255 AND 2.3.21016 (Jan 16/2021) ============================================= * Correct saving of the AutoScroll value, it was saved incorrectly so ANY changes were effectively 'lost'. * Revise startup sequence ON Initial Install so that a WINDOW IS always present during the process. Previously there were periods when no WINDOW was OPEN AND it gave the appearance that SPFLite had terminated. IF a 2nd COPY of SPFLite was started during THIS period the CFG file was NOT built properly. * Correct handling of the EOL parameter when setting it via the PROFILE Edit dialog. * Correct ERROR IN reading INCLUDE files during SUBMIT processing. The improvements IN recent releases FOR large file handling missed 1 SOURCE LINE ONLY used by the INCLUDE processing. * ADD a NEW utility program, CFGMaint, TO the installation. THIS tool allows you TO EXPORT OR IMPORT the SPFLite CFG file which contains ALL your preferences FOR the program AND FOR ALL the various file Profiles. A NEW section has been added TO the documentation "Working with the CFGMaint utility". Please review this for details on ts capabilities and usage. * Correct top of screen positioning logic when the Maintain screen position after LINE Cmds OPTION IS selected. * The SPFLite setup program will now ADD the Installation folder TO the system's PATH statement. * File Manager will now resolve Shortcut entries (i.e. .LNK files). IF a shortcut TO a normal file, the file will be processed, IF it points AT a folder, the folder will be opened IN File Manager. AS the cursor moves over the list, the real NAME FOR LNK files will appear IN a STATUS LINE Box. * ADD a TOPMOST attribute TO Message Boxes. Hopefully THIS will prevent them opening beneath the MAIN SPFLite Window. * Correct an internal typo IN managing the Options keyword table. * Correct LOCATE PARSE ERROR FOR LINE number zero. * The DIFF COMMAND has been enhanced considerably. It will now support: * Use of LEFT/RIGHT bounds TO restrict the RANGE of TEXT comparisons. * An OPTION TO remove/nullify SOURCE CODE comments FROM the comparison based ON the AUTO colorization file FOR the selected file types. * Embedded TABS can be ignored (treated AS spaces). * Compares can be requested TO be CASE-insensitive. * You can exclude LINES FROM the DIFF process. (Either X OR NX LINES) * Strings of multiple spaces can be reduced TO a SINGLE space before comparison, THIS allows comparison TO be done properly regardless of indentation, varying comment spacing etc. * Format of the saved DIFF report filenames was EXTENDED WITH additional fields. THIS will provide FOR better information ON the DIFF LIST SELECTION panel, AND will allow multiple DIFF reports of the same two files TO be retained. * Correct the FM Config panel logic TO properly invoke EDIT of a Profile. It was incorrectly following a PROFILE's USE value and displaying the USE'd PROFILE rather than the one selected FROM the panel * Cleanup inconsistency IN saving File Manager configuration parameters. * Prevent a LOOP IN FIND/Change logic when PROFILE MINLEN > 0 IS IN effect AND the Change would attempt TO shrink a totally blank line. * Revise PROFILE storage routines TO eliminate possibility of storing values IN an alternate active Profile. * Extend STATE processing so that STATE information IS saved when a session IS closed, AS LONG AS the DATA IS NOT im modified status. Ths will now also perform STATE saving IN Browe AND VIEW sessions. * Correct AUTO colorize SCAN TO correct an ERROR IN handling comments which use bracketed delimiters. Like /* */ * ADD several NEW DEFAULT keymappings TO the initial Install version of the KEYMAP. See the HELP file (Differences between SPFLite AND ISPF -> DEFAULT Key Definitions). THIS change will have no effect ON existing installations. * Correct logic ERROR IN handling the SUFFIX operand of the Negative STYLE 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] Between 2.2.20191 AND 2.2.20255 (Sep 11/2020) ============================================= * Correct STATE saving. It was incorrectly including empty INSERT LINES IN the STATE file data. * Correct CLIPBOARD read routine. IF the CLIPBOARD was empty, a LOOP would occur. * Cosmetic changes TO the DIFF OUTPUT display. Added file timestamps, AND other improvements TO the display. * LOCATE will now ACCEPT an operand ALIAS of "DIFF" TO equal the "U" operand. Useful FOR locating the NEXT DIFF mismatch lines. * ADD a NEW OPTION TO request an attempt be made TO keep the screen position AS it was AT the TIME of the Attention (Enter OR PFK). THIS effctively means that screen (positioning) commands issued by LINE Commands outside the currently VISIBLE WINDOW will be ignored. THIS NOT a 100% guarantee, depending ON the various COMMAND combinations that are possible, but will usually prevent the screen FROM 'moving' away from it's last position. See Options => General => "Maintain screen position after Line Cmds" * Correct MACRO FUNCTION FMGet_Folder_Class, it was simply NOT doing what the documentation said it was. * Correct handling of UTF8 files which DO NOT have a BOM file marker. Even though SOURCE=UTF8 was SET, they were being treated an ANSI files. * Correct DIFF COMMAND when the filenames contain embedded spaces. Between 2.2.20151 AND 2.2.20191 (Jul 9/2020) ============================================= * OPTIMIZE CODE which HANDLES the CLIPBOARD strings. THIS will improve the performance of CUT / PASTE / DIFF when large amounts of DATA are involved. * Correct PROF EDIT DIALOG verification routine FOR the IMACRO AND XFORM values. Clean up message formatting. * Correct CFG database routine which was inadvertently doing a TRIM ON a FIELD during processing causing a loss of leading blanks. * Correct (again) handling of the MARK string. * Alter UNDO / REDO TO report how many repeats are available IN the UNDO stack. * Expand INSTANCES support so that EACH INSTANCE will have it's own Recent Files FLIST. e.g. An INSTANCE named FRED would be USING "Recent Files.Fred.FLIST". * Correct Options handling of the KBD variables, they were NOT being saved correctly since the migration TO SPFLite2. * Alter DIFF processing TO use PRIVATE Clipboards WITH temporary names. THIS includes: + Modifying the TAB headers TO identify the files which DIFF compared. The enhanced TAB headers help TO identify tabs when multiple DIFF reports are OPEN AT the same time. + DIFF reports will be kept IN the \SPFLite\CLIP\ days FOR reference. + Alter FM OPEN DISPLAY TO DISPLAY the NEW DIFF format TAB headers rather than calling them ALL (CLIP). + ADD the USER LINE flag TO ALL non-equal matches. THIS will allow a LOCATE U TO quickly move TO the NEXT difference section of the report. + ADD a NEW DIFF operand - LIST. A DIFF LIST COMMAND will DISPLAY available reports IN the CLIP folder TO allow FOR easier retrieval FOR viewing. * Revise the File Watch routines TO better cope WITH the slower ACCESS times of NAS drives. Remove unneeded delays IN shutting down a FileWatch. * When a modified file has been detected by FileWatch, AND reload IS selected, perform the reload USING XFORM, IF XFORM performed the original load. * Performance improvements TO some of the CFG file support routines TO improve SPEED, particularly during the first execution of SPFLite. * ADD OPTION TO the Pop-Up FOR a missing file TYPE PROFILE TO simply CANCEL OUT of the file Open. * Allow RELOAD IN a BROWSE session. * Allow the File Manager FF COMMAND TO be used IN the OPEN Files list. * Allow SAVEAS FOR an XFORM loaded file TO use the XFORM WRITE support. * Correct parsing ERROR IN NUMTYPE. * Correct the routine which provides the "Default Folder" FOR many functions. It was NOT correctly picking up the current FM folder. * When a NEW PROFILE IS created dynamically AT file OPEN TIME, SPFLite will now automatically SET the SOURCE AND EOL values IN the NEW PROFILE based ON the characteristics of the first file loaded. * The PROFILE setting primary commands (AUTOBKUP, CAPS, COLS, EOL, etc.) will now, IN the confirmation message, indicate whether the NEW value was saved OR NOT, based ON the PROFILE's LOCK status. * Major reorg of the Macros documentation. The details FOR ALL the various MACRO functions will now appear AS items IN the LEFT-hand MENU, making it easier TO quickly 'get to' the desired item, rather than scroll, scroll, scroll. Between 2.1.20072 AND 2.2.20151 (Jun 1/2020) ============================================ * Correct handling of STRING storage IN the CFG file. Strings were NOT being converted TO UTF8 before saving, meaning ANY TEXT WITH characters > CHR$(127) were NOT being saved properly. * Correct insertion of the PROF LINES into the TEXT when triggered by a PROF LOAD request of a different Profile. IF the COLS ON/OFF setting was changed by the NEW PROFILE an invalid LINE POINTER could be created resulting IN corrupted screen displays OR an outright crash. * ADD a NEW operand TO CUT - NEW - which will prevent saving a permanent CLIP file IF one of the same NAME already exists. IF one does exist, a prompt will appear asking permission TO overwrite it. * The addition of the PROFILE BOM operand IN 2.1.20072 defaulted the setting FOR THIS NEW variable TO ON, even when the SOURCE was NOT UTF8. THIS causes an unnecessary ERROR pop-up when editing non-UTF8 Profiles. Additional logic was added TO bypass THIS annoying message. * Extend the MACRO Get_Gbl_xxx_Count functions TO allow the specification of a SUB-table number. Formerly, ONLY the COUNT FOR ALL tables was available. * Correct handling of LINES WITH the MM CC AND RR LINE commands TO properly HANDLE embedded special LINES like TABS, BNDS etc. Previously these LINES could END up without an internal attribute LINE, triggering crashes. * Correct screen positioning when multiple positioning commands are issued IN one stacked COMMAND sequence. e.g. TOP; L 100 The 1st COMMAND never actually gets physically displayed AND causes the position calculation FOR the subsequent COMMAND TO be wrong. * Remove the CASE COMMAND AS a File Manager primary command. The OPTION was NOT well known, AND had limited usefulness. AS well, the CODE was faulty AND simply NOT worth correcting. * Correct LINE COMMAND handling when the specified COUNT operand caused excluded LINES TO be part of the COPY operation. The number of LINES handled was being incorrectly calculated. * Correct PROFILE handling of TABS AND MARK. The Version 2 conversion inadvertently saved the values within quote marks. THIS version will 'clean up' that error. * Prevent block MODE LINE commands IN File Manager FROM incorrectly USING a numeric operand. * Increase SIZE of the File Manager MSG FROM 64 TO 128 characters. THIS will aid macros which wish TO SET longer messages. * Correct ERROR handling FM LINE COMMAND entry IF a space IS the first KB entry IN the field. * Correct ERROR IN handling the prompt when a VIEW session IS ended, AND the contents have been modified. * Revise the routine TO determine the valid DISPLAY characters. PREVIOUS CODE 'missed' some invalid characters. * ADD a NEW COMMAND DIFF TO compare TEXT files AND report the differences WITH marked up AND colorized TEXT TO indicate insertions, deletions etc. * Revise the File WRITE routine TO improve writing speed. THIS will be most noticeable when writing TO a Network Drive. * Introduce preliminary Beta support TO allow an external MACRO TO perform the loading AND saving of files. Note: THIS support IS FOR Advanced users AS it requires the creation of macros TO DO the actual 'work'. AT THIS point the documentation IS incomplete AS we are still "Working through" the details of how all this will work. Any questions and comments are welcome AND should be done via the SPFLite Forums. THIS support will provide FOR two different usage scenarios. First: it will provide a means TO ACCESS file types that SPFLite can NOT normally handle. e.g. Databases, BINARY files etc. Second: it would permit the DATA FROM structured TYPE files TO be reformatted FOR easier viewing AND browsing. OR displaying DATA IN Dump format. The NEW facility IS called Transform AND introduces a NEW PROFILE OPTION - XFORM. There IS a NEW "Working with" topic IN the Help file discussing THIS support. Between 2.1.20019 AND 2.1.20072 (Mar 15/2020) ============================================= * Correct ACTION processing TO suppress doing the SAVE when the session IS a BROWSE OR VIEW session. * ADD additional validation FOR some of the critical PROFILE variables. * Upgrade the version of thinBasic shipped WITH SPFLite FROM 1.9.6 TO 1.10.7. No changes TO SPFLite itself were required TO upgrade THIS release. * A NEW PROFILE OPTION has been added - BOM - TO specify whether the BOM (BYTE Order Marker) used WITH UTF8 files should be written when saving the file. * Extend PowerType keyboard support TO HANDLE the PEN colour keys. * Correct X LINE COMMAND TO properly position cursor when the RANGE TO be excluded will be collapsed into a subsequent excluded LINE set. Between 2.1.20019 AND 2.1.20072 (Mar 15/2020) ============================================= * Correct ACTION processing TO suppress doing the SAVE when the session IS a BROWSE OR VIEW session. * ADD additional validation FOR some of the critical PROFILE variables. * Upgrade the version of thinBasic shipped WITH SPFLite FROM 1.9.6 TO 1.10.7. No changes TO SPFLite itself were required TO upgrade THIS release. * A NEW PROFILE OPTION has been added - BOM - TO specify whether the BOM (BYTE Order Marker) used WITH UTF8 files should be written when saving the file. * Extend PowerType keyboard support TO HANDLE the PEN colour keys. * Correct X LINE COMMAND TO properly position cursor when the RANGE TO be excluded will be collapsed into a subsequent excluded LINE set. Between 2.0.19350 AND 2.1.20019 (Jan 19/2020) ============================================= * Correct CHANGE COMMAND USING 'D' type search literals. The CHANGE was not USING the correct STRING length of the located string. * Change the sequence of program initialization TO resolve the sporadic errors pointing AT the PCRE_REGEX_COMPILE routine. * Alter Version 2 packaging TO completely separate its install FROM the old V11 AND prior releases. * REPLACE the SPFLite Debug CONSOLE WITH a NEW version. THIS version can now be Cleared OR Closed via a NEW CLS COMMAND without inadvertently closing the MAIN SPFLite window. Between 2.0.19344 AND 2.0.19350 (Dec 16/2019) ============================================= * Correct ERROR IN setting up Keyboard Mapping ON a completely NEW install. The DEFAULT configuration was NOT properly stored IN the SPFLite.CFG file. Between 2.0.19339 AND 2.0.19344 (Dec 10/2019) ============================================= * Update SQLite INTERFACE TO support configuration filepaths which contain international characters. * Revise the procedure FOR moving the configuration file / folders TO a NEW location. There was a minor chicken-AND-the-egg situation IN the old procedure. No change TO the external PROCESS IS required. Between 11.0.19192 AND 2.0.19339 (Dec 05/2019) ============================================= * TO reflect the significant changes internally IN THIS release, the NAME has been revised FROM SPFLite TO SPFLite2. Since the executable IS now called SPFLite2.EXE it allows both the NEW release AND the old TO co-exist AT the same time. Installation of THIS release will NOT alter OR change ANY of the configuration DATA files of your old release. * Total revision of the way your Options AND Preferences are saved. IF you are a 'normal everyday' user, you will not notice any changes to SPFLite appearance OR operation. ALL your current settings will migrate automatically. There IS a Release 2 Migration document available FROM the Start Menu. It contains more details ON migration considerations. * FOR advanced users, SPFLite2 introduces the ability TO customize the handling of Options storage, AND allows FOR creating alternate environments FOR SPFLite where different setting combinations can be maintained. e.g. different Keyboard layouts, different COLOR schemes, different screen sizes AND OR fonts. AS well, the location of the various SFLite SUB-folders (FILELIST, CLIP, MACROS etc. can be moved TO a location of your choice. Read the "Managing SPFLite Instances and Customization" IN the Help file FOR FULL details ON USING THIS NEW support. * Enhance the Crash report TO include a TRACE of the last 25 interactions before the problem ocurred. * Correct ERROR IN handling of the RIGHT MAX command. * Correct crash IN EXIT processing caused by accessing TAB related DATA after the tabs had been closed. * Correct MACRO functions Reset_Gbl_Num AND Reset_Gbl_Str when clearing SUB-tables. The RESET was NOT clearing ALL the entries. * Correct creation of STATE DATA during CREATE/REPLACE when ONLY a starting LINE RANGE operand IS coded. * Prevent KEYMAP LIST FROM displaying keys which are NOT even mappable. * Correct LEFT/RIGHT MAX scrolling problems. * ADD a NEW operand TO STATE TO allow creation / update of STATE information without having TO SAVE the file. Entering STATE SAVE will perform THIS regardless of the current setting of STATE (ON, OFF etc.)