From ad556f4be4abb338b6b50365bd95add08455059a Mon Sep 17 00:00:00 2001 From: King_DuckZ Date: Wed, 18 May 2016 10:25:23 +0200 Subject: [PATCH] Use new case sensitivity option from glob2regex Don't append crap manually to regular expressions. --- src/locate/main.cpp | 4 ++-- src/locate/postgre_locate.cpp | 7 ++----- src/locate/postgre_locate.hpp | 2 +- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/locate/main.cpp b/src/locate/main.cpp index 7689e0f..7b619c4 100644 --- a/src/locate/main.cpp +++ b/src/locate/main.cpp @@ -93,8 +93,8 @@ int main (int parArgc, char* parArgv[]) { results = din::locate_in_db(settings.db, hash, tags); } else { - const auto search_regex = g2r::convert(vm["substring"].as()); - results = din::locate_in_db(settings.db, search_regex, not not vm.count("case-insensitive"), tags); + const auto search_regex = g2r::convert(vm["substring"].as(), not vm.count("case-insensitive")); + results = din::locate_in_db(settings.db, search_regex, tags); } std::copy(results.begin(), results.end(), std::ostream_iterator(std::cout, "\n")); } diff --git a/src/locate/postgre_locate.cpp b/src/locate/postgre_locate.cpp index 37f1d02..00e0361 100644 --- a/src/locate/postgre_locate.cpp +++ b/src/locate/postgre_locate.cpp @@ -94,14 +94,11 @@ namespace din { } } //unnamed namespace - std::vector locate_in_db (const dinlib::SettingsDB& parDB, const std::string& parSearch, bool parCaseInsensitive, const TagList& parTags) { + std::vector locate_in_db (const dinlib::SettingsDB& parDB, const std::string& parSearch, const TagList& parTags) { 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"; - 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 locate_in_db (const dinlib::SettingsDB& parDB, const mchlib::TigerHash& parSearch, const TagList& parTags) { diff --git a/src/locate/postgre_locate.hpp b/src/locate/postgre_locate.hpp index 061db5f..b30c6fb 100644 --- a/src/locate/postgre_locate.hpp +++ b/src/locate/postgre_locate.hpp @@ -44,7 +44,7 @@ namespace din { using TagList = std::vector; - std::vector locate_in_db ( const dinlib::SettingsDB& parDB, const std::string& parSearch, bool parCaseInsensitive, const TagList& parTags ); + std::vector locate_in_db ( const dinlib::SettingsDB& parDB, const std::string& parSearch, const TagList& parTags ); std::vector locate_in_db ( const dinlib::SettingsDB& parDB, const mchlib::TigerHash& parSearch, const TagList& parTags ); std::vector locate_sets_in_db ( const dinlib::SettingsDB& parDB, const std::string& parSearch, bool parCaseInsensitive ); std::vector locate_sets_in_db ( const dinlib::SettingsDB& parDB, const std::string& parSearch, const std::vector& parSets, bool parCaseInsensitive );