****************************************************************************
# ChangeLog for lesspipe.sh						   #
****************************************************************************
Version 2.23 Mar 22 2026
- spec file for RPM creation updated
- license info updated
- test suite changed to get consistent results on most systems
- for color tests fix the choice of the colorizer
- replace test.pl by test.sh (both for bash and zsh)
- fix several bugs in colorizing (also in vimcolor)
- put code2color into a separate repository
- improve logic in configure and fix bug in archive color
- replace perl scripts configure and archive_color by shell scripts
- enable again dynamic loading of the bash tab completion script
Version 2.22 Dec 15 2025
- new link to deepwiki generated documentation
- improved tempdir handling in vimcolor
- recognize very old staroffice/openoffice files (extension sxi)
- remove sxw2txt in favor of odt2txt (already used in lesspipe.sh)
- correctly detect the presence of option -R given to less 
Version 2.21 Nov 24 2025
- fix display of text format audio or video files (e.g. m3u)
- remove support for colorizing log files (slow, +F not working)
- update documentation for changed configure options and file names
- update pem recoginition with newer magic file
- remove mdcat for markdown, .lessfilter example in man page changed
- update license information
- more robust parsing in archive_color
- better support for zlib file formats using 7z (dmg files), pigz or zlib-flate
- fix: get command line parameters of less when input to less is from a pipe
- show original file if LESSOPEN starts with || and the filtered output is empty
Version 2.20 Sep 12 2025
- call vimcolor only if vim or nvim are installed, fix colors for termux
- add tests for missing binaries in termux
- redirect STDERR output to STDOUT (required for newer ffprobe)
- improve testsuite for MacOS and compatibility with LibreSSL
Version 2.19 Jul 17 2025
- remove dependency on bash in lesscomplete
- improve installation procedure and documentation (zsh and tab completion)
- prefer ffprobe and eyeD3 for audio/video file contents
Version 2.18 Feb 16 2025
- short article 25 years recursive lesspipe in the lesspipe.sh wiki (en and de)
- document install in user space, do no longer mention (t)csh in documentation
- added xlsx2csv to first convert xlsx to csv and then display the csv content
- added optional minimal version check for external commands
Version 2.17 Dec 22 2024
- evaluation of current locale changed (compatible with old bash versions)
- correct typo in xlsx files handling
Version 2.16 Nov 10 2024
- security fix: check file name if used with ar
- add --ansi to mdcat (fixes #48)
- improved recognition of appimage files
Version 2.15 Oct 03 2024
- improved parsing of bat/batcat options in LESSCOLORIZE
- display all certificates in pem files, not only the 1st one
- do not exit if called from other programs (man, git, perldoc)
- improve option processing in bat
- change (again) order of programs to process man pages
- force unicode/utf8 for html2text
Version 2.14 Aug 16 2024
- allow for colorizing dotfiles
- add nvimpager as (preferred) colorizer
- if installed use nvim instead of vim for coloring with vimcolor
- prefer bat styles and themes from ENV or command line over config file
Version 2.13 May 10 2024
- added support for appimage and snap files
- respect color scheme setting of vim in vimcolor, add listing of file types
- improve xml (and html) display using the xmq binary
- fix color detection (-R) again
- support for cpio archives
- fall back to 7z for supported formats
Version 2.12 Mar 18 2024
- improve completion for file names with special chars
- better output when using xlscat
- respect bat options from LESSCOLORIZER
- propagate lesspipe changes to lesscomplete
- don't use antiword any longer, outdated
- use 7zip instead of now outdated p7zip if available
- propagate file extension to newly created temporary files
- use again csvlook for display of csv files if available
- use csvtable for tabular display of csv files, needs Text::CSV from perl
Version 2.11 Dec 13 2023
- fix output of archive listings when no coloring is requested
- column does not accept std input
- fix html output with html2text
- correct location of bash completion directory
- respect csv file extension
Version 2.10 Oct 05 2023
- column does not accept -o option (BSD systems)
- respect jsx and tsx file extension
Version 2.09 Oct 03 2023
- preferred display of csv files is through the program column
- language recognition for bat improved
- correctly recognize the -r or -R option when calling less
- support for plain zlib files(used e.g. in backuppc, pdf)
- fix jsx and tsx files often detected as html
Version 2.08 Jun 26 2023
- protect file names in tar from being used as options
- support the device tree blob file format
- many changes for colored output
- fix template for creating a lesspipe rpm
- fix vimcolor hang due to wrong vim CLI arguments
- increase the file portion to read from STDIN to recognize its type
- do not call mediainfo on STDIN input
Version 2.07 Jan 10 2023
- man page updates
- support for displaying mail messages
- set theme=ansi and style=plain in bat if not specified elsewhere
- correct typo in less option, recognize osascript as applescript
- better display of json files using jq
- allow for changing the output style in bat/batcat
Version 2.06 Aug 17 2022
- remove perl storable (pst) files interpretation (security fix)
- let bat recognize language, unless explicitly requested
- call the bat colorizer with style=plain
- many changes from ShellCheck for better syntax
- run ShellCheck and test suite in GitHub Actions
- better recognition of hdf and matlab files
Version 2.05 Apr 26 2022
- better colorize handling for bat and file names containing spaces
- fix handling of pst (perl dump) files
Version 2.04 Feb 28 2022
- lessfilter can be in PATH or in homedir
- csv format files get displayed in tabular form
- do call ccze only, if less accepts color seququences (-R)
Version 2.03 Feb 22 2022
- fix colorize handling for code2color and vimcolor
- better argument parsing to detect -R option for less
- use tr to convert into lower case, test string adjustments
Version 2.02 Jan 19 2022
- handle files names with a question mark in w3m, prefer elinks over w3m
- add again perl storable support
- add ~/.lessfilter support
- better rpm handling, documentation enhancements
- remove contrib directory, patches are partly implemented or obsolete
Version 2.01 Jan 4 2022
- experimental zsh and bash completion for archive contents
- remove use of rpmunpack, dpkg
- minor fixes in test suite and empty file handling
Version 2.00 Dec 28 2021
- code cleanup, minor fixes, support pygmentize with 256 color terminals
Version 2.00-beta Dec 22 2021
- much enhanced testsuite, can now select tests based on its number etc.
- added better bsdtar handling from the contributed bsdtar patch (Jim Pryor)
- added -layout option to pdftotext (Sergio Callegari)
- changed code for extraction of less calling parameters
- don't engage lesspipe in pipes (LESSPIPE=|-...), if called from man and perldoc
- iconv handles most conversions from non foreign encodings
- tarcolor enhanced and renamed to archive_color, archive listings colorizations
Version 2.00-alpha Dec 8 2021
- complete rewrite with many fixes and enhancements.
- incompatible change: groff converts to utf8, not 'latin1' and not 'nippon'
- incompatible change: do not detect perl storable file format
- incompatible change: LESS_ADVANCED_PREPROCESSOR no longer honored
- support for growing files and calling less from a filter (LESSOPEN=|-...)
- new testsuite test.pl
Version 1.91 Nov 10 2021
- testsuite works, most files get colored properly
Version 1.90 Oct 6 2021
- make all tests in the test suite work
Version 1.89 Sep 18 2021
- attempts to make colorization work and pass tests in the testsuite
Version 1.88 Sep 18 2021
- add support for mp4 files and Jupiter notebook formats
Version 1.87 Aug 7 2021
- fix broken media file display (#54)
- fix broken archive display (#57)
- fix version number in files (#50)
Version 1.86 Jul 21 2021
- force html2text to use UTF8 instead of ASCII
- fix pdf file type display
Version 1.85 Aug 25 2020
- improved MS office files handling and bug fixes
Version 1.84 Jul 7 2019
- support for brotli, several MS Office files and media files
Version 1.83 Jul 28 2015
- shortcut for unreadable files, prefer pdftotext over pdftohtml (Peter Wu)
- add bsdtar as a command to unpack rar files (coadde)
- add support for NetCDF and HDF5 files using ncdump, h5dump (Matt Thompson)
- correctly display directories with a colon in the name (Oliver Mangold)
- more conservative usage of html2text (Matt Ghali)
- highlight empty inline C++ comments correctly, better pygmentize call
  (no - argument, use -g) (Antony Lee)
- add support for Debian 2.0 files with xz packed data (Tobias Hoffmann)
Version 1.82 Feb 04 2013
- better handling of encodings and protect against iconv failures
Version 1.81 Jan 15 2013
- adjust Makefile generation, find uninstalled tarcolor in configure
- add a spec file to generate a lesspipe RPM
- correct LESSCOLORIZER call
Version 1.80 Jan 13 2013
- test.pl now shows ignored tests and missing executables, tests added/deleted
- check for existence of mp3info2 to display mp3 tags
- check for existence of 7zr to display 7za archives
- correct bug in 1.72 for less <dir> where dir contains spaces (Tobias Hoffmann)
- add colorized tar listings using tarcolor (contributed by Marc Abramowitz)
- suppress the ==> lines if LESSQUIET is set (proposed by Dale Wijnand)
- use alternate syntax highlighting program given by LESSCOLORIZER, currently
  only pygmentizer and code2color are allowed (proposed by Christian Höltje)
- add directory from LESSOPEN to $PATH, look in $PATH for code2color
- Introduce DESTDIR support in Makefile (requested by Michel Hermier) 
- the generated lesspipe.sh in the tar file has syntax highlighting enabled
  and no LESS_ADVANCED_PREPROCESSOR support
Version 1.72 Nov 17 2011
- detect proper options for the file command at runtime (Vincent Lefèvre)
- guess the character encoding and optionally do a char conversion (VL)
- make colored ls output working for different OS flavours (Marc Abramowitz)
- do not interpret files with an extension .xml as html files (James Ahlborn)
- eval `.../lesspipe.sh` will set LESS_ADVANCED_PREPROCESSOR if meaningful
- sample less wrapper to open URLs with less (in contrib) (Sebastian Kayser)
Version 1.71 Apr 06 2010
- detect a good version of tar, try to avoid /usr/bin/tar on Solaris (Jim Pryor)
- do more preprocessing if LESS_ADVANCED_PREPROCESSOR is set
- always try to interpret (g)roff formatted text (man pages)
- better detection of lzip and xz compressed files (Vincent Lefèvre)
- do not call identify for 'image text' tagged files (Vincent Lefèvre)
- do not rely on contents of LANG variable for calling iconv (Vincent Lefèvre)
- have a fallback to bash or zsh for the shell used at runtime (Vincent Lefèvre)
Version 1.70 Jul 16 2009
- fixing the call of mktemp on MacOS (reported by Peter Kostka and Martin Otte)
- detect helper programs at runtime (suggested by David Leverton, Petr Uzel)
- add support for xz compression (Mathieu Bouillaguet)
- more stringent tests for gzip compression
- changes in rpm processing to better support MacOSX and BSD based systems
- introduce --fixed in configure to statically control lesspipe generation 
- improved generation of Makefile
- calling eval `.../lesspipe.sh` will set the ENV variable LESSOPEN properly
- fixing jar processing if not using fastjar (was a bug in 1.60 only)
- control amount of preprocessing by the ENV var LESS_ADVANCED_PREPROCESSOR
  if the related configure question is answered with y (default n) (Petr Uzel)
- updated documentation to reflect recent changes
Version 1.60 Dec 01, 2008
- major restructuring of code, support for even more file types (Jim Pryor)
  - using a temp dir and mktemp for creating temporary files
  - concentrate file type recognition in a function
  - rewritten the recognition and processing of html files, added xhtml
    recognition, add elinks and w3m as html parsers
  - better support for jar files (recognized by extension jar and xpi)
  - support for excel and powerpoint files (recognized by extension)
  - support for perl pod files
  - colored directory listings
  - list and view the control parts of *.deb packages
- added support for lzip compression (Antonio Diaz Diaz)
- added support for DjVu files (Florian Cramer)
- improved zip support for Solaris, bug fixes in configure (Paul Townsend)
- code cleanup and bug fixes in lesspipe based on the restructured code
- enhanced test suite
- update of the documentation (merged english.txt and README)
Version 1.55 Aug 13, 2008
- cleanup documentation and code
- remove support for unmounted media (floppy disks)
- better UTF-8 support, add conversions between UTF-8 and ISO-8859-1
- add preliminary support for lzma compressed files (suggested by Goetz Waschk)
- better support for 7-zip files (suggestion by Stephan Hegel)
- fix misspelled program name 'links'
Version 1.54 Jul 25, 2008
- improved support for mp3 files using id3v2 (hint from Markus Meyer)
- added tests for mp3 files with id3 v1 and v2 tags
- correctly recognize version of file command
- prefer links over lynx for html display
- add support for binary plist files (Mac OS X) (Peter D. Barnes Jr.)
- add support for gpg encrypted files (Daniel Risacher)
Version 1.53 Apr 11, 2006
- support for Openoffice documents (Florian Cramer, Vincent Lefevre)
- support for RAR archives (suggested by Cindy Leonhardt)
- support for 7-zip archives, UTF-16 text (proposed by Vincent Lefevre)
- support for image formats (png, gif, jpeg and others)
- small shell syntax fix (reported by Andrew Barnert)
- better test to recognize tar and dvi files
- do not include the full path for commands if they are in the search PATH
- avoid "file -" command, relax requirements for "file", Solaris now ok (Ken)
- display debian files without dpkg (hint by Juergen Kahnert)
- mention in BUGS that syntax highlighting is an experimental feature
- require at least version 1.0 of bzip2
- updated documentation
Version 1.52 Jul 19, 2005
- variable replacement pattern containing % causes hang in AIX, escape % char
- the output of the file command can contain file names, make it harder to
  mislead the file type recognition logic
Version 1.51 May 26, 2005
- fix typo in Makefile (PREFIX instead of prefix in configure)
- change consistently test syntax to be compliant to more shells
- display command to set LESSOPEN env variable when called without args
- fix a few cases where filenames containing space were not treated properly
- add a manpage for lesspipe.sh
Version 1.50 Apr 12, 2005
- major changes in the processing of file names, thus allowing the display
  of files with white space in the name even if they are contained in archives
- display of "perl storable" (see perldoc Storable) files by Slaven Rezic
- many changes to get rid of minor bugs related to syntax highlighting and
  the display of files contained in archives
- lesspipe.sh successfully tested to also work with pdksh (tested with v. 5.2)
- added test suite, commands listed in TESTCMDS, test files are in testok and
  testnok. Can be started with make test
- improved configure script and documentation enhancements

Version 1.44 Dec 14, 2004
-------------------------
- fixes in configure script (Slaven Rezic)
- fixes for ksh syntax by Jens Schleusener

Version 1.43 Dec 09, 2004
-------------------------
- fixes for Cygwin by Slaven Rezic and for FreeBSD by Ben Kibbey
- better recognition of perl files in code2color (Slaven Rezic)
- treat Active State's PPD files as XML files (proposed by Soeren Adersen
- syntax highlighting has to be enabled explicitly when calling configure
- fixed bug in trap statement when using /bin/sh as shell

Version 1.42 Apr 15, 2004
-------------------------
- add support for Microsoft cabinet files through cabextract (v1.0 required)
- correct bug (less -F was not working if used with lesspipe)

Version 1.41 Apr 01, 2004
-------------------------
- speed up lesspipe considerably for viewing large files (hint by Istvan Marko)
- rework the syntax highlighting code (should now be compliant to more
  OS flavors, patches by Remi Mommsen and by WF)
- support for MacOS X archives and bom files (request by Remi Mommsen)

Version 1.40 Mar 21, 2004
-------------------------
- introduce syntax highlighting (through 'syntax', a perl helper script)
- ATTENTION: it will work only with less -r or less -R
- deactivated perl support again, perldoc -m otherwise not working properly
- display contents of iso images

Version 1.37 Aug 08, 2003
-------------------------
- perl support was not working under all circumstances

Version 1.36 Aug 08, 2003
-------------------------
- add new option --default in configure script
- add support for perl files containing pod documentation

Version 1.35 Jan 06, 2003
-------------------------
- prefer pstotext over ps2ascii if available
- prefer html2text over lynx if available 
- show the contents of mp3 files (with mp3 tags) using mp3info
- for unknown (binary) data display the contained ASCII strings
- support for ASCII-art (2nd version, very experimental, commented out)
  most of the changes proposed by Florian Cramer
- corrected minor bugs in the configure script

Version 1.34 May 16, 2002
-------------------------
- forgotten #endif in configure
- use /usr/bin/env perl to process the configure script

Version 1.33 Mar 12, 2002
-------------------------
- enhanced output for .deb files (proposed by Carl Greco)
- default script language is bash on linux systems, ksh on all other platforms
- search GNU file also under the name gfile

Version 1.32 Jan 17, 2002
-------------------------
- add support for Postscript and DVI format
- enhance the processing of *roff files (.me and .ms files, respect LANG=jp)
- added support for the files compressed with pack
- minor change in RPM output
  (changes inspired by lessopen.sh in SuSE Linux 7.3)
- change in configure script to check more precisely for shell versions

Version 1.31 Dec 12, 2001
-------------------------
- add option --yes to configure to allow for unattended installation
- more generic Makefile (both by Philippe Defert)
- corrected a bug that prevented HTML filtering for (t)csh users

Version 1.30 Nov 21, 2001
-------------------------
- add support for Rich Text Format (RTF).
- modify the highly experimental support for ASCII-art (still commented out)
  both modifications proposed by Florian Cramer.
- the configure script now checks for a working shell
- added more extended english documentation (english.txt)

Version 1.23 Oct 30, 2001
------------------------
- call ps -up to have a trailing blank after less in the ps output (case HTML)
- generate a simple Makefile, rudimentary options for configure

Version 1.22 Aug 10, 2001
------------------------
- w3m uses internally less, refuse to convert html unless called from less

Version 1.21 Aug 8, 2001
------------------------
- recognize file type "... text executable" as text, not as binary

Version 1.20 Aug 6, 2001
------------------------
- Add support for removable media via the /dev/xxx files (e.g. tar files on
  tapes, floppies) example: less /dev/fd0
- Add support for unmounted DOS Filesystems using the mtools command suite
  via the /dev/xxx files. Example: less /dev/fd0
- determine version of 'file' program and configure lesspipe.sh accordingly
- some cleanup of configure script

Version 1.10 Feb 19, 2001
-------------------------
- use Lynx instead of w3m as proposed by Heinrich Kuettler
- Add support for PDF-Files via 'pdftotext' by Derek B. Noonburg
- Change format of first line in output (replace '='s by '==>').
- use configure to customize lesspipe.sh for local computer
- add support for ASCII-art by Florian Cramer (very experimental, commented out)

Version 1.05 Jan 24, 2001
-------------------------
- Add support for Debian packages by Michael Wiedmann
- Add MS Word support via 'antiword' by Florian Cramer

Version 1.04 Jun 18, 2000
-------------------------
-  Variable separator character, better colon handling.

Version 1.03 May  2, 2000
-------------------------
- Bug in handling filenames with spaces corrected.

Version 1.02 Apr 12, 2000
-------------------------
- Bugs in RPM handling corrected (relocatable RPM's).

Version 1.01 Mar 14, 2000
-------------------------
- First attempt to handle filenames with spaces.

Version 1.0 Feb 16, 2000
------------------------
- Complete rewrite to allow recursive unpacking.

Version 0.4 Jan 16, 2000
------------------------
- Add RPM support, better documentation.

Version 0.3 Aug  6, 1999
------------------------
- Add bzip2 support.

Version 0.2 Nov 20, 1998
------------------------
- Be more verbose for special files.

Version 0.1 May 25, 1997
------------------------
- First public release.

