forked from enlightenment/enlightenment
normalize away spurious percent arguments in the executable
SVN revision: 39608
This commit is contained in:
parent
d19e0ba2dc
commit
6927a37b23
|
@ -450,6 +450,7 @@ _e_exehist_normalize_exe(const char *exe)
|
||||||
{
|
{
|
||||||
char *base, *cp, *space = NULL;
|
char *base, *cp, *space = NULL;
|
||||||
const char *ret;
|
const char *ret;
|
||||||
|
Eina_Bool flag = EINA_FALSE;
|
||||||
|
|
||||||
base = basename(exe);
|
base = basename(exe);
|
||||||
if (base[0] == '.' && base[1] == '\0')
|
if (base[0] == '.' && base[1] == '\0')
|
||||||
|
@ -463,13 +464,23 @@ _e_exehist_normalize_exe(const char *exe)
|
||||||
{
|
{
|
||||||
if (!space)
|
if (!space)
|
||||||
space = cp;
|
space = cp;
|
||||||
|
if (flag)
|
||||||
|
flag = EINA_FALSE;
|
||||||
}
|
}
|
||||||
else
|
else if (!flag)
|
||||||
{
|
{
|
||||||
char lower = tolower(*cp);
|
|
||||||
if (lower != *cp)
|
/* usually a variable in the desktop exe field */
|
||||||
*cp = lower;
|
if (space && *cp == '%')
|
||||||
space = NULL;
|
flag = EINA_TRUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
char lower = tolower(*cp);
|
||||||
|
space = NULL;
|
||||||
|
|
||||||
|
if (lower != *cp)
|
||||||
|
*cp = lower;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
cp++;
|
cp++;
|
||||||
}
|
}
|
||||||
|
@ -479,6 +490,7 @@ _e_exehist_normalize_exe(const char *exe)
|
||||||
|
|
||||||
ret = eina_stringshare_add(base);
|
ret = eina_stringshare_add(base);
|
||||||
free(base);
|
free(base);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue