X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flocale%2Flocalectl.c;h=b0abe7b0513a62813e5861aacd45dd03040898c1;hb=396945dc1f37fc95eb6681dfb62f328920079a55;hp=f7fea48ffeae642b5eba95688c2f2b19a5ea0e7b;hpb=d5d217eae1b3ba978c4ddd6a2ef2de4621329662;p=elogind.git diff --git a/src/locale/localectl.c b/src/locale/localectl.c index f7fea48ff..b0abe7b05 100644 --- a/src/locale/localectl.c +++ b/src/locale/localectl.c @@ -42,6 +42,7 @@ #include "set.h" #include "path-util.h" #include "utf8.h" +#include "def.h" static bool arg_no_pager = false; static bool arg_ask_password = true; @@ -414,7 +415,7 @@ static int nftw_cb( !endswith(fpath, ".map.gz")) return 0; - p = strdup(path_get_file_name(fpath)); + p = strdup(basename(fpath)); if (!p) return log_oom(); @@ -437,15 +438,14 @@ static int nftw_cb( static int list_vconsole_keymaps(sd_bus *bus, char **args, unsigned n) { _cleanup_strv_free_ char **l = NULL; + const char *dir; keymaps = set_new(string_hash_func, string_compare_func); if (!keymaps) return log_oom(); - nftw("/usr/share/keymaps/", nftw_cb, 20, FTW_MOUNT|FTW_PHYS); - nftw("/usr/share/kbd/keymaps/", nftw_cb, 20, FTW_MOUNT|FTW_PHYS); - nftw("/usr/lib/kbd/keymaps/", nftw_cb, 20, FTW_MOUNT|FTW_PHYS); - nftw("/lib/kbd/keymaps/", nftw_cb, 20, FTW_MOUNT|FTW_PHYS); + NULSTR_FOREACH(dir, KBD_KEYMAP_DIRS) + nftw(dir, nftw_cb, 20, FTW_MOUNT|FTW_PHYS); l = set_get_strv(keymaps); if (!l) {