History log of /haiku/src/apps/text_search/Grepper.cpp
Revision Date Author Comments
# 7740e52c 23-Jan-2020 X512 <danger_mail@list.ru>

TextSearch: fix passing search string to grep

Fix proposed by phoudoin.

Fixes #15650.

Change-Id: Ie7177aaa39ff593445506983cb0725b75ca7bc7d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2149
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# aa7f93c5 24-Jan-2019 Rob Gill <rrobgill@protonmail.com>

src/apps Code formatting

* No functional changes

code formatting changes only

Change-Id: I046ae21d9b288126022fe0bc2ddf827843765e70
Reviewed-on: https://review.haiku-os.org/c/896
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>


# 739e2cef 07-Jun-2018 Philippe Houdoin <philipp.houdoin@gmail.com>

text_search: avoid flooding messages while searching.

* This was making unresponsive the target window, making impossible
to cancel it at all. Now the current filename is reported at 20Hz,
well enough for good visual search progress feedback. Fixed #14175.

Signed-off-by: Kacper Kasper <kacperkasper@gmail.com>

Style fixes:
* Commit message formatting.
* Removed commented code and unnecessary whitespace.


# a54feb0e 07-Nov-2017 Philippe Houdoin <philippe.houdoin@gmail.com>

TextSearch: fix bug with filenames containing ' or " or \

* Style policy
* Add more error checking
* Increase default directories stack depth


# 653c7676 07-Nov-2017 Philippe Houdoin <philippe.houdoin@gmail.com>

TextSearch: several small improvements

* Wakeup periodically search thread, cancelling should be
more responsive now...
* Show Lines setting is now saved too
* Fix a bug, current file is display again while searching.
* Always pass line number, if any, to invoked app.
Works with StyledEdit as with Pe.

Partially fix #13289.
Another change will add "open with" context menu and remove "Open with Pe".


# 359b82e2 06-Nov-2017 Philippe Houdoin <philippe.houdoin@gmail.com>

TextSearch: unbreak 32bits builds


# 33d4c8a6 06-Nov-2017 Philippe Houdoin <philippe.houdoin@gmail.com>

TextSearch: way speeder by using xargs + grep

* Previously, each file was starting a shell to run grep
command on it. Very suboptimal performance, big overhead.
* Now a thread write each file path to xargs input,
while another start xargs, let it distribute files on
grep processes (one per cpu) and collect results asap.
* This bring results way faster than previously.
* Rename Escape Text setting into Regular Expression, as
name was more after shell workaround than after function.
* While it doesn't use a native text searching, by
reusing both grep and xargs power, it answer the main
issue with #9529.


# f8f8d2bb 01-Apr-2015 Augustin Cavalier <waddlesplash@gmail.com>

Revert "TextSearch: use BString-based searching instead of Grep-based."

This reverts commit 1e9f5f5be4c8419c2085f51c78c9ac02ef13377b.
As per discussion on the ML.


# 1e9f5f5b 31-Mar-2015 Augustin Cavalier <waddlesplash@gmail.com>

TextSearch: use BString-based searching instead of Grep-based.

Huge performance improvement. Fixes #9529.


# 90ce3113 31-Mar-2015 Augustin Cavalier <waddlesplash@gmail.com>

TextSearch: normalize copyright headers.


# c0722add 04-May-2013 Jérôme Duval <jerome.duval@gmail.com>

TextSearch: some 64 bit fixes


# 772f5f83 02-Aug-2012 x-ist <-@-.->

Since the search pattern is wrapped in double quotes for grep, the symbol ' (apostrophe) must not be escaped. Fixes #8776.

Signed-off-by: Matt Madia <mattmadia@gmail.com>


# 546208a5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# f6c4812a 13-Mar-2011 Matt Madia <mattmadia@gmail.com>

Added '`' to the list of escaped characters.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40939 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 32e5ce10 13-Mar-2011 Matt Madia <mattmadia@gmail.com>

Automatic whitespace cleanup. No functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40938 a95241bf-73f2-0310-859d-f6bbb57e9c96


# de1057ee 29-Jun-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Add DoCatalogs call for dstcheck
* Patch by Jorma Karvonnen with some tweaks from me : localize TextSearch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37302 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 29ddbdbb 16-Jan-2010 Axel Dörfler <axeld@pinc-software.de>

* Moved the "var" directory to /boot/common/.
* Moved the "tmp" directory out of /var, and to /boot/common/cache/.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35104 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f5788e8 11-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

It's important to add the ref ot the message also when we are reporting a
negative.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26933 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a5b8a7df 06-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Handle removed files.
* On Haiku, this will make them disappear from the results list.
* On BeOS, it will only work around the problem that we don't know
which file was removed from the node monitoring message...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26848 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 962a6c67 04-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Finished implementing and enabled node monitoring on the folders and files
of the current search. If new files match the pattern, the appear in the
results, or are removed if they don't match anymore. The results also
adapt to changes in the files.
Basically, I added another iterator that is also used to track changes when
node monitor events arrive. Only those changed files are grepped again after
a timeout of .5 seconds when no new node monitor events pour in.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26809 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 68450777 04-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Refactoring
* FileIterator is now a mostly abstract interface
* FolderIterator is the currently only implementation (there could be
MessageIterator for an even better separation, which would read the top
level search folders from the BMessage with the selected poses, but it
would mostly use the same code for traversing the subfolders anyways so I
left that for the time being.)
* The Grepper and FolderIterator now copy the current settings from the Model
at instantiation. Since they run in a separate thread and the Model may
actually be changed from the Window thread, I think this is just a cleaner
and more safe solution.
* Cleanup here and there.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26786 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1fffad3f 03-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Refactored a new class FileIterator from Grepper that will make adding
node monitoring easier. Also, FileIterator will be split to make the code
cleaner with regards to folder or selection mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26752 a95241bf-73f2-0310-859d-f6bbb57e9c96


# edf2516d 02-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Moved TextSearch to apps folder, since it's actually a regular app.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26738 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f8f8d2bbece9d16213f5bab86584502bee94a22a 01-Apr-2015 Augustin Cavalier <waddlesplash@gmail.com>

Revert "TextSearch: use BString-based searching instead of Grep-based."

This reverts commit 1e9f5f5be4c8419c2085f51c78c9ac02ef13377b.
As per discussion on the ML.


# 1e9f5f5be4c8419c2085f51c78c9ac02ef13377b 31-Mar-2015 Augustin Cavalier <waddlesplash@gmail.com>

TextSearch: use BString-based searching instead of Grep-based.

Huge performance improvement. Fixes #9529.


# 90ce3113565f4be9dfbf7cf4e17d00e62d43810b 31-Mar-2015 Augustin Cavalier <waddlesplash@gmail.com>

TextSearch: normalize copyright headers.


# c0722add753912f2c678964522fd8bd81803f668 04-May-2013 Jérôme Duval <jerome.duval@gmail.com>

TextSearch: some 64 bit fixes


# 772f5f839c61c1fbb32d77784bbcdd8859c87a2a 02-Aug-2012 x-ist <-@-.->

Since the search pattern is wrapped in double quotes for grep, the symbol ' (apostrophe) must not be escaped. Fixes #8776.

Signed-off-by: Matt Madia <mattmadia@gmail.com>


# 546208a53940a26c6379c48a7854ade1a8250fc5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# f6c4812a0902341d3b959a025887159180975522 13-Mar-2011 Matt Madia <mattmadia@gmail.com>

Added '`' to the list of escaped characters.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40939 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 32e5ce106078a31e24fc2683072cb7bb17c8c900 13-Mar-2011 Matt Madia <mattmadia@gmail.com>

Automatic whitespace cleanup. No functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40938 a95241bf-73f2-0310-859d-f6bbb57e9c96


# de1057eeb1a033bfb4d0ffb9e8eee6b937d7ec7d 29-Jun-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Add DoCatalogs call for dstcheck
* Patch by Jorma Karvonnen with some tweaks from me : localize TextSearch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37302 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 29ddbdbb53af79445de933b590598e4342a34ae9 16-Jan-2010 Axel Dörfler <axeld@pinc-software.de>

* Moved the "var" directory to /boot/common/.
* Moved the "tmp" directory out of /var, and to /boot/common/cache/.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35104 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f5788e861cca2245b969110878c7e4524ec8f6b 11-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

It's important to add the ref ot the message also when we are reporting a
negative.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26933 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a5b8a7dfc90040f943346cafd54382fadbd62a13 06-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Handle removed files.
* On Haiku, this will make them disappear from the results list.
* On BeOS, it will only work around the problem that we don't know
which file was removed from the node monitoring message...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26848 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 962a6c67e9f80f14d48158c5666897f3ca2847e8 04-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Finished implementing and enabled node monitoring on the folders and files
of the current search. If new files match the pattern, the appear in the
results, or are removed if they don't match anymore. The results also
adapt to changes in the files.
Basically, I added another iterator that is also used to track changes when
node monitor events arrive. Only those changed files are grepped again after
a timeout of .5 seconds when no new node monitor events pour in.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26809 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 684507777be0a6a0acbbc67ed1bf60ce299e7dd1 04-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Refactoring
* FileIterator is now a mostly abstract interface
* FolderIterator is the currently only implementation (there could be
MessageIterator for an even better separation, which would read the top
level search folders from the BMessage with the selected poses, but it
would mostly use the same code for traversing the subfolders anyways so I
left that for the time being.)
* The Grepper and FolderIterator now copy the current settings from the Model
at instantiation. Since they run in a separate thread and the Model may
actually be changed from the Window thread, I think this is just a cleaner
and more safe solution.
* Cleanup here and there.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26786 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1fffad3f437a224769ce48659db1eaadfb5deeeb 03-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Refactored a new class FileIterator from Grepper that will make adding
node monitoring easier. Also, FileIterator will be split to make the code
cleaner with regards to folder or selection mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26752 a95241bf-73f2-0310-859d-f6bbb57e9c96


# edf2516d608ceca834fcb09d2a8a0be39c6c7c36 02-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Moved TextSearch to apps folder, since it's actually a regular app.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26738 a95241bf-73f2-0310-859d-f6bbb57e9c96