Commit b27990c5 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Store and parse 64-bits values in vlcrc

parent cafd2e02
...@@ -135,17 +135,18 @@ static FILE *config_OpenConfigFile( vlc_object_t *p_obj ) ...@@ -135,17 +135,18 @@ static FILE *config_OpenConfigFile( vlc_object_t *p_obj )
} }
static int strtoi (const char *str) static int64_t strtoi (const char *str)
{ {
char *end; char *end;
long l; long long l;
errno = 0; errno = 0;
l = strtol (str, &end, 0); l = strtoll (str, &end, 0);
if (!errno) if (!errno)
{ {
if ((l > INT_MAX) || (l < INT_MIN)) if ((l > INT64_C(0x7fffffffffffffff))
|| (l < INT64_C(-0x8000000000000000)))
errno = ERANGE; errno = ERANGE;
if (*end) if (*end)
errno = EINVAL; errno = EINVAL;
...@@ -270,12 +271,12 @@ int config_LoadConfigFile( vlc_object_t *p_this, const char *psz_module_name ) ...@@ -270,12 +271,12 @@ int config_LoadConfigFile( vlc_object_t *p_this, const char *psz_module_name )
case CONFIG_ITEM_BOOL: case CONFIG_ITEM_BOOL:
case CONFIG_ITEM_INTEGER: case CONFIG_ITEM_INTEGER:
{ {
long l = strtoi (psz_option_value); int64_t l = strtoi (psz_option_value);
if (errno) if (errno)
msg_Warn (p_this, "Integer value (%s) for %s: %m", msg_Warn (p_this, "Integer value (%s) for %s: %m",
psz_option_value, psz_option_name); psz_option_value, psz_option_name);
else else
p_item->saved.i = p_item->value.i = (int)l; p_item->saved.i = p_item->value.i = l;
break; break;
} }
...@@ -614,7 +615,7 @@ static int SaveConfigFile( vlc_object_t *p_this, const char *psz_module_name, ...@@ -614,7 +615,7 @@ static int SaveConfigFile( vlc_object_t *p_this, const char *psz_module_name,
if (IsConfigIntegerType (p_item->i_type)) if (IsConfigIntegerType (p_item->i_type))
{ {
int val = b_retain ? p_item->saved.i : p_item->value.i; int64_t val = b_retain ? p_item->saved.i : p_item->value.i;
if (p_item->i_type == CONFIG_ITEM_KEY) if (p_item->i_type == CONFIG_ITEM_KEY)
{ {
char *psz_key = ConfigKeyToString (val); char *psz_key = ConfigKeyToString (val);
...@@ -629,7 +630,7 @@ static int SaveConfigFile( vlc_object_t *p_this, const char *psz_module_name, ...@@ -629,7 +630,7 @@ static int SaveConfigFile( vlc_object_t *p_this, const char *psz_module_name,
(p_item->i_type == CONFIG_ITEM_BOOL) (p_item->i_type == CONFIG_ITEM_BOOL)
? N_("boolean") : N_("integer"), ? N_("boolean") : N_("integer"),
val == p_item->orig.i, val == p_item->orig.i,
p_item->psz_name, "%d", val); p_item->psz_name, "%"PRId64, val);
p_item->saved.i = val; p_item->saved.i = val;
} }
else else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment