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

xdg-dirs: falls back correctly if configuration is missing

parent 01b57344
......@@ -121,9 +121,9 @@ static char *config_GetTypeDir (const char *xdg_name)
FILE *stream = fopen (path, "rt");
free (path);
if (stream == NULL)
return NULL;
path = NULL;
if (stream != NULL)
{
char *linebuf = NULL;
size_t linelen = 0;
......@@ -173,16 +173,23 @@ static char *config_GetTypeDir (const char *xdg_name)
if (*ptr == '\\')
ptr++;
if (*ptr == '\0')
goto skip;
{
free (path);
path = NULL;
continue;
}
*(out++) = *(ptr++);
}
*out = '\0';
goto done;
skip:
free (path);
break;
}
free (linebuf);
fclose (stream);
}
/* Default! */
if (path == NULL)
{
if (strcmp (xdg_name, "DESKTOP") == 0)
{
if (asprintf (&path, "%s/Desktop", home) == -1)
......@@ -190,9 +197,8 @@ static char *config_GetTypeDir (const char *xdg_name)
}
else
path = strdup (home);
}
done:
free (linebuf);
char *ret = FromLocaleDup (path);
free (path);
return ret;
......
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