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