trying to make sense of the code, the following patch seems like it could fix the sub-dir search issues to me; can you check? basically change the list of strings to be passed to sub-dirs to "cur" (which is either the main one or a modified one), perform the search then set it back to "old" (the main term list).
=== modified file 'dcpp/ShareManager.cpp' --- dcpp/ShareManager.cpp 2013-04-13 15:08:45 +0000 +++ dcpp/ShareManager.cpp 2013-07-30 18:25:42 +0000 @@ -1307,6 +1307,7 @@ } } + aStrings.include = cur; for(auto l = directories.begin(); (l != directories.end()) && (aResults.size() < maxResults); ++l) { l->second->search(aResults, aStrings, maxResults); } ** Changed in: dcplusplus Importance: Undecided => Critical ** Changed in: dcplusplus Status: New => Confirmed -- You received this bug notification because you are a member of Dcplusplus-team, which is subscribed to DC++. https://bugs.launchpad.net/bugs/1010996 Title: ADC searches are not handled correctly Status in DC++: Confirmed Status in StrongDC++: New Bug description: When responding to ADC searches, words found from upper level share directories are not removed from the search when searching from directories inside them (files in the same directory are handled correctly though). Due to this, the client doesn't send all search replies that it should. The problem has been fixed in AirDC++ 2.30 by removing "StringSearch::List* cur" from void ShareManager::Directory::search(SearchResultList& aResults, AdcSearch& aStrings, StringList::size_type maxResults) and using aStrings.include instead. To manage notifications about this bug go to: https://bugs.launchpad.net/dcplusplus/+bug/1010996/+subscriptions _______________________________________________ Mailing list: https://launchpad.net/~linuxdcpp-team Post to : linuxdcpp-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~linuxdcpp-team More help : https://help.launchpad.net/ListHelp