const ConvertMap* find_map(
const std::vector<const ConvertMap*>& map,
- const std::string& keyword)
+ const std::string& keyword,
+ bool strict_case)
{
for (const ConvertMap* p : map)
- if (p->keyword.compare(0, p->keyword.size(), keyword) == 0)
- return p;
+ {
+ if (strict_case)
+ {
+ if (p->keyword.compare(0, p->keyword.size(), keyword) == 0)
+ return p;
+ }
+ else
+ {
+ if (case_compare(p->keyword, keyword))
+ return p;
+ }
+ }
return nullptr;
}
const std::unique_ptr<const ConvertMap>& find_map(
const std::vector<std::unique_ptr<const ConvertMap> >& map,
- const std::string& keyword)
+ const std::string& keyword,
+ bool strict_case)
{
for (auto& p : map)
- if (p->keyword.compare(0, p->keyword.size(), keyword) == 0)
- return p;
+ {
+ if (strict_case)
+ {
+ if (p->keyword.compare(0, p->keyword.size(), keyword) == 0)
+ return p;
+ }
+ else
+ {
+ if (case_compare(p->keyword, keyword))
+ return p;
+ }
+ }
static std::unique_ptr<const ConvertMap> np(nullptr);
return np;
// Search through the vector for the map which matches keyword
Table* find_table(const std::vector<Table*>& vec, const std::string& name);
-const ConvertMap* find_map(const std::vector<const ConvertMap*>&, const std::string& keyword);
+const ConvertMap* find_map(const std::vector<const ConvertMap*>&, const std::string& keyword, bool strict_case = true);
const std::unique_ptr<const ConvertMap>& find_map(
- const std::vector<std::unique_ptr<const ConvertMap> >&, const std::string& keyword);
+ const std::vector<std::unique_ptr<const ConvertMap> >&, const std::string& keyword, bool strict_case = true);
// trim from begining
std::string& ltrim(std::string& s);
if (util::get_string(data_stream, keyword, ":"))
{
- const ConvertMap* map = util::find_map(preprocessors::preprocessor_api, keyword);
+ const ConvertMap* map = util::find_map(preprocessors::preprocessor_api, keyword, false);
if (map)
{
cv.set_state(map->ctor(cv));