config: use NM_STR_HAS_PREFIX_WITH_MORE() instead of duplicate implementation

This commit is contained in:
Thomas Haller
2020-05-06 08:23:18 +02:00
parent 3201b06925
commit ff321e250e
2 changed files with 10 additions and 26 deletions

View File

@@ -117,14 +117,6 @@ G_DEFINE_TYPE (NMConfigData, nm_config_data, G_TYPE_OBJECT)
/*****************************************************************************/ /*****************************************************************************/
#define _HAS_PREFIX(str, prefix) \
({ \
const char *_str = (str); \
g_str_has_prefix ( _str, ""prefix"") && _str[NM_STRLEN(prefix)] != '\0'; \
})
/*****************************************************************************/
const char * const char *
nm_config_data_get_config_main_file (const NMConfigData *self) nm_config_data_get_config_main_file (const NMConfigData *self)
{ {
@@ -553,14 +545,14 @@ _merge_keyfiles (GKeyFile *keyfile_user, GKeyFile *keyfile_intern)
continue; continue;
if ( !is_intern && !is_atomic if ( !is_intern && !is_atomic
&& _HAS_PREFIX (key, NM_CONFIG_KEYFILE_KEYPREFIX_WAS)) { && NM_STR_HAS_PREFIX_WITH_MORE (key, NM_CONFIG_KEYFILE_KEYPREFIX_WAS)) {
const char *key_base = &key[NM_STRLEN (NM_CONFIG_KEYFILE_KEYPREFIX_WAS)]; const char *key_base = &key[NM_STRLEN (NM_CONFIG_KEYFILE_KEYPREFIX_WAS)];
if (!g_key_file_has_key (keyfile_intern, group, key_base, NULL)) if (!g_key_file_has_key (keyfile_intern, group, key_base, NULL))
g_key_file_remove_key (keyfile, group, key_base, NULL); g_key_file_remove_key (keyfile, group, key_base, NULL);
continue; continue;
} }
if (!is_intern && !is_atomic && _HAS_PREFIX (key, NM_CONFIG_KEYFILE_KEYPREFIX_SET)) if (!is_intern && !is_atomic && NM_STR_HAS_PREFIX_WITH_MORE (key, NM_CONFIG_KEYFILE_KEYPREFIX_SET))
continue; continue;
value = g_key_file_get_value (keyfile_intern, group, key, NULL); value = g_key_file_get_value (keyfile_intern, group, key, NULL);

View File

@@ -145,14 +145,6 @@ static void _set_config_data (NMConfig *self, NMConfigData *new_data, NMConfigCh
/*****************************************************************************/ /*****************************************************************************/
#define _HAS_PREFIX(str, prefix) \
({ \
const char *_str = (str); \
g_str_has_prefix ( _str, ""prefix"") && _str[NM_STRLEN(prefix)] != '\0'; \
})
/*****************************************************************************/
int int
nm_config_parse_boolean (const char *str, nm_config_parse_boolean (const char *str,
int default_value) int default_value)
@@ -983,8 +975,8 @@ read_config (GKeyFile *keyfile,
key = keys[k]; key = keys[k];
nm_assert (key && *key); nm_assert (key && *key);
if ( _HAS_PREFIX (key, NM_CONFIG_KEYFILE_KEYPREFIX_WAS) if ( NM_STR_HAS_PREFIX_WITH_MORE (key, NM_CONFIG_KEYFILE_KEYPREFIX_WAS)
|| _HAS_PREFIX (key, NM_CONFIG_KEYFILE_KEYPREFIX_SET)) { || NM_STR_HAS_PREFIX_WITH_MORE (key, NM_CONFIG_KEYFILE_KEYPREFIX_SET)) {
/* these keys are protected. We ignore them if the user sets them. */ /* these keys are protected. We ignore them if the user sets them. */
continue; continue;
} }
@@ -1520,7 +1512,7 @@ intern_config_read (const char *filename,
if (strcmp (key, NM_CONFIG_KEYFILE_KEY_ATOMIC_SECTION_WAS) == 0) if (strcmp (key, NM_CONFIG_KEYFILE_KEY_ATOMIC_SECTION_WAS) == 0)
continue; continue;
g_key_file_set_value (keyfile_intern, group, key, value_set); g_key_file_set_value (keyfile_intern, group, key, value_set);
} else if (_HAS_PREFIX (key, NM_CONFIG_KEYFILE_KEYPREFIX_SET)) { } else if (NM_STR_HAS_PREFIX_WITH_MORE (key, NM_CONFIG_KEYFILE_KEYPREFIX_SET)) {
const char *key_base = &key[NM_STRLEN (NM_CONFIG_KEYFILE_KEYPREFIX_SET)]; const char *key_base = &key[NM_STRLEN (NM_CONFIG_KEYFILE_KEYPREFIX_SET)];
gs_free char *value_was = NULL; gs_free char *value_was = NULL;
gs_free char *value_conf = NULL; gs_free char *value_conf = NULL;
@@ -1540,7 +1532,7 @@ intern_config_read (const char *filename,
} }
has_intern = TRUE; has_intern = TRUE;
g_key_file_set_value (keyfile_intern, group, key_base, value_set); g_key_file_set_value (keyfile_intern, group, key_base, value_set);
} else if (_HAS_PREFIX (key, NM_CONFIG_KEYFILE_KEYPREFIX_WAS)) { } else if (NM_STR_HAS_PREFIX_WITH_MORE (key, NM_CONFIG_KEYFILE_KEYPREFIX_WAS)) {
const char *key_base = &key[NM_STRLEN (NM_CONFIG_KEYFILE_KEYPREFIX_WAS)]; const char *key_base = &key[NM_STRLEN (NM_CONFIG_KEYFILE_KEYPREFIX_WAS)];
gs_free char *key_set = g_strdup_printf (NM_CONFIG_KEYFILE_KEYPREFIX_SET"%s", key_base); gs_free char *key_set = g_strdup_printf (NM_CONFIG_KEYFILE_KEYPREFIX_SET"%s", key_base);
gs_free char *value_was = NULL; gs_free char *value_was = NULL;
@@ -1714,16 +1706,16 @@ intern_config_write (const char *filename,
else { else {
gs_free char *value_was = NULL; gs_free char *value_was = NULL;
if (_HAS_PREFIX (key, NM_CONFIG_KEYFILE_KEYPREFIX_SET)) { if (NM_STR_HAS_PREFIX_WITH_MORE (key, NM_CONFIG_KEYFILE_KEYPREFIX_SET)) {
/* Setting a key with .set prefix has no meaning, as these keys /* Setting a key with .set prefix has no meaning, as these keys
* are protected. Just set the value you want to set instead. * are protected. Just set the value you want to set instead.
* Why did this happen?? */ * Why did this happen?? */
g_warn_if_reached (); g_warn_if_reached ();
} else if (_HAS_PREFIX (key, NM_CONFIG_KEYFILE_KEYPREFIX_WAS)) { } else if (NM_STR_HAS_PREFIX_WITH_MORE (key, NM_CONFIG_KEYFILE_KEYPREFIX_WAS)) {
const char *key_base = &key[NM_STRLEN (NM_CONFIG_KEYFILE_KEYPREFIX_WAS)]; const char *key_base = &key[NM_STRLEN (NM_CONFIG_KEYFILE_KEYPREFIX_WAS)];
if ( _HAS_PREFIX (key_base, NM_CONFIG_KEYFILE_KEYPREFIX_SET) if ( NM_STR_HAS_PREFIX_WITH_MORE (key_base, NM_CONFIG_KEYFILE_KEYPREFIX_SET)
|| _HAS_PREFIX (key_base, NM_CONFIG_KEYFILE_KEYPREFIX_WAS)) { || NM_STR_HAS_PREFIX_WITH_MORE (key_base, NM_CONFIG_KEYFILE_KEYPREFIX_WAS)) {
g_warn_if_reached (); g_warn_if_reached ();
continue; continue;
} }