diff --git a/kernel/rtlil.h b/kernel/rtlil.h index 37f2aee6d..fa7403a9f 100644 --- a/kernel/rtlil.h +++ b/kernel/rtlil.h @@ -449,11 +449,17 @@ namespace RTLIL static inline std::string encode_filename(const std::string &filename) { + // SILIMATE: take basename of filename + std::string basename = filename; + size_t pos = filename.find_last_of('/'); + if (pos != std::string::npos) + basename = basename.substr(pos + 1); + std::stringstream val; - if (!std::any_of(filename.begin(), filename.end(), [](char c) { + if (!std::any_of(basename.begin(), basename.end(), [](char c) { return static_cast(c) < 33 || static_cast(c) > 126; - })) return filename; - for (unsigned char const c : filename) { + })) return basename; + for (unsigned char const c : basename) { if (c < 33 || c > 126) val << stringf("$%02x", c); else