| 241 | } |
| 242 | |
| 243 | void ParseMetadata(string_view metadata) |
| 244 | { |
| 245 | string_view::size_type delim; |
| 246 | |
| 247 | while (!metadata.empty() && ((delim = metadata.find(':')) != string_view::npos)) { |
| 248 | const string_view key = TrimLeft(string_view(metadata.data(), delim)); |
| 249 | string_view val = TrimLeft(string_view(metadata.data() + delim + 1, metadata.size() - delim - 1)); |
| 250 | |
| 251 | if ((delim = val.find('\n')) != string_view::npos) { |
| 252 | val = string_view(val.data(), delim); |
| 253 | metadata.remove_prefix(val.data() - metadata.data() + val.size() + 1); |
| 254 | } else { |
| 255 | metadata.remove_prefix(metadata.size()); |
| 256 | } |
| 257 | |
| 258 | // Match "Plural-Forms: nplurals=2; plural=(n != 1);" |
| 259 | if (key == "Plural-Forms") { |
| 260 | ParsePluralForms(val); |
| 261 | break; |
| 262 | } |
| 263 | } |
| 264 | } |
| 265 | |
| 266 | bool ReadEntry(AssetHandle &handle, const MoEntry &e, char *result) |
| 267 | { |
no test coverage detected