aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ecp5/lpf.cc19
1 files changed, 10 insertions, 9 deletions
diff --git a/ecp5/lpf.cc b/ecp5/lpf.cc
index 70ebfe81..4f02d22d 100644
--- a/ecp5/lpf.cc
+++ b/ecp5/lpf.cc
@@ -44,21 +44,22 @@ bool Arch::apply_lpf(std::string filename, std::istream &in)
auto isempty = [](const std::string &str) {
return std::all_of(str.begin(), str.end(), [](char c) { return isblank(c) || c == '\r' || c == '\n'; });
};
- auto strip_quotes = [](const std::string &str) {
- if (str.at(0) == '"') {
- NPNR_ASSERT(str.back() == '"');
- return str.substr(1, str.size() - 2);
- } else {
- return str;
- }
- };
-
try {
if (!in)
log_error("failed to open LPF file\n");
std::string line;
std::string linebuf;
int lineno = 0;
+ auto strip_quotes = [&](const std::string &str) {
+ if (str.at(0) == '"') {
+ if (str.back() != '"') {
+ log_error("expected '\"' at end of string '%s' (on line %d)\n", str.c_str(), lineno);
+ }
+ return str.substr(1, str.size() - 2);
+ } else {
+ return str;
+ }
+ };
while (std::getline(in, line)) {
++lineno;
size_t cstart = line.find('#');