static vector<LanguageTag::SubtagData> script_list;
static vector<LanguageTag::SubtagData> extlang_list;
+static vector<pair<string, string>> dcnc_list;
+
static
optional<LanguageTag::SubtagData>
void
-load_language_tag_list (boost::filesystem::path tags_directory, string name, vector<LanguageTag::SubtagData>& list)
+load_language_tag_list (boost::filesystem::path tags_directory, string name, std::function<void (std::string, std::string)> add)
{
auto f = fopen_boost (tags_directory / name, "r");
if (!f) {
}
string b = buffer;
trim (b);
- list.push_back (LanguageTag::SubtagData(a, b));
+ add (a, b);
++i;
}
void
dcp::load_language_tag_lists (boost::filesystem::path tags_directory)
{
- load_language_tag_list (tags_directory, "language", language_list);
- load_language_tag_list (tags_directory, "variant", variant_list);
- load_language_tag_list (tags_directory, "region", region_list);
- load_language_tag_list (tags_directory, "script", script_list);
- load_language_tag_list (tags_directory, "extlang", extlang_list);
+ auto add_subtag = [](vector<LanguageTag::SubtagData>& list, string a, string b) {
+ list.push_back (LanguageTag::SubtagData(a, b));
+ };
+
+ load_language_tag_list (tags_directory, "language", [&add_subtag](string a, string b) { add_subtag(language_list, a, b); });
+ load_language_tag_list (tags_directory, "variant", [&add_subtag](string a, string b) { add_subtag(variant_list, a, b); });
+ load_language_tag_list (tags_directory, "region", [&add_subtag](string a, string b) { add_subtag(region_list, a, b); });
+ load_language_tag_list (tags_directory, "script", [&add_subtag](string a, string b) { add_subtag(script_list, a, b); });
+ load_language_tag_list (tags_directory, "extlang", [&add_subtag](string a, string b) { add_subtag(extlang_list, a, b); });
+
+ load_language_tag_list (tags_directory, "dcnc", [](string a, string b) { dcnc_list.push_back(make_pair(a, b)); });
+}
+
+
+vector<pair<string, string>> dcp::dcnc_tags ()
+{
+ return dcnc_list;
}
for i in os.listdir('xsd'):
bld.install_files('${PREFIX}/share/libdcp/xsd', os.path.join('xsd', i))
- for i in ['language', 'region', 'script', 'variant', 'extlang']:
+ for i in ['language', 'region', 'script', 'variant', 'extlang', 'dcnc']:
bld.install_files('${PREFIX}/share/libdcp/tags', os.path.join('tags', i))
bld.add_post_fun(post)