Skip to content

3.1 Windows & Linux

Choose a tag to compare

@github-actions github-actions released this 02 Apr 18:52
· 55 commits to master since this release

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 -sfth support via Win32 CreateThread
    (-th remains unsupported on XP; single-file parallel is now available)
  • help text: removed example lines from both builds; removed -th from 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: filetype not reset at start of check_file() — inaccessible files
    inherited the previous file's type, corrupting progress counter
  • fixed: inaccessible files not counted in file_proc_cnt pre-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 -list flag shown in help (replaced by list subcommand)
  • 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/FileWriter now use
    _wfopen + MultiByteToWideChar(CP_ACP) instead of std::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.sh to project root for standalone Windows XP builds
  • fixed: header bullet now uses Windows-1252 \x95 on 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 a v* tag is pushed
  • feat: added install.sh — one-liner installer that detects apt/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

  • make Makefile work with GNU compilers in general by @tansy in #1

New Contributors

  • @tansy made their first contribution in #1

Full Changelog: 3.0...v3.1