diff options
author | Thomas Haller <thaller@redhat.com> | 2017-03-30 13:46:09 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2017-03-30 13:46:09 +0200 |
commit | 85acdd70e7daba3257a3811c819a5f9a243bdfa6 (patch) | |
tree | ff024660eacb23fe644c7e68299d2e5f592bf0e1 | |
parent | 2ea670ab96680d5f40ec01278f334fedced444cd (diff) | |
download | NetworkManager-85acdd70e7daba3257a3811c819a5f9a243bdfa6.tar.gz |
cli: split print_data() in a part with and without side-effects
To better understand which part of the code have side effects,
split print_data() in a part that mutilates the input array
and a part that only prints.
-rw-r--r-- | clients/cli/common.c | 12 | ||||
-rw-r--r-- | clients/cli/connections.c | 9 | ||||
-rw-r--r-- | clients/cli/devices.c | 45 | ||||
-rw-r--r-- | clients/cli/general.c | 9 | ||||
-rw-r--r-- | clients/cli/settings.c | 3 | ||||
-rw-r--r-- | clients/cli/utils.c | 23 | ||||
-rw-r--r-- | clients/cli/utils.h | 4 |
7 files changed, 64 insertions, 41 deletions
diff --git a/clients/cli/common.c b/clients/cli/common.c index c47c054981..ef4a2cb34a 100644 --- a/clients/cli/common.c +++ b/clients/cli/common.c @@ -162,7 +162,8 @@ print_ip4_config (NMIPConfig *cfg4, set_val_arr (arr, 6, wins_arr); g_ptr_array_add (nmc->out.output_data, arr); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); nmc_empty_output_fields (&nmc->out); @@ -245,7 +246,8 @@ print_ip6_config (NMIPConfig *cfg6, set_val_arr (arr, 5, domain_arr); g_ptr_array_add (nmc->out.output_data, arr); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); nmc_empty_output_fields (&nmc->out); @@ -290,7 +292,8 @@ print_dhcp4_config (NMDhcpConfig *dhcp4, set_val_arr (arr, 1, options_arr); g_ptr_array_add (nmc->out.output_data, arr); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); nmc_empty_output_fields (&nmc->out); @@ -337,7 +340,8 @@ print_dhcp6_config (NMDhcpConfig *dhcp6, set_val_arr (arr, 1, options_arr); g_ptr_array_add (nmc->out.output_data, arr); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); nmc_empty_output_fields (&nmc->out); diff --git a/clients/cli/connections.c b/clients/cli/connections.c index 27f1286494..9ab5c8395e 100644 --- a/clients/cli/connections.c +++ b/clients/cli/connections.c @@ -1248,7 +1248,8 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc) /* Fill in values */ fill_output_active_connection (acon, nmc, TRUE, NMC_OF_FLAG_SECTION_PREFIX); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); was_output = TRUE; } @@ -1347,7 +1348,8 @@ nmc_active_connection_details (NMActiveConnection *acon, NmCli *nmc) set_val_arr (arr, 6, vpn_data_array); g_ptr_array_add (nmc->out.output_data, arr); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); was_output = TRUE; } } @@ -1829,7 +1831,8 @@ do_connections_show (NmCli *nmc, int argc, char **argv) fill_output_connection (sorted_cons->pdata[i], nmc, active_only); g_ptr_array_free (sorted_cons, TRUE); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); } else { gboolean new_line = FALSE; gboolean without_fields = (nmc->required_fields == NULL); diff --git a/clients/cli/devices.c b/clients/cli/devices.c index e233da7bcc..050abd1171 100644 --- a/clients/cli/devices.c +++ b/clients/cli/devices.c @@ -984,7 +984,8 @@ print_bond_bridge_info (NMDevice *device, set_val_str (arr, 1, slaves_str->str); g_ptr_array_add (nmc->out.output_data, arr); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); g_string_free (slaves_str, FALSE); nmc_empty_output_fields (&nmc->out); @@ -1054,7 +1055,8 @@ print_team_info (NMDevice *device, set_val_str (arr, 2, sanitize_team_config (nm_device_team_get_config (NM_DEVICE_TEAM (device)))); g_ptr_array_add (nmc->out.output_data, arr); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); g_string_free (slaves_str, FALSE); nmc_empty_output_fields (&nmc->out); @@ -1170,7 +1172,8 @@ show_device_info (NMDevice *device, NmCli *nmc) set_val_strc (arr, 24, nmc_device_metered_to_string (nm_device_get_metered (device))); g_ptr_array_add (nmc->out.output_data, arr); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); was_output = TRUE; } @@ -1202,7 +1205,8 @@ show_device_info (NMDevice *device, NmCli *nmc) set_val_strc (arr, 3, (caps & NM_DEVICE_CAP_IS_SOFTWARE) ? _("yes") : _("no")); g_ptr_array_add (nmc->out.output_data, arr); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); was_output = TRUE; } @@ -1240,7 +1244,8 @@ show_device_info (NMDevice *device, NmCli *nmc) ((wcaps & NM_WIFI_DEVICE_CAP_FREQ_5GHZ) ? _("yes") : _("no"))); g_ptr_array_add (nmc->out.output_data, arr); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); was_output = TRUE; } @@ -1268,7 +1273,8 @@ show_device_info (NMDevice *device, NmCli *nmc) g_ptr_array_foreach ((GPtrArray *) aps, fill_output_access_point, (gpointer) info); g_ptr_array_free (aps, FALSE); g_free (info); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); was_output = TRUE; } } else if (NM_IS_DEVICE_ETHERNET (device)) { @@ -1288,7 +1294,8 @@ show_device_info (NMDevice *device, NmCli *nmc) set_val_arrc (arr, 2, ((const char **) nm_device_ethernet_get_s390_subchannels (NM_DEVICE_ETHERNET (device)))); g_ptr_array_add (nmc->out.output_data, arr); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); was_output = TRUE; } } @@ -1352,7 +1359,8 @@ show_device_info (NMDevice *device, NmCli *nmc) set_val_str (arr, 2, vlan_id_str); g_ptr_array_add (nmc->out.output_data, arr); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); was_output = TRUE; } @@ -1372,7 +1380,8 @@ 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)))); g_ptr_array_add (nmc->out.output_data, arr); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); was_output = TRUE; } } @@ -1421,7 +1430,8 @@ show_device_info (NMDevice *device, NmCli *nmc) set_val_arr (arr, 2, (ac_arr)); g_ptr_array_add (nmc->out.output_data, arr); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); g_string_free (ac_paths_str, FALSE); was_output = TRUE; @@ -1529,7 +1539,8 @@ do_devices_status (NmCli *nmc, int argc, char **argv) for (i = 0; devices[i]; i++) fill_output_device_status (devices[i], nmc); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); g_free (devices); @@ -2494,7 +2505,8 @@ show_access_point_info (NMDevice *device, NmCli *nmc) g_ptr_array_foreach ((GPtrArray *) aps, fill_output_access_point, (gpointer) info); g_ptr_array_free (aps, FALSE); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); nmc_empty_output_fields (&nmc->out); g_free (info); } @@ -2724,7 +2736,8 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv) fill_output_access_point (ap, info); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); g_free (info); } else { show_access_point_info (device, nmc); @@ -2784,7 +2797,8 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv) } if (empty_line) g_print ("\n"); /* Empty line between devices' APs */ - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); nmc_empty_output_fields (&nmc->out); empty_line = TRUE; } @@ -3732,7 +3746,8 @@ show_device_lldp_list (NMDevice *device, NmCli *nmc, char *fields_str, int *coun g_ptr_array_add (nmc->out.output_data, arr); } - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); nmc_empty_output_fields (&nmc->out); return neighbors->len; diff --git a/clients/cli/general.c b/clients/cli/general.c index dcd1ea5233..490886831e 100644 --- a/clients/cli/general.c +++ b/clients/cli/general.c @@ -381,7 +381,8 @@ show_nm_status (NmCli *nmc, const char *pretty_header_name, const char *print_fl g_ptr_array_add (nmc->out.output_data, arr); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); return TRUE; } @@ -504,7 +505,8 @@ print_permissions (void *user_data) set_val_strc (arr, 1, permission_result_to_string (perm_result)); g_ptr_array_add (nmc->out.output_data, arr); } - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); quit (); return G_SOURCE_REMOVE; @@ -617,7 +619,8 @@ show_general_logging (NmCli *nmc) set_val_str (arr, 1, domains); g_ptr_array_add (nmc->out.output_data, arr); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); return TRUE; } diff --git a/clients/cli/settings.c b/clients/cli/settings.c index 20d52548fc..b6050efd7c 100644 --- a/clients/cli/settings.c +++ b/clients/cli/settings.c @@ -918,7 +918,8 @@ setting_details (NMSetting *setting, NmCli *nmc, const char *one_prop, gboolean g_ptr_array_add (nmc->out.output_data, arr); - print_data (&nmc->nmc_config, &nmc->out.print_fields, nmc->out.output_data); + print_data_prepare_width (nmc->out.output_data); + print_data (&nmc->nmc_config, &nmc->out); return TRUE; } diff --git a/clients/cli/utils.c b/clients/cli/utils.c index 6c14a16024..30d04b6f12 100644 --- a/clients/cli/utils.c +++ b/clients/cli/utils.c @@ -1033,16 +1033,8 @@ print_required_fields (const NmcConfig *nmc_config, const NmcPrintFields *print_ g_string_free (str, TRUE); } -/* - * Print nmc->output_data - * - * It first finds out maximal string length in columns and fill the value to - * 'width' member of NmcOutputField, so that columns in tabular output are - * properly aligned. Then each object (row in tabular) is printed using - * print_required_fields() function. - */ void -print_data (const NmcConfig *nmc_config, const NmcPrintFields *print_fields, GPtrArray *output_data) +print_data_prepare_width (GPtrArray *output_data) { int i, j; size_t len; @@ -1078,11 +1070,16 @@ print_data (const NmcConfig *nmc_config, const NmcPrintFields *print_fields, GPt row[i].width = max_width + 1; } } +} + +void +print_data (const NmcConfig *nmc_config, const NmcOutputData *out) +{ + guint i; - /* Now we can print the data. */ - for (i = 0; i < output_data->len; i++) { - row = g_ptr_array_index (output_data, i); - print_required_fields (nmc_config, print_fields, row); + for (i = 0; i < out->output_data->len; i++) { + print_required_fields (nmc_config, &out->print_fields, + g_ptr_array_index (out->output_data, i)); } } diff --git a/clients/cli/utils.h b/clients/cli/utils.h index 2370bc66ae..cc7bc1f2fc 100644 --- a/clients/cli/utils.h +++ b/clients/cli/utils.h @@ -69,7 +69,7 @@ char *nmc_get_allowed_fields (const NmcOutputField fields_array[], int group_idx NmcOutputField *nmc_dup_fields_array (NmcOutputField fields[], size_t size, guint32 flags); void nmc_empty_output_fields (NmcOutputData *output_data); void print_required_fields (const NmcConfig *nmc_config, const NmcPrintFields *print_fields, const NmcOutputField field_values[]); -void print_data (const NmcConfig *nmc_config, const NmcPrintFields *print_fields, GPtrArray *output_data); - +void print_data_prepare_width (GPtrArray *output_data); +void print_data (const NmcConfig *nmc_config, const NmcOutputData *out); #endif /* NMC_UTILS_H */ |