Releases: Genivia/ugrep
Releases · Genivia/ugrep
ugrep v7.1.1
What's new?
- fix negative character classes when option
-i
or--ignore-case
is used and make ugrep closely emulate GNU grep's character class behavior when options-i
and-P
are used #445 - appease
-Woverload-virtual
and-Wshadow
warnings when building the RE/flex library, the TUI, and indexer (some warnings remain in ugrep.cpp) #444
ugrep v7.1
ugrep v7.0.4
ugrep v7.0.3
ugrep v7.0.2
Fix #434 ugrep v7 regression bug: an issue with the regex ^
anchor due to a misaligned begin-of-line position in the buffer after the buffer shifts on large input files. As a result, the -v
option did not always work properly on large input files when searching with regex ^
anchors. Reverted to the old logic. Included a minor change to handle hex context lines #428. All extensively tested.
ugrep v7.0
What's new?
- rewritten SIMD acceleration logic and the search algorithm selection decision logic to speed up pattern matching (the actual speedup depends on the type of regex patterns specified) #432
- improved regex anchors and word boundary matching speed and support #426 and #427
- fix option
--xml
pathnames with special characters, which are unlikely to occur in pathnames, but aren't strictly forbidden #430 - updated option
--hexdump
with-ABC
context hex lines before and after a match #428 - the TUI now also uses the
VISUAL
environment variable ifPAGER
is not set
ugrep v6.5
What's new?
- faster binary file checking with SIMD (SSE2/AVX2/NEON) UTF-8 validation #421 and benchmarks
- new option
--context-separator=SEP
- options
-W
and-X
now also apply to--format
fields%o
and%O
to output hex - ugrep-indexer option
-z
(indexes compressed files and zip/7z/tar/cpio/pax archives) no longer indexes hidden directories and files (i.e. "dotfiles") stored in archives, to save space - fix ugrep-indexer option
-z
, which was broken due to a code refactoring mistake in a single line of code
ugrep v6.4.1
Fix #417
ugrep v6.4
What's new?
- new custom output format fields for options
--format
and--replace
#414:%A byte range in hex of match %l last line number of match %L number of lines of a match %R newline, if --break %[hhhh]U U+hhhh Unicode code point %y matching pattern as hex %Y matching line as hex %[ms]=...%= color of ms ... color off %[n]j nth capture as JSON %[n]q nth capture quoted %[n]x nth capture as XML %[n]y nth capture as hex %[n]v nth capture as CSV %[name]j named capture as JSON %[name]q named capture quoted %[name]x named capture as XML %[name]y named capture as hex %[name]v named capture as CSV %[n|...]j capture n,... as JSON %[n|...]q capture n,... quoted %[n|...]x capture n,... as XML %[n|...]y capture n,... as hex %[n|...]v capture n,... as CSV
- numeric fields such as
%n
are padded with spaces when%{width}n
is specified with a numericwidth
> 0 - matching line fields such as
%O
are cut to width when%{width}O
is specified or when%{-width}O
is specified to cut from the end of the line - character context on a matching line before or after a match is output when
%{-width}o
or%{+width}o
is specified for match fields such as%o
, where%{width}o
without a +/- sign cuts the match to the specified width
- numeric fields such as
- fix bash completions for key bindings #415
ugrep v6.3
What's new?
- option
--index
always enables--recursive
#410 - new bash, fish and zsh ugrep-indexer completions #411
- option
--hyperlink
outputs absolute search paths #412 - update regex DFA cut optimization that was too agressive for some patterns
- option
-o
(--only-matching
) with-ABC
context now also supports multi-line pattern matching with\n
(newline) in regex patterns
Note: again extensively tested with random (fuzzed) patterns to verify the match algorithms and optimizations.