chiark / gitweb /
journal: fail silently in sd_j_sendv() if journal is unavailable
[elogind.git] / src / delta / delta.c
index fa284bc274983f786dbff5d7499146675618b23e..4aaf1dfb143e64e8ea393a3908395391565a5c95 100644 (file)
@@ -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) {
@@ -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();