[EGIT] [core/enlightenment] master 01/01: Byte order macro. Be consistent and get rid of clang warnings.
netstar pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d70733bbdc2e612eff1b50a5f60d08a550a3c19b commit d70733bbdc2e612eff1b50a5f60d08a550a3c19b Author: Al Poole Date: Thu Mar 1 18:35:16 2018 + Byte order macro. Be consistent and get rid of clang warnings. --- src/bin/e_xsettings.c| 2 +- src/modules/everything/md5.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/e_xsettings.c b/src/bin/e_xsettings.c index 73a66c812..344094f4e 100644 --- a/src/bin/e_xsettings.c +++ b/src/bin/e_xsettings.c @@ -353,7 +353,7 @@ _e_xsettings_apply(Settings_Manager *sm) pos = data = calloc(1, len); if (!data) return; -#if (__BYTE_ORDER == __LITTLE_ENDIAN) || (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) +#if (defined __BYTE_ORDER && __BYTE_ORDER == __LITTLE_ENDIAN) || (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) *pos = 0; //LSBFirst #else *pos = 1; //MSBFirst diff --git a/src/modules/everything/md5.c b/src/modules/everything/md5.c index 70baf0032..1fd97c29f 100644 --- a/src/modules/everything/md5.c +++ b/src/modules/everything/md5.c @@ -22,7 +22,7 @@ #include /* for memcpy() */ #include "md5.h" -#if (__BYTE_ORDER == 1234) || (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) +#if (defined __BYTE_ORDER && __BYTE_ORDER == __LITTLE_ENDIAN) || (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) #define byteReverse(buf, len) /* Nothing */ #else void byteReverse(unsigned char *buf, unsigned longs); --
[EGIT] [core/enlightenment] master 01/01: fileman: fix use after free and workaround issues on FreeBSD.
netstar pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=bff91e0885679db55a1f7b73d1d3f8a5f94a0e7b commit bff91e0885679db55a1f7b73d1d3f8a5f94a0e7b Author: Al Poole Date: Thu Mar 1 17:52:56 2018 + fileman: fix use after free and workaround issues on FreeBSD. Reading from tmp is causing SIGBUS issues on FreeBSD, the easiest and cleanest way round this atm is to avoid parsing /tmp. In the process found another bug which occurred on Linux also which was use after free. --- src/modules/fileman/e_mod_menu.c | 20 +--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/modules/fileman/e_mod_menu.c b/src/modules/fileman/e_mod_menu.c index e28c96d71..df6aef327 100644 --- a/src/modules/fileman/e_mod_menu.c +++ b/src/modules/fileman/e_mod_menu.c @@ -109,19 +109,31 @@ _e_mod_menu_populate_filter(void *data EINA_UNUSED, Eio_File *handler, const Ein struct stat st; long count; - count = (long)eio_file_associate_find(handler, "count"); + if (!handler) return EINA_FALSE; + + if (eio_file_check(handler)) return EINA_FALSE; + +#if defined(__FreeBSD__) || defined(__DragonFly__) +/* XXX: Accessing tmp is causing SIGBUS issues. */ + if (!strncmp(info->path, "/tmp", 3)) return EINA_FALSE; +#endif + + count = (long) eio_file_associate_find(handler, "count"); if (count > 100) { eio_file_cancel(handler); return EINA_FALSE; } count++; + eio_file_associate_add(handler, "count", (void*)count, NULL); /* don't show .dotfiles */ if (fileman_config->view.menu_shows_files) return (info->path[info->name_start] != '.'); + if (lstat(info->path, &st)) return EINA_FALSE; /* don't show links to prevent infinite submenus */ + return (info->path[info->name_start] != '.') && ((info->type == EINA_FILE_DIR) || eina_str_has_extension(info->path + info->name_start, "desktop")) && (!S_ISLNK(st.st_mode)); @@ -135,6 +147,8 @@ _e_mod_menu_populate_item(void *data, Eio_File *handler EINA_UNUSED, const Eina_ const char *dev, *path; Efreet_Desktop *ed = NULL; + if (handler && eio_file_check(handler)) return; + mi = m->parent_item; dev = e_object_data_get(E_OBJECT(m)); path = mi ? e_object_data_get(E_OBJECT(mi)) : "/"; @@ -271,7 +285,7 @@ _e_mod_menu_populate_done(void *data, Eio_File *handler EINA_UNUSED) static void _e_mod_menu_populate_err(void *data, Eio_File *handler, int error EINA_UNUSED) { - _e_mod_menu_populate_done(data, handler); + (void) data; (void) handler; } static void @@ -290,7 +304,7 @@ _e_mod_menu_populate(void *d, E_Menu *m EINA_UNUSED, E_Menu_Item *mi) if (!subm) { subm = e_menu_new(); -e_object_data_set(E_OBJECT(subm), d); +e_object_data_set(E_OBJECT(subm), eina_stringshare_add(dev)); e_object_free_attach_func_set(E_OBJECT(subm), _e_mod_menu_cleanup_cb); e_menu_item_submenu_set(mi, subm); e_menu_freeze(subm); --
[EGIT] [bindings/python/python-efl] master 01/01: Elm: add test for elm_image_get() before a set() call
davemds pushed a commit to branch master. http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=4b8ddcff7d2333afba38a76774c7d18c5e0ed93b commit 4b8ddcff7d2333afba38a76774c7d18c5e0ed93b Author: Dave Andreoli Date: Thu Mar 1 18:32:46 2018 +0100 Elm: add test for elm_image_get() before a set() call --- tests/elementary/test_02_image_icon.py | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/elementary/test_02_image_icon.py b/tests/elementary/test_02_image_icon.py index cc0b48a..b106a10 100644 --- a/tests/elementary/test_02_image_icon.py +++ b/tests/elementary/test_02_image_icon.py @@ -29,9 +29,10 @@ class TestElmImage(unittest.TestCase): self.assertEqual(Eo.parent_get(self.o), self.w) def testImageFile(self): -self.o.file = os.path.join(script_path, u"icon.png") -self.assertEqual(self.o.file[0], - os.path.join(script_path, u"icon.png")) +img_file = os.path.join(script_path, u"icon.png") +self.assertEqual(self.o.file, (None, None)) +self.o.file = img_file +self.assertEqual(self.o.file, (img_file, None)) self.assertEqual(self.o.object_size, (48, 48)) def testImageFileException(self): --
[EGIT] [tools/clouseau] master 01/01: Make clouseau works again after recent eolian changes
davemds pushed a commit to branch master. http://git.enlightenment.org/tools/clouseau.git/commit/?id=c64d481e7085479d16d5d358e867f5022f1fbd92 commit c64d481e7085479d16d5d358e867f5022f1fbd92 Author: Dave Andreoli Date: Thu Mar 1 18:12:40 2018 +0100 Make clouseau works again after recent eolian changes Note: you need latest efl from git --- src/lib/clouseau_debug.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/lib/clouseau_debug.c b/src/lib/clouseau_debug.c index 10b6d59..1a13dbb 100644 --- a/src/lib/clouseau_debug.c +++ b/src/lib/clouseau_debug.c @@ -74,7 +74,7 @@ static int _win_screenshot_op = EINA_DEBUG_OPCODE_INVALID; static int _focus_manager_list_op = EINA_DEBUG_OPCODE_INVALID; static int _focus_manager_detail_op = EINA_DEBUG_OPCODE_INVALID; -static Eolian *eos = NULL; +static Eolian_State *eos = NULL; static Eet_Data_Descriptor *manager_details = NULL; #include "clouseau_focus_serialization.x" @@ -155,7 +155,7 @@ _eolian_type_resolve(const Eolian_Type *eo_type) if (type_base == EOLIAN_TYPE_REGULAR) { const char *full_name = eolian_type_full_name_get(eo_type); -const Eolian_Typedecl *alias = eolian_typedecl_alias_get_by_name((Eolian_Unit*) eos, full_name); +const Eolian_Typedecl *alias = eolian_state_alias_by_name_get(eos, full_name); if (alias) { eo_type = eolian_typedecl_base_type_get(alias); @@ -634,7 +634,7 @@ _obj_info_req_cb(Eina_Debug_Session *session, int srcid, void *buffer, int size } } - okl = eolian_class_get_by_name((Eolian_Unit*) eos, class_name); + okl = eolian_state_class_by_name_get(eos, class_name); if (!okl) { printf("Class %s not found.\n", class_name); @@ -1117,13 +1117,13 @@ clouseau_debug_init(void) eolian_init(); evas_init(); - eos = eolian_new(); + eos = eolian_state_new(); _eolian_kls_hash = eina_hash_string_superfast_new(NULL); - eolian_system_directory_scan(eos); + eolian_state_system_directory_add(eos); - EINA_SAFETY_ON_FALSE_RETURN_VAL(eolian_all_eo_files_parse(eos), EINA_FALSE); - EINA_SAFETY_ON_FALSE_RETURN_VAL(eolian_all_eot_files_parse(eos), EINA_FALSE); + EINA_SAFETY_ON_FALSE_RETURN_VAL(eolian_state_all_eo_files_parse(eos), EINA_FALSE); + EINA_SAFETY_ON_FALSE_RETURN_VAL(eolian_state_all_eot_files_parse(eos), EINA_FALSE); eina_debug_opcodes_register(NULL, _debug_ops(), NULL, NULL); @@ -1284,7 +1284,7 @@ eolian_debug_object_information_decode(char *buffer, unsigned int size) if (len > 1) // if class_name is not NULL, we begin a new class { kl = calloc(1, sizeof(*kl)); - kl->ekl = eolian_class_get_by_name((Eolian_Unit*) eos, buffer); + kl->ekl = eolian_state_class_by_name_get(eos, buffer); ret->classes = eina_list_append(ret->classes, kl); } if (!kl) --
[EGIT] [core/efl] master 01/01: Pyolian: new APIs for typedecl lookups
davemds pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=939cb26bd9152dfcea69f742caa343ab254a1986 commit 939cb26bd9152dfcea69f742caa343ab254a1986 Author: Dave Andreoli Date: Thu Mar 1 17:08:56 2018 +0100 Pyolian: new APIs for typedecl lookups --- src/scripts/gendoc/gendoc.py | 6 +-- src/scripts/pyolian/eolian.py | 108 ++--- src/scripts/pyolian/eolian_lib.py | 84 ++--- src/scripts/pyolian/generator.py | 6 +-- src/scripts/pyolian/test_eolian.py | 28 +- 5 files changed, 140 insertions(+), 92 deletions(-) diff --git a/src/scripts/gendoc/gendoc.py b/src/scripts/gendoc/gendoc.py index 1c8ec1..8fec32cc13 100755 --- a/src/scripts/gendoc/gendoc.py +++ b/src/scripts/gendoc/gendoc.py @@ -139,7 +139,7 @@ if args.step in ('classes', None): # render a page for each Enum if args.step in ('enums', None): t = Template('doc_enum.template') -for enum in eolian_db.typedecl_all_enums: +for enum in eolian_db.enums: if enum.full_name.startswith(args.namespace): output_file = page_path_for_object(enum) t.render(output_file, args.verbose, enum=enum.full_name) @@ -147,7 +147,7 @@ if args.step in ('enums', None): # render a page for each Struct if args.step in ('structs', None): t = Template('doc_struct.template') -for struct in eolian_db.typedecl_all_structs: +for struct in eolian_db.structs: if struct.full_name.startswith(args.namespace): output_file = page_path_for_object(struct) t.render(output_file, args.verbose, struct=struct.full_name) @@ -155,7 +155,7 @@ if args.step in ('structs', None): # render a page for each Alias if args.step in ('aliases', None): t = Template('doc_alias.template') -for alias in eolian_db.typedecl_all_aliases: +for alias in eolian_db.aliases: if alias.full_name.startswith(args.namespace): output_file = page_path_for_object(alias) t.render(output_file, args.verbose, alias=alias.full_name) diff --git a/src/scripts/pyolian/eolian.py b/src/scripts/pyolian/eolian.py index d181a0fc60..55f4fea971 100644 --- a/src/scripts/pyolian/eolian.py +++ b/src/scripts/pyolian/eolian.py @@ -365,59 +365,47 @@ class Eolian_Unit(EolianBaseObject): c_var = lib.eolian_unit_global_by_name_get(self._obj, _str_to_bytes(name)) return Variable(c_var) if c_var else None - @property -def all_namespaces(self): -# TODO find a better way to find namespaces (maybe inside eolian?) -nspaces = set() -for obj in self.classes: -nspaces.add(Namespace(self, obj.namespace)) -for obj in self.typedecl_all_aliases: -nspaces.add(Namespace(self, obj.namespace)) -for obj in self.typedecl_all_structs: -nspaces.add(Namespace(self, obj.namespace)) -for obj in self.typedecl_all_enums: -nspaces.add(Namespace(self, obj.namespace)) -return sorted(nspaces) +def enums(self): +return Iterator(Typedecl, lib.eolian_unit_enums_get(self._obj)) -def namespace_get_by_name(self, name): -return Namespace(self, name) +def enum_by_name_get(self, name): +c_tdecl = lib.eolian_unit_enum_by_name_get(self._obj, _str_to_bytes(name)) +return Typedecl(c_tdecl) if c_tdecl else None @property -def typedecl_all_enums(self): -return Iterator(Typedecl, lib.eolian_typedecl_all_enums_get(self._obj)) +def structs(self): +return Iterator(Typedecl, lib.eolian_unit_structs_get(self._obj)) -def typedecl_enum_get_by_name(self, name): -c_tdecl = lib.eolian_typedecl_enum_get_by_name(self._obj, _str_to_bytes(name)) +def struct_by_name_get(self, name): +c_tdecl = lib.eolian_unit_struct_by_name_get(self._obj, _str_to_bytes(name)) return Typedecl(c_tdecl) if c_tdecl else None -def typedecl_enums_get_by_file(self, fname): -return Iterator(Typedecl, -lib.eolian_typedecl_enums_get_by_file(self._obj, _str_to_bytes(fname))) - @property -def typedecl_all_structs(self): -return Iterator(Typedecl, lib.eolian_typedecl_all_structs_get(self._obj)) +def aliases(self): +return Iterator(Typedecl, lib.eolian_unit_aliases_get(self._obj)) -def typedecl_struct_get_by_name(self, name): -c_tdecl = lib.eolian_typedecl_struct_get_by_name(self._obj, _str_to_bytes(name)) +def alias_by_name_get(self, name): +c_tdecl = lib.eolian_unit_alias_by_name_get(self._obj, _str_to_bytes(name)) return Typedecl(c_tdecl) if c_tdecl else None -def typedecl_structs_get_by_file(self, fname): -return Iterator(Typedecl, -lib.eolian_typedecl_structs_get_by_file(self._obj, _str_to_bytes(fname))) @property -def typedecl_all_aliases(self): -return Iterator(Typedecl, lib.eoli
[EGIT] [core/efl] master 01/01: Pyolian: new variable lookup APIs
davemds pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=20f7d6f35fe5a9633451857bb2c79eb7dedbfc57 commit 20f7d6f35fe5a9633451857bb2c79eb7dedbfc57 Author: Dave Andreoli Date: Thu Mar 1 16:35:22 2018 +0100 Pyolian: new variable lookup APIs with adjusted tests --- src/scripts/pyolian/eolian.py | 65 -- src/scripts/pyolian/eolian_lib.py | 56 src/scripts/pyolian/test_eolian.py | 14 3 files changed, 84 insertions(+), 51 deletions(-) diff --git a/src/scripts/pyolian/eolian.py b/src/scripts/pyolian/eolian.py index 0ce750fb05..d181a0fc60 100644 --- a/src/scripts/pyolian/eolian.py +++ b/src/scripts/pyolian/eolian.py @@ -350,6 +350,23 @@ class Eolian_Unit(EolianBaseObject): return Class(c_cls) if c_cls else None @property +def constants(self): +return Iterator(Variable, lib.eolian_unit_constants_get(self._obj)) + +def constant_by_name_get(self, name): +c_var = lib.eolian_unit_constant_by_name_get(self._obj, _str_to_bytes(name)) +return Variable(c_var) if c_var else None + +@property +def globals(self): +return Iterator(Variable, lib.eolian_unit_globals_get(self._obj)) + +def global_by_name_get(self, name): +c_var = lib.eolian_unit_global_by_name_get(self._obj, _str_to_bytes(name)) +return Variable(c_var) if c_var else None + + +@property def all_namespaces(self): # TODO find a better way to find namespaces (maybe inside eolian?) nspaces = set() @@ -403,30 +420,6 @@ class Eolian_Unit(EolianBaseObject): lib.eolian_typedecl_aliases_get_by_file(self._obj, _str_to_bytes(fname))) @property -def variable_all_constants(self): -return Iterator(Variable, lib.eolian_variable_all_constants_get(self._obj)) - -def variable_constant_get_by_name(self, name): -c_var = lib.eolian_variable_constant_get_by_name(self._obj, _str_to_bytes(name)) -return Variable(c_var) if c_var else None - -def variable_constants_get_by_file(self, fname): -return Iterator(Variable, -lib.eolian_variable_constants_get_by_file(self._obj, _str_to_bytes(fname))) - -@property -def variable_all_globals(self): -return Iterator(Variable, lib.eolian_variable_all_globals_get(self._obj)) - -def variable_global_get_by_name(self, name): -c_var = lib.eolian_variable_global_get_by_name(self._obj, _str_to_bytes(name)) -return Variable(c_var) if c_var else None - -def variable_globals_get_by_file(self, fname): -return Iterator(Variable, -lib.eolian_variable_globals_get_by_file(self._obj, _str_to_bytes(fname))) - -@property def all_declarations(self): return Iterator(Declaration, lib.eolian_all_declarations_get(self._obj)) @@ -499,6 +492,30 @@ class Eolian_State(Eolian_Unit): c_cls = lib.eolian_state_class_by_file_get(self._obj, _str_to_bytes(file_name)) return Class(c_cls) if c_cls else None +@property +def constants(self): +return Iterator(Variable, lib.eolian_state_constants_get(self._obj)) + +def constant_by_name_get(self, name): +c_var = lib.eolian_state_constant_by_name_get(self._obj, _str_to_bytes(name)) +return Variable(c_var) if c_var else None + +def constants_by_file_get(self, file_name): +return Iterator(Variable, +lib.eolian_state_constants_by_file_get(self._obj, _str_to_bytes(file_name))) + +@property +def globals(self): +return Iterator(Variable, lib.eolian_state_globals_get(self._obj)) + +def global_by_name_get(self, name): +c_var = lib.eolian_state_global_by_name_get(self._obj, _str_to_bytes(name)) +return Variable(c_var) if c_var else None + +def globals_by_file_get(self, file_name): +return Iterator(Variable, +lib.eolian_state_globals_by_file_get(self._obj, _str_to_bytes(file_name))) + ### Namespace Utility Class # diff --git a/src/scripts/pyolian/eolian_lib.py b/src/scripts/pyolian/eolian_lib.py index afd747384a..75ab22246c 100644 --- a/src/scripts/pyolian/eolian_lib.py +++ b/src/scripts/pyolian/eolian_lib.py @@ -105,6 +105,30 @@ lib.eolian_state_class_by_file_get.restype = c_void_p lib.eolian_state_classes_get.argtypes = [c_void_p,] lib.eolian_state_classes_get.restype = c_void_p +# EAPI const Eolian_Variable *eolian_state_global_by_name_get(const Eolian_State *state, const char *name); +lib.eolian_state_global_by_name_get.argtypes = [c_void_p, c_char_p] +lib.eolian_state_global_by_name_get.restype = c_void_p + +# EAPI const Eolian_Variable *eolian_state_constant_by_name_get(const Eolian_State *state, const char *name); +lib.eolian_state_constant_by_name_get.argtypes = [c_void_p, c_char_p] +lib.eolian_state_constant_by_name_get.restype =
[EGIT] [core/efl] master 01/01: Pyolian: new APIs for class retrieval
davemds pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0a51dbf2ff20dbff7669a75704389e0a92d9b187 commit 0a51dbf2ff20dbff7669a75704389e0a92d9b187 Author: Dave Andreoli Date: Thu Mar 1 15:51:59 2018 +0100 Pyolian: new APIs for class retrieval Also updated tests, generator and gendoc accordly --- src/scripts/gendoc/gendoc.py | 2 +- src/scripts/pyolian/eolian.py | 38 +++--- src/scripts/pyolian/eolian_lib.py | 28 ++-- src/scripts/pyolian/generator.py | 2 +- src/scripts/pyolian/test_eolian.py | 30 +++--- 5 files changed, 58 insertions(+), 42 deletions(-) diff --git a/src/scripts/gendoc/gendoc.py b/src/scripts/gendoc/gendoc.py index 210450df96..1c8ec1 100755 --- a/src/scripts/gendoc/gendoc.py +++ b/src/scripts/gendoc/gendoc.py @@ -131,7 +131,7 @@ if args.step in ('start', None): # render a page for each Class if args.step in ('classes', None): t = Template('doc_class.template') -for cls in eolian_db.all_classes: +for cls in eolian_db.classes: if cls.full_name.startswith(args.namespace): output_file = page_path_for_object(cls) t.render(output_file, args.verbose, cls=cls.full_name) diff --git a/src/scripts/pyolian/eolian.py b/src/scripts/pyolian/eolian.py index 0243a7f1bb..0ce750fb05 100644 --- a/src/scripts/pyolian/eolian.py +++ b/src/scripts/pyolian/eolian.py @@ -341,23 +341,19 @@ class Eolian_Unit(EolianBaseObject): def file(self): return _str_to_py(lib.eolian_unit_file_get(self._obj)) -def class_get_by_name(self, class_name): -c_cls = lib.eolian_class_get_by_name(self._obj, _str_to_bytes(class_name)) -return Class(c_cls) if c_cls else None +@property +def classes(self): +return Iterator(Class, lib.eolian_unit_classes_get(self._obj)) -def class_get_by_file(self, file_name): -c_cls = lib.eolian_class_get_by_file(self._obj, _str_to_bytes(file_name)) +def class_by_name_get(self, class_name): +c_cls = lib.eolian_unit_class_by_name_get(self._obj, _str_to_bytes(class_name)) return Class(c_cls) if c_cls else None @property -def all_classes(self): -return Iterator(Class, lib.eolian_all_classes_get(self._obj)) - -@property def all_namespaces(self): # TODO find a better way to find namespaces (maybe inside eolian?) nspaces = set() -for obj in self.all_classes: +for obj in self.classes: nspaces.add(Namespace(self, obj.namespace)) for obj in self.typedecl_all_aliases: nspaces.add(Namespace(self, obj.namespace)) @@ -491,6 +487,18 @@ class Eolian_State(Eolian_Unit): def units(self): return Iterator(Eolian_Unit, lib.eolian_state_units_get(self._obj)) +@property +def classes(self): +return Iterator(Class, lib.eolian_state_classes_get(self._obj)) + +def class_by_name_get(self, class_name): +c_cls = lib.eolian_state_class_by_name_get(self._obj, _str_to_bytes(class_name)) +return Class(c_cls) if c_cls else None + +def class_by_file_get(self, file_name): +c_cls = lib.eolian_state_class_by_file_get(self._obj, _str_to_bytes(file_name)) +return Class(c_cls) if c_cls else None + ### Namespace Utility Class # @@ -536,30 +544,30 @@ class Namespace(object): @property def classes(self): -return sorted([ c for c in self._unit.all_classes +return sorted([ c for c in self._unit.classes if c.namespace == self._name ]) @property def regulars(self): -return sorted([ c for c in self._unit.all_classes +return sorted([ c for c in self._unit.classes if c.type == Eolian_Class_Type.REGULAR and c.namespace == self._name]) @property def abstracts(self): -return sorted([ c for c in self._unit.all_classes +return sorted([ c for c in self._unit.classes if c.type == Eolian_Class_Type.ABSTRACT and c.namespace == self._name]) @property def mixins(self): -return sorted([ c for c in self._unit.all_classes +return sorted([ c for c in self._unit.classes if c.type == Eolian_Class_Type.MIXIN and c.namespace == self._name]) @property def interfaces(self): -return sorted([ c for c in self._unit.all_classes +return sorted([ c for c in self._unit.classes if c.type == Eolian_Class_Type.INTERFACE and c.namespace == self._name]) diff --git a/src/scripts/pyolian/eolian_lib.py b/src/scripts/pyolian/eolian_lib.py index e86929e773..afd747384a 100644 --- a/src/scripts/pyolian/eolian_
[EGIT] [core/efl] master 01/01: efl file interface - fix reyturn if no file set to return a null file
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ed077d5d92e105f17e4e42b2649b2d36bb436c64 commit ed077d5d92e105f17e4e42b2649b2d36bb436c64 Author: Carsten Haitzler (Rasterman) Date: Thu Mar 1 22:35:21 2018 +0900 efl file interface - fix reyturn if no file set to return a null file --- src/lib/efl/interfaces/efl_file.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/efl/interfaces/efl_file.c b/src/lib/efl/interfaces/efl_file.c index 9f0be2e8a1..5f9f4f8ed4 100644 --- a/src/lib/efl/interfaces/efl_file.c +++ b/src/lib/efl/interfaces/efl_file.c @@ -50,6 +50,7 @@ _efl_file_file_get(Eo *obj, Efl_File_Data *pd EINA_UNUSED, const char **file, co efl_file_mmap_get(obj, &f, key); if (f && file) *file = eina_file_filename_get(f); + else if (file) *file = NULL; } static Efl_Image_Load_Error --
[EGIT] [tools/examples] master 01/01: net_mono: add net reference examples to the C# binding
vitorsousa pushed a commit to branch master. http://git.enlightenment.org/tools/examples.git/commit/?id=566b5c3ee732b1f76d873d0544638fc53ae24b73 commit 566b5c3ee732b1f76d873d0544638fc53ae24b73 Author: Vitor Sousa Date: Thu Mar 1 10:28:17 2018 -0300 net_mono: add net reference examples to the C# binding --- reference/csharp/net/meson.build| 10 ++ reference/csharp/net/src/meson.build| 22 +++ reference/csharp/net/src/net_io.cs | 269 reference/csharp/net/src/net_io_buffered.cs | 181 +++ reference/csharp/net/src/net_session.cs | 135 ++ 5 files changed, 617 insertions(+) diff --git a/reference/csharp/net/meson.build b/reference/csharp/net/meson.build new file mode 100644 index 000..18a8171 --- /dev/null +++ b/reference/csharp/net/meson.build @@ -0,0 +1,10 @@ +project( + 'efl-reference-net', 'c', + version : '0.0.1', + meson_version : '>= 0.38.0') + +efl_mono = dependency('efl-mono', version : '>=1.20.99') +efl_mono_libs = efl_mono.get_pkgconfig_variable('mono_libs') + +subdir('src') + diff --git a/reference/csharp/net/src/meson.build b/reference/csharp/net/src/meson.build new file mode 100644 index 000..9897ac6 --- /dev/null +++ b/reference/csharp/net/src/meson.build @@ -0,0 +1,22 @@ +deps = [efl_mono] + +executable('efl_reference_net_io', + files(['net_io.cs']), + dependencies : deps, + cs_args : efl_mono_libs, + install : true +) + +executable('efl_reference_net_io_buffered', + files(['net_io_buffered.cs']), + dependencies : deps, + cs_args : efl_mono_libs, + install : true +) + +executable('efl_reference_net_session', + files(['net_session.cs']), + dependencies : deps, + cs_args : efl_mono_libs, + install : true +) diff --git a/reference/csharp/net/src/net_io.cs b/reference/csharp/net/src/net_io.cs new file mode 100644 index 000..f797867 --- /dev/null +++ b/reference/csharp/net/src/net_io.cs @@ -0,0 +1,269 @@ +/* + * Efl.Net input/output examples. + * + * This example builds on the core_io example by connecting to a remote server + * using a dialer and a command queue. The response is printed to stdout. + */ + +using System; + +public class ExampleRunner +{ +private eina.List waiting = null; +private eina.List commands = null; +private eina.Slice delimiter; +private efl.net.dialer.Tcp dialer = null; +private efl.io.Copier sender = null; +private efl.io.Copier receiver = null; + +public void Run() +{ +efl.ui.Config.Run(); +} + +// call this method to cleanly shut down our example +public void Quit() +{ +if (waiting != null) +{ +Console.Error.WriteLine("ERROR: {0} operations were waiting!", waiting.Length); +waiting.Dispose(); +waiting = null; +} + +if (receiver != null) +{ +receiver.Close(); +receiver.GetDestination().Dispose(); +receiver.Dispose(); +receiver = null; +} + +if (sender) +{ +sender.Close(); +sender.GetSource().Dispose(); +source.Dispose(); +} + +if (dialer) +dialer.Dispose(); + +// efl_exit(retval); // TODO missing +efl.ui.Config.Exit(); +} + +// iterate through the commands to send through the dialler +public void CommandNext() +{ +efl.io.Reader send_queue = sender.GetSource(); +if (commands != null) +{ +send_queue.EosMark(); +return; +} + +string cmd = commands[0]; +// commands.RemoveAt(0); // TODO missing + +eina.Slice slice; +// slice = (Eina_Slice)EINA_SLICE_STR(cmd); // TODO missing +send_queue.Write(slice, null); +// Console.WriteLine("INFO: sent '{0}'", EINA_SLICE_STR_PRINT(slice)); // TODO missing + +// don't use delimiter directly, 'Len' may be changed! +slice = delimiter; +send_queue.Write(slice, null); +} + +void ReceiverData(efl.io.Queue sender, EventArgs e) +{ +eina.Slice slice = sender.GetSlice(); + +// Can be caused when we issue efl.io.Queue.Clear() +if (slice.Len == 0) return; + +// If the server didn't send us the line terminator and closed the +// connection (ie: efl_io_reader_eos_get() == true) or if the buffer +// limit was reached then we may have a line without a trailing delimiter. + +// if (slice.EndsWith(delimiter)) // TODO missing +//slice.Len -= delimiter.Len; + +// Console.WriteLine("INFO: received '{0}'", EINA_SLICE_STR_PRINT(slice)); // TODO missing + +sender.Clear(); +CommandNext(); +} + +void DialerConnected(efl.net.dialer.Tcp sender, EventArgs e) +{ +Console.WriteLine("INFO: connected to {0} ({1})", sender.GetAddressDial(), sender.GetAddressRemote()); + +CommandNext(); +
[EGIT] [core/efl] master 01/01: eolian: new APIs for typedecl lookups
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f8505eddbd4af487b163573b4d56f1f7da432641 commit f8505eddbd4af487b163573b4d56f1f7da432641 Author: Daniel Kolesa Date: Thu Mar 1 12:42:40 2018 +0100 eolian: new APIs for typedecl lookups --- src/lib/eolian/Eolian.h| 297 +++-- src/lib/eolian/database_type_api.c | 84 --- src/lib/eolian/eolian_database.c | 177 ++ 3 files changed, 366 insertions(+), 192 deletions(-) diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index b4581478cb..bf8918be23 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -755,6 +755,105 @@ EAPI Eina_Iterator *eolian_state_constants_get(const Eolian_State *state); EAPI Eina_Iterator *eolian_state_globals_get(const Eolian_State *state); /* + * @brief Get an alias type declaration within a state by name. + * + * @param[in] state The state. + * @param[in] name The name of the alias. + * + * @ingroup Eolian + */ +EAPI const Eolian_Typedecl *eolian_state_alias_by_name_get(const Eolian_State *state, const char *name); + +/* + * @brief Get a struct declaration within a state by name. + * + * @param[in] state The state. + * @param[in] name The name of the alias. + * + * @ingroup Eolian + */ +EAPI const Eolian_Typedecl *eolian_state_struct_by_name_get(const Eolian_State *state, const char *name); + +/* + * @brief Get an enum declaration within a state by name. + * + * @param[in] state The state. + * @param[in] name The name of the alias. + * + * @ingroup Eolian + */ +EAPI const Eolian_Typedecl *eolian_state_enum_by_name_get(const Eolian_State *state, const char *name); + +/* + * @brief Get an iterator to all aliases contained in a file. + * + * @param[in] state The state. + * @param[in] file_name The file name. + * + * Thanks to internal caching, this is an O(1) operation. + * + * @ingroup Eolian + */ +EAPI Eina_Iterator *eolian_state_aliases_by_file_get(const Eolian_State *state, const char *file_name); + +/* + * @brief Get an iterator to all named structs contained in a file. + * + * @param[in] state The state. + * @param[in] file_name The file name. + * + * Thanks to internal caching, this is an O(1) operation. + * + * @ingroup Eolian + */ +EAPI Eina_Iterator *eolian_state_structs_by_file_get(const Eolian_State *state, const char *file_name); + +/* + * @brief Get an iterator to all enums contained in a file. + * + * @param[in] state The state. + * @param[in] file_name The file name. + * + * Thanks to internal caching, this is an O(1) operation. + * + * @ingroup Eolian + */ +EAPI Eina_Iterator *eolian_state_enums_by_file_get(const Eolian_State *state, const char *file_name); + +/* + * @brief Get an iterator to all aliases in the Eolian database. + * + * @param[in] state The state. + * + * Thanks to internal caching, this is an O(1) operation. + * + * @ingroup Eolian + */ +EAPI Eina_Iterator *eolian_state_aliases_get(const Eolian_State *state); + +/* + * @brief Get an iterator to all structs in the Eolian database. + * + * @param[in] state The state. + * + * Thanks to internal caching, this is an O(1) operation. + * + * @ingroup Eolian + */ +EAPI Eina_Iterator *eolian_state_structs_get(const Eolian_State *state); + +/* + * @brief Get an iterator to all enums in the Eolian database. + * + * @param[in] state The state. + * + * Thanks to internal caching, this is an O(1) operation. + * + * @ingroup Eolian + */ +EAPI Eina_Iterator *eolian_state_enums_get(const Eolian_State *state); + +/* * @brief Get the children (dependencies) of a unit. * * The iterator is obviously again to `const Eolian_Unit *`. @@ -839,6 +938,69 @@ EAPI Eina_Iterator *eolian_unit_constants_get(const Eolian_Unit *unit); EAPI Eina_Iterator *eolian_unit_globals_get(const Eolian_Unit *unit); /* + * @brief Get an alias type declaration within a unit by name. + * + * @param[in] unit The unit. + * @param[in] name The name of the alias. + * + * @ingroup Eolian + */ +EAPI const Eolian_Typedecl *eolian_unit_alias_by_name_get(const Eolian_Unit *unit, const char *name); + +/* + * @brief Get a struct declaration within a unit by name. + * + * @param[in] unit The unit. + * @param[in] name The name of the alias. + * + * @ingroup Eolian + */ +EAPI const Eolian_Typedecl *eolian_unit_struct_by_name_get(const Eolian_Unit *unit, const char *name); + +/* + * @brief Get an enum declaration within a unit by name. + * + * @param[in] unit The unit. + * @param[in] name The name of the alias. + * + * @ingroup Eolian + */ +EAPI const Eolian_Typedecl *eolian_unit_enum_by_name_get(const Eolian_Unit *unit, const char *name); + +/* + * @brief Get an iterator to all aliases in the Eolian database. + * + * @param[in] unit The unit. + * + * Thanks to internal caching, this is an O(1) operation. + * + * @ingroup Eolian + */ +EAPI Eina_Iterator *eolian_unit_aliases_get(const Eolian_Unit *unit); + +/* + * @brief Get an iterator to all
[EGIT] [core/efl] master 01/02: eolian: new APIs for class retrieval
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d6382f3f2bf74850c404ec92553e444bd8726248 commit d6382f3f2bf74850c404ec92553e444bd8726248 Author: Daniel Kolesa Date: Thu Mar 1 11:42:30 2018 +0100 eolian: new APIs for class retrieval --- src/lib/eolian/Eolian.h | 65 + src/lib/eolian/database_class_api.c | 26 --- src/lib/eolian/eolian_database.c| 57 3 files changed, 102 insertions(+), 46 deletions(-) diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index a47115f148..b7f5b6bc66 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -659,6 +659,35 @@ EAPI const Eolian_Unit *eolian_state_unit_by_file_get(const Eolian_State *state, EAPI Eina_Iterator *eolian_state_units_get(const Eolian_State *state); /* + * @brief Get a class within a state by name. + * + * @param[in] state The state. + * @param[in] class_name The full name of the class. + * + * @ingroup Eolian + */ +EAPI const Eolian_Class *eolian_state_class_by_name_get(const Eolian_State *state, const char *class_name); + +/* + * @brief Get a class within a state by file name (class_name.eo). + * + * @param[in] state The state. + * @param[in] file_name The full name of the class. + * + * @ingroup Eolian + */ +EAPI const Eolian_Class *eolian_state_class_by_file_get(const Eolian_State *state, const char *file_name); + +/* + * @brief Get an iterator to all the classes stored into a state. + * + * @param[in] state The Eolian state. + * + * @ingroup Eolian + */ +EAPI Eina_Iterator *eolian_state_classes_get(const Eolian_State *state); + +/* * @brief Get the children (dependencies) of a unit. * * The iterator is obviously again to `const Eolian_Unit *`. @@ -682,26 +711,23 @@ EAPI Eina_Iterator *eolian_unit_children_get(const Eolian_Unit *unit); EAPI const char *eolian_unit_file_get(const Eolian_Unit *unit); /* - * @brief Gets a class by its name + * @brief Get a class within a unit by name. * - * @param[in] unit the unit to look in - * @param[in] class_name name of the class to get. - * @return the class + * @param[in] unit The unit. + * @param[in] class_name The full name of the class. * * @ingroup Eolian */ -EAPI const Eolian_Class *eolian_class_get_by_name(const Eolian_Unit *unit, const char *class_name); +EAPI const Eolian_Class *eolian_unit_class_by_name_get(const Eolian_Unit *unit, const char *class_name); /* - * @brief Gets a class by its filename (name.eo) + * @brief Get an iterator to all the classes stored into a unit. * - * @param[in] unit the unit to look in - * @param[in] file_name the filename - * @return the class stored in the file + * @param[in] unit The Eolian unit. * * @ingroup Eolian */ -EAPI const Eolian_Class *eolian_class_get_by_file(const Eolian_Unit *unit, const char *file_name); +EAPI Eina_Iterator *eolian_unit_classes_get(const Eolian_Unit *unit); /* * @brief Returns the name of the file containing the given class. @@ -757,16 +783,6 @@ EAPI Eina_Iterator *eolian_class_namespaces_get(const Eolian_Class *klass); EAPI Eolian_Class_Type eolian_class_type_get(const Eolian_Class *klass); /* - * @brief Returns an iterator to all the classes stored into the database. - * - * @param[in] unit the unit to look in - * @return the iterator - * - * @ingroup Eolian - */ -EAPI Eina_Iterator *eolian_all_classes_get(const Eolian_Unit *unit); - -/* * @brief Returns the documentation of a class. * * @param[in] klass the class @@ -2690,6 +2706,15 @@ EAPI Eina_Iterator *eolian_all_eo_files_get(const Eolian_State *state); /* DEPRECATED */ EAPI Eina_Iterator *eolian_all_eot_files_get(const Eolian_State *state); +/* DEPRECATED */ +EAPI const Eolian_Class *eolian_class_get_by_name(const Eolian_Unit *unit, const char *class_name); + +/* DEPRECATED */ +EAPI const Eolian_Class *eolian_class_get_by_file(const Eolian_Unit *unit, const char *file_name); + +/* DEPRECATED */ +EAPI Eina_Iterator *eolian_all_classes_get(const Eolian_Unit *unit); + #endif /** diff --git a/src/lib/eolian/database_class_api.c b/src/lib/eolian/database_class_api.c index dbb6dee56e..2703d0e200 100644 --- a/src/lib/eolian/database_class_api.c +++ b/src/lib/eolian/database_class_api.c @@ -31,26 +31,6 @@ eolian_class_namespaces_get(const Eolian_Class *cl) : NULL); } -EAPI const Eolian_Class * -eolian_class_get_by_name(const Eolian_Unit *unit, const char *class_name) -{ - if (!unit) return NULL; - Eina_Stringshare *shr = eina_stringshare_add(class_name); - Eolian_Class *cl = eina_hash_find(unit->classes, shr); - eina_stringshare_del(shr); - return cl; -} - -EAPI const Eolian_Class * -eolian_class_get_by_file(const Eolian_Unit *unit, const char *file_name) -{ - if (!unit) return NULL; - Eina_Stringshare *shr = eina_stringshare_add(file_name); - Eolian_Class *cl = eina_hash_find(unit->state->classes_f,
[EGIT] [core/efl] master 02/02: eolian: new variable lookup APIs
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e28e481cca6011053e3c4b11d7157d6cb3c03aa5 commit e28e481cca6011053e3c4b11d7157d6cb3c03aa5 Author: Daniel Kolesa Date: Thu Mar 1 12:09:02 2018 +0100 eolian: new variable lookup APIs --- src/lib/eolian/Eolian.h | 197 -- src/lib/eolian/database_var_api.c | 55 --- src/lib/eolian/eolian_database.c | 117 ++ 3 files changed, 244 insertions(+), 125 deletions(-) diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index b7f5b6bc66..b4581478cb 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -688,6 +688,73 @@ EAPI const Eolian_Class *eolian_state_class_by_file_get(const Eolian_State *stat EAPI Eina_Iterator *eolian_state_classes_get(const Eolian_State *state); /* + * @brief Get a global variable in a state by name. + * + * @param[in] state The state. + * @param[in] name the name of the variable + * + * @ingroup Eolian + */ +EAPI const Eolian_Variable *eolian_state_global_by_name_get(const Eolian_State *state, const char *name); + +/* + * @brief Get a constant variable in a state by name. + * + * @param[in] state The state. + * @param[in] name the name of the variable + * + * @ingroup Eolian + */ +EAPI const Eolian_Variable *eolian_state_constant_by_name_get(const Eolian_State *state, const char *name); + +/* + * @brief Get an iterator to all global variables contained in a file. + * + * @param[in] state The state. + * @param[in] file_name The file name. + * + * Thanks to internal caching, this is an O(1) operation. + * + * @ingroup Eolian + */ +EAPI Eina_Iterator *eolian_state_globals_by_file_get(const Eolian_State *state, const char *file_name); + +/* + * @brief Get an iterator to all constant variables contained in a file. + * + * @param[in] state The state. + * @param[in] file_name The file name. + * @return the iterator or NULL + * + * Thanks to internal caching, this is an O(1) operation. + * + * @ingroup Eolian + */ +EAPI Eina_Iterator *eolian_state_constants_by_file_get(const Eolian_State *state, const char *file_name); + +/* + * @brief Get an iterator to all constant variables in the Eolian database. + * + * @return the iterator or NULL + * + * Thanks to internal caching, this is an O(1) operation. + * + * @ingroup Eolian + */ +EAPI Eina_Iterator *eolian_state_constants_get(const Eolian_State *state); + +/* + * @brief Get an iterator to all global variables in the Eolian database. + * + * @return the iterator or NULL + * + * Thanks to internal caching, this is an O(1) operation. + * + * @ingroup Eolian + */ +EAPI Eina_Iterator *eolian_state_globals_get(const Eolian_State *state); + +/* * @brief Get the children (dependencies) of a unit. * * The iterator is obviously again to `const Eolian_Unit *`. @@ -730,6 +797,48 @@ EAPI const Eolian_Class *eolian_unit_class_by_name_get(const Eolian_Unit *unit, EAPI Eina_Iterator *eolian_unit_classes_get(const Eolian_Unit *unit); /* + * @brief Get a global variable in a unit by name. + * + * @param[in] unit The unit. + * @param[in] name the name of the variable + * + * @ingroup Eolian + */ +EAPI const Eolian_Variable *eolian_unit_global_by_name_get(const Eolian_Unit *unit, const char *name); + +/* + * @brief Get a constant variable in a unit by name. + * + * @param[in] unit The unit. + * @param[in] name the name of the variable + * + * @ingroup Eolian + */ +EAPI const Eolian_Variable *eolian_unit_constant_by_name_get(const Eolian_Unit *unit, const char *name); + +/* + * @brief Get an iterator to all constant variables in the Eolian database. + * + * @return the iterator or NULL + * + * Thanks to internal caching, this is an O(1) operation. + * + * @ingroup Eolian + */ +EAPI Eina_Iterator *eolian_unit_constants_get(const Eolian_Unit *unit); + +/* + * @brief Get an iterator to all global variables in the Eolian database. + * + * @return the iterator or NULL + * + * Thanks to internal caching, this is an O(1) operation. + * + * @ingroup Eolian + */ +EAPI Eina_Iterator *eolian_unit_globals_get(const Eolian_Unit *unit); + +/* * @brief Returns the name of the file containing the given class. * * @param[in] klass the class. @@ -2305,76 +2414,6 @@ EAPI const Eolian_Expression *eolian_expression_unary_expression_get(const Eolia EAPI Eolian_Value eolian_expression_value_get(const Eolian_Expression *expr); /* - * @brief Get a global variable by name. Supports namespaces. - * - * @param[in] unit the unit to look in - * @param[in] name the name of the variable - * @return the variable handle or NULL - * - * @ingroup Eolian - */ -EAPI const Eolian_Variable *eolian_variable_global_get_by_name(const Eolian_Unit *unit, const char *name); - -/* - * @brief Get a constant variable by name. Supports namespaces. - * - * @param[in] unit the unit to look in - * @param[in] name the name of the variable - * @return the variable handle or NULL - * - * @ingro
[EGIT] [website/www-content] master 01/01: Wiki page efl-1.20.7 changed with summary [created] by Stefan Schmidt
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=0d90bd78f54b2fa65fd357e423f0c78e1d06a3d6 commit 0d90bd78f54b2fa65fd357e423f0c78e1d06a3d6 Author: Stefan Schmidt Date: Thu Mar 1 00:54:43 2018 -0800 Wiki page efl-1.20.7 changed with summary [created] by Stefan Schmidt --- pages/news/efl-1.20.7.txt | 49 +++ 1 file changed, 49 insertions(+) diff --git a/pages/news/efl-1.20.7.txt b/pages/news/efl-1.20.7.txt new file mode 100644 index 0..9d1b9405a --- /dev/null +++ b/pages/news/efl-1.20.7.txt @@ -0,0 +1,49 @@ +=== EFL 1.20.7 release === + * //2018-03-01 - by Stefan Schmidt// + +Our seventh update on the 1.20 release. + +==Fixes:== + + * ecore ipc/con: fix nasty ... they dont mutually exclude + * evas: Fix potential crash with draw context + * disable async mode (use sync mode) for ibus when keymap changes + * eio: make inotify monitors fork-safe + * ecore-file: make monitoring truly fork-safe + * efl-wl: unset kbd mods changed flag after sending modifiers + * efl-wl: fix no-op of setting keyboard enter on already-entered surface + * ecore-x: re-add implementation of ecore_x_connection_get() + * ecore-x: filter XkbNewKeyboardNotifyEvent before emitting ecore-x event + * elementary config: Fix to use ELEMENTARY_BASE_DIR for configure path + * ecore-x: add more null checks for functions + * ecore-x: perform internal shutdown on io error if callback is set + * ecore-wl2: correctly translate spacebar keyname into key events (T6620) + * efl-wl: immediately unset a destroyed surface's cursor + * efl-wl: remove some broken logic for activating toplevel parents + * efl-wl: set event ON_HOLD flag when they are sent to a surface + * efl-wl: propagate surface activation back to parent if child is hidden + * efl-wl: send more mouse buttons to clients + * efl theme - fix bug in e init splash that would do hide anim 2x (T6619) + * ecore-drm2: return supported rotations if not using hardware + * ecore-drm2: Fix enabling outputs + * ecore evas init - init ecore then evas not the other way... + * emotion: unset DISPLAY when loading an engine under wayland (T6418) + * elm: fix memleak in combobox + * ecore_con: bug workaround SO_REUSEADDR and EADDRINUSE from bind (fix) + * eina: fix random segfaults when displaying BT + * eldbus test - del not unref obj as it has a parent ... + * eeze: Remove unused device variables + * eeze: Don't leak udev enumeration + * eina: Fix typo in doxygen + * ecore-evas-drm: Check for XDG_SEAT existence (T6455) + * eina_file: make sure we use a stringshare when virtualized. (T6449) + * elm ifrace scrollable - fix uninitialized values on scroll asjust + * eo - by default on 64bit only use 47 bits because of luajit + * elm_code_widget: make sure the widget is cleared properly. (T6185) + * elm_code_widget: keep track of visibility. + * edje - entry - fix empty item handling (T6668) + +==Download:== + +^ ** LINK ** ^ ** SHA256 ** ^ +| [[http://download.enlightenment.org/rel/libs/efl/efl-1.20.7.tar.xz | efl-1.20.7.tar.xz ]] | b0a9b765bcd7b012f1072da1d491fc8671aa089473f746901d93f5807a2c76fe | \ No newline at end of file --
[EGIT] [website/www-content] master 01/01: Wiki page download-latest changed with summary [] by Stefan Schmidt
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=36e8662b54077dae8a73ad45d3bc45a636d3ca04 commit 36e8662b54077dae8a73ad45d3bc45a636d3ca04 Author: Stefan Schmidt Date: Thu Mar 1 00:51:18 2018 -0800 Wiki page download-latest changed with summary [] by Stefan Schmidt --- pages/download-latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/download-latest.txt b/pages/download-latest.txt index 10e1b1301..6053fab10 100644 --- a/pages/download-latest.txt +++ b/pages/download-latest.txt @@ -1,5 +1,5 @@ -efl_v = 1.20.6 +efl_v = 1.20.7 python_efl_v = 1.20.0 enlightenment_v = 0.22.1 --
[EGIT] [website/www-content] master 01/01: Wiki page start-release changed with summary [] by Stefan Schmidt
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=92d99b428878eddd8ba2d8d083652f26775772ee commit 92d99b428878eddd8ba2d8d083652f26775772ee Author: Stefan Schmidt Date: Thu Mar 1 00:51:30 2018 -0800 Wiki page start-release changed with summary [] by Stefan Schmidt --- pages/incl/start-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/incl/start-release.txt b/pages/incl/start-release.txt index cf310db29..dbb5f2061 100644 --- a/pages/incl/start-release.txt +++ b/pages/incl/start-release.txt @@ -1,3 +1,3 @@ -EFL 1.20.6 and [[https://www.enlightenment.org/news/e0.22.1_release|Enlightenment 0.22.1]] are out - go to our [[/download]] page. +EFL 1.20.7 and [[https://www.enlightenment.org/news/e0.22.1_release|Enlightenment 0.22.1]] are out - go to our [[/download]] page. --
[EGIT] [core/efl] annotated tag v1.20.7 created (now d7f15292bb)
This is an automated email from the git hooks/post-receive script. stefan pushed a change to annotated tag v1.20.7 in repository core/efl. at d7f15292bb (tag) tagging df5525b67e14be97fc9dda7af7984da351b7c9db (commit) replaces v1.20.6 tagged by Stefan Schmidt on Tue Feb 20 16:33:53 2018 +0100 - Log - v1.20.7 Al Poole (5): eina_file: make sure we use a stringshare when virtualized. elm_code_widget: make sure the widget is cleared properly. elm_code: hide cursor if we hide the widget. elm_code_widget: keep track of visibility. elm_code: add support for go and markdown syntax. Andy Williams (7): elm_code: Don't bold beginnings of lines elm_code: If showing line numbers don't resize at 10 lines. elm_code: Fix tooltip crash elm_code: Cancel selection if clicked outside of the editor area Revert "elm - fix makefile to install missing header for elm_code" elm_code: Fix issue where text selection menu did not show elm_code: Fix line selection with leading tabs Carsten Haitzler (13): ecore ipc/con: fix nasty ... they dont mutually exclude disable async mode (use sync mode) for ibus when keymap changes efl theme - fix bug in e init splash that would do hide anim 2x elput - fix crash on shutdown where input.lib was NULL efl wl - fix segv where garbage ptr to comp surface is still there efl thread signal masks - fix up for various threads manually created ecore evas init - init ecore then evas not the other way... ecore_con: bug workaround SO_REUSEADDR and EADDRINUSE from bind (fix) eldbus test - del not unref obj as it has a parent ... elm ifrace scrollable - fix uninitialized values on scroll asjust eo - by default on 64bit only use 47 bits because of luajit elm - fix makefile to install missing header for elm_code edje - entry - fix empty item handling Cedric BAIL (1): eina: use a stringshare to store the filename internally. Christopher Michael (7): ecore_drm2: fix seat matching when checking for a device with a null seat ecore-drm2: return supported rotations if not using hardware ecore-drm2: Fix enabling outputs eeze: Remove unused device variables eeze: Don't leak udev enumeration eina: Fix typo in doxygen ecore-evas-drm: Check for XDG_SEAT existence Jaehyun Cho (1): evas_language_utils: Fix build error without NLS Jean Guyomarc'h (3): elm: fix memleak in combobox elm: fix typo in elm_list documentation eina: fix random segfaults when displaying BT Jean-Philippe ANDRÉ (1): evas: Fix potential crash with draw context Lauro Moura (2): example: Add elocation to elm build elementary: fix compilation of elm_code test on windows Mike Blumenkrantz (19): eio: make inotify monitors fork-safe eeze: simplify watch code and make it fork-safe ecore-file: make monitoring truly fork-safe ecore: make dbus-using modules fork-safe eldbus: make connections fork-safe efreet: reset ipc connection after fork efl-wl: unset kbd mods changed flag after sending modifiers efl-wl: fix no-op of setting keyboard enter on already-entered surface ecore-x: re-add implementation of ecore_x_connection_get() ecore-x: filter XkbNewKeyboardNotifyEvent before emitting ecore-x event ecore-x: add more null checks for functions ecore-x: perform internal shutdown on io error if callback is set ecore-wl2: correctly translate spacebar keyname into key events efl-wl: immediately unset a destroyed surface's cursor efl-wl: remove some broken logic for activating toplevel parents efl-wl: set event ON_HOLD flag when they are sent to a surface efl-wl: propagate surface activation back to parent if child is hidden efl-wl: send more mouse buttons to clients emotion: unset DISPLAY when loading an engine under wayland Myoungwoon Roy, Kim (2): ecore_evas: Check for null ptr deref ecore_anim: Check for null ptr deref Romain Naour (1): elua: add eina in environment variable library path Shinwoo Kim (1): eina_tiler: fix typo of rect comparing Stefan Schmidt (1): release: Update NEWS and bump version for 1.20.7 release Sungtaek Hong (1): elm_index: fix documentation of wrong param name Youngbok Shin (1): elementary config: Fix to use ELEMENTARY_BASE_DIR for configure path --- No new revisions were added by this update. --