This @fix the parsing of dirs from the xdg env vars. Now always remove
the leading / char from the paths.
This was causing lots of trouble on my system, where XDG_DATA_DIRS is:
/usr/local/share/enlightenment:/usr/local/share:/usr/local/share/:/usr/share/
At first /usr/local/share was added 2 times in the list, one with the / and one
witout, causing a double lookup for each file.
Secondly the icon cache was totally unusable as the cached paths ended up
as: /usr/share//icons/Mint-X/places/32/folder.svg. The double / in there
was making the cache lookup to fail and anways return the biggest icon
available. Causing a big system slowdown whe searching for icons.
As a bonus the function now use eina_str_split instead of the custom splitting
code that require a bad special handling for the last item.
The reversal makes it possible to merge two #if and unspaghetti the code
a bit.
Since the diff is not very readable, here is the before/after to show
the spirit:
before:
#if cond
if (...)
#endif
do_foo();
#if cond
else
do_bar();
#endif
after:
#if cond
if ( ! ...)
do_bar();
else
#endif
do_foo();
this makes efl ignore certain env vars for thnigs and entirely removes
user modules (that no one ever used) etc. etc. to ensure that *IF* an
app is setuid, there isn't a priv escalation path that is easy.
Being annoyed by different types of eina critical macros - CRI, CRIT,
CRITICAL -, I concluded to unify them to one. Discussed on IRC and
finally, CRI was chosen to meet the consistency with other macros -
ERR, WRN, INF, DBG - in terms of the number of characters.
If there is any missing bits, please let me know.
efreet used an uncommon PACKAGE_DATA_DIR without the package name
because it used that to populate default variables.
Add another variable for that and make PACKAGE_DATA_DIR more common.
Tests still fails like crazy, and they assume installed data :-(
SVN revision: 82426