Thank you for your post therube,
Everything 1.5.0.1379a improves searching for content.
I have added optimized search paths for the following searches:
regex:binarycontent:^\x00+$
(filled with the same byte character - one or more)
regex:binarycontent:^\x00*$
(filled with the same byte character - zero or more)
regex:binarycontent:\x00
(contains the specified single byte character)
regex:binarycontent:\x00\x00\x00...
(contains the specified multiple byte characters)
The above searches will no longer read the entire content and will instead read chunks at a time.
\x00 can be replaced with any byte character (excluding a-zA-Z which must be handled the old/slow way for case comparisons)
\x00 can be replaced with any byte character (including a-zA-Z if you use the case: search modifier or binary: search modifier)
I recommend using binary:content: instead of binarycontent:
binary:content: will treat your search and the content as a byte-stream.
binarycontent: will treat the search as text and the content as ASCII/ANSI/UTF-8/UTF-16/UTF-16BE/UTF-16+1/UTF-16BE+1
regex:binarycontent: will now treat the search as a byte stream if there's no a-z or A-Z characters in your search.
case:regex:binarycontent: is also treated the same as binary:regex:content:
1379a fixes an issue with content: not searching binary content correctly.
I'll note that on a long Query, even though the progress dialog comes up, it may not be apparent that the "progress" is being displayed, as in, there is not enough progress for the progress bar to display anything.
I will consider showing 1% instead of 0%
Thanks for the suggestion.
Does regex:binarycontent:^\x00+$ "kick out" on a non-match, or does it continue to check the remainder of a file, regardless?
(I assume the latter.)
Old versions would read the whole file then perform the regex search.
1379a will be a little smarter and read chunks of data until a hit is found. (if no hit is found the entire file is read)
binarycontent: will also try to convert the binary file to ansi text, UTF-8 text, UTF-16 text etc...
Use binary:regex:content: to treat the search and content as a byte stream.
("File List" does not support forward slashes, /
File lists do support /
Unfortunately, enabling Tools -> Options -> Search -> Replace forward slashes with backslashes will make the impossible to match.