[EGIT] [core/enlightenment] master 01/01: Byte order macro. Be consistent and get rid of clang warnings.

2018-03-01 Thread Al Poole
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.

2018-03-01 Thread Al Poole
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

2018-03-01 Thread Dave Andreoli
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

2018-03-01 Thread Dave Andreoli
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

2018-03-01 Thread Davide Andreoli
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

2018-03-01 Thread Davide Andreoli
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

2018-03-01 Thread Davide Andreoli
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

2018-03-01 Thread Carsten Haitzler
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

2018-03-01 Thread Vitor Sousa
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

2018-03-01 Thread Daniel Kolesa
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

2018-03-01 Thread Daniel Kolesa
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

2018-03-01 Thread Daniel Kolesa
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

2018-03-01 Thread 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

2018-03-01 Thread 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

2018-03-01 Thread 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)

2018-03-01 Thread Enlightenment Git
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.

--