Stricter verification of redundant parsing
The pathnames should really be canonified instead.
This commit is contained in:
parent
32cc272976
commit
77f121e0a1
|
@ -155,6 +155,7 @@ static void _settings_on_item_activated(GtkWidget * widget, GtkTreePath * path,
|
|||
/* settings_browse */
|
||||
static int _settings_browse_folder(Settings * settings, Config * config,
|
||||
char const * folder);
|
||||
static void _settings_rtrim(String * string, char c);
|
||||
|
||||
static int _settings_browse(Settings * settings)
|
||||
{
|
||||
|
@ -181,6 +182,7 @@ static int _settings_browse(Settings * settings)
|
|||
for(i = 0, j = 0;; i++)
|
||||
if(p[i] == '\0')
|
||||
{
|
||||
_settings_rtrim(&p[j], '/');
|
||||
_settings_browse_folder(settings, config,
|
||||
&p[j]);
|
||||
datadir |= (strcmp(&p[j], DATADIR) == 0);
|
||||
|
@ -189,6 +191,7 @@ static int _settings_browse(Settings * settings)
|
|||
else if(p[i] == ':')
|
||||
{
|
||||
p[i] = '\0';
|
||||
_settings_rtrim(&p[j], '/');
|
||||
_settings_browse_folder(settings, config,
|
||||
&p[j]);
|
||||
datadir |= (strcmp(&p[j], DATADIR) == 0);
|
||||
|
@ -306,6 +309,17 @@ static int _settings_browse_folder(Settings * settings, Config * config,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
static void _settings_rtrim(String * string, char c)
|
||||
{
|
||||
size_t len;
|
||||
|
||||
for(len = string_length(string); len > 0; len--)
|
||||
if(string[len - 1] == c)
|
||||
string[len - 1] = '\0';
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
/* settings_error */
|
||||
static int _settings_error(char const * message, int ret)
|
||||
|
|
Loading…
Reference in New Issue
Block a user