May 2026. 

Changes
. fixed a bug that crashed lsp when a file passed the 'is it a database file' test but contained non-database keyword blocks like EQUILIBRUM_PHASES. Now simply reports their presence
. the ripgrep (rg) app is now used for preliminary file filtering
. improved filtering, both regex and set ("element"), both with 'and' and 'or' logic
. the -f set filter: the colon separator (:) is now the 'or' separator when filtering elements since the regex filer now uses | for 'or'
. added new keywords MEAN_GAMMAS, RATE_PARAMETERS_HERMANSKA, RATE_PARAMETERS_PK, RATE_PARAMETERS_SVD, GAS_BINARY_PARAMETERS
. can now change starting directory with the file mask
. new canonicalize, encoding detection and tidy routines
. Updated WinMergeU to 2.16.36.0
. updated PhreeqcRM to 3.9.0-17591
. added a checksum for RATES blocks and a full printout of the block with the -e option
. file mask: @<filename.list> will read a list of files to process rather than using the normal file mask
. f4 file extension is .txt by default with default separator tab to allow commas in phase names
. the command line will now accept multilingual input; searching is now based on UTF-8 strings for better multilingual searches
. low level code page detection and changing including per file on the fly auto change of code page
. the tilde is now used to separate interaction pairs rather than the underscore to minimize conflicts
. colour highlighting of matches when searching
. added ability to force output of any blocks and individual items to filter output, e.g. useful when using -f2 to add RATES, LLNL parameters etc
. Linux version available
. updated help and installers

New options
-a=0, -a=1, -a=2, -a=x, -a=2x for examining the results of the file filtering
-fpre : additional prelim file filter based on a regex - eliminates non-database files quickly without detailed file analysis
-xs : rapidly eliminates any files containing a 'SOLUTION_SPECIES' block (like ordinary input files rather than database files)
-kw : add a list of 'unknown' PHREEQC keyword blocks (i.e. those that lsp does not recognise so will quietly skip - future proofing)
-cd : changes the current directory to this directory before running
-@ : options file for reading options
-m : muliple END option else stops on first END
-g : code page now working with Windows API, default is -65001 (UTF-8)
-fl : long species filter: search in the whole species string not just the species name
-fr : fast line-by-line regex filter
lsp.ini automatically checks for a file containing initial file options

See help for more details, eg. lsp -f for option -f, lsp -h1 for one-line help summaries or lsp -h for full help.
