X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fhelpfile.c;h=466ec33c5d09a0ffb98df0b1a9b84613fe205526;hb=3347e61580d203fba631f8664de8d1f46294ae22;hp=d7edfbe608f49dd3a6c9284b66ecf5a013fb2017;hpb=5d44e8de048fb0bc8d206cf5b5708d3a1d384433;p=srvx.git diff --git a/src/helpfile.c b/src/helpfile.c index d7edfbe..466ec33 100644 --- a/src/helpfile.c +++ b/src/helpfile.c @@ -222,38 +222,15 @@ static void language_read_list(void) if (!(dir = opendir("languages"))) return; while ((dirent = readdir(dir))) { - if (!strcmp(dirent->d_name, ".") || !strcmp(dirent->d_name, "..")) + if (dirent->d_name[0] == '.') + continue; + if (dirent->d_type != DT_DIR) continue; language_alloc(dirent->d_name); } closedir(dir); } -static void language_read_all(void) -{ - struct string_list *slist; - struct dirent *dirent; - DIR *dir; - unsigned int ii; - - /* Read into an in-memory list and sort so we are likely to load - * parent languages before their children (de_DE sorts after de). - */ - if (!(dir = opendir("languages"))) - return; - slist = alloc_string_list(4); - while ((dirent = readdir(dir))) - string_list_append(slist, strdup(dirent->d_name)); - closedir(dir); - string_list_sort(slist); - for (ii = 0; ii < slist->used; ++ii) { - if (!strcmp(slist->list[ii], ".") || !strcmp(slist->list[ii], "..")) - continue; - language_read(slist->list[ii]); - } - free_string_list(slist); -} - const char *language_find_message(struct language *lang, const char *msgid) { struct language *curr; const char *msg; @@ -1029,6 +1006,8 @@ void helpfile_init(void) void helpfile_finalize(void) { - language_read_all(); + dict_iterator_t it; + for (it = dict_first(languages); it; it = iter_next(it)) + language_read(iter_key(it)); reg_exit_func(language_cleanup); }