v5.45 (2025-03-16)
  * Bugfix for file compression autodetection

v5.44 (2025-03-16)
  * Changes from barracuda156@github.com for compiling on MacOS

v5.43 (2025-03-15)
  * More work on tidying up linked-lists implementation
  * If a variable list/map is declared with 'LIST_FLAG_UNIQ' then assume items are added to the variable list only once, and don't try to look up previous items to replace them (big speed increase)
  * Support using lzip application for compession/decompression of streams
  * Add STREAMDetectCompression and compression autodetection for streams and files

v5.42 (2025-03-08)
  * Make StrUnsafeTrunc a bit safer, by checking string is not null
  * Add 'daystate' feature to TerminalCalendars

v5.41 (2025-03-06)
  * Fix another crash in List.c
  * Use CompareStrNoCase in preference to strcmp and strcasecmp in a few places.

v5.40 (2025-03-06)
  * Add 'binary' encoding
  * Avoid use of 'SetStrLen' in stream/binary functions to avoid polluting the StrLen cache
  * Fix bug in ListFindNamedItemInsert returning unset 'Prev' variable (revealed by using -O0 to turn off optimizations)
  * Added 'StringListAdd' and 'StringListAddUnique' functions
  * Don't use '+' as padding for xxencode
  * Fix 'trailing bytes' on all base32 encodings


v5.39 (2025-02-15)
  * Fix issue with STREAMReadBytes returning 'STREAM_CLOSED' too early
  * Changes to use TerminalCalendar in libUseful-lua

v5.38 (2025-02-14)
  * Fixes for LineEdit in TerminalReadPrompt
  * TerminalReadPromptWithPrefix now accepts a history list
  * Ensure that data between XML tags that ends in '/' isn't mistaken for a close tag

v5.37 (2025-02-09)
  * TCP Quickack support added and used as default in HTTP Get
  * 'Full flush' option added to file and TCP, using fsync with files and pipes and disabling Nagle's algorithm for TCP
  * 'Ordered List' functionality in List.c simplified/repaired
  * When writing to pipes in STREAMs honor the PIPE_BUF constant if declared
  * Added RAWDATAMove and RAWDATATrunc functions to enable using RAWDATA as a fifo
  * Websocket client connection ceases to be experimental
  * Added 'STREAMReadMessage' to handle websocket messages
  * STREAMReadDocument now uses STREAMReadMessage and is the user interface to websocket messages
  * Removed 'insert line feeds between websocket messages' testing bodge
  * ditch __builtin_prefetch in List.c, once upon a time it seemed to give a benefit, but not now

v5.36 (2025-02-04)
  * Restructure XMLGetTag and ensure whitespace is preserved in data between tags
  * Properly implement 'websocket frame too big', closing connection when this happens
  * Websocket code no longer outputs http debugging.
  * Handle prompt/prefix in new 'LineEdit' based TerminalReadLine 
  * Ensure CopyStr/CatStr return allocated memory even if both dst and src start as null
  * Handle 'Stolen characters' after unicode in TerminalPutStr
  * More work on LineEdit.c

v5.35 (2025-02-1)
  * Added LineEdit.c for full line editing with history
  * Handle 'bigframes' in Websocket.c
  * Add bech32 encoding

v5.34 (2025-01-23)
  * Fixes for parsing unicode in 'UnQuoteStr'
  * Handle NULL URL passed to 'STREAMOpen'
  * Added function 'VarsFromNameValueList' to Vars.c

v5.33 (2025-01-10)
  * Keep '/' in XML tag data, in order to detect <tag /> as end tags
  * Added 'XMLIsEndTag' function

v5.32 (2025-01-07)
  * Added 'SetNumericVar' and 'AddToNumericVar' functions in Vars.c
  * Added 'IsLeapYear' function in Time.c
  * Added 'GetDaysInMonth' function in Time.c
  * Added 'CalendarFormatCSV' function in Time.c
  * Added TerminalCalendar widget
  * Fix issue in PasswordFile.c where 'Extra' data can get appended to password when doing password check

v5.31 (2024-12-20)
  * Added 'FormatDuration' function
  * Added STREAMGetDestination function
  * Fixes for udp and bcast socket types

v5.30 (2024-10-29)
  * Fix crash if TerminalTextAlign has NULL for the Terminal
  * Added HttpGet and HttpPost functions
  * Improvements to httpserver authentication. 
  * Add 'extra' field to passwords file to allow storing data against a user.

v5.29 (2024-10-29)
  * much more seccomp work
  * add 'data' option to pty config (PtyParseConfig) so if a pipe or pty is going to be used for raw data transfer, use FLUSH_ALWAYS not FLUSH_LINE
  * support uuencoded data using either ' ' or '`' as 1st char of alphabet
  * add support for yenc encoded data

v5.28 (2024-10-21)
  * added seccomp support, and process security levels
  * change SS_ stream state values to LU_SS_ to prevent clashes with linux defines like SS_CONNECTING
  * fixes for rbase64 encoding. added name 'rbase64' and decoding this encoding now works

v5.27 (2024-10-16)
  * honor timeout for connect, not just for read  
  * added 'autorecover' feature to file STREAMS
  * fix issues with parsing RSS feeds (some tags could have whitespace or other text prepended to them)

v5.26 (2024-09-07)
  * Fix incorrect addition of 'progress' and 'remain' to options of non-progress-bar terminal widgets.
  * Make sure all DataProcessorInit functions fit the new function prototype.
  * TerminalChooser now honors the 'width' setting, and intelligently fits itself into that

v5.25 (2024-08-31)
  * Symmetric Encryption now supported for STREAMs
  * Handle situation where logfile is rotated under an app that has it open
  * Stop trying to rotate hardened logfiles. rotate is incompatible with append-only files

v5.24 (2024-08-20)
  * Move namespace/container code to Containers.c and make general improvements
  * Exit out of TerminalReadText if escape or ctrl-c entered
  * Added 'l' option (list files on remote server) to SSH streams
  * CHANGED ARGUMENTS TO SSHConnect AND SSHOpen
  * ssh streams can now accept config options bind=<address> and config=<path>
  * Rotate logfiles even if not open by app

v5.23 (2024-07-26)
  * Improve attribution of base64 and hashing functions
  * fix -net/nonet (flag meaning was inverted)
  * ProcessNoNewPrivs now handles 'already set' and is no longer static. 
  * Call setsid before setting controlling tty in PtySpawnFunction
  * added CGIReadDocument

v5.22
  * fix clash of flags between PROC_NO_NEW_PRIV and PROC_NOSHELL

v5.21
  * replaced 'exit if can't chroot/chdir' with 'strict' option to ProcessApplyConfig
  * Added ERRFLAG_ABORT to error handling functions, aborts the process after reporting the error
  * Added ERRFLAG_SYSLOG to error handling functions, forces syslog even if library-wide syslog flag isn't set
  * MakeShellSafeStr now quotes/blanks out '$' in addition to other dangerous characters
  * MakeShellSafeStr can now report unsafe characters via syslog if the SHELLSAFE_REPORT flag is passed
  * MakeShellSafeStr can now abort program if the SHELLSAFE_ABORT flag is passed and unsafe chars are found
  * FileMoveToDir will now copy the file if a simple rename fails
  * Negative values for width and height on TerminalMenu and TerminalProgress set width as 'terminal width minus that value'


v5.20 (2024-07-11)
  * Added  TOTPAtTime and TOTPPrevCurrNext

v5.19 (2024-07-09)
  * Added 'nosu', 'noprivs' options to 'ProcessApplyConfig' that prevent a process escalating priviledges via su/sudo/setuid
  * check for prctl properly using './configure'
  * Eliminate use of 'fopen' in 'GetHostARP'
  * General cleanup of 'ProcessApplyConfig'
  * If chdir or chroot fail in 'ProcessApplyConfig' print "too dangerous to continue" and exit

v5.18 (2024-07-01)
  * FindFileInPath now returns a real file, rather than symlink, unless a symlink is all it can find (now it really does).
  * Clean up some errors revealed by -Wall

v5.17 (2024-06-30)
  * FindFileInPath now returns a real file, rather than symlink, unless a symlink is all it can find.
  * Added TerminalPrint function.

v5.16 (2024-06-26)
  * handle http digest authentication
  * add 'AppendVar' function

v5.15 (2024-06-20)
  * add/fix support for calling hmac functions via the Hash interface
  * use of openssl hashing functions no longer experimental
  * support sha384 hash
  * Added 'UnpackURL' function

v5.14 (2024-06-03)
  * add ini file support to DataParser
  * fix/add 'bcast' socket type

v5.13 (2024-04-17)
  * Fix soname issue. 

v5.12 (2024-04-06)
  * Added TerminalProgress progress bars
  * Fix ~W escape sequence for setting white background
  * Fixes to TerminalTheme

v5.11 (2024-02-27)
  * Don't follow symbolic links in FileSystemRmDir
  * detect NULL streams passed to STREAMReadToTerminator 
  * honor prefix/sysconfdir when open unicode-names.conf 
  * STREAMSendDgram added to Stream.h
  * clean out example .exe files with 'make clean'"

v5.10 (2024-02-21)
  * Added 'x' (O_EXCL) option to file streams
  * Added ''GetUserHomeDir' function
  * Install now creates symlinks from libUseful-<major> to libUseful-<major>-<minor> rather than making two directories as suggested by andreasstieger@github.com
  * Added soname to library when building under gcc, again as suggested by andreasstieger@github.com

v5.9 (2024-02-07)
  * Fix more build errors when building without openssl
  * added options for compiling with -Wall, -Werror, FORTIFY_SOURCE and -fstack-protector to ./configure 

v5.8 (2024-01-15)
  * Fix build error when building without openssl
  * Give in to autoconf insisting upgrade to modern format

v5.7 (2024-01-15)
  * Fix base32 misunderstanding
  * Tidyups suggested by andreasstieger@github.com, including flags not returned by ProcessApplyLateConfig.
  * libcapabilites support now defaults to 'no' 

v5.6 (2024-01-14)
  * TOTP function added
  * base32 decode functions now return length

v5.5 (2024-01-13)
  * Base32 encoding schemes added
  * binary-coded-decimal functions added in GeneralFunctions.c
  * fixes for gzip encode/decode in streams
  * fixes for issues with IP6
  * use 'sys/wait.h' instead of 'wait.h'
  * fixes/improvements for 'PipeSpawn'
  * copy file permissions when FileCopy
  * handle SUPER key in terminal functions
  * lots of work on OAuth and experimental websocket and http servers


