diff options
| author | Michael Biebl <biebl@debian.org> | 2020-10-05 22:27:18 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2020-10-05 22:27:18 +0200 |
| commit | aafc1dbe4712c86189bbc1d4d54ad8cb4c69be7e (patch) | |
| tree | a2a9bb4d007339a0b1304540388230ccedac32bd /libnm-core/nm-property-compare.c | |
| parent | e7b44ef4c80907346ec7492a09c45277459924fc (diff) | |
New upstream version 1.27.90 upstream/1.27.90
Diffstat (limited to 'libnm-core/nm-property-compare.c')
| -rw-r--r-- | libnm-core/nm-property-compare.c | 198 |
1 files changed, 99 insertions, 99 deletions
diff --git a/libnm-core/nm-property-compare.c b/libnm-core/nm-property-compare.c index a5d07c4f..0de81bb3 100644 --- a/libnm-core/nm-property-compare.c +++ b/libnm-core/nm-property-compare.c @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-2.1+ +/* SPDX-License-Identifier: LGPL-2.1+ */ /* * Copyright (C) 2007 - 2014 Red Hat, Inc. * Copyright (C) 2007 - 2008 Novell, Inc. @@ -11,126 +11,126 @@ #include <netinet/in.h> static int -_nm_property_compare_collection (GVariant *value1, GVariant *value2) +_nm_property_compare_collection(GVariant *value1, GVariant *value2) { - GVariant *child1, *child2; - int i, len1, len2; - int ret; + GVariant *child1, *child2; + int i, len1, len2; + int ret; - len1 = g_variant_n_children (value1); - len2 = g_variant_n_children (value2); + len1 = g_variant_n_children(value1); + len2 = g_variant_n_children(value2); - if (len1 != len2) - return len1 < len2 ? -1 : len1 > len2; + if (len1 != len2) + return len1 < len2 ? -1 : len1 > len2; - for (i = 0; i < len1; i++) { - child1 = g_variant_get_child_value (value1, i); - child2 = g_variant_get_child_value (value2, i); + for (i = 0; i < len1; i++) { + child1 = g_variant_get_child_value(value1, i); + child2 = g_variant_get_child_value(value2, i); - ret = nm_property_compare (child1, child2); - g_variant_unref (child1); - g_variant_unref (child2); + ret = nm_property_compare(child1, child2); + g_variant_unref(child1); + g_variant_unref(child2); - if (ret) - return ret; - } + if (ret) + return ret; + } - return 0; + return 0; } static int -_nm_property_compare_vardict (GVariant *value1, GVariant *value2) +_nm_property_compare_vardict(GVariant *value1, GVariant *value2) { - GVariantIter iter; - int len1, len2; - const char *key; - GVariant *val1, *val2; - - len1 = g_variant_n_children (value1); - len2 = g_variant_n_children (value2); - - if (len1 != len2) - return len1 < len2 ? -1 : 1; - - g_variant_iter_init (&iter, value1); - while (g_variant_iter_next (&iter, "{&sv}", &key, &val1)) { - if (!g_variant_lookup (value2, key, "v", &val2)) { - g_variant_unref (val1); - return -1; - } - if (!g_variant_equal (val1, val2)) { - g_variant_unref (val1); - g_variant_unref (val2); - return -1; - } - g_variant_unref (val1); - g_variant_unref (val2); - } - - return 0; + GVariantIter iter; + int len1, len2; + const char * key; + GVariant * val1, *val2; + + len1 = g_variant_n_children(value1); + len2 = g_variant_n_children(value2); + + if (len1 != len2) + return len1 < len2 ? -1 : 1; + + g_variant_iter_init(&iter, value1); + while (g_variant_iter_next(&iter, "{&sv}", &key, &val1)) { + if (!g_variant_lookup(value2, key, "v", &val2)) { + g_variant_unref(val1); + return -1; + } + if (!g_variant_equal(val1, val2)) { + g_variant_unref(val1); + g_variant_unref(val2); + return -1; + } + g_variant_unref(val1); + g_variant_unref(val2); + } + + return 0; } static int -_nm_property_compare_strdict (GVariant *value1, GVariant *value2) +_nm_property_compare_strdict(GVariant *value1, GVariant *value2) { - GVariantIter iter; - int len1, len2; - const char *key, *val1, *val2; - int ret; + GVariantIter iter; + int len1, len2; + const char * key, *val1, *val2; + int ret; - len1 = g_variant_n_children (value1); - len2 = g_variant_n_children (value2); + len1 = g_variant_n_children(value1); + len2 = g_variant_n_children(value2); - if (len1 != len2) - return len1 < len2 ? -1 : len1 > len2; + if (len1 != len2) + return len1 < len2 ? -1 : len1 > len2; - g_variant_iter_init (&iter, value1); - while (g_variant_iter_next (&iter, "{&s&s}", &key, &val1)) { - if (!g_variant_lookup (value2, key, "&s", &val2)) - return -1; + g_variant_iter_init(&iter, value1); + while (g_variant_iter_next(&iter, "{&s&s}", &key, &val1)) { + if (!g_variant_lookup(value2, key, "&s", &val2)) + return -1; - ret = strcmp (val1, val2); - if (ret) - return ret; - } + ret = strcmp(val1, val2); + if (ret) + return ret; + } - return 0; + return 0; } int -nm_property_compare (GVariant *value1, GVariant *value2) +nm_property_compare(GVariant *value1, GVariant *value2) { - const GVariantType *type1; - const GVariantType *type2; - int ret; - - if (value1 == value2) - return 0; - if (!value1) - return 1; - if (!value2) - return -1; - - type1 = g_variant_get_type (value1); - type2 = g_variant_get_type (value2); - - if (!g_variant_type_equal (type1, type2)) - return type1 < type2 ? -1 : type1 > type2; - - if (g_variant_type_is_basic (type1)) - ret = g_variant_compare (value1, value2); - else if (g_variant_is_of_type (value1, G_VARIANT_TYPE ("a{ss}"))) - ret = _nm_property_compare_strdict (value1, value2); - else if (g_variant_is_of_type (value1, G_VARIANT_TYPE ("a{sv}"))) - ret = _nm_property_compare_vardict (value1, value2); - else if (g_variant_type_is_array (type1)) - ret = _nm_property_compare_collection (value1, value2); - else if (g_variant_type_is_tuple (type1)) - ret = _nm_property_compare_collection (value1, value2); - else { - g_warning ("Don't know how to compare variant type '%s'", (const char *) type1); - ret = value1 == value2; - } - - return ret; + const GVariantType *type1; + const GVariantType *type2; + int ret; + + if (value1 == value2) + return 0; + if (!value1) + return 1; + if (!value2) + return -1; + + type1 = g_variant_get_type(value1); + type2 = g_variant_get_type(value2); + + if (!g_variant_type_equal(type1, type2)) + return type1 < type2 ? -1 : type1 > type2; + + if (g_variant_type_is_basic(type1)) + ret = g_variant_compare(value1, value2); + else if (g_variant_is_of_type(value1, G_VARIANT_TYPE("a{ss}"))) + ret = _nm_property_compare_strdict(value1, value2); + else if (g_variant_is_of_type(value1, G_VARIANT_TYPE("a{sv}"))) + ret = _nm_property_compare_vardict(value1, value2); + else if (g_variant_type_is_array(type1)) + ret = _nm_property_compare_collection(value1, value2); + else if (g_variant_type_is_tuple(type1)) + ret = _nm_property_compare_collection(value1, value2); + else { + g_warning("Don't know how to compare variant type '%s'", (const char *) type1); + ret = value1 == value2; + } + + return ret; } |