26 const auto end = source.end();
27 for (
auto it = source.begin(); it !=
end; ++it) {
36 while (it !=
end && !isLineBreak(*it))
43 *
error =
"Packages file contains a line that begins with ':'.";
47 auto package_name_begin = it;
48 auto package_name_end =
end;
49 bool found_separator =
false;
50 for (; it !=
end; ++it) {
52 if (c ==
':' && !found_separator) {
53 found_separator =
true;
54 package_name_end = it;
61 if (!found_separator) {
63 *
error =
"Packages file contains non-comment line that lacks a ':'.";
67 std::string package_name(package_name_begin, package_name_end);
68 std::string package_path(package_name_end + 1, it);
70 auto result = map_.emplace(package_name, package_path);
74 std::string(
"Packages file contains multiple entries for package '") +
const uint8_t uint32_t uint32_t GError ** error