program_invocation_short_name,
ansi_highlight(),
ansi_normal());
- table_print(options);
+ r = table_print_or_warn(options);
+ if (r < 0)
+ return r;
printf("\nSee the %s for details.\n", link);
return 0;
n = next;
}
- return table_print(table);
+ return table_print_or_warn(table);
}
int verb_calendar(int argc, char *argv[], uintptr_t _data, void *userdata) {
putc('\n', stdout);
- r = table_print(table);
+ r = table_print_or_warn(table);
if (r < 0)
return r;
}
if (sd_json_format_enabled(json_flags))
sd_json_variant_dump(package_metadata, json_flags, stdout, NULL);
else {
- r = table_print(t);
+ r = table_print_or_warn(t);
if (r < 0)
- return table_log_print_error(r);
+ return r;
}
}
if (r < 0)
return table_log_add_error(r);
- r = table_print(table);
+ r = table_print_or_warn(table);
if (r < 0)
return r;
if (r < 0)
return table_log_add_error(r);
- return table_print(table);
+ return table_print_or_warn(table);
}
int verb_timestamp(int argc, char *argv[], uintptr_t _data, void *userdata) {
program_invocation_short_name,
ansi_highlight(),
ansi_normal());
- table_print(options);
+ r = table_print_or_warn(options);
+ if (r < 0)
+ return r;
printf("\nSee the %s for details.\n", link);
return 0;
program_invocation_short_name,
ansi_highlight(),
ansi_normal());
- table_print(options);
+ r = table_print_or_warn(options);
+ if (r < 0)
+ return r;
printf("\nSee the %s for details.\n", link);
return 0;
program_invocation_short_name,
ansi_highlight(),
ansi_normal());
- table_print(verbs);
+ r = table_print_or_warn(verbs);
+ if (r < 0)
+ return r;
printf("\nOptions:\n");
- table_print(options);
+ r = table_print_or_warn(options);
+ if (r < 0)
+ return r;
printf("\nSee the %s for details.\n", link);
return 0;
return 0;
}
- r = table_print(t);
- if (r < 0)
- return log_error_errno(r, "Failed to show slot table: %m");
-
- return 0;
+ return table_print_or_warn(t);
}
program_invocation_short_name,
ansi_highlight(),
ansi_normal());
- table_print(options);
+ r = table_print_or_warn(options);
+ if (r < 0)
+ return r;
printf("\nSee the %s for details.\n", link);
return 0;
ansi_underline(),
ansi_normal());
- table_print(options);
+ r = table_print_or_warn(options);
+ if (r < 0)
+ return r;
printf("\n%sCommands:%s\n", ansi_underline(), ansi_normal());
- table_print(commands);
+ r = table_print_or_warn(commands);
+ if (r < 0)
+ return r;
printf("\nSee the %s for details.\n", link);
return 0;
if (!sd_json_format_enabled(arg_json_format_flags)) {
table_set_header(t, arg_legend);
- r = table_print(t);
+ r = table_print_or_warn(t);
if (r < 0)
- return table_log_print_error(r);
+ return r;
} else {
_cleanup_(sd_json_variant_unrefp) sd_json_variant *jt = NULL;
program_invocation_short_name,
ansi_highlight(),
ansi_normal());
- table_print(verbs);
+ r = table_print_or_warn(verbs);
+ if (r < 0)
+ return r;
printf("\nOptions:\n");
- table_print(options);
+ r = table_print_or_warn(options);
+ if (r < 0)
+ return r;
printf("\nSee the %s for details.\n", link);
return 0;
}
}
- r = table_print(table);
- if (r < 0)
- return table_log_print_error(r);
-
- return 0;
+ return table_print_or_warn(table);
}
static int get_one_name(sd_bus *bus, const char* attr, char **ret) {
program_invocation_short_name,
ansi_highlight(),
ansi_normal());
- table_print(verbs);
+ r = table_print_or_warn(verbs);
+ if (r < 0)
+ return r;
printf("\nOptions:\n");
- table_print(options);
+ r = table_print_or_warn(options);
+ if (r < 0)
+ return r;
printf("\nSee the %s for details.\n", link);
return 0;
program_invocation_short_name,
ansi_highlight(),
ansi_normal());
- table_print(verbs);
+ r = table_print_or_warn(verbs);
+ if (r < 0)
+ return r;
printf("\nOptions:\n");
- table_print(options);
+ r = table_print_or_warn(options);
+ if (r < 0)
+ return r;
printf("\nSee the %s for details.\n", link);
return 0;
if (table_isempty(table))
return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "No well-known IMDS data available.");
- r = table_print(table);
- if (r < 0)
- return table_log_print_error(r);
-
- return 0;
+ return table_print_or_warn(table);
}
-static const char *detect_json_object(const char *text) {
+static const char* detect_json_object(const char *text) {
assert(text);
/* Checks if the provided text looks like a JSON object. It checks if the first non-whitespace
return table_log_add_error(r);
}
- r = table_print(table);
- if (r < 0)
- return table_log_print_error(r);
-
- return 0;
+ return table_print_or_warn(table);
}
static int verb_show_status(int argc, char *argv[], uintptr_t _data, void *userdata) {
/* We don't use the table to show the header, in order to make the width of the column stable. */
printf("%s%s - %s (" UID_FMT ")%s\n", ansi_highlight(), i.id, i.name, i.uid, ansi_normal());
- r = table_print(table);
+ r = table_print_or_warn(table);
if (r < 0)
- return table_log_print_error(r);
+ return r;
if (i.scope) {
show_unit_cgroup(bus, i.scope, i.leader, /* prefix= */ strrepa(" ", STRLEN("Display: ")));
printf("%s%s (" UID_FMT ")%s\n", ansi_highlight(), i.name, i.uid, ansi_normal());
- r = table_print(table);
+ r = table_print_or_warn(table);
if (r < 0)
- return table_log_print_error(r);
+ return r;
if (i.slice) {
show_unit_cgroup(bus, i.slice, /* leader= */ 0, /* prefix= */ strrepa(" ", STRLEN("Sessions: ")));
printf("%s%s%s\n", ansi_highlight(), i.id, ansi_normal());
- r = table_print(table);
+ r = table_print_or_warn(table);
if (r < 0)
- return table_log_print_error(r);
+ return r;
if (arg_transport == BUS_TRANSPORT_LOCAL) {
unsigned c = MAX(LESS_BY(columns(), 21U), 10U);
return table_log_add_error(r);
}
- r = table_print(table);
- if (r < 0)
- return table_log_print_error(r);
-
- return 0;
+ return table_print_or_warn(table);
}
int verb_list_address_labels(int argc, char *argv[], uintptr_t _data, void *userdata) {
return table_log_add_error(r);
}
- r = table_print(table);
+ r = table_print_or_warn(table);
if (r < 0)
- return table_log_print_error(r);
+ return r;
if (arg_legend)
printf("\n%i links listed.\n", c);
}
}
- r = table_print(table);
+ r = table_print_or_warn(table);
if (r < 0)
- return table_log_print_error(r);
+ return r;
if (arg_legend) {
lldp_capabilities_legend(all);
on_color_operational, glyph(GLYPH_BLACK_CIRCLE), off_color_operational,
info->ifindex, info->name);
- r = table_print(table);
+ r = table_print_or_warn(table);
if (r < 0)
- return table_log_print_error(r);
+ return r;
return show_logs(info->ifindex, info->name);
}
on_color_operational, glyph(GLYPH_BLACK_CIRCLE), off_color_operational,
strna(netifs_joined));
- r = table_print(table);
+ r = table_print_or_warn(table);
if (r < 0)
- return table_log_print_error(r);
+ return r;
return show_logs(0, NULL);
}
ansi_highlight(),
ansi_normal());
- table_print(options);
+ r = table_print_or_warn(options);
+ if (r < 0)
+ return r;
printf("\nSee the %s for details.\n", link);
return 0;
table_set_header(table, arg_legend);
- r = table_print(table);
+ r = table_print_or_warn(table);
if (r < 0)
- return table_log_print_error(r);
+ return r;
}
if (arg_legend) {
ansi_normal(),
ansi_underline(),
ansi_normal());
- table_print(options);
- return 0;
+ return table_print_or_warn(options);
}
static int parse_argv(int argc, char *argv[]) {
if (r < 0)
return table_log_add_error(r);
- r = table_print(table);
- if (r < 0)
- return table_log_print_error(r);
-
- return 0;
+ return table_print_or_warn(table);
}
static int verb_reset_statistics(int argc, char *argv[], uintptr_t _data, void *userdata) {
return table_log_add_error(r);
}
- r = table_print(table);
+ r = table_print_or_warn(table);
if (r < 0)
- return table_log_print_error(r);
+ return r;
if (empty_line)
*empty_line = true;
if (r < 0)
return table_log_add_error(r);
- r = table_print(table);
- if (r < 0)
- return table_log_print_error(r);
-
- return 0;
+ return table_print_or_warn(table);
}
static int verb_show_server_state(int argc, char *argv[], uintptr_t _data, void *userdata) {
return fflush_and_check(f);
}
+int table_print_or_warn(Table *t) {
+ int r;
+
+ r = table_print(t);
+ if (r < 0)
+ return table_log_print_error(r);
+ return 0;
+}
+
int table_format(Table *t, char **ret) {
_cleanup_(memstream_done) MemStream m = {};
FILE *f;
static inline int table_print(Table *t) {
return table_print_full(t, /* f= */ NULL, /* flush= */ false);
}
+int table_print_or_warn(Table *t);
int table_format(Table *t, char **ret);
}
}
- r = table_print(t);
- if (r < 0) {
- log_error_errno(r, "Failed to show device table: %m");
+ r = table_print_or_warn(t);
+ if (r < 0)
goto finish;
- }
if (!table_isempty(t))
printf("\n"
return table_log_add_error(r);
}
- r = table_print(table);
- if (r < 0)
- return table_log_print_error(r);
-
- return 0;
+ return table_print_or_warn(table);
}
r = signal_from_string(s);
return 0;
}
- r = table_print(t);
- if (r < 0)
- return log_error_errno(r, "Failed to show device table: %m");
-
- return 0;
+ return table_print_or_warn(t);
#else
return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
"PKCS#11 tokens not supported on this build.");
return 0;
}
- r = table_print(t);
- if (r < 0)
- return log_error_errno(r, "Failed to show device table: %m");
-
- return 0;
+ return table_print_or_warn(t);
#else
return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
"TPM2 not supported on this build.");
output_waiting_jobs(bus, table, j->id, "GetJobBefore", "\twaiting for job");
}
- r = table_print(table);
+ r = table_print_or_warn(table);
if (r < 0)
- return log_error_errno(r, "Failed to print the table: %m");
+ return r;
if (arg_legend != 0) {
on = ansi_highlight();
if (r < 0)
return table_log_add_error(r);
- r = table_print(table);
+ r = table_print_or_warn(table);
if (r < 0)
- return table_log_print_error(r);
+ return r;
if (i->rtc_local) {
fflush(stdout);
if (r < 0)
return table_log_add_error(r);
- r = table_print(table);
- if (r < 0)
- return table_log_print_error(r);
-
- return 0;
+ return table_print_or_warn(table);
}
if (i->dest < i->origin || i->trans < i->recv || i->dest - i->origin < i->trans - i->recv) {
log_error("Invalid NTP response");
- r = table_print(table);
- if (r < 0)
- return table_log_print_error(r);
-
- return 0;
+ return table_print_or_warn(table);
}
delay = (i->dest - i->origin) - (i->trans - i->recv);
return table_log_add_error(r);
}
- r = table_print(table);
- if (r < 0)
- return table_log_print_error(r);
-
- return 0;
+ return table_print_or_warn(table);
}
static int map_server_address(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *error, void *userdata) {
ansi_normal(),
ansi_underline(),
ansi_normal());
- table_print(options);
+ r = table_print_or_warn(options);
+ if (r < 0)
+ return r;
printf("\nSee the %s for details.\n", link);
return 0;
program_invocation_short_name,
ansi_highlight(),
ansi_normal());
- table_print(options);
+ r = table_print_or_warn(options);
+ if (r < 0)
+ return r;
printf("\nSee the %s for details.\n", link);
return 0;
if (streq_ptr(argv[0], "list-interfaces")) {
STRV_FOREACH(i, data.interfaces)
puts(*i);
+
+ return 0;
} else {
_cleanup_(table_unrefp) Table *t = NULL;
if (r < 0)
return table_log_add_error(r);
- r = table_print(t);
- if (r < 0)
- return table_log_print_error(r);
+ return table_print_or_warn(t);
}
} else {
- sd_json_variant *v;
-
- v = streq_ptr(argv[0], "list-interfaces") ?
+ sd_json_variant *v = streq_ptr(argv[0], "list-interfaces") ?
sd_json_variant_by_key(reply, "interfaces") : reply;
- sd_json_variant_dump(v, arg_json_format_flags, stdout, NULL);
+ return sd_json_variant_dump(v, arg_json_format_flags, stdout, NULL);
}
-
- return 0;
}
static size_t break_columns(void) {
return table_log_add_error(r);
}
- r = table_print(t);
+ r = table_print_or_warn(t);
if (r < 0)
- return table_log_print_error(r);
+ return r;
break;
}