path: root/src/lib/efreet (follow)
AgeCommit message (Collapse)Author
2018-02-26efreet: fix for windowsMarcel Hollerbach
there is probebly not geteuid / getuid
2018-02-23eina vpath - improve docs and add app.tmp and usr.tmp vpaths tooCarsten Haitzler (Rasterman)
definitely kaes the docs better with lots of sample paths and some indication of what these may map to in real life.
2018-02-22eina: make eina_vpath_interface_user_set an internal API.Cedric Bail
2018-02-22move from efl.vpath to eina_vpathMarcel Hollerbach
The usages from efl.vpath are moved to to eina_vpath
2018-02-02efreet: reset ipc connection after forkMike Blumenkrantz
ensure that existing connection is not reused
2018-01-30Efreet_Mime: update comment about symlinks on WindowsVincent Torri
2018-01-18all: Simplify definition of EAPIVincent Torri
This will help in the transition from Autotools to Meson. This has been tested on Windows for which EFL_XXX_BUILD were first introduced.
2017-12-19efl: Reset ecore event types on initJean-Philippe Andre
This fixes cycles of init/shutdown/init where ecore event types would become invalid, since they are now stored in a dynamic array rather than a statically stored array. The risk here is that if a module of EFL tends to init/shutdown in a "normal" scenario then the event type array will grow in a leaking manner. This could be fixed by resetting those event ID's only when the loop actually exits (EFL_EVENT_DEL on the main loop). I'm not using EFL_EVENT_DEL in this patch as this would add too many event callbacks to the main loop object, which may result in slightly slower event calls to it, affecting the overall performance.
2017-10-16efreet: putting local variable "data" under preprocessor flag "SLOPPY_SPEC" ↵Prince Kumar Dubey
to avoid below warning, if "SLOPPY_SPEC" is disabled. Reviewers: raster, cedric Subscribers: jpeg, rajeshps Differential Revision: Signed-off-by: Cedric BAIL <>
2017-10-06efreet: unsigned int cannot be compared to less than zero.Subodh Kumar
Summary: Wrong camparision with less than zero for unsigned integer. @fix Test Plan: NA Reviewers: raster, cedric Reviewed By: cedric Subscribers: cedric, jpeg Differential Revision: Signed-off-by: Cedric BAIL <>
2017-09-22EFL For WIN32: Replace HAVE_EVIL define with _WIN32Vincent 'vtorri' Torri
2017-07-21efreet - dont complain if INTERNAL x extension hash of desktop is NULLCarsten Haitzler (Rasterman)
asking for an x- field from a desktop shouldnt result in null safety checks IF the x hash is null - it's fine if it's null - that field just doesn't eixst. if other fields were in the x hash but the desired one wasn't it'd not complain, so why complain if there is just no x hash?
2017-07-21efreet - remove noisy debug printfsCarsten Haitzler (Rasterman)
2017-06-16efreet: don't raise ERR on empty file in efreet_xml_new()Mike Blumenkrantz
this is not an error, there is nothing to parse @fix
2017-04-23efreetd - make ability to not connect to efreetd non-criticalCarsten Haitzler (Rasterman)
it's an error we can survive, so make it that level
2017-03-24efreet: Don't prefer the second perfect over the first in desktop_exec_find()Derek Foreman
We test a second match for a perfect match, then stop all further processing, but we never test the first match. This leads to a situation where a system wide .desktop file is given precedence over a local override. Instead, check the first match too. #test-e
2017-03-17efreet: CRI and fail after 10 attempts to connect to efreetdMike Blumenkrantz
if efreetd cannot be connected to, stop infinitely trying to spawn it since this generates crazy cpu load probably this path should also send some cache events so that watchers do not simply idle forever ref T5200
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