27 std::unique_ptr<char,
void(*)(
void*)> dup(strdup(filename), free);
29 c = strrchr(dup.get(),
'.');
31 LOG(
llevError,
"LicenseManager: invalid filename %s\n", filename);
35 c = strrchr(dup.get(),
'.');
37 LOG(
llevError,
"LicenseManager: invalid filename %s\n", filename);
43 std::string faceset(
c);
45 c = strrchr(dup.get(),
'/');
47 LOG(
llevError,
"LicenseManager: invalid filename %s\n", filename);
53 auto &items = licenses[faceset];
62 c = strchr(
line,
' ');
71 items.push_back(std::make_pair(
line,
c));
78 return search->second;
84 auto dot = face.find(
'.');
85 if (dot == std::string::npos)
89 return face.substr(0, dot);