X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fdelta%2Fdelta.c;h=0785e7b5e7ca466b516feea2019db260a561ee04;hb=4987623d011c534a22a490b17a8e0ec81d1ac30c;hp=fa284bc274983f786dbff5d7499146675618b23e;hpb=0000ce05ed3e26a26552a0fc2ad82f7f7efd25a9;p=elogind.git diff --git a/src/delta/delta.c b/src/delta/delta.c index fa284bc27..0785e7b5e 100644 --- a/src/delta/delta.c +++ b/src/delta/delta.c @@ -66,7 +66,8 @@ static int notify_override_masked(const char *top, const char *bottom) { if (!(arg_flags & SHOW_MASKED)) return 0; - printf(ANSI_HIGHLIGHT_RED_ON "[MASKED]" ANSI_HIGHLIGHT_OFF " %s → %s\n", top, bottom); + printf("%s%s%s %s → %s\n", + ansi_highlight_red(), "[MASKED]", ansi_highlight_off(), top, bottom); return 1; } @@ -74,7 +75,8 @@ static int notify_override_equivalent(const char *top, const char *bottom) { if (!(arg_flags & SHOW_EQUIVALENT)) return 0; - printf(ANSI_HIGHLIGHT_GREEN_ON "[EQUIVALENT]" ANSI_HIGHLIGHT_OFF " %s → %s\n", top, bottom); + printf("%s%s%s %s → %s\n", + ansi_highlight_green(), "[EQUIVALENT]", ansi_highlight(), top, bottom); return 1; } @@ -82,7 +84,8 @@ static int notify_override_redirected(const char *top, const char *bottom) { if (!(arg_flags & SHOW_REDIRECTED)) return 0; - printf(ANSI_HIGHLIGHT_ON "[REDIRECTED]" ANSI_HIGHLIGHT_OFF " %s → %s\n", top, bottom); + printf("%s%s%s %s → %s\n", + ansi_highlight(), "[REDIRECTED]", ansi_highlight_off(), top, bottom); return 1; } @@ -90,7 +93,8 @@ static int notify_override_overridden(const char *top, const char *bottom) { if (!(arg_flags & SHOW_OVERRIDDEN)) return 0; - printf(ANSI_HIGHLIGHT_ON "[OVERRIDDEN]" ANSI_HIGHLIGHT_OFF " %s → %s\n", top, bottom); + printf("%s%s%s %s → %s\n", + ansi_highlight(), "[OVERRIDDEN]", ansi_highlight_off(), top, bottom); return 1; } @@ -98,7 +102,8 @@ static int notify_override_extended(const char *top, const char *bottom) { if (!(arg_flags & SHOW_EXTENDED)) return 0; - printf(ANSI_HIGHLIGHT_ON "[EXTENDED]" ANSI_HIGHLIGHT_OFF " %s → %s\n", top, bottom); + printf("%s%s%s %s → %s\n", + ansi_highlight(), "[EXTENDED]", ansi_highlight_off(), top, bottom); return 1; } @@ -118,24 +123,20 @@ static int found_override(const char *top, const char *bottom) { assert(top); assert(bottom); - if (null_or_empty_path(top) > 0) { - notify_override_masked(top, bottom); - return 0; - } + if (null_or_empty_path(top) > 0) + return notify_override_masked(top, bottom); k = readlink_malloc(top, &dest); if (k >= 0) { if (equivalent(dest, bottom) > 0) - notify_override_equivalent(top, bottom); + return notify_override_equivalent(top, bottom); else - notify_override_redirected(top, bottom); - - return 0; + return notify_override_redirected(top, bottom); } - notify_override_overridden(top, bottom); + k = notify_override_overridden(top, bottom); if (!arg_diff) - return 0; + return k; putchar('\n'); @@ -155,7 +156,7 @@ static int found_override(const char *top, const char *bottom) { putchar('\n'); - return 0; + return k; } static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const char *toppath, const char *drop) { @@ -250,7 +251,7 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const if (!p) return -ENOMEM; - k = hashmap_put(h, path_get_file_name(p), p); + k = hashmap_put(h, basename(p), p); if (k < 0) { free(p); if (k != -EEXIST) @@ -302,7 +303,7 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch path_kill_slashes(p); - k = hashmap_put(top, path_get_file_name(p), p); + k = hashmap_put(top, basename(p), p); if (k >= 0) { p = strdup(p); if (!p) @@ -312,8 +313,8 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch return k; } - free(hashmap_remove(bottom, path_get_file_name(p))); - k = hashmap_put(bottom, path_get_file_name(p), p); + free(hashmap_remove(bottom, basename(p))); + k = hashmap_put(bottom, basename(p), p); if (k < 0) { free(p); return k; @@ -382,15 +383,14 @@ static int process_suffix(const char *prefixes, const char *suffix, bool dropins k = found_override(f, o); if (k < 0) r = k; - n_found++; + else + n_found += k; } h = hashmap_get(drops, key); if (h) - HASHMAP_FOREACH(o, h, j) { - notify_override_extended(f, o); - n_found++; - } + HASHMAP_FOREACH(o, h, j) + n_found += notify_override_extended(f, o); } finish: @@ -431,7 +431,7 @@ static int process_suffix_chop(const char *prefixes, const char *suffix, const c return -EINVAL; } -static void help(void) { +static int help(void) { printf("%s [OPTIONS...] [SUFFIX...]\n\n" "Find overridden configuration files.\n\n" @@ -441,6 +441,8 @@ static void help(void) { " --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); + + return 0; } static int parse_flags(const char *flag_str, int flags) { @@ -482,7 +484,7 @@ static int parse_argv(int argc, char *argv[]) { { "no-pager", no_argument, NULL, ARG_NO_PAGER }, { "diff", optional_argument, NULL, ARG_DIFF }, { "type", required_argument, NULL, 't' }, - { NULL, 0, NULL, 0 } + {} }; int c; @@ -507,9 +509,6 @@ static int parse_argv(int argc, char *argv[]) { arg_no_pager = true; break; - case '?': - return -EINVAL; - case 't': { int f; f = parse_flags(optarg, arg_flags); @@ -538,9 +537,11 @@ static int parse_argv(int argc, char *argv[]) { } break; - default: - log_error("Unknown option code %c", c); + case '?': return -EINVAL; + + default: + assert_not_reached("Unhandled option"); } } @@ -622,7 +623,8 @@ int main(int argc, char *argv[]) { } if (r >= 0) - printf("\n%i overridden configuration files found.\n", n_found); + printf("%s%i overridden configuration files found.\n", + n_found ? "\n" : "", n_found); finish: pager_close();