path: root/src/lib/efreet (follow)
AgeCommit message (Collapse)Author
2017-03-09efreet: avoid crash during shutdown due to Ecore_Event queue.Cedric BAIL
2017-02-10vpath usage - simplify to bare minimum to make gustavo happyCarsten Haitzler (Rasterman)
since these are only local path resolves, the do and wait are technically not needed. also remove any other tmp strings and use the vpath string resolving feature to avoid printfs/strjoins/cats etc. etc. as well. also remember to remove old name string from evas shm code - it worked for me. i guess i was lucky and it happened to be NULL thus free was fine.
2017-02-09Revert "vpath usage - simplify to bare minimum to make gustavo happy"Derek Foreman
This reverts commit 2037474dc0fd2b360452f2a15abcbe533b57ca37. This causes the wayland_shm engine to seg fault immediately at startup when attempting to create shm buffers. Please make sure when committing changes to the wayland_shm engine to test on intel, exynos, and at least one platform without dmabuf capabilities - or using the EVAS_WAYLAND_SHM_DISABLE_DMABUF env var to disable dmabuf on intel or exynos. Anyone without the time or hardware to fully test changes to wayland_shm can submit a patch to phabricator and assign it to me so I can fully test it before landing.
2017-02-09vpath usage - simplify to bare minimum to make gustavo happyCarsten Haitzler (Rasterman)
since these are only local path resolves, the do and wait are technically not needed. also remove any other tmp strings and use the vpath string resolving feature to avoid printfs/strjoins/cats etc. etc. as well.
2017-02-09efreet - use vpath to get XDG_RUNTIME_DIR so we have a single implCarsten Haitzler (Rasterman)
having too many places that get XDG_RUNTIME_DIR makes it harder to keep secure etc, so make it a single location for efreet too.
2017-01-06eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ.Cedric BAIL
2016-12-26efreet cache - handle corner case where efreetd keeps disconnectingCarsten Haitzler (Rasterman)
so an odd one. there is a socket, but nothing is actually listening on it, but clients keep spinning launching efreetd's because the launch, connect, then get a disconnect and try again immediately keeping things spinning heavily, so add a delay of 0.5 sec before launchnig another efreetd if the launch + connect fails and gets a disconnect within 0.5 sec ... so give up for 0.5 sec before trying again to avoid a runaway system. @fix
2016-12-20efreet: remove float comparison warningsChris Michael
Signed-off-by: Chris Michael <>
2016-11-14efreet: make mime type evaluation way faster by using mmap.Cedric BAIL
2016-09-25efreet - fix command generation by fixing string buffer expansionCarsten Haitzler (Rasterman)
so by chance i discovered efreet is doing bad things(tm) when expanding/appending to string buffers to generate commands based off desktop files. the string append basically was buggy, so fixed it by making it a lot simpler and more obvious and now reliable. @fix
2016-09-20efreet xml parse - handle 0 sized xml specially to avoid crashCarsten Haitzler (Rasterman)
fixes T4493
2016-08-26efreet: mime types database can be emptyJean Guyomarc'h
When the mime types database is empty, the file will be exactly 28 bytes. Fixes T4426
2016-08-26efreet: add doc note about stringshare reliability for efreet_mime_type_get()Mike Blumenkrantz
2016-08-24efreet - convert crash into NULL mimes when no mime db foundCarsten Haitzler (Rasterman)
so ok - efreet crashed letting you know you have a missing mimedb... return NULL instead fixes T4425 :) - rememebr to kill your efreetd's to get a new mimedb - log out and in will do that.
2016-08-23efreet - save about 240-300k or so of memory used by efreet mimeCarsten Haitzler (Rasterman)
so efreet mime was loading a bunch of mime type info files, parsing them on startup and allocating memory to store all this mime info - globs, mimetype strings and more. all a big waste of memory as its allocated on the heap per process where its the SAME data files loaded every time. so make an efreet mime cache file and a tool to create it from mime files. mmap this file with all the hashes/strings in it so all that data is mmaped once in memory and shared between all processes and it is only paged in on demand - as actually read/needed so if your process doesnt need to know about mime stuff.. it wont touch it anyway. this saves about 240-300k or so of memory in my tests. this has not covered the mime MAGIC files which still consume memory and are on the heap. this is more complex so it will take more time to come up with a nice file format for the data that is nicely mmaped etc. @optimize
2016-08-23efreet - fix efreet_*_dir_get() to support the xdg env varsCarsten Haitzler (Rasterman)
these api's didnt respect the env vars xdg dictates should override the xdg dirs for that process. this fixes this and uses them if set @fix
2016-08-04efreet: free fallback cache on shutdownMarcel Hollerbach
this fixes errors like: ERR<4864>:eet lib/eet/eet_lib.c:645 eet_shutdown() File '/home/osauser/.cache/efreet/icons___efreet_fallback_localhost.localdomain.eet' is still open 1 times ! @fix
2016-07-05efreet - fix mime file path messing with short paths like /Carsten Haitzler (Rasterman)
this fixes T4015 @fix
2016-07-04efl - fix lots of little init/shutdown pairs that are wrongCarsten Haitzler (Rasterman)
i've fixed almost all the eina init/shutdown pairs to do the right thing now... except one (ecore_shutdown) with comment inline where eo_shutdown is not called. if this is called we are in crash land. this needs further inspection.
2016-01-25efreet: add locking for efreet_desktop_x_field_get()Mike Blumenkrantz
in a threaded environment, reading from a hash is not atomic and is subject to race conditions @fix ref 39417cf0ea4e457fbc8d50d120bb8ac776aa366f
2016-01-25efreet: reject invalid "" data for Efreet_Desktop->x hashMike Blumenkrantz
ref T3096 @fix
2016-01-20[efreet] document NULL return possibility.Andy Williams
If file is not found then NULL is the fallback
2015-12-18Efreet: support language, country and modifer on WindowsVincent Torri
Summary: On Windows, the environment variables LANG, LC_ALL and LC_MESSAGES do not exist, so retrieve langage and country modifier directly from the systeM Test Plan: verify the value with some ptrinF Reviewers: jpeg Subscribers: cedric Differential Revision:
2015-12-05efl: add binary mode to f(re)open() callsVincent Torri
This allows better compatibility with Windows Signed-off-by: Cedric BAIL <>
2015-12-02efreet desktop tracking - fix monitoring of dirs of custom desktopsCarsten Haitzler (Rasterman)
@fix this is wrong - start monitoring every/any dir in which a desktop file exists that we load a desktop file from. imagine you browse directories in efm with lots of desktop files in them - we end up monitoring lots of directories that we then rememebr and don't un-monitor. this disables monitoring of dirs from which we load a .desktop file from to fix this.
2015-11-25efreet_icon: Fix wrong inherit selectionMarcel Hollerbach
Summary: The list of elem->paths is given with the actual icon at position 0 and the bigger the index is the lower the icon in the inherit structure is. Due to the for loop beginning at 0 walking to the end this direction is flipped. So the last r is returned, which is the lowest icon in the inherit structure. This is fixed by returning if the first valid path is found. @fix Test Plan: run jesus or efm with a custom icon theme beore the wrong icons are taken, now the correct ones are taken Reviewers: raster, cedric Subscribers: DaveMDS Differential Revision:
2015-08-12efreet - fix efreetd kill and start with clean cache case blank iconsCarsten Haitzler (Rasterman)
if you kill efreetd ANd delete all the caches, the restart of efreetd will lose all icons until an app re-registeres icon extensions and it can scan all icons .. and then app has to actually get the right upodate events and do the update properly when this happens. this fixes that scenario @fix
2015-07-08Efreet: Fix config and data dir paths on windows.Vincent Torri
2015-07-05efreet - improve edstop exec find to use the command with less argsCarsten Haitzler (Rasterman)
efreet will just match any desktop file (at random basically - whatever is first in the list), thjat has the base command looked at. if you have various desktip files with the same command, like: mycommand mycommand %U mycommand -a -b -c /path/to/file /usr/bin/mycommand etc. - which one does it match? it'll pick the first and the list ordering is arbitrary, so this is pretty bad. this strips off the base command at the start (full path or whatever) and then uses the command with the shortest argument length. this means the generic command is found first if we look for "mycommand" in the above list, whihc ends up the best... ESPECIALLY for steam which does just this.
2015-06-25efreetd - new ipc - re-register on reconnectCarsten Haitzler (Rasterman)
2015-06-24efl - efreetd service move from dbus session bus to ecore ipcCarsten Haitzler (Rasterman)
this fixes warnings about no efreet dbus session bus in non session environments as brought up on the mailing lists with: Subject: Re: [E-devel] [EGIT] [core/efl] master 01/01: edje: unset efreet cache update flag to prevent dbus connections this moves all of efreetd client and server to ecore ipc, with client auto-launching efreetd if not found as a service and trying for up to 500ms to connect. efreetd times out on last connection or no connections after 10sec so it wont hang around forever if not in use. it seems to work in my testing, so let me know if there is an issue. @fix
2015-05-14efreet: use portable environment lookup.Cedric BAIL
2015-05-14efreet: lower error message to warning.Cedric BAIL
2015-05-11efreet: fix signed warningSebastian Dransfeld
Update to 6a0d23. Casting to int isn't a real solution, since we could have values which overflows. Since we want the absolute value, just make sure we subtract the larger value from the smaller.
2015-05-07efreet: remove the need to order the header correctly for Windows.Cedric BAIL
2015-04-22efreet: fix leak in efreet_util_desktop_exec_find()Mike Blumenkrantz
2015-04-21Efreet: Silence clang warningJean-Philippe Andre
[unsigned - unsigned] is unsigned and might wrap around, the implicit conversion to int (by calling abs()) saved the game here.
2015-01-25Efreet: do not get confused by path ending with / in XDG_* varsDave Andreoli
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.
2014-11-18efreetd_cache: Resolved TODO checking symbolic link to monitor real pathkabeer khan
Summary: Signed-off-by: kabeer khan <> Reviewers: englebass Reviewed By: englebass Subscribers: devilhorns, cedric Differential Revision:
2014-10-20efreet: add documentation for Efreet_Version structure.Nicolas Aguirre
2014-09-30efreet: fix show/nowshowSebastian Dransfeld
This partly reverts c700192, as the change here was wrong.
2014-09-29efreet: improve messagesSebastian Dransfeld
2014-09-29efreet: remove dead codeSebastian Dransfeld
2014-09-29efreet: tab to spacesSebastian Dransfeld
2014-09-25efreet: TODO++Sebastian Dransfeld
2014-09-25efreet: Fix leakSebastian Dransfeld
When doing efreet_desktop_command_append_multiple we add all files from command, whilst still looping command->files. So the command was created with all files for all files. Set l to NULL, since we parse all elements in command->files in efreet_desktop_command_append_multiple to break the loop.
2014-09-25efreet: remove debug fprintfSebastian Dransfeld
2014-09-25efreet: Fix leak on errorSebastian Dransfeld
If we encountered an error, special hashes in internal desktop struct wasn't free'd.
2014-09-25efreet: Implement fields added by desktop spec 1.1Sebastian Dransfeld
2014-09-25efreet: Accept both only_show_in and not_show_inSebastian Dransfeld
In one file it is allowed with both OnlyShowIn and NotShowIn, and it is the user who has to ensure that these lists don' clash. @fix