diff options
Diffstat (limited to 'src/lib/pkgconfig/pcparser.cpp')
-rw-r--r-- | src/lib/pkgconfig/pcparser.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/lib/pkgconfig/pcparser.cpp b/src/lib/pkgconfig/pcparser.cpp index 4469ca193..eb07aa5ef 100644 --- a/src/lib/pkgconfig/pcparser.cpp +++ b/src/lib/pkgconfig/pcparser.cpp @@ -524,9 +524,11 @@ void PcParser::parseLibs( raiseDuplicateFieldException(fieldName, pkg.filePath); const auto trimmed = trimAndSubstitute(pkg, str); + if (trimmed.empty()) + return; const auto argv = splitCommand(trimmed); - if (!trimmed.empty() && !argv) + if (!argv) throw PcException("Couldn't parse Libs field into an argument vector"); libs = doParseLibs(*argv); @@ -593,9 +595,11 @@ void PcParser::parseCFlags(PcPackage &pkg, std::string_view str) raiseDuplicateFieldException("Cflags", pkg.filePath); const auto command = trimAndSubstitute(pkg, str); + if (command.empty()) + return; const auto argv = splitCommand(command); - if (!command.empty() && !argv) + if (!argv) throw PcException("Couldn't parse Cflags field into an argument vector"); std::vector<PcPackage::Flag> cflags; @@ -722,10 +726,8 @@ void PcParser::parseLine(PcPackage &pkg, std::string_view str) size_t pos = 0; for (; pos < s.size(); ++pos) { auto p = s.data() + pos; - if (!((*p >= 'A' && *p <= 'Z') || - (*p >= 'a' && *p <= 'z') || - (*p >= '0' && *p <= '9') || - *p == '_' || *p == '.')) { + if ((*p < 'A' || *p > 'Z') && (*p < 'a' || *p > 'z') && (*p < '0' || *p > '9') + && *p != '_' && *p != '.') { break; } } |