- LOAD_STRING( p_module->p_config[i].psz_value_orig );
-
- p_module->p_config[i].psz_value =
- p_module->p_config[i].psz_value_orig ?
- strdup( p_module->p_config[i].psz_value_orig ) : 0;
- p_module->p_config[i].i_value = p_module->p_config[i].i_value_orig;
- p_module->p_config[i].f_value = p_module->p_config[i].f_value_orig;
- p_module->p_config[i].i_value_saved = p_module->p_config[i].i_value;
- p_module->p_config[i].f_value_saved = p_module->p_config[i].f_value;
- p_module->p_config[i].psz_value_saved = 0;
+
+ if (IsConfigStringType (p_module->p_config[i].i_type))
+ {
+ LOAD_STRING (p_module->p_config[i].orig.psz);
+ p_module->p_config[i].value.psz =
+ (p_module->p_config[i].orig.psz != NULL)
+ ? strdup (p_module->p_config[i].orig.psz) : NULL;
+ p_module->p_config[i].saved.psz = NULL;
+ }
+ else
+ {
+ memcpy (&p_module->p_config[i].value, &p_module->p_config[i].orig,
+ sizeof (p_module->p_config[i].value));
+ memcpy (&p_module->p_config[i].saved, &p_module->p_config[i].orig,
+ sizeof (p_module->p_config[i].saved));
+ }
+