summaryrefslogtreecommitdiff
path: root/passes/cmds/select.cc
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2014-10-10 18:02:17 +0200
committerClifford Wolf <clifford@clifford.at>2014-10-10 18:02:17 +0200
commit774933a0d88502585cf8c169280e71d0c3d182fc (patch)
tree18c07989447718e0aa16ac84bf2fdc04126d564b /passes/cmds/select.cc
parentbbd808072be859074a023795a15bebab87cbfba8 (diff)
Replaced fnmatch() with patmatch()
Diffstat (limited to 'passes/cmds/select.cc')
-rw-r--r--passes/cmds/select.cc15
1 files changed, 7 insertions, 8 deletions
diff --git a/passes/cmds/select.cc b/passes/cmds/select.cc
index 363687f2..893f897d 100644
--- a/passes/cmds/select.cc
+++ b/passes/cmds/select.cc
@@ -17,12 +17,11 @@
*
*/
-#include "kernel/register.h"
+#include "kernel/yosys.h"
#include "kernel/celltypes.h"
#include "kernel/sigtools.h"
-#include "kernel/log.h"
+#include "kernel/patmatch.h"
#include <string.h>
-#include <fnmatch.h>
#include <errno.h>
USING_YOSYS_NAMESPACE
@@ -38,9 +37,9 @@ static bool match_ids(RTLIL::IdString id, std::string pattern)
return true;
if (id.size() > 0 && id[0] == '\\' && id.substr(1) == pattern)
return true;
- if (!fnmatch(pattern.c_str(), id.c_str(), 0))
+ if (patmatch(pattern.c_str(), id.c_str()))
return true;
- if (id.size() > 0 && id[0] == '\\' && !fnmatch(pattern.c_str(), id.substr(1).c_str(), 0))
+ if (id.size() > 0 && id[0] == '\\' && patmatch(pattern.c_str(), id.substr(1).c_str()))
return true;
if (id.size() > 0 && id[0] == '$' && pattern.size() > 0 && pattern[0] == '$') {
const char *p = id.c_str();
@@ -83,7 +82,7 @@ static bool match_attr_val(const RTLIL::Const &value, std::string pattern, char
std::string value_str = value.decode_string();
if (match_op == '=')
- if (!fnmatch(pattern.c_str(), value.decode_string().c_str(), FNM_NOESCAPE))
+ if (patmatch(pattern.c_str(), value.decode_string().c_str()))
return true;
if (match_op == '=')
@@ -107,9 +106,9 @@ static bool match_attr(const std::map<RTLIL::IdString, RTLIL::Const> &attributes
{
if (name_pat.find('*') != std::string::npos || name_pat.find('?') != std::string::npos || name_pat.find('[') != std::string::npos) {
for (auto &it : attributes) {
- if (!fnmatch(name_pat.c_str(), it.first.c_str(), FNM_NOESCAPE) && match_attr_val(it.second, value_pat, match_op))
+ if (patmatch(name_pat.c_str(), it.first.c_str()) && match_attr_val(it.second, value_pat, match_op))
return true;
- if (it.first.size() > 0 && it.first[0] == '\\' && !fnmatch(name_pat.c_str(), it.first.substr(1).c_str(), FNM_NOESCAPE) && match_attr_val(it.second, value_pat, match_op))
+ if (it.first.size() > 0 && it.first[0] == '\\' && patmatch(name_pat.c_str(), it.first.substr(1).c_str()) && match_attr_val(it.second, value_pat, match_op))
return true;
}
} else {