tree-wide: drop flush&check step after table printing
Almost all callers of table_print() specify stdout or NULL (equivalent to stdout) as the output stream. Simplify things by not requiring the the stream to be specified. In almost all cases, the printing of the table is surrounded by normal printfs() that don't do explicit flushing and for which we don't check the output stream status. Let's simplify most callers and skip this step. The reason is not so much to avoid the extra step itself, but instead to avoid the _handling_ of the potential failure. We generally only want to print an error message for ENOMEM and other "internal" errors, so strictly speaking we should filter out the errors from the stream. By skipping the flush&check step we implicitly do this.
This commit is contained in:
@@ -37,7 +37,7 @@ static int help(void) {
|
||||
program_invocation_short_name,
|
||||
ansi_highlight(),
|
||||
ansi_normal());
|
||||
table_print(options, stdout);
|
||||
table_print(options);
|
||||
|
||||
printf("\nSee the %s for details.\n", link);
|
||||
return 0;
|
||||
|
||||
@@ -119,7 +119,7 @@ static int test_calendar_one(usec_t n, const char *p) {
|
||||
n = next;
|
||||
}
|
||||
|
||||
return table_print(table, NULL);
|
||||
return table_print(table);
|
||||
}
|
||||
|
||||
int verb_calendar(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
|
||||
@@ -157,7 +157,7 @@ int verb_image_policy(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
|
||||
putc('\n', stdout);
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
||||
@@ -118,7 +118,7 @@ static int analyze_elf(char **filenames, sd_json_format_flags_t json_flags) {
|
||||
if (sd_json_format_enabled(json_flags))
|
||||
sd_json_variant_dump(package_metadata, json_flags, stdout, NULL);
|
||||
else {
|
||||
r = table_print(t, NULL);
|
||||
r = table_print(t);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
}
|
||||
|
||||
@@ -429,7 +429,7 @@ static int show_table(Table *table, const char *word) {
|
||||
if (sd_json_format_enabled(arg_json_format_flags))
|
||||
r = table_print_json(table, NULL, arg_json_format_flags | SD_JSON_FORMAT_COLOR_AUTO);
|
||||
else
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ int verb_timespan(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
if (r < 0)
|
||||
return table_log_add_error(r);
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ static int test_timestamp_one(const char *p) {
|
||||
if (r < 0)
|
||||
return table_log_add_error(r);
|
||||
|
||||
return table_print(table, NULL);
|
||||
return table_print(table);
|
||||
}
|
||||
|
||||
int verb_timestamp(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
|
||||
@@ -57,7 +57,7 @@ static int help(void) {
|
||||
program_invocation_short_name,
|
||||
ansi_highlight(),
|
||||
ansi_normal());
|
||||
table_print(options, stdout);
|
||||
table_print(options);
|
||||
|
||||
printf("\nSee the %s for details.\n", link);
|
||||
return 0;
|
||||
|
||||
+1
-1
@@ -126,7 +126,7 @@ static int help(void) {
|
||||
program_invocation_short_name,
|
||||
ansi_highlight(),
|
||||
ansi_normal());
|
||||
table_print(options, stdout);
|
||||
table_print(options);
|
||||
|
||||
printf("\nSee the %s for details.\n", link);
|
||||
return 0;
|
||||
|
||||
@@ -58,10 +58,10 @@ static int help(void) {
|
||||
program_invocation_short_name,
|
||||
ansi_highlight(),
|
||||
ansi_normal());
|
||||
table_print(verbs, stdout);
|
||||
table_print(verbs);
|
||||
|
||||
printf("\nOptions:\n");
|
||||
table_print(options, stdout);
|
||||
table_print(options);
|
||||
|
||||
printf("\nSee the %s for details.\n", link);
|
||||
return 0;
|
||||
|
||||
@@ -125,7 +125,7 @@ int list_enrolled(struct crypt_device *cd) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
r = table_print(t, stdout);
|
||||
r = table_print(t);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to show slot table: %m");
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ static int help(void) {
|
||||
program_invocation_short_name,
|
||||
ansi_highlight(),
|
||||
ansi_normal());
|
||||
table_print(options, stdout);
|
||||
table_print(options);
|
||||
|
||||
printf("\nSee the %s for details.\n", link);
|
||||
return 0;
|
||||
|
||||
@@ -165,11 +165,11 @@ static int help(void) {
|
||||
ansi_underline(),
|
||||
ansi_normal());
|
||||
|
||||
table_print(options, stdout);
|
||||
table_print(options);
|
||||
|
||||
printf("\n%sCommands:%s\n", ansi_underline(), ansi_normal());
|
||||
|
||||
table_print(commands, stdout);
|
||||
table_print(commands);
|
||||
|
||||
printf("\nSee the %s for details.\n", link);
|
||||
return 0;
|
||||
@@ -1082,7 +1082,7 @@ static int action_dissect(
|
||||
if (!sd_json_format_enabled(arg_json_format_flags)) {
|
||||
table_set_header(t, arg_legend);
|
||||
|
||||
r = table_print(t, NULL);
|
||||
r = table_print(t);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
} else {
|
||||
|
||||
@@ -51,10 +51,10 @@ static int help(void) {
|
||||
program_invocation_short_name,
|
||||
ansi_highlight(),
|
||||
ansi_normal());
|
||||
table_print(verbs, stdout);
|
||||
table_print(verbs);
|
||||
|
||||
printf("\nOptions:\n");
|
||||
table_print(options, stdout);
|
||||
table_print(options);
|
||||
|
||||
printf("\nSee the %s for details.\n", link);
|
||||
return 0;
|
||||
|
||||
@@ -375,7 +375,7 @@ static int print_status_info(StatusInfo *i) {
|
||||
}
|
||||
}
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
@@ -748,10 +748,10 @@ static int help(void) {
|
||||
program_invocation_short_name,
|
||||
ansi_highlight(),
|
||||
ansi_normal());
|
||||
table_print(verbs, stdout);
|
||||
table_print(verbs);
|
||||
|
||||
printf("\nOptions:\n");
|
||||
table_print(options, stdout);
|
||||
table_print(options);
|
||||
|
||||
printf("\nSee the %s for details.\n", link);
|
||||
return 0;
|
||||
|
||||
+2
-2
@@ -216,10 +216,10 @@ static int help(void) {
|
||||
program_invocation_short_name,
|
||||
ansi_highlight(),
|
||||
ansi_normal());
|
||||
table_print(verbs, stdout);
|
||||
table_print(verbs);
|
||||
|
||||
printf("\nOptions:\n");
|
||||
table_print(options, stdout);
|
||||
table_print(options);
|
||||
|
||||
printf("\nSee the %s for details.\n", link);
|
||||
return 0;
|
||||
|
||||
@@ -381,7 +381,7 @@ static int action_summary(sd_varlink *link) {
|
||||
if (table_isempty(table))
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "No well-known IMDS data available.");
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
|
||||
@@ -144,7 +144,7 @@ static int print_status_info(StatusInfo *i) {
|
||||
return table_log_add_error(r);
|
||||
}
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
|
||||
@@ -716,7 +716,7 @@ static int print_session_status_info(sd_bus *bus, const char *path) {
|
||||
/* 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, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
@@ -821,7 +821,7 @@ static int print_user_status_info(sd_bus *bus, const char *path) {
|
||||
|
||||
printf("%s%s (" UID_FMT ")%s\n", ansi_highlight(), i.name, i.uid, ansi_normal());
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
@@ -896,7 +896,7 @@ static int print_seat_status_info(sd_bus *bus, const char *path) {
|
||||
|
||||
printf("%s%s%s\n", ansi_highlight(), i.id, ansi_normal());
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
|
||||
@@ -262,7 +262,7 @@ static int show_table(Table *table, const char *word) {
|
||||
if (OUTPUT_MODE_IS_JSON(arg_output))
|
||||
r = table_print_json(table, NULL, output_mode_to_json_format_flags(arg_output) | SD_JSON_FORMAT_COLOR_AUTO);
|
||||
else
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ static int dump_address_labels(sd_netlink *rtnl) {
|
||||
return table_log_add_error(r);
|
||||
}
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ int verb_list_links(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
return table_log_add_error(r);
|
||||
}
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
|
||||
@@ -303,7 +303,7 @@ int verb_link_lldp_status(int argc, char *argv[], uintptr_t _data, void *userdat
|
||||
}
|
||||
}
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
|
||||
@@ -900,7 +900,7 @@ static int link_status_one(
|
||||
on_color_operational, glyph(GLYPH_BLACK_CIRCLE), off_color_operational,
|
||||
info->ifindex, info->name);
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@ int system_status(sd_netlink *rtnl, sd_hwdb *hwdb) {
|
||||
on_color_operational, glyph(GLYPH_BLACK_CIRCLE), off_color_operational,
|
||||
strna(netifs_joined));
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
|
||||
+1
-1
@@ -77,7 +77,7 @@ static int help(void) {
|
||||
ansi_highlight(),
|
||||
ansi_normal());
|
||||
|
||||
table_print(options, stdout);
|
||||
table_print(options);
|
||||
|
||||
printf("\nSee the %s for details.\n", link);
|
||||
return 0;
|
||||
|
||||
@@ -1075,7 +1075,7 @@ static int verb_list_images(int argc, char *argv[], uintptr_t _data, void *userd
|
||||
|
||||
table_set_header(table, arg_legend);
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ static int help(void) {
|
||||
ansi_normal(),
|
||||
ansi_underline(),
|
||||
ansi_normal());
|
||||
table_print(options, stdout);
|
||||
table_print(options);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1321,7 +1321,7 @@ static int verb_show_statistics(int argc, char *argv[], uintptr_t _data, void *u
|
||||
if (r < 0)
|
||||
return table_log_add_error(r);
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
@@ -1890,7 +1890,7 @@ static int print_configuration(DNSConfiguration *configuration, StatusMode mode,
|
||||
return table_log_add_error(r);
|
||||
}
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
@@ -3097,7 +3097,7 @@ static int dump_server_state(sd_json_variant *server) {
|
||||
if (r < 0)
|
||||
return table_log_add_error(r);
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
|
||||
+1
-1
@@ -2437,7 +2437,7 @@ static int run_context_show_result(RunContext *c) {
|
||||
return table_log_add_error(r);
|
||||
}
|
||||
|
||||
r = table_print(t, stderr);
|
||||
r = table_print_full(t, stderr, /* flush= */ true);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
|
||||
@@ -2217,7 +2217,7 @@ int _table_sync_column_widths(size_t column, Table *a, ...) {
|
||||
return r;
|
||||
}
|
||||
|
||||
int table_print(Table *t, FILE *f) {
|
||||
int table_print_full(Table *t, FILE *f, bool flush) {
|
||||
size_t n_rows, *minimum_width, *maximum_width, display_columns, *requested_width,
|
||||
table_minimum_width, table_maximum_width, table_requested_width, table_effective_width,
|
||||
*width = NULL;
|
||||
@@ -2637,6 +2637,9 @@ int table_print(Table *t, FILE *f) {
|
||||
} while (more_sublines);
|
||||
}
|
||||
|
||||
if (!flush)
|
||||
return 0;
|
||||
|
||||
return fflush_and_check(f);
|
||||
}
|
||||
|
||||
@@ -2652,7 +2655,7 @@ int table_format(Table *t, char **ret) {
|
||||
if (!f)
|
||||
return -ENOMEM;
|
||||
|
||||
r = table_print(t, f);
|
||||
r = table_print_full(t, f, /* flush= */ true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -3141,7 +3144,7 @@ int table_print_json(Table *t, FILE *f, sd_json_format_flags_t flags) {
|
||||
assert(t);
|
||||
|
||||
if (!sd_json_format_enabled(flags)) /* If JSON output is turned off, use regular output */
|
||||
return table_print(t, f);
|
||||
return table_print_full(t, f, /* flush= */ true);
|
||||
|
||||
if (!f)
|
||||
f = stdout;
|
||||
|
||||
@@ -147,7 +147,11 @@ int table_set_column_width(Table *t, size_t column, size_t width);
|
||||
int _table_sync_column_widths(size_t column, Table *a, ...);
|
||||
#define table_sync_column_widths(column, a, ...) _table_sync_column_widths(column, a, __VA_ARGS__, NULL)
|
||||
|
||||
int table_print(Table *t, FILE *f);
|
||||
int table_print_full(Table *t, FILE *f, bool flush);
|
||||
static inline int table_print(Table *t) {
|
||||
return table_print_full(t, /* f= */ NULL, /* flush= */ false);
|
||||
}
|
||||
|
||||
int table_format(Table *t, char **ret);
|
||||
|
||||
static inline TableCell* TABLE_HEADER_CELL(size_t i) {
|
||||
|
||||
@@ -1241,7 +1241,7 @@ int fido2_list_devices(void) {
|
||||
}
|
||||
}
|
||||
|
||||
r = table_print(t, stdout);
|
||||
r = table_print(t);
|
||||
if (r < 0) {
|
||||
log_error_errno(r, "Failed to show device table: %m");
|
||||
goto finish;
|
||||
|
||||
@@ -128,7 +128,7 @@ int parse_signal_argument(const char *s, int *ret) {
|
||||
return table_log_add_error(r);
|
||||
}
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
|
||||
@@ -1816,7 +1816,7 @@ int pkcs11_list_tokens(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
r = table_print(t, stdout);
|
||||
r = table_print(t);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to show device table: %m");
|
||||
|
||||
|
||||
@@ -6584,7 +6584,7 @@ int tpm2_list_devices(bool legend, bool quiet) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
r = table_print(t, stdout);
|
||||
r = table_print(t);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to show device table: %m");
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@ static int output_jobs_list(sd_bus *bus, const struct job_info* jobs, unsigned n
|
||||
output_waiting_jobs(bus, table, j->id, "GetJobBefore", "\twaiting for job");
|
||||
}
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to print the table: %m");
|
||||
|
||||
|
||||
@@ -919,7 +919,7 @@ int output_table(Table *table) {
|
||||
if (OUTPUT_MODE_IS_JSON(arg_output))
|
||||
r = table_print_json(table, NULL, output_mode_to_json_format_flags(arg_output) | SD_JSON_FORMAT_COLOR_AUTO);
|
||||
else
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
|
||||
@@ -890,7 +890,7 @@ TEST(table_ansi) {
|
||||
"FOO BAR BAZ KKK\n"
|
||||
"hallo knuerzredgreen noansi thisisgrey\n");
|
||||
|
||||
ASSERT_OK(table_print(table, /* f= */ NULL));
|
||||
ASSERT_OK(table_print(table));
|
||||
|
||||
_cleanup_(sd_json_variant_unrefp) sd_json_variant *j = NULL, *jj = NULL;
|
||||
|
||||
|
||||
@@ -163,7 +163,7 @@ static int print_status_info(const StatusInfo *i) {
|
||||
if (r < 0)
|
||||
return table_log_add_error(r);
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
@@ -443,7 +443,7 @@ static int print_ntp_status_info(NTPStatusInfo *i) {
|
||||
if (r < 0)
|
||||
return table_log_add_error(r);
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
@@ -452,7 +452,7 @@ static int print_ntp_status_info(NTPStatusInfo *i) {
|
||||
|
||||
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, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
@@ -536,7 +536,7 @@ static int print_ntp_status_info(NTPStatusInfo *i) {
|
||||
return table_log_add_error(r);
|
||||
}
|
||||
|
||||
r = table_print(table, NULL);
|
||||
r = table_print(table);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ static int help(void) {
|
||||
ansi_normal(),
|
||||
ansi_underline(),
|
||||
ansi_normal());
|
||||
table_print(options, stdout);
|
||||
table_print(options);
|
||||
|
||||
printf("\nSee the %s for details.\n", link);
|
||||
return 0;
|
||||
|
||||
@@ -50,7 +50,7 @@ static int help(void) {
|
||||
program_invocation_short_name,
|
||||
ansi_highlight(),
|
||||
ansi_normal());
|
||||
table_print(options, stdout);
|
||||
table_print(options);
|
||||
|
||||
printf("\nSee the %s for details.\n", link);
|
||||
return 0;
|
||||
|
||||
@@ -439,7 +439,7 @@ static int verb_info(int argc, char *argv[], uintptr_t _data, void *userdata) {
|
||||
if (r < 0)
|
||||
return table_log_add_error(r);
|
||||
|
||||
r = table_print(t, NULL);
|
||||
r = table_print(t);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
}
|
||||
|
||||
@@ -337,7 +337,7 @@ static int run(int argc, char *argv[]) {
|
||||
return table_log_add_error(r);
|
||||
}
|
||||
|
||||
r = table_print(t, stdout);
|
||||
r = table_print(t);
|
||||
if (r < 0)
|
||||
return table_log_print_error(r);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user