but rather use the sys_bsd flag. The reason why relying on the header
existance is bad, is that bsd decided to install this header, with the
essential difference, that on bsd we require to link against libinotify,
which makes the compilation fail.
ref T7710
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8093
Summary:
the previous implementation/api had a number of issues:
* "file" property contained both "file" and "key" values
- also performed file loading operation
* "load_error" property which was specific to image objects
* no methods for controlling file loading/unloading
this patch attempts the following changes:
* split "file" property into "file" and "key" properties
- also remove "key" from existing "mmap" property
* remove "load_error"
* directly return error codes from operations
* add "load" and "unload" methods for directly controlling load state
* add implicit file loading if file/mmap is set during construction
* rewrite all efl.file implementations to move file loading into load() method
* rewrite all usage of efl.file api based on these changes
* add C extension functions to mimic previous behavior
ref T7577
Reviewers: segfaultxavi, bu5hm4n, cedric
Reviewed By: segfaultxavi
Subscribers: vitor.sousa, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7577
Differential Revision: https://phab.enlightenment.org/D8018
This build was never complete and also was not maintained probebly.
It is also dropped in favour of meson which is cool, merged, works & is fast.
Differential Revision: https://phab.enlightenment.org/D7010
this unifies the system types into 4 boolean flags
This fixes the fact that meson changed the system string accross
versions.
Differential Revision: https://phab.enlightenment.org/D7144
a new shiny buildtool that currently completes in the total of ~ 4 min..
1 min. conf time
2:30 min. build time
Where autotools takes:
1:50 min. conf time
3:40 min. build time.
meson was taken because it went quite good for enlightenment, and is a traction gaining system that is also used by other mayor projects. Additionally, the DSL that is defined my meson makes the configuration of the builds a lot easier to read.
Further informations can be gathered from the README.meson
Right now, bindings & windows support are missing.
It is highly recommented to use meson 0.48 due to optimizations in meson
that reduced the time the meson call would need.
Co-authored-by: Mike Blumenkrantz <zmike@samsung.com>
Differential Revision: https://phab.enlightenment.org/D7012
Depends on D7011
Summary: I had fixed some typos and some wrong expressions in API reference doc
Test Plan: N/A
Reviewers: raster, zmike, Hermet, segfaultxavi
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6943
before c65782b15c the acutal path has
been filled into buf, with eina_file_mkstemp the string is filled into
tmpstr, so that path should be chmoded instead of the template buf.
Thx to MatP for the report!
This reverts commit 135154303b.
Revert "efl: move signal events from efl.loop to efl.app"
This reverts commit 3dbca39f98.
Revert "efl: add test suite for efl_app"
This reverts commit 3e94be5d73.
Revert "efl: create Efl.App class, the parent of Efl.Loop"
This reverts commit 28fe00b94e.
Go back to before efl.app because I think this should be done with
superclassing here not a parent object. reasons?
1. multiple loops per single thread make no sense. so if multilpe loop
objects they wont be contained in a single app object and then deleted
like this.
2. the app object is not really sharable in this design so it cant be
accessed from other threads
3. it makes it harder to get the main loop or app object (well 2 func
calls one calling the other and more typing. it is longer to type and
more work where it is not necessary, and again it can't work from
other threads unless we go duplicating efl.app per thread and then
what is the point of splittyign out the signal events from efl.loop
then?)
etc.
Summary:
Make checks consistent in ecore_file_monitor_backend_del.
inotify_add_watch can return 0 as well on success.
So, even if wd is 0, inotify_rm_watch need to be invoked.
Reviewers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5770
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
If ecore_file_monitor_del is called inside the file monitor callback function,
eina_list found from monitor_hash would be freed. (You can check this inside
eina_hash_list_remove.)
Then, EINA_LIST_FOREACH makes one more for loop with invalid eina_list pointer.
EINA_LIST_FOREACH_SAFE can prevent from this problem.
Summary:
Some parameter's name are different in annotations and statements,
so it occurs doxygen warning.
To fix it, rename that parameters.
Test Plan: API Doxygen Revision
Reviewers: raster, cedric, jpeg, myoungwoon, Jaehyun_Cho
Reviewed By: cedric
Differential Revision: https://phab.enlightenment.org/D5313
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Covers: Ecore_Drm, Ecore_Evas, Ecore_File, Ecore_IMF, and
Ecore_IMF_Evas API reference doxygen.
Summary: I had fixed some typos and wrong expressions, such
as capital letters, singular Etc. in Ecore_Drm, Ecore_Evas,
Ecore_File, Ecore_IMF, and Ecore_IMF_Evas API reference doxygen.
Test Plan: Doxygen Revision
Reviewers: stefan, cedric, raster, jpeg, Jaehyun_Cho
Subscribers: conr2d
Differential Revision: https://phab.enlightenment.org/D4680
Summary:
If the file with a new path was created and 'rename' wants to replace the old path to the new path. 'rename' will return:
Windows 7: -1 (errno=EEXIST) (EEXIST == 17)
Ubuntu: 0
**EEXIST**
**Ubuntu**: The link named by new is a directory that is not an empty directory. (https://linux.die.net/man/3/rename)
**Windows 7**: Files exist. An attempt has been made to create a file that already exists. For example, the _O_CREAT and _O_EXCL flags are specified in an _open call, but the named file already exists.(https://msdn.microsoft.com/en-us/library/5814770t.aspx)
Test Plan:
**Sample code to rename in Linux and Windows if the file with the new name already exists:**
int main()
{
const char *_old = "old";
const char *_new = "new";
int fd1 = open(_old, O_CREAT);
close(fd1);
int fd2 = open(_new, O_CREAT);
close(fd2);
printf("rename:\t%s -> %s\n", _old, _new);
int r = rename(_old, _new);
if (r == 0)
{
printf("GOOD\n");
}
else
{
printf("CODE ERROR:\n" );
printf(" -rename...: %d\n", r );
printf(" -errno....: %d\n", errno);
}
return 0;
}
Reviewers: raster, vtorri, jpeg, NikaWhite, reutskiy.v.v, an.kroitor, cedric
Reviewed By: cedric
Subscribers: artem.popov, cedric, jpeg
Tags: #efl, #windows
Differential Revision: https://phab.enlightenment.org/D4561
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Greatly reduce code complexity while providing better support, at
least according to @netstar efl_net_dialer_http works better than
traditional ecore_con_url on BSD.
Summary: There is wrong comparing while using strcmp function. Should be inverted.
Reviewers: cedric, raster, NikaWhite
Reviewed By: NikaWhite
Subscribers: cedric, NikaWhite, jpeg
Differential Revision: https://phab.enlightenment.org/D4291
lots of long paths for monitoring file paths for icons etc. are in
memory for efreetd. this reduces that memory by sharing them much more.
@optimization
On Windows, both backslash and slash can be used as file path
separators. Therefore, it is fixed to consider backslash as a file path
separator as well on Windows.
@fix
On windows, stat() returns -1 if a path is finished with a \ or /,
so replace all stat() calls with a function which removes the trailing
slash or backslash on Windows
At this stage the code duplicate many code path for avoiding potential
borkage on Unix system. During 1.17 release cycle, it would be nice to
refactor this piece.
@fix
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>