Commit Graph

115 Commits

Author SHA1 Message Date
Vincent Torri 3b44645363 efl: add binary mode to f(re)open() calls
This allows better compatibility with Windows

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-05 21:04:36 +01:00
Carsten Haitzler 5263e61585 efreet desktop tracking - fix monitoring of dirs of custom desktops
@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-12-02 20:53:27 +09:00
Marcel Hollerbach 7b9bb510b4 efreet_icon: Fix wrong inherit selection
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: https://phab.enlightenment.org/D3366
2015-11-25 09:35:07 +01:00
Carsten Haitzler e89253e597 efreet - fix efreetd kill and start with clean cache case blank icons
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-08-12 20:08:14 +09:00
Vincent Torri b7a277efa0 Efreet: Fix config and data dir paths on windows.
@fix
2015-07-08 16:29:05 +01:00
Carsten Haitzler 2f4fb3edac efreet - improve edstop exec find to use the command with less args
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-07-05 12:53:14 +09:00
Carsten Haitzler ddb3a60518 efreetd - new ipc - re-register on reconnect 2015-06-25 11:41:15 +09:00
Carsten Haitzler 5abfefe99e efl - efreetd service move from dbus session bus to ecore ipc
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-06-24 19:28:17 +09:00
Cedric BAIL 5098e787e8 efreet: use portable environment lookup. 2015-05-14 18:41:48 +02:00
Cedric BAIL 493a2b3ab4 efreet: lower error message to warning. 2015-05-14 18:41:47 +02:00
Sebastian Dransfeld 9e0a00d768 efreet: fix signed warning
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-11 13:34:10 +02:00
Cedric BAIL 0b4a911450 efreet: remove the need to order the header correctly for Windows. 2015-05-07 09:53:10 +02:00
Mike Blumenkrantz 3571e7364e efreet: fix leak in efreet_util_desktop_exec_find()
@fix
2015-04-22 19:34:59 -04:00
Jean-Philippe Andre 6a0d2382f1 Efreet: Silence clang warning
[unsigned - unsigned] is unsigned and might wrap around, the implicit
conversion to int (by calling abs()) saved the game here.
2015-04-21 20:32:54 +09:00
Davide Andreoli 762d4fb551 Efreet: do not get confused by path ending with / in XDG_* vars
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.
2015-01-25 12:44:09 +01:00
kabeer khan ee3bcaf71d efreetd_cache: Resolved TODO checking symbolic link to monitor real path
Summary: Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: englebass

Reviewed By: englebass

Subscribers: devilhorns, cedric

Differential Revision: https://phab.enlightenment.org/D1625
2014-11-18 12:24:06 +01:00
Nicolas Aguirre f078d16391 efreet: add documentation for Efreet_Version structure. 2014-10-20 18:02:03 +02:00
Sebastian Dransfeld d1207854f4 efreet: fix show/nowshow
This partly reverts c700192, as the change here was wrong.
2014-09-30 23:19:57 +02:00
Sebastian Dransfeld b624345bbd efreet: improve messages 2014-09-29 09:39:38 +02:00
Sebastian Dransfeld d8aead7ab8 efreet: remove dead code 2014-09-29 09:39:38 +02:00
Sebastian Dransfeld f60fdced44 efreet: tab to spaces 2014-09-29 09:39:38 +02:00
Sebastian Dransfeld 88843b7377 efreet: TODO++ 2014-09-25 13:54:13 +02:00
Sebastian Dransfeld 8204212f36 efreet: Fix leak
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-25 09:24:27 +02:00
Sebastian Dransfeld 8e740ea765 efreet: remove debug fprintf 2014-09-25 09:22:07 +02:00
Sebastian Dransfeld 0f4f0a7e5e efreet: Fix leak on error
If we encountered an error, special hashes in internal desktop struct
wasn't free'd.
2014-09-25 09:01:12 +02:00
Sebastian Dransfeld 793fd5e847 efreet: Implement fields added by desktop spec 1.1 2014-09-25 08:47:45 +02:00
Sebastian Dransfeld c700192736 efreet: Accept both only_show_in and not_show_in
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
2014-09-25 08:47:45 +02:00
Sebastian Dransfeld 54d5653e1b efreet: Store known desktop environments 2014-09-18 10:48:50 +02:00
Carsten Haitzler 3539afeaf0 make indenting consistent
this doesnt mean its right - it just matches. efreet needs some indent
love.
2014-08-14 20:56:55 +09:00
Adrien Nader a2d8c1651b efreet: replace 4096 with sizeof(buf) in snprintf(buf, 4096, ...).
buf is a local variable defined as:
  char buf[4096];
The current code is correct; this change only makes sure the value won't
get out-of-sync later on.
2014-08-14 20:55:58 +09:00
Adrien Nader 3778036926 efreet: reverse if's condition and swap then/else blocks for readability
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();
2014-08-14 20:55:58 +09:00
Adrien Nader 0fb9f5d516 efreet: remove #ifdef GETUID inside #ifdef _WIN32 (it's always false). 2014-08-14 20:55:58 +09:00
Sebastian Dransfeld e7198621c5 efreet: use eina_file_mkstemp to create filename 2014-08-14 13:30:48 +02:00
Sebastian Dransfeld 95a02295c1 efreet: remove creation of XDG_RUNTIME_DIR
XDG_RUNTIME_DIR should be created and set by the system, not a library.
2014-08-14 13:01:29 +02:00
Carsten Haitzler 356d10fbee efreet - add menu ref/unref calls and refcounting to try solve e issue
not much more to say really... efreet_menu_free now unrefs nd checks
for 0 refcount first... unref just calls it to be "nice"

@feature
2014-07-23 20:36:19 +09:00
Jean-Philippe Andre 62e3c75777 Efreet: Fix shadow warning 2014-06-19 10:33:49 +09:00
Sebastian Dransfeld 9415f8a7ef efreet: improve handling of merged menus
If the menu is of the format ${XDG_MENU_PREFIX}applications.menu, we
want to merge applications-merged/, not
${XDG_MENU_PREFIX}applications-merged
2014-06-11 11:04:23 +02:00
Sebastian Dransfeld a10d4167f1 efreet: remove code duplication
If the menu starts with either kde- or gnome- the resulting action is
the same.
2014-06-11 11:04:23 +02:00
Sebastian Dransfeld ffda8635fe efreet: Correctly handle default merge dir
When main menu file is gnome-applications.menu or kde-applications.menu,
we should be using applications as base for merged dir.

Part of T1284
2014-06-10 13:46:49 +02:00
Kai Huuhko 64f35d4615 efreet: Fix mistakenly inverted behavior in URI handling
Fixes a mistake in commit 78c9a82a14

The authority part would get placed in the struct member "path",
and vice versa.

Lesson learned: Don't rewrite your patch late at night after
arc has messed it up.
2014-05-19 14:52:32 +03:00
Kai Huuhko 78c9a82a14 efreet: Handle URIs in a more generic way
Summary: Fixes T1219

Reviewers: englebass

CC: cedric

Maniphest Tasks: T1219

Differential Revision: https://phab.enlightenment.org/D865
2014-05-19 15:48:41 +09:00
Wonguk Jeong e32f033853 efreet: check magic only for file which has size
Summary:
Due to unnecessary magic checking, there was freezing in /proc in efm.
Proc file's st_size is zero, but, it's readable. therfore, it takes unnecessary time in magic checking. And, there is no need to check magic in case of 0 sized regular files as well.

Therefore, skip magic check in case of st_size is zero.

Fixes T1173

Test Plan: enlightenment -> file browser (efm) -> get int /proc --> check whether efm freezes or not

Reviewers: raster, cedric, zmike

CC: seoz, cedric

Maniphest Tasks: T1173

Differential Revision: https://phab.enlightenment.org/D764

Signed-off-by: Cedric Bail <cedric.bail@free.fr>
2014-04-17 19:34:38 +02:00
Mike Blumenkrantz d03ecb0f3d "whether" has 2x 'h' 2014-04-10 09:27:51 -04:00
Cedric BAIL d0a03f65dc efreet: fix build on windows by matching the #if around the if statement. 2014-01-09 14:30:13 +09:00
Carsten Haitzler e8c13118eb fix mingw build for setuid fix/checks 2014-01-08 22:06:41 +09:00
Carsten Haitzler b95ef3801f setuid safeness - ensure if an app that is setuid doesn't do bad things
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.
2014-01-08 19:46:23 +09:00
Guillaume Friloux 6ea95af025 Fix documentation for efreet_desktop_exec(). 2014-01-01 21:39:14 +01:00
Guillaume Friloux defc1d1b1a Fix documentation for efreet_desktop_environment_get(). 2014-01-01 21:28:37 +01:00
Guillaume Friloux 42c32b48a6 Simplify code of efreet_desktop_environment_set(). 2014-01-01 21:27:19 +01:00
Daniel Juyung Seo 76d8532b54 efl: Unified eina critical manro to CRI.
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.
2013-12-26 12:27:13 +09:00