Releases · Genivia/ugrep · GitHub
Skip to content

Releases: Genivia/ugrep

ugrep v7.8.5

Choose a tag to compare

@genivia-inc genivia-inc released this 15 Sep 11:46

What's new?

  • update option --encoding=CP437 to retain LF (10) and CR (13) codes in the output #569
  • fix a rare edge case for the --encoding option when internally converting a specified code page or a utf-encoding to UTF-8 #568
  • update option -z (--decompress) for reasonable xz/lzma decoding limits #566
  • update matching mode flags -E, -F, -G, and -P to respect order on the command line to permit overriding (like BSD grep) #562 (see follow-up comments)
  • output an error message when regex matching mode flags are used in a config file, instead of silently ignoring them #562 (see follow-up comments)

ugrep v7.8.4

Choose a tag to compare

@genivia-inc genivia-inc released this 05 Aug 14:43

What's new?

  • MinGW portability, tested MinGW-w64 UCRT64 with MSYS2 GCC 16.1; note: make test skips the directory recursive searches due to lack of MinGW symlink handling, see also #553 (apparently, a leading / in a pattern is always expanded to a path when the command line is passed to ugrep's main(), not sure if this can be corrected)
  • fail fast when DFA position sets exceed complexity limits #556

Thank you for your contributions ❤️

ugrep v7.8.3

Choose a tag to compare

@genivia-inc genivia-inc released this 30 Jul 14:57

What's new?

  • update regular expression compilation to DFA memory threshold issue #549 (explosive DFA growth is theoretically possible, but should never exceed a worst-case 1GB~2GB memory footprint in ugrep)
  • fix man page formatting issue that caused a missing sentence ending #550
  • update LZMA SDK to 26.02 #551

Thank you for your suggestions and comments!! ❤️

ugrep v7.8.2

Choose a tag to compare

@genivia-inc genivia-inc released this 17 May 19:41

What's new?

  • upgrade to autoconf 2.73 and automake 1.18.1
  • update TUI logic to remove terminal() call before print() of selected results, move print() back for more maintainable code (avoid "why is this here, again?")

ugrep v7.8.1

Choose a tag to compare

@genivia-inc genivia-inc released this 03 May 13:11

What's new?

Fixed two issues:

  • fix #545 --disable-avx512 tested and working
  • fix #544 (same as #537) a bug in the ugrep v7.6 ~ v7.8 (since March 5, 2026) that can't handle very long lines in huge files properly, outputting uninitialized input file buffer contents as if part of the matching line or contents read after the input file buffer as if part of the matching line.

Thank you for your feedback and help with our project ❤️

ugrep v7.8

Choose a tag to compare

@genivia-inc genivia-inc released this 29 Apr 14:41

What's new?

This update includes usability improvements and important updates to protect the user when ug is used to search untrusted file systems:

  • improve TUI custom-command option --view to wait for key press after viewing, by specifying + in --view=+COMMAND, such as --view=+file to display file type info in the TUI with CTRL-Y (overrides viewing the file contents) #543
  • update TUI to block ANSI OSC escape codes, such as ESC ] P n rr gg bb that may hang the terminal according to Wikipedia
  • update the ug+ and ugrep+ scripts to end options in filter commands with --, in case a filename starts with a - (dash)
  • improve config parsing to ignore some options that do not make sense to set in a (local) config file
  • local config files located in the working directory are only read when owned by the user running the ug or ugrep --config process (already implemented in update 7.7)

Thank you all for your help with the ugrep project ❤️ Stay safe 🙏

ugrep v7.7.0

Choose a tag to compare

@genivia-inc genivia-inc released this 21 Apr 17:43

What's new?

  • support TUI search on slow and incomplete standard input pipes e.g. from tail -f #540
  • update options -m (--max-count) and -K (--max-line) to stop reading input upon reaching the stopping criterium, then exit without draining the standard input pipe like GNU grep #538
  • improve binary file detection for huge mixed files #537
  • add new option ./build.sh --disable-avx512 #534
  • local config files located in the working directory are only read when owned by the user running the ugrep process
  • fix lzma 7zip api memory leak

ugrep v7.6

Choose a tag to compare

@genivia-inc genivia-inc released this 05 Mar 19:30

What's new?

  • new options --max-size and min-size to search files whose physical size is in the specified MIN and/or MAX range
  • fix zsh completion syntax error (#528)
  • update option --ignore-file to ignore files and directories specified in an .gitignore file as an absolute /glob to ignore those matching the glob under its sub-directories (#526)
  • fix emulation of GNU grep option -z (--null-data) to match newlines (zero bytes internally) with pattern \s (space), which requires non-standard regex behavior internally to include matching zero bytes with pattern \s (#525)
  • update --ignore-file=FILE to accept a FILE pathname to a non-local gitignore FILE that applies globally to ignore files and directories, similar to --exclude-from=FILE, but with the minor difference that gitignore rules match both files and directories with a single glob (#518 #519 #532)
  • fix third-party sourced zopen.c library (BSD open source) one-byte read beyond its allocated struct s_zstate state variable in getcode() (#511)
  • fix -m (--max-count) with context options -A or -C sometimes producing garbled after-context output that may cause a crash in the worst case (#510)
  • fix reverse sort by date --sort=rchanged and --sort=rcreated not recognized by the TUI at startup (#508)
  • update ugrep to search named pipe files specified as arguments on the command line instead of skipping them by default, such as process substitutions; also improve Linux special system files /proc and /sys skipping and/or reading and option -z file read error handling to avoid possible pipe fd leaks when thousands of /proc files are searched that produce (expected) read errors (#503)
  • support option --no-empty while using full grep-emulation mode, i.e. when ugrep is renamed to grep

Thank you for your feedback to help improve ugrep ❤️

ugrep v7.5

Choose a tag to compare

@genivia-inc genivia-inc released this 18 Jun 19:20

ugrep: a user-friendly, faster, more capable grep replacement -- search for anything in everything... fast!

What's new?

  • smaller and faster executable with extended dual predict-match PM3+PM5 algorithms, see updated benchmarks compiled with Clang for speed and #485
  • symlink support for ugrep.exe and ug.exe for Windows #493
  • colorization improvement for ugrep.exe and ug.exe for old Windows 7 with ConEmu #491 #495

Thank you for your feedback to help improve ugrep ❤️

ugrep v7.4.3

Choose a tag to compare

@genivia-inc genivia-inc released this 15 May 19:29

What's new?

  • fix bug in option -x and regex ^$-anchors used in certain short patterns #489
  • mark likely/unlikely branches in hot paths for performance

About the upcoming release