3.1 Windows & Linux
v3.1 (04/02/2026) — public
- color output: program header and status lines now use ANSI colors
(suppressed when output is not a terminal) - Windows XP build (
source4xp/): added-sfthsupport via Win32 CreateThread
(-thremains unsupported on XP; single-file parallel is now available) - help text: removed example lines from both builds; removed
-thfrom XP help - docs: converted Readme.txt and changelog.txt to Markdown; removed email reference
- improved: DC sign now uses 9-state neighbor context (left × top signs)
instead of no context; ~0.25% better compression on average - fixed: progress bar displayed "Processed N-1 of N files" at end of batch
- fixed: corrupt PJG caused infinite loop in header parser (EOF not checked)
- fixed: corrupt PJG caused infinite loop in
pjg_decode_generic; added 1MB
decode limit — generates clean error instead of hanging - fixed:
main()always returned exit 0 even when files failed - fixed:
filetypenot reset at start ofcheck_file()— inaccessible files
inherited the previous file's type, corrupting progress counter - fixed: inaccessible files not counted in
file_proc_cntpre-scan - fixed: compression ratio showed >100% in mix mode due to
jpgfilesize=0
during decompression; ratio accumulation now only runs for F_JPG files - fixed: stale
-listflag shown in help (replaced bylistsubcommand) - security: added bounds checks in JPEG segment parser to prevent out-of-bounds
reads from maliciously crafted JPEG files (DHT, DQT, DRI, SOS, SOF segments
and all header parser loops); no impact on valid JPEG files - ui: modernized CLI interface — new header format, Unicode block progress bar
(█/░), braille spinner animation (⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏) in multi-thread mode,
check/cross marks (✓/✗) for results, and cleaner summary with Unicode
separators (─); Windows fallback uses ASCII equivalents - fixed: Windows console set to UTF-8 at startup (
SetConsoleOutputCP(CP_UTF8))
so header/UI characters display correctly in cmd.exe and PowerShell - fixed: Unicode-safe file I/O on Windows —
FileReader/FileWriternow use
_wfopen+MultiByteToWideChar(CP_ACP)instead ofstd::fopen/std::ifstream;
fixes accented and special characters in filenames on Windows 7+ - fixed: in multi-thread mode, error/warning messages no longer interrupt the
progress bar; collected and printed cleanly after the bar completes - build: added
build4xp.shto project root for standalone Windows XP builds - fixed: header bullet
•now uses Windows-1252\x95on Windows — renders
correctly in cmd.exe on Windows 7 regardless of console codepage - build: added
build_pkg.sh— produces.tar.gz,.deb,.rpm, and.snap
packages from source; individual formats selectable via--tar/--deb/--rpm/--snap - ci: GitHub Actions release workflow builds and publishes all packages automatically
when av*tag is pushed - feat: added
install.sh— one-liner installer that detectsapt/dnf/yum
and downloads the matching package from the latest GitHub release - docs: added installation section to README; updated build scripts table
- maintainer: Yade Bravo (https://github.com/YadeWira/packJPG)
What's Changed
New Contributors
Full Changelog: 3.0...v3.1