1
0
Fork 0
mirror of https://github.com/KingDuckZ/dindexer.git synced 2025-02-20 12:14:55 +00:00

Use new case sensitivity option from glob2regex

Don't append crap manually to regular expressions.
This commit is contained in:
King_DuckZ 2016-05-18 10:25:23 +02:00
parent 5da1d41ddf
commit ad556f4be4
3 changed files with 5 additions and 8 deletions

View file

@ -93,8 +93,8 @@ int main (int parArgc, char* parArgv[]) {
results = din::locate_in_db(settings.db, hash, tags); results = din::locate_in_db(settings.db, hash, tags);
} }
else { else {
const auto search_regex = g2r::convert(vm["substring"].as<std::string>()); const auto search_regex = g2r::convert(vm["substring"].as<std::string>(), not vm.count("case-insensitive"));
results = din::locate_in_db(settings.db, search_regex, not not vm.count("case-insensitive"), tags); results = din::locate_in_db(settings.db, search_regex, tags);
} }
std::copy(results.begin(), results.end(), std::ostream_iterator<din::LocatedItem>(std::cout, "\n")); std::copy(results.begin(), results.end(), std::ostream_iterator<din::LocatedItem>(std::cout, "\n"));
} }

View file

@ -94,14 +94,11 @@ namespace din {
} }
} //unnamed namespace } //unnamed namespace
std::vector<LocatedItem> locate_in_db (const dinlib::SettingsDB& parDB, const std::string& parSearch, bool parCaseInsensitive, const TagList& parTags) { std::vector<LocatedItem> locate_in_db (const dinlib::SettingsDB& parDB, const std::string& parSearch, const TagList& parTags) {
auto conn = make_pq_conn(parDB); auto conn = make_pq_conn(parDB);
const auto clean_string_with_quotes = conn.escaped_literal(parSearch);
const std::string search_regex = (parCaseInsensitive ? "(?i)" : "") + parSearch;
const char base_query[] = "SELECT \"path\",\"id\",\"group_id\" FROM \"files\" WHERE \"path\" ~ $1"; const char base_query[] = "SELECT \"path\",\"id\",\"group_id\" FROM \"files\" WHERE \"path\" ~ $1";
return locate_in_db(conn, base_query, sizeof(base_query) - 1, "$2", parTags, search_regex); return locate_in_db(conn, base_query, sizeof(base_query) - 1, "$2", parTags, parSearch);
} }
std::vector<LocatedItem> locate_in_db (const dinlib::SettingsDB& parDB, const mchlib::TigerHash& parSearch, const TagList& parTags) { std::vector<LocatedItem> locate_in_db (const dinlib::SettingsDB& parDB, const mchlib::TigerHash& parSearch, const TagList& parTags) {

View file

@ -44,7 +44,7 @@ namespace din {
using TagList = std::vector<boost::string_ref>; using TagList = std::vector<boost::string_ref>;
std::vector<LocatedItem> locate_in_db ( const dinlib::SettingsDB& parDB, const std::string& parSearch, bool parCaseInsensitive, const TagList& parTags ); std::vector<LocatedItem> locate_in_db ( const dinlib::SettingsDB& parDB, const std::string& parSearch, const TagList& parTags );
std::vector<LocatedItem> locate_in_db ( const dinlib::SettingsDB& parDB, const mchlib::TigerHash& parSearch, const TagList& parTags ); std::vector<LocatedItem> locate_in_db ( const dinlib::SettingsDB& parDB, const mchlib::TigerHash& parSearch, const TagList& parTags );
std::vector<LocatedSet> locate_sets_in_db ( const dinlib::SettingsDB& parDB, const std::string& parSearch, bool parCaseInsensitive ); std::vector<LocatedSet> locate_sets_in_db ( const dinlib::SettingsDB& parDB, const std::string& parSearch, bool parCaseInsensitive );
std::vector<LocatedSet> locate_sets_in_db ( const dinlib::SettingsDB& parDB, const std::string& parSearch, const std::vector<uint32_t>& parSets, bool parCaseInsensitive ); std::vector<LocatedSet> locate_sets_in_db ( const dinlib::SettingsDB& parDB, const std::string& parSearch, const std::vector<uint32_t>& parSets, bool parCaseInsensitive );