'sysupdate-resource.c',
'sysupdate-transfer.c',
'sysupdate-update-set.c',
+ 'sysupdate-update-set-flags.c',
'sysupdate.c',
)
--- /dev/null
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include "glyph-util.h"
+#include "sysupdate-update-set-flags.h"
+#include "terminal-util.h"
+
+const char *update_set_flags_to_color(UpdateSetFlags flags) {
+
+ if (flags == 0 || (flags & UPDATE_OBSOLETE))
+ return (flags & UPDATE_NEWEST) ? ansi_highlight_grey() : ansi_grey();
+
+ if (FLAGS_SET(flags, UPDATE_INSTALLED|UPDATE_NEWEST))
+ return ansi_highlight();
+
+ if (FLAGS_SET(flags, UPDATE_INSTALLED|UPDATE_PROTECTED))
+ return ansi_highlight_magenta();
+
+ if ((flags & (UPDATE_AVAILABLE|UPDATE_INSTALLED|UPDATE_NEWEST|UPDATE_OBSOLETE)) == (UPDATE_AVAILABLE|UPDATE_NEWEST))
+ return ansi_highlight_green();
+
+ return NULL;
+}
+
+const char *update_set_flags_to_glyph(UpdateSetFlags flags) {
+
+ if (flags == 0 || (flags & UPDATE_OBSOLETE))
+ return special_glyph(SPECIAL_GLYPH_MULTIPLICATION_SIGN);
+
+ if (FLAGS_SET(flags, UPDATE_INSTALLED|UPDATE_NEWEST))
+ return special_glyph(SPECIAL_GLYPH_BLACK_CIRCLE);
+
+ if (FLAGS_SET(flags, UPDATE_INSTALLED|UPDATE_PROTECTED))
+ return special_glyph(SPECIAL_GLYPH_WHITE_CIRCLE);
+
+ if ((flags & (UPDATE_AVAILABLE|UPDATE_INSTALLED|UPDATE_NEWEST|UPDATE_OBSOLETE)) == (UPDATE_AVAILABLE|UPDATE_NEWEST))
+ return special_glyph(SPECIAL_GLYPH_CIRCLE_ARROW);
+
+ return " ";
+}
+
+const char *update_set_flags_to_string(UpdateSetFlags flags) {
+
+ switch ((unsigned) flags) {
+
+ case 0:
+ return "n/a";
+
+ case UPDATE_INSTALLED|UPDATE_NEWEST:
+ case UPDATE_INSTALLED|UPDATE_NEWEST|UPDATE_PROTECTED:
+ case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_NEWEST:
+ case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_NEWEST|UPDATE_PROTECTED:
+ return "current";
+
+ case UPDATE_AVAILABLE|UPDATE_NEWEST:
+ case UPDATE_AVAILABLE|UPDATE_NEWEST|UPDATE_PROTECTED:
+ return "candidate";
+
+ case UPDATE_INSTALLED:
+ case UPDATE_INSTALLED|UPDATE_AVAILABLE:
+ return "installed";
+
+ case UPDATE_INSTALLED|UPDATE_PROTECTED:
+ case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_PROTECTED:
+ return "protected";
+
+ case UPDATE_AVAILABLE:
+ case UPDATE_AVAILABLE|UPDATE_PROTECTED:
+ return "available";
+
+ case UPDATE_INSTALLED|UPDATE_OBSOLETE|UPDATE_NEWEST:
+ case UPDATE_INSTALLED|UPDATE_OBSOLETE|UPDATE_NEWEST|UPDATE_PROTECTED:
+ case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_NEWEST:
+ case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_NEWEST|UPDATE_PROTECTED:
+ return "current+obsolete";
+
+ case UPDATE_INSTALLED|UPDATE_OBSOLETE:
+ case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_OBSOLETE:
+ return "installed+obsolete";
+
+ case UPDATE_INSTALLED|UPDATE_OBSOLETE|UPDATE_PROTECTED:
+ case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_PROTECTED:
+ return "protected+obsolete";
+
+ case UPDATE_AVAILABLE|UPDATE_OBSOLETE:
+ case UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_PROTECTED:
+ case UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_NEWEST:
+ case UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_NEWEST|UPDATE_PROTECTED:
+ return "available+obsolete";
+
+ default:
+ assert_not_reached();
+ }
+}
--- /dev/null
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#pragma once
+
+typedef enum UpdateSetFlags {
+ UPDATE_NEWEST = 1 << 0,
+ UPDATE_AVAILABLE = 1 << 1,
+ UPDATE_INSTALLED = 1 << 2,
+ UPDATE_OBSOLETE = 1 << 3,
+ UPDATE_PROTECTED = 1 << 4,
+} UpdateSetFlags;
+
+const char *update_set_flags_to_color(UpdateSetFlags flags);
+const char *update_set_flags_to_glyph(UpdateSetFlags flags);
+const char *update_set_flags_to_string(UpdateSetFlags flags);
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
-#include "glyph-util.h"
#include "string-util.h"
#include "sysupdate-update-set.h"
-#include "terminal-util.h"
UpdateSet *update_set_free(UpdateSet *us) {
if (!us)
/* Newest version at the beginning */
return -strverscmp_improved((*a)->version, (*b)->version);
}
-
-const char* update_set_flags_to_color(UpdateSetFlags flags) {
-
- if (flags == 0 || (flags & UPDATE_OBSOLETE))
- return (flags & UPDATE_NEWEST) ? ansi_highlight_grey() : ansi_grey();
-
- if (FLAGS_SET(flags, UPDATE_INSTALLED|UPDATE_NEWEST))
- return ansi_highlight();
-
- if (FLAGS_SET(flags, UPDATE_INSTALLED|UPDATE_PROTECTED))
- return ansi_highlight_magenta();
-
- if ((flags & (UPDATE_AVAILABLE|UPDATE_INSTALLED|UPDATE_NEWEST|UPDATE_OBSOLETE)) == (UPDATE_AVAILABLE|UPDATE_NEWEST))
- return ansi_highlight_green();
-
- return NULL;
-}
-
-const char* update_set_flags_to_glyph(UpdateSetFlags flags) {
-
- if (flags == 0 || (flags & UPDATE_OBSOLETE))
- return special_glyph(SPECIAL_GLYPH_MULTIPLICATION_SIGN);
-
- if (FLAGS_SET(flags, UPDATE_INSTALLED|UPDATE_NEWEST))
- return special_glyph(SPECIAL_GLYPH_BLACK_CIRCLE);
-
- if (FLAGS_SET(flags, UPDATE_INSTALLED|UPDATE_PROTECTED))
- return special_glyph(SPECIAL_GLYPH_WHITE_CIRCLE);
-
- if ((flags & (UPDATE_AVAILABLE|UPDATE_INSTALLED|UPDATE_NEWEST|UPDATE_OBSOLETE)) == (UPDATE_AVAILABLE|UPDATE_NEWEST))
- return special_glyph(SPECIAL_GLYPH_CIRCLE_ARROW);
-
- return " ";
-}
typedef struct UpdateSet UpdateSet;
#include "sysupdate-instance.h"
-
-typedef enum UpdateSetFlags {
- UPDATE_NEWEST = 1 << 0,
- UPDATE_AVAILABLE = 1 << 1,
- UPDATE_INSTALLED = 1 << 2,
- UPDATE_OBSOLETE = 1 << 3,
- UPDATE_PROTECTED = 1 << 4,
-} UpdateSetFlags;
+#include "sysupdate-update-set-flags.h"
struct UpdateSet {
UpdateSetFlags flags;
};
UpdateSet *update_set_free(UpdateSet *us);
-
int update_set_cmp(UpdateSet *const*a, UpdateSet *const*b);
-
-const char* update_set_flags_to_color(UpdateSetFlags flags);
-const char* update_set_flags_to_glyph(UpdateSetFlags flags);
return 0;
}
-static const char *update_set_flags_to_string(UpdateSetFlags flags) {
-
- switch ((unsigned) flags) {
-
- case 0:
- return "n/a";
-
- case UPDATE_INSTALLED|UPDATE_NEWEST:
- case UPDATE_INSTALLED|UPDATE_NEWEST|UPDATE_PROTECTED:
- case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_NEWEST:
- case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_NEWEST|UPDATE_PROTECTED:
- return "current";
-
- case UPDATE_AVAILABLE|UPDATE_NEWEST:
- case UPDATE_AVAILABLE|UPDATE_NEWEST|UPDATE_PROTECTED:
- return "candidate";
-
- case UPDATE_INSTALLED:
- case UPDATE_INSTALLED|UPDATE_AVAILABLE:
- return "installed";
-
- case UPDATE_INSTALLED|UPDATE_PROTECTED:
- case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_PROTECTED:
- return "protected";
-
- case UPDATE_AVAILABLE:
- case UPDATE_AVAILABLE|UPDATE_PROTECTED:
- return "available";
-
- case UPDATE_INSTALLED|UPDATE_OBSOLETE|UPDATE_NEWEST:
- case UPDATE_INSTALLED|UPDATE_OBSOLETE|UPDATE_NEWEST|UPDATE_PROTECTED:
- case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_NEWEST:
- case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_NEWEST|UPDATE_PROTECTED:
- return "current+obsolete";
-
- case UPDATE_INSTALLED|UPDATE_OBSOLETE:
- case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_OBSOLETE:
- return "installed+obsolete";
-
- case UPDATE_INSTALLED|UPDATE_OBSOLETE|UPDATE_PROTECTED:
- case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_PROTECTED:
- return "protected+obsolete";
-
- case UPDATE_AVAILABLE|UPDATE_OBSOLETE:
- case UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_PROTECTED:
- case UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_NEWEST:
- case UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_NEWEST|UPDATE_PROTECTED:
- return "available+obsolete";
-
- default:
- assert_not_reached();
- }
-}
-
static int context_show_table(Context *c) {
_cleanup_(table_unrefp) Table *t = NULL;
int r;