cli: separate input and in-out arguments in print_data()

Don't pass down the entire NmCli instance. The output_data
array is modified by print_data(), the rest is read-only input.
This commit is contained in:
Thomas Haller
2017-03-30 13:02:24 +02:00
parent e847d0f121
commit 98ce4a8d5d
7 changed files with 51 additions and 51 deletions

View File

@@ -162,7 +162,7 @@ print_ip4_config (NMIPConfig *cfg4,
set_val_arr (arr, 6, wins_arr); set_val_arr (arr, 6, wins_arr);
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
/* Remove any previous data */ /* Remove any previous data */
nmc_empty_output_fields (nmc); nmc_empty_output_fields (nmc);
@@ -246,7 +246,7 @@ print_ip6_config (NMIPConfig *cfg6,
set_val_arr (arr, 5, domain_arr); set_val_arr (arr, 5, domain_arr);
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
/* Remove any previous data */ /* Remove any previous data */
nmc_empty_output_fields (nmc); nmc_empty_output_fields (nmc);
@@ -292,7 +292,7 @@ print_dhcp4_config (NMDhcpConfig *dhcp4,
set_val_arr (arr, 1, options_arr); set_val_arr (arr, 1, options_arr);
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
/* Remove any previous data */ /* Remove any previous data */
nmc_empty_output_fields (nmc); nmc_empty_output_fields (nmc);
@@ -340,7 +340,7 @@ print_dhcp6_config (NMDhcpConfig *dhcp6,
set_val_arr (arr, 1, options_arr); set_val_arr (arr, 1, options_arr);
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
/* Remove any previous data */ /* Remove any previous data */
nmc_empty_output_fields (nmc); nmc_empty_output_fields (nmc);

View File

@@ -795,7 +795,7 @@ nmc_connection_profile_details (NMConnection *connection, NmCli *nmc, gboolean s
nmc_fields_settings_names, FALSE, NULL, NULL); nmc_fields_settings_names, FALSE, NULL, NULL);
nmc_fields_settings_names[0].flags = NMC_OF_FLAG_MAIN_HEADER_ONLY; nmc_fields_settings_names[0].flags = NMC_OF_FLAG_MAIN_HEADER_ONLY;
print_required_fields (nmc, nmc_fields_settings_names); print_required_fields (&nmc->nmc_config, &nmc->print_fields, nmc_fields_settings_names);
/* Loop through the required settings and print them. */ /* Loop through the required settings and print them. */
for (i = 0; i < print_settings_array->len; i++) { for (i = 0; i < print_settings_array->len; i++) {
@@ -1222,7 +1222,7 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
nmc_fields_con_active_details_groups, FALSE, NULL, NULL); nmc_fields_con_active_details_groups, FALSE, NULL, NULL);
nmc_fields_con_active_details_groups[0].flags = NMC_OF_FLAG_MAIN_HEADER_ONLY; nmc_fields_con_active_details_groups[0].flags = NMC_OF_FLAG_MAIN_HEADER_ONLY;
print_required_fields (nmc, nmc_fields_con_active_details_groups); print_required_fields (&nmc->nmc_config, &nmc->print_fields, nmc_fields_con_active_details_groups);
/* Loop through the groups and print them. */ /* Loop through the groups and print them. */
for (i = 0; i < print_groups->len; i++) { for (i = 0; i < print_groups->len; i++) {
@@ -1250,7 +1250,7 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
/* Fill in values */ /* Fill in values */
fill_output_active_connection (acon, nmc, TRUE, NMC_OF_FLAG_SECTION_PREFIX); fill_output_active_connection (acon, nmc, TRUE, NMC_OF_FLAG_SECTION_PREFIX);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
was_output = TRUE; was_output = TRUE;
} }
@@ -1349,7 +1349,7 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc)
set_val_arr (arr, 6, vpn_data_array); set_val_arr (arr, 6, vpn_data_array);
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
was_output = TRUE; was_output = TRUE;
} }
} }
@@ -1831,7 +1831,7 @@ do_connections_show (NmCli *nmc, int argc, char **argv)
fill_output_connection (sorted_cons->pdata[i], nmc, active_only); fill_output_connection (sorted_cons->pdata[i], nmc, active_only);
g_ptr_array_free (sorted_cons, TRUE); g_ptr_array_free (sorted_cons, TRUE);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
} else { } else {
gboolean new_line = FALSE; gboolean new_line = FALSE;
gboolean without_fields = (nmc->required_fields == NULL); gboolean without_fields = (nmc->required_fields == NULL);

View File

@@ -984,7 +984,7 @@ print_bond_bridge_info (NMDevice *device,
set_val_str (arr, 1, slaves_str->str); set_val_str (arr, 1, slaves_str->str);
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
g_string_free (slaves_str, FALSE); g_string_free (slaves_str, FALSE);
nmc_empty_output_fields (nmc); nmc_empty_output_fields (nmc);
@@ -1054,7 +1054,7 @@ print_team_info (NMDevice *device,
set_val_str (arr, 2, sanitize_team_config (nm_device_team_get_config (NM_DEVICE_TEAM (device)))); set_val_str (arr, 2, sanitize_team_config (nm_device_team_get_config (NM_DEVICE_TEAM (device))));
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
g_string_free (slaves_str, FALSE); g_string_free (slaves_str, FALSE);
nmc_empty_output_fields (nmc); nmc_empty_output_fields (nmc);
@@ -1110,7 +1110,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
nmc_fields_dev_show_general, FALSE, NULL, NULL); nmc_fields_dev_show_general, FALSE, NULL, NULL);
nmc_fields_dev_show_general[0].flags = NMC_OF_FLAG_MAIN_HEADER_ONLY; nmc_fields_dev_show_general[0].flags = NMC_OF_FLAG_MAIN_HEADER_ONLY;
print_required_fields (nmc, nmc_fields_dev_show_general); print_required_fields (&nmc->nmc_config, &nmc->print_fields, nmc_fields_dev_show_general);
/* Loop through the required sections and print them. */ /* Loop through the required sections and print them. */
for (k = 0; k < sections_array->len; k++) { for (k = 0; k < sections_array->len; k++) {
@@ -1171,7 +1171,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
set_val_strc (arr, 24, nmc_device_metered_to_string (nm_device_get_metered (device))); set_val_strc (arr, 24, nmc_device_metered_to_string (nm_device_get_metered (device)));
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
was_output = TRUE; was_output = TRUE;
} }
@@ -1203,7 +1203,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
set_val_strc (arr, 3, (caps & NM_DEVICE_CAP_IS_SOFTWARE) ? _("yes") : _("no")); set_val_strc (arr, 3, (caps & NM_DEVICE_CAP_IS_SOFTWARE) ? _("yes") : _("no"));
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
was_output = TRUE; was_output = TRUE;
} }
@@ -1241,7 +1241,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
((wcaps & NM_WIFI_DEVICE_CAP_FREQ_5GHZ) ? _("yes") : _("no"))); ((wcaps & NM_WIFI_DEVICE_CAP_FREQ_5GHZ) ? _("yes") : _("no")));
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
was_output = TRUE; was_output = TRUE;
} }
@@ -1269,7 +1269,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
g_ptr_array_foreach ((GPtrArray *) aps, fill_output_access_point, (gpointer) info); g_ptr_array_foreach ((GPtrArray *) aps, fill_output_access_point, (gpointer) info);
g_ptr_array_free (aps, FALSE); g_ptr_array_free (aps, FALSE);
g_free (info); g_free (info);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
was_output = TRUE; was_output = TRUE;
} }
} else if (NM_IS_DEVICE_ETHERNET (device)) { } else if (NM_IS_DEVICE_ETHERNET (device)) {
@@ -1289,7 +1289,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
set_val_arrc (arr, 2, ((const char **) nm_device_ethernet_get_s390_subchannels (NM_DEVICE_ETHERNET (device)))); set_val_arrc (arr, 2, ((const char **) nm_device_ethernet_get_s390_subchannels (NM_DEVICE_ETHERNET (device))));
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
was_output = TRUE; was_output = TRUE;
} }
} }
@@ -1353,7 +1353,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
set_val_str (arr, 2, vlan_id_str); set_val_str (arr, 2, vlan_id_str);
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
was_output = TRUE; was_output = TRUE;
} }
@@ -1373,7 +1373,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
set_val_str (arr, 1, bluetooth_caps_to_string (nm_device_bt_get_capabilities (NM_DEVICE_BT (device)))); set_val_str (arr, 1, bluetooth_caps_to_string (nm_device_bt_get_capabilities (NM_DEVICE_BT (device))));
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
was_output = TRUE; was_output = TRUE;
} }
} }
@@ -1422,7 +1422,7 @@ show_device_info (NMDevice *device, NmCli *nmc)
set_val_arr (arr, 2, (ac_arr)); set_val_arr (arr, 2, (ac_arr));
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
g_string_free (ac_paths_str, FALSE); g_string_free (ac_paths_str, FALSE);
was_output = TRUE; was_output = TRUE;
@@ -1530,8 +1530,7 @@ do_devices_status (NmCli *nmc, int argc, char **argv)
for (i = 0; devices[i]; i++) for (i = 0; devices[i]; i++)
fill_output_device_status (devices[i], nmc); fill_output_device_status (devices[i], nmc);
/* Now print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
print_data (nmc);
g_free (devices); g_free (devices);
@@ -2496,7 +2495,7 @@ show_access_point_info (NMDevice *device, NmCli *nmc)
g_ptr_array_foreach ((GPtrArray *) aps, fill_output_access_point, (gpointer) info); g_ptr_array_foreach ((GPtrArray *) aps, fill_output_access_point, (gpointer) info);
g_ptr_array_free (aps, FALSE); g_ptr_array_free (aps, FALSE);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
nmc_empty_output_fields (nmc); nmc_empty_output_fields (nmc);
g_free (info); g_free (info);
} }
@@ -2726,7 +2725,7 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
fill_output_access_point (ap, info); fill_output_access_point (ap, info);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
g_free (info); g_free (info);
} else { } else {
show_access_point_info (device, nmc); show_access_point_info (device, nmc);
@@ -2786,7 +2785,7 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
} }
if (empty_line) if (empty_line)
g_print ("\n"); /* Empty line between devices' APs */ g_print ("\n"); /* Empty line between devices' APs */
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
nmc_empty_output_fields (nmc); nmc_empty_output_fields (nmc);
empty_line = TRUE; empty_line = TRUE;
} }
@@ -3734,7 +3733,7 @@ show_device_lldp_list (NMDevice *device, NmCli *nmc, char *fields_str, int *coun
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
} }
print_data (nmc); print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
nmc_empty_output_fields (nmc); nmc_empty_output_fields (nmc);
return neighbors->len; return neighbors->len;

View File

@@ -381,7 +381,7 @@ show_nm_status (NmCli *nmc, const char *pretty_header_name, const char *print_fl
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
return TRUE; return TRUE;
} }
@@ -504,7 +504,7 @@ print_permissions (void *user_data)
set_val_strc (arr, 1, permission_result_to_string (perm_result)); set_val_strc (arr, 1, permission_result_to_string (perm_result));
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
} }
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
quit (); quit ();
return G_SOURCE_REMOVE; return G_SOURCE_REMOVE;
@@ -617,7 +617,7 @@ show_general_logging (NmCli *nmc)
set_val_str (arr, 1, domains); set_val_str (arr, 1, domains);
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
return TRUE; return TRUE;
} }

View File

@@ -918,7 +918,7 @@ setting_details (NMSetting *setting, NmCli *nmc, const char *one_prop, gboolean
g_ptr_array_add (nmc->output_data, arr); g_ptr_array_add (nmc->output_data, arr);
print_data (nmc); /* Print all data */ print_data (&nmc->nmc_config, &nmc->print_fields, nmc->output_data);
return TRUE; return TRUE;
} }

View File

@@ -863,7 +863,7 @@ get_value_to_print (NmcColorOption color_option,
* of 'field_values' array. * of 'field_values' array.
*/ */
void void
print_required_fields (NmCli *nmc, const NmcOutputField field_values[]) print_required_fields (const NmcConfig *nmc_config, const NmcPrintFields *print_fields, const NmcOutputField field_values[])
{ {
GString *str; GString *str;
int width1, width2; int width1, width2;
@@ -872,11 +872,11 @@ print_required_fields (NmCli *nmc, const NmcOutputField field_values[])
char *indent_str; char *indent_str;
const char *not_set_str = "--"; const char *not_set_str = "--";
int i; int i;
const NmcPrintFields fields = nmc->print_fields; const NmcPrintFields fields = *print_fields;
gboolean multiline = nmc->nmc_config.multiline_output; gboolean multiline = nmc_config->multiline_output;
gboolean terse = (nmc->nmc_config.print_output == NMC_PRINT_TERSE); gboolean terse = (nmc_config->print_output == NMC_PRINT_TERSE);
gboolean pretty = (nmc->nmc_config.print_output == NMC_PRINT_PRETTY); gboolean pretty = (nmc_config->print_output == NMC_PRINT_PRETTY);
gboolean escape = nmc->nmc_config.escape_values; gboolean escape = nmc_config->escape_values;
gboolean main_header_add = field_values[0].flags & NMC_OF_FLAG_MAIN_HEADER_ADD; gboolean main_header_add = field_values[0].flags & NMC_OF_FLAG_MAIN_HEADER_ADD;
gboolean main_header_only = field_values[0].flags & NMC_OF_FLAG_MAIN_HEADER_ONLY; gboolean main_header_only = field_values[0].flags & NMC_OF_FLAG_MAIN_HEADER_ONLY;
gboolean field_names = field_values[0].flags & NMC_OF_FLAG_FIELD_NAMES; gboolean field_names = field_values[0].flags & NMC_OF_FLAG_FIELD_NAMES;
@@ -938,7 +938,7 @@ print_required_fields (NmCli *nmc, const NmcOutputField field_values[])
for (p = (const char **) field_values[idx].value, j = 1; p && *p; p++, j++) { for (p = (const char **) field_values[idx].value, j = 1; p && *p; p++, j++) {
val = *p ? *p : not_set_str; val = *p ? *p : not_set_str;
print_val = colorize_string (nmc->nmc_config.use_colors, field_values[idx].color, field_values[idx].color_fmt, print_val = colorize_string (nmc_config->use_colors, field_values[idx].color, field_values[idx].color_fmt,
val, &val_to_free); val, &val_to_free);
tmp = g_strdup_printf ("%s%s%s[%d]:", tmp = g_strdup_printf ("%s%s%s[%d]:",
section_prefix ? (const char*) field_values[0].value : "", section_prefix ? (const char*) field_values[0].value : "",
@@ -958,7 +958,7 @@ print_required_fields (NmCli *nmc, const NmcOutputField field_values[])
gs_free char *val_to_free = NULL; gs_free char *val_to_free = NULL;
val = val && *val ? val : not_set_str; val = val && *val ? val : not_set_str;
print_val = colorize_string (nmc->nmc_config.use_colors, field_values[idx].color, field_values[idx].color_fmt, print_val = colorize_string (nmc_config->use_colors, field_values[idx].color, field_values[idx].color_fmt,
val, &val_to_free); val, &val_to_free);
tmp = g_strdup_printf ("%s%s%s:", tmp = g_strdup_printf ("%s%s%s:",
section_prefix ? hdr_name : "", section_prefix ? hdr_name : "",
@@ -986,7 +986,7 @@ print_required_fields (NmCli *nmc, const NmcOutputField field_values[])
for (i = 0; i < fields.indices->len; i++) { for (i = 0; i < fields.indices->len; i++) {
int idx = g_array_index (fields.indices, int, i); int idx = g_array_index (fields.indices, int, i);
gs_free char *val_to_free = NULL; gs_free char *val_to_free = NULL;
const char *value = get_value_to_print (nmc->nmc_config.use_colors, (NmcOutputField *) field_values+idx, field_names, const char *value = get_value_to_print (nmc_config->use_colors, (NmcOutputField *) field_values+idx, field_names,
not_set_str, &val_to_free); not_set_str, &val_to_free);
if (terse) { if (terse) {
@@ -1041,18 +1041,18 @@ print_required_fields (NmCli *nmc, const NmcOutputField field_values[])
* print_required_fields() function. * print_required_fields() function.
*/ */
void void
print_data (NmCli *nmc) print_data (const NmcConfig *nmc_config, const NmcPrintFields *print_fields, GPtrArray *output_data)
{ {
int i, j; int i, j;
size_t len; size_t len;
NmcOutputField *row; NmcOutputField *row;
int num_fields = 0; int num_fields = 0;
if (!nmc->output_data || nmc->output_data->len < 1) if (!output_data || output_data->len < 1)
return; return;
/* How many fields? */ /* How many fields? */
row = g_ptr_array_index (nmc->output_data, 0); row = g_ptr_array_index (output_data, 0);
while (row->name) { while (row->name) {
num_fields++; num_fields++;
row++; row++;
@@ -1061,27 +1061,27 @@ print_data (NmCli *nmc)
/* Find out maximal string lengths */ /* Find out maximal string lengths */
for (i = 0; i < num_fields; i++) { for (i = 0; i < num_fields; i++) {
size_t max_width = 0; size_t max_width = 0;
for (j = 0; j < nmc->output_data->len; j++) { for (j = 0; j < output_data->len; j++) {
gboolean field_names; gboolean field_names;
gs_free char * val_to_free = NULL; gs_free char * val_to_free = NULL;
const char *value; const char *value;
row = g_ptr_array_index (nmc->output_data, j); row = g_ptr_array_index (output_data, j);
field_names = row[0].flags & NMC_OF_FLAG_FIELD_NAMES; field_names = row[0].flags & NMC_OF_FLAG_FIELD_NAMES;
value = get_value_to_print (NMC_USE_COLOR_NO, row+i, field_names, "--", &val_to_free); value = get_value_to_print (NMC_USE_COLOR_NO, row+i, field_names, "--", &val_to_free);
len = nmc_string_screen_width (value, NULL); len = nmc_string_screen_width (value, NULL);
max_width = len > max_width ? len : max_width; max_width = len > max_width ? len : max_width;
} }
for (j = 0; j < nmc->output_data->len; j++) { for (j = 0; j < output_data->len; j++) {
row = g_ptr_array_index (nmc->output_data, j); row = g_ptr_array_index (output_data, j);
row[i].width = max_width + 1; row[i].width = max_width + 1;
} }
} }
/* Now we can print the data. */ /* Now we can print the data. */
for (i = 0; i < nmc->output_data->len; i++) { for (i = 0; i < output_data->len; i++) {
row = g_ptr_array_index (nmc->output_data, i); row = g_ptr_array_index (output_data, i);
print_required_fields (nmc, row); print_required_fields (nmc_config, print_fields, row);
} }
} }

View File

@@ -68,7 +68,8 @@ GArray *parse_output_fields (const char *fields_str,
char *nmc_get_allowed_fields (const NmcOutputField fields_array[], int group_idx); char *nmc_get_allowed_fields (const NmcOutputField fields_array[], int group_idx);
NmcOutputField *nmc_dup_fields_array (NmcOutputField fields[], size_t size, guint32 flags); NmcOutputField *nmc_dup_fields_array (NmcOutputField fields[], size_t size, guint32 flags);
void nmc_empty_output_fields (NmCli *nmc); void nmc_empty_output_fields (NmCli *nmc);
void print_required_fields (NmCli *nmc, const NmcOutputField field_values[]); void print_required_fields (const NmcConfig *nmc_config, const NmcPrintFields *print_fields, const NmcOutputField field_values[]);
void print_data (NmCli *nmc); void print_data (const NmcConfig *nmc_config, const NmcPrintFields *print_fields, GPtrArray *output_data);
#endif /* NMC_UTILS_H */ #endif /* NMC_UTILS_H */