* Sun Nov 13 2022 Michael Vetter <mvetter@suse.com>
- Update to 1.12.4:
* MS Windows: Added support for Unicode command-line arguments.
* MS Windows: Enabled support for building a DLL.
* Improved quality of accelerated symbol picking (the default
with -w 6 and lower), especially along sharp edges.
* The XWD loader now supports unaligned image data, which can
occur when the header is of an uneven length. Such images
will no longer be rejected.
* Bug fixes:
- #100[1] Reading image data from stdin fails on Windows
- #104[3] Artifacts with transparent animations on Kitty
- #108[5] Bad interaction with lolcat
- #112[7] Bad documentation for -c default
- #113[9] Autogen/build fails on CentOS 7 (partial solution)
- huntr.dev: Uncontrolled memory allocation in lodepng
- [unfiled] -lm should not be in pkg-config Libs: list
- [unfiled] The --watch switch was broken with the
introduction of --animate.
* Mon Jul 04 2022 Michael Vetter <mvetter@suse.com>
- Update to 1.12.3:
* Increased GLib minimum version to 2.26.
* Enabled a few compiler warnings not included in -Wall -Wextra
in order to catch more potential issues early. Also started
using -Werror selectively.
* Silenced deprecation warnings for older GLib APIs that we
would like to keep using a bit longer.
* Fix #96 Regression: Fails to build on Linux/Debian
* Mon Jul 04 2022 Michael Vetter <mvetter@suse.com>
- Update to 1.12.2:
* Made everything compile for the x86_64-w64-mingw32 target using gcc.
* Added support for the Windows 10 Command Prompt.
* Improved error reporting.
* Mon Jun 20 2022 Michael Vetter <mvetter@suse.com>
- Update to 1.12.1:
* Increased GLib minimum version to 2.20.
* Added 12 new test inputs, including bad inputs to handle gracefully.
* Added a few symbols to API documentation that were accidentally left out.
* Bug fixes:
+ huntr.dev CVE-2022-2061: Out-of-bounds read in libnsgif's lzw_decode()
+ [unfiled] Undefined behavior in libnsgif due to uninitialized frame fields.
+ [unfiled] Signed integer overflow in chafa_pack_color().
+ [unfiled] Integer overflow in normalization pass on some images.
+ [unfiled] Potential unaligned access with corrupt XWD images.
+ [unfiled] Integer overflow in quantization on some images.
+ [unfiled] Calculating offset from NULL pointer in LodePNG.
* Mon Jun 06 2022 Michael Vetter <mvetter@suse.com>
- Update to 1.12.0:
* The ImageMagick dependency is now optional and deprecated.
Packagers are encouraged to drop the ImageMagick dependency (--without-imagemagick)
and add direct dependencies on relevant image codecs.
ImageMagick support will be removed in a future release.
* Added image loaders for the following formats: JPEG, SVG, TIFF, WebP.
Like the existing GIF, PNG and XWD loaders, these are much faster and
generally safer than their ImageMagick counterparts. If ImageMagick is
enabled, it will be used as a fallback. Supported image loaders will
be listed in the --version output.
* Implemented a 16/8 mode producing 8 colors and an additional 8 bright
foreground-only colors for a total of 16 foreground and 8 background colors.
When using ANSI escape sequences in symbol mode, the sequence for bold
text is used to enable bright colors. This scheme corresponds to that of
the IBM PC's VGA hardware text modes and was popular with terminal
emulators in the late 1980s to early 2000s.
With a few tweaks, output from this mode can be turned into ANSI art scene
.ANS files compatible with utilities like the wonderful Ansilove[2], e.g:
$ chafa -f symbols -c 16/8 -s 80 --symbols space+solid+half --fill stipple \
in.jpg | tr -d '\n' | iconv -c -f utf8 -t cp437 > out.ans
$ ansilove out.ans -o out.png
* New builtin Latin symbols (available with --symbols latin). This class
comprises most of the symbols from the Latin-1 Supplement, Latin Extended-A
and -B, IPA Extensions and Spacing Modifier Letters plus a few Latin-like
symbols from other ranges, using Terminus as the reference font.
The ASCII class is also a subset of this class.
* Reworked ASCII symbols to be more representative of modern terminal fonts.
As with the other Latin ranges, the reference font is now Terminus.
* New option: --scale <n>. This takes a real number specifying the on-screen
scaling factor relative to the input's pixel size, respecting the terminal
size. The special argument 'max' will fit the output to the terminal.
The defaults are 1.0 for iTerm, Kitty and sixels, and 4.0 for symbols. #84
* Deprecated option: --zoom. Use --scale max instead.
* Added a battery of simple tests that can be run with make check.
* Made configure friendlier. It's now more lenient with dependencies, and the
summary is more detailed and colorized if possible.
* Bug fixes:
- #62 Too big alloc on bogus terminal dimensions
- huntr.dev: Null pointer dereference caused by calling post_func on unused
batch entries
- [unfiled] Small memory leaks when using iTerm and Kitty formats.
- [unfiled] Wide symbol coverages leaked in symbol map destructor.
- [unfiled] No error code if files failed to load.
* Thu May 05 2022 Michael Vetter <mvetter@suse.com>
- Update to 1.10.3:
* Improved input validation in the XWD loader.
* huntr.dev: Buffer over-read when compiled with -O0 or non-x86 target
* Mon Apr 25 2022 Michael Vetter <mvetter@suse.com>
- Update to 1.10.2:
* Added disclosure guidelines in SECURITY.md
* Fix huntr.dev: Null pointer dereference in libnsgif with crafted GIF file
* [unfiled] File magic would not effectively rule out internal loaders.
* [unfiled] Very big images could cause absurd allocation requests
triggering an abort in the loader.
* Mon Apr 04 2022 Michael Vetter <mvetter@suse.com>
- Update to 0.10.1:
* #87 Garbled last row of pixels on some images
* [unfiled] Correctly label new functions since 1.10
* Mon Mar 21 2022 Michael Vetter <mvetter@suse.com>
- Update to 0.10.0:
* New option: --animate <bool>. On by default. Can be turned off
to replace animations with a still frame #79.
* New option: --center <bool> or -C <bool>. Off by default. Can
be turned on to center images #83.
* New options: --margin-bottom <n> and --margin-right <n>. These
permit using all available space (with --margin-bottom 0) or some
smaller amount #61.
* New option: --polite <bool>. On by default. Can be turned off to
correct issues caused by previous terminal state (e.g. no sixel scrolling)
and improve presentation (e.g. by temporarily hiding the cursor). This can
leave the terminal in an altered state, which is somewhat rude.
* New option: --threads <n>. Allows manually specifying the number of threads to
use. Defaults to one per detected logical CPU core.
* When invoked with redirected input and no arguments, act like a
filter as if invoked with -.
* If input or output is being redirected, default to playing animations only once
instead of looping forever. This can be overridden with -d inf.
* Replaced obsolete Autoconf macros.
* Improved image loaders:
+ GIF: Load GIF87a images as well as GIF89a.
+ PNG: Add an internal copy of LodePNG, bypassing ImageMagick.
This improves performance and helps with eventually phasing out the latter.
+ XWD: Support images generated by convert.
* Improved terminal support:
+ Contour: Enable sixel support.
+ foot: Open-ended TERM string matching.
+ Konsole: Enable sixel support.
+ WezTerm: Enable sixel support.
* Bug fixes:
+ #76 Smolscale uses too much stack space.
+ #81 Chafa --version is returned to stderr, not stdout.
+ [unfiled] Potential memory overrun when using Floyd-Steinberg dithering
in symbols mode.
+ [unfiled] iTerm2 compatibility issue with WezTerm and possi