X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fdelta%2Fdelta.c;h=cc3420829ae2d1e9615606cd6ca52b7a0d135c88;hp=25c1f960fd8eda56137af9e5425c123081b6dd92;hb=e26970a82cf810fd1cad5361e1963040640405ba;hpb=c0ef53aa5b54e2b1d4abe316ebb12d3e1d0d9250 diff --git a/src/delta/delta.c b/src/delta/delta.c index 25c1f960f..cc3420829 100644 --- a/src/delta/delta.c +++ b/src/delta/delta.c @@ -39,32 +39,25 @@ static enum { SHOW_MASKED = 1 << 0, SHOW_EQUIVALENT = 1 << 1, SHOW_REDIRECTED = 1 << 2, - SHOW_OVERRIDEN = 1 << 3, + SHOW_OVERRIDDEN = 1 << 3, SHOW_UNCHANGED = 1 << 4, SHOW_DEFAULTS = - (SHOW_MASKED | SHOW_EQUIVALENT | SHOW_REDIRECTED | SHOW_OVERRIDEN) + (SHOW_MASKED | SHOW_EQUIVALENT | SHOW_REDIRECTED | SHOW_OVERRIDDEN) } arg_flags = 0; static int equivalent(const char *a, const char *b) { - char *x, *y; - int r; + _cleanup_free_ char *x = NULL, *y = NULL; x = canonicalize_file_name(a); if (!x) return -errno; y = canonicalize_file_name(b); - if (!y) { - free(x); + if (!y) return -errno; - } - - r = path_equal(x, y); - free(x); - free(y); - return r; + return path_equal(x, y); } static int notify_override_masked(const char *top, const char *bottom) { @@ -91,11 +84,11 @@ static int notify_override_redirected(const char *top, const char *bottom) { return 1; } -static int notify_override_overriden(const char *top, const char *bottom) { - if (!(arg_flags & SHOW_OVERRIDEN)) +static int notify_override_overridden(const char *top, const char *bottom) { + if (!(arg_flags & SHOW_OVERRIDDEN)) return 0; - printf(ANSI_HIGHLIGHT_ON "[OVERRIDEN]" ANSI_HIGHLIGHT_OFF " %s → %s\n", top, bottom); + printf(ANSI_HIGHLIGHT_ON "[OVERRIDDEN]" ANSI_HIGHLIGHT_OFF " %s → %s\n", top, bottom); return 1; } @@ -108,7 +101,7 @@ static int notify_override_unchanged(const char *f) { } static int found_override(const char *top, const char *bottom) { - char *dest; + _cleanup_free_ char *dest = NULL; int k; pid_t pid; @@ -117,7 +110,7 @@ static int found_override(const char *top, const char *bottom) { if (null_or_empty_path(top) > 0) { notify_override_masked(top, bottom); - goto finish; + return 0; } k = readlink_malloc(top, &dest); @@ -127,13 +120,12 @@ static int found_override(const char *top, const char *bottom) { else notify_override_redirected(top, bottom); - free(dest); - goto finish; + return 0; } - notify_override_overriden(top, bottom); + notify_override_overridden(top, bottom); if (!arg_diff) - goto finish; + return 0; putchar('\n'); @@ -153,14 +145,11 @@ static int found_override(const char *top, const char *bottom) { putchar('\n'); -finish: - return 0; } static int enumerate_dir(Hashmap *top, Hashmap *bottom, const char *path) { - DIR *d; - int r = 0; + _cleanup_closedir_ DIR *d; assert(top); assert(bottom); @@ -176,15 +165,14 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, const char *path) { } for (;;) { - struct dirent *de, buf; + struct dirent *de; + union dirent_storage buf; int k; char *p; - k = readdir_r(d, &buf, &de); - if (k != 0) { - r = -k; - goto finish; - } + k = readdir_r(d, &buf.de, &de); + if (k != 0) + return -k; if (!de) break; @@ -192,46 +180,37 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, const char *path) { if (!dirent_is_file(de)) continue; - p = join(path, "/", de->d_name, NULL); - if (!p) { - r = -ENOMEM; - goto finish; - } + p = strjoin(path, "/", de->d_name, NULL); + if (!p) + return -ENOMEM; path_kill_slashes(p); k = hashmap_put(top, path_get_file_name(p), p); if (k >= 0) { p = strdup(p); - if (!p) { - r = -ENOMEM; - goto finish; - } + if (!p) + return -ENOMEM; } else if (k != -EEXIST) { free(p); - r = k; - goto finish; + return k; } free(hashmap_remove(bottom, path_get_file_name(p))); k = hashmap_put(bottom, path_get_file_name(p), p); if (k < 0) { free(p); - r = k; - goto finish; + return k; } } -finish: - closedir(d); - - return r; + return 0; } static int process_suffix(const char *prefixes, const char *suffix) { const char *p; char *f; - Hashmap *top, *bottom; + Hashmap *top, *bottom=NULL; int r = 0, k; Iterator i; int n_found = 0; @@ -252,9 +231,9 @@ static int process_suffix(const char *prefixes, const char *suffix) { } NULSTR_FOREACH(p, prefixes) { - char *t; + _cleanup_free_ char *t = NULL; - t = join(p, "/", suffix, NULL); + t = strjoin(p, "/", suffix, NULL); if (!t) { r = -ENOMEM; goto finish; @@ -265,7 +244,6 @@ static int process_suffix(const char *prefixes, const char *suffix) { r = k; log_debug("Looking at %s", t); - free(t); } HASHMAP_FOREACH(f, top, i) { @@ -307,7 +285,7 @@ static int process_suffix_chop(const char *prefixes, const char *suffix) { /* Strip prefix from the suffix */ NULSTR_FOREACH(p, prefixes) { if (startswith(suffix, p)) { - suffix += strlen(p);; + suffix += strlen(p); suffix += strspn(suffix, "/"); return process_suffix(prefixes, suffix); } @@ -324,7 +302,7 @@ static void help(void) { " -h --help Show this help\n" " --version Show package version\n" " --no-pager Do not pipe output into a pager\n" - " --diff[=1|0] Show a diff when overriden files differ\n" + " --diff[=1|0] Show a diff when overridden files differ\n" " -t --type=LIST... Only display a selected set of override types\n", program_invocation_short_name); } @@ -340,8 +318,8 @@ static int parse_flags(const char *flag_str, int flags) { flags |= SHOW_EQUIVALENT; else if (strncmp("redirected", w, l) == 0) flags |= SHOW_REDIRECTED; - else if (strncmp("overriden", w, l) == 0) - flags |= SHOW_OVERRIDEN; + else if (strncmp("overridden", w, l) == 0) + flags |= SHOW_OVERRIDDEN; else if (strncmp("unchanged", w, l) == 0) flags |= SHOW_UNCHANGED; else if (strncmp("default", w, l) == 0) @@ -453,8 +431,8 @@ int main(int argc, char *argv[]) { "binfmt.d\0" "systemd/system\0" "systemd/user\0" - "systemd/system.preset\0" - "systemd/user.preset\0" + "systemd/system-preset\0" + "systemd/user-preset\0" "udev/rules.d\0" "modprobe.d\0"; @@ -472,9 +450,9 @@ int main(int argc, char *argv[]) { arg_flags = SHOW_DEFAULTS; if (arg_diff < 0) - arg_diff = !!(arg_flags & SHOW_OVERRIDEN); + arg_diff = !!(arg_flags & SHOW_OVERRIDDEN); else if (arg_diff) - arg_flags |= SHOW_OVERRIDEN; + arg_flags |= SHOW_OVERRIDDEN; if (!arg_no_pager) pager_open(); @@ -503,7 +481,7 @@ int main(int argc, char *argv[]) { } if (r >= 0) - printf("\n%i overriden configuration files found.\n", n_found); + printf("\n%i overridden configuration files found.\n", n_found); finish: pager_close();