[E-devel] [Re]: [EGIT] [core/efl] master 01/03: ecore: fix wait for stdin on Windows

2016-12-22 Thread Vincent Torri
hey

i don't like the idea of getc/ungetc in the thread, imho it's a bad hack
you do that for ethumb_slave, i guess, but i think that the wait for
input should be in ethumb slave, with a thread and ReadConsole(). and
not the hack you did

Vincent

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/02: edje_pick: add vector resources into the output file.

2016-12-22 Thread Jaehwan Kim
jaehwan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=65b7ab95bc5eb0da3a982dc44d2dbce2f092b097

commit 65b7ab95bc5eb0da3a982dc44d2dbce2f092b097
Author: Jaehwan Kim 
Date:   Fri Dec 23 13:10:14 2016 +0900

edje_pick: add vector resources into the output file.
---
 src/bin/edje/edje_pick.c | 130 ++-
 1 file changed, 129 insertions(+), 1 deletion(-)

diff --git a/src/bin/edje/edje_pick.c b/src/bin/edje/edje_pick.c
index b856115..c7d41f6 100644
--- a/src/bin/edje/edje_pick.c
+++ b/src/bin/edje/edje_pick.c
@@ -64,6 +64,7 @@ struct _Edje_Pick_File_Params
Eina_List *luascriptlist;
Eina_List *imagelist;
Eina_List *imagesetlist;  /* List of IDs (Edje_Pick_Data) for image sets */
+   Eina_List *vectorlist;
Eina_List *samplelist;
Eina_List *tonelist;
Eina_List *vibrationlist;
@@ -238,6 +239,9 @@ _edje_pick_cleanup(Eina_List *ifs, Edje_File *out_file, 
Edje_Pick_Status s)
 _edje_pick_data_free(p->imagelist);
 p->imagelist = NULL;
 
+_edje_pick_data_free(p->vectorlist);
+p->vectorlist = NULL;
+
 _edje_pick_data_free(p->imagesetlist);
 p->imagesetlist = NULL;
 
@@ -861,7 +865,7 @@ _edje_pick_images_copy(Edje_File *edf, Edje_File *o)
int old_id;
Eina_Bool status = EDJE_PICK_NO_ERROR;
Eina_List *l, *l1;
-   Edje_Pick_Data *image, *set;
+   Edje_Pick_Data *image, *set, *vector;
 
if (edf->image_dir)
  {
@@ -934,6 +938,38 @@ _edje_pick_images_copy(Edje_File *edf, Edje_File *o)
 }
}
   }
+
+if (edf->image_dir->vectors)
+  {  /* Copy vector dir entries of current file */
+ Edje_Vector_Directory_Entry *vectors = NULL;
+
+ EINA_LIST_FOREACH(context.current_file->vectorlist, l, vector)
+   {
+  if (vector->id.used)
+{
+   o->image_dir->vectors_count += 1;
+
+   /* alloc mem first time  or  re-allocate again (bigger 
array) */
+   vectors = realloc(o->image_dir->vectors,
+ o->image_dir->vectors_count *
+ sizeof(Edje_Vector_Directory_Entry));
+   if (!vectors)
+ {
+EINA_LOG_ERR("Out of memory in realloc()");
+return EDJE_PICK_IMAGE_NOT_FOUND;
+ }
+   o->image_dir->vectors = vectors;
+
+   old_id = _edje_pick_image_old_id_get(
+ context.current_file->vectorlist, 
o->image_dir->vectors_count - 1);
+   /* Concatinate current file vectors to re-allocaed 
array */
+   
memcpy(>image_dir->vectors[o->image_dir->vectors_count - 1],
+  >image_dir->vectors[old_id],
+  sizeof(Edje_Vector_Directory_Entry));
+   o->image_dir->vectors[o->image_dir->vectors_count - 
1].id = vector->id.new_id;
+}
+   }
+  }
  }
 
return status;
@@ -1267,6 +1303,68 @@ _edje_pick_image_set_add(int id, Edje_File *edf, 
Edje_File *o)
return current_set_id;
 }
 
+static int
+_edje_pick_vector_entry_add(int id, Edje_File *edf, Edje_File *o)
+{
+   char buf[1024];
+   int size;
+   void *data;
+   static int current_vg_id = -1;
+
+   int new_id = _edje_pick_image_new_id_get(context.current_file->vectorlist, 
id);
+   if (new_id >= 0) return new_id;
+
+   if (edf->image_dir)
+ {
+if (!o->image_dir)  /* First time only */
+  o->image_dir = calloc(1, sizeof(*(o->image_dir)));
+
+if (edf->image_dir->vectors)
+  { /* Copy Vectors */
+ Edje_Vector_Directory_Entry *vg = >image_dir->vectors[id];
+
+ snprintf(buf, sizeof(buf), "edje/vectors/%i", vg->id);
+ VERBOSE(EINA_LOG_INFO("Trying to read <%s>\n", vg->entry));
+ data = eet_read(edf->ef, buf, );
+ if (size)
+   {  /* Advance vector ID and register this in vectorlist */
+  current_vg_id++;
+  Edje_Pick_Data *vector = malloc(sizeof(*vector));
+
+  vector->filename = eina_stringshare_add(vg->entry);
+  vector->data = data;
+  vector->size = size;
+  vector->entry = (void *) vg;  /* for output file vector dir 
*/
+  vector->id.old_id = vg->id;
+  vg->id = vector->id.new_id = current_vg_id;
+  vector->id.used = EINA_TRUE;
+
+  VERBOSE(EINA_LOG_INFO("Read vector <%s> data <%p> size <%d>, 
new_id : %d\n",
+buf, vector->data, vector->size, 
vector->id.new_id));
+
+  

[EGIT] [core/efl] master 02/02: edje_data: add the missed vector data.

2016-12-22 Thread Jaehwan Kim
jaehwan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=05521763ed66bdbf563ce95bfe0944556c6aede9

commit 05521763ed66bdbf563ce95bfe0944556c6aede9
Author: Jaehwan Kim 
Date:   Fri Dec 23 13:11:14 2016 +0900

edje_data: add the missed vector data.
---
 src/lib/edje/edje_data.c | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/src/lib/edje/edje_data.c b/src/lib/edje/edje_data.c
index 0af3b13..df21571 100644
--- a/src/lib/edje/edje_data.c
+++ b/src/lib/edje/edje_data.c
@@ -17,6 +17,7 @@ Eet_Data_Descriptor *_edje_edd_edje_image_directory = NULL;
 Eet_Data_Descriptor *_edje_edd_edje_image_directory_entry = NULL;
 Eet_Data_Descriptor *_edje_edd_edje_image_directory_set = NULL;
 Eet_Data_Descriptor *_edje_edd_edje_image_directory_set_entry = NULL;
+Eet_Data_Descriptor *_edje_edd_edje_vector_directory_entry = NULL;
 Eet_Data_Descriptor *_edje_edd_edje_model_directory = NULL;
 Eet_Data_Descriptor *_edje_edd_edje_model_directory_entry = NULL;
 Eet_Data_Descriptor *_edje_edd_edje_limit = NULL;
@@ -670,6 +671,7 @@ _edje_edd_shutdown(void)
FREED(_edje_edd_edje_image_directory_entry);
FREED(_edje_edd_edje_image_directory_set);
FREED(_edje_edd_edje_image_directory_set_entry);
+   FREED(_edje_edd_edje_vector_directory_entry);
FREED(_edje_edd_edje_model_directory);
FREED(_edje_edd_edje_model_directory_entry);
FREED(_edje_edd_edje_limit);
@@ -818,11 +820,19 @@ _edje_edd_init(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_set, 
Edje_Image_Directory_Set, "id", id, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_image_directory_set, 
Edje_Image_Directory_Set, "entries", entries, 
_edje_edd_edje_image_directory_set_entry);
 
+   /* vector directory */
+   EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(, Edje_Vector_Directory_Entry);
+   _edje_edd_edje_vector_directory_entry =
+ eet_data_descriptor_file_new();
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_vector_directory_entry, 
Edje_Vector_Directory_Entry, "entry", entry, EET_T_STRING);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_vector_directory_entry, 
Edje_Vector_Directory_Entry, "id", id, EET_T_INT);
+
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(, Edje_Image_Directory);
_edje_edd_edje_image_directory =
  eet_data_descriptor_file_new();
EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(_edje_edd_edje_image_directory, 
Edje_Image_Directory, "entries", entries, _edje_edd_edje_image_directory_entry);
EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(_edje_edd_edje_image_directory, 
Edje_Image_Directory, "sets", sets, _edje_edd_edje_image_directory_set);
+   EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(_edje_edd_edje_image_directory, 
Edje_Image_Directory, "vectors", vectors, 
_edje_edd_edje_vector_directory_entry);
 
/*MO*/
 

-- 




[EGIT] [core/enlightenment] master 01/01: ibar - protect against getting invalid icon ptr on obj deletion

2016-12-22 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=74989a9531f8c8484385f7e08d7bdb29c97d84fa

commit 74989a9531f8c8484385f7e08d7bdb29c97d84fa
Author: Carsten Haitzler (Rasterman) 
Date:   Fri Dec 23 11:16:58 2016 +0900

ibar - protect against getting invalid icon ptr on obj deletion

remove the "ibar_icon" data completely on deletion of an object
pointing to it so if it is accessed later during deletion it'll
return NULL safely.
---
 src/modules/ibar/e_mod_main.c | 9 -
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c
index 97c040c..2a33eef 100644
--- a/src/modules/ibar/e_mod_main.c
+++ b/src/modules/ibar/e_mod_main.c
@@ -1095,6 +1095,7 @@ _ibar_cb_icon_menu_mouse_up(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj, v
Evas_Event_Mouse_Up *ev = event_info;
 
ic = evas_object_data_get(obj, "ibar_icon");
+   if (!ic) return;
if (ev->button == 3)
  {
 e_int_client_menu_show(ec, ev->canvas.x, ev->canvas.y, 0, 
ev->timestamp);
@@ -1236,7 +1237,9 @@ _ibar_cb_icon_menu_img_del(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj, vo
ic = evas_object_data_del(obj, "ibar_icon");
if (!ic) return; //menu is closing
 
+   evas_object_data_del(obj, "ibar_icon");
ic->client_objs = eina_list_remove(ic->client_objs, obj);
+
if (!ic->menu) return; //who knows
edje_object_part_box_remove(ic->menu->o_bg, "e.box", data);
ec = evas_object_data_get(obj, "E_Client");
@@ -1281,7 +1284,11 @@ _ibar_cb_icon_frame_del(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj, void
 {
IBar_Icon *ic = evas_object_data_del(obj, "ibar_icon");
 
-   if (ic) ic->client_objs = eina_list_remove(ic->client_objs, obj);
+   if (ic)
+ {
+evas_object_data_del(obj, "ibar_icon");
+ic->client_objs = eina_list_remove(ic->client_objs, obj);
+ }
e_comp_object_signal_callback_del_full(data, "e,state,*focused", "e", 
_ibar_cb_icon_menu_focus_change, obj);
evas_object_smart_callback_del_full(data, "desk_change", 
_ibar_cb_icon_menu_desk_change, obj);
 }

-- 




[EGIT] [core/efl] master 01/01: ecore_exe: do not try to send 0 bytes

2016-12-22 Thread Andrii Kroitor
lorddrew pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=792acc9f9eaf8587490ea7cc5a984689f7283502

commit 792acc9f9eaf8587490ea7cc5a984689f7283502
Author: Andrii Kroitor 
Date:   Thu Dec 22 18:49:27 2016 +0200

ecore_exe: do not try to send 0 bytes

Summary: This action is meaningless when communicating with child process.

Reviewers: barbieri

Reviewed By: barbieri

Subscribers: jpeg, vtorri, cedric, raster

Differential Revision: https://phab.enlightenment.org/D4510
---
 src/lib/ecore/ecore_exe.c   | 2 ++
 src/lib/ecore/ecore_exe_win32.c | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore/ecore_exe.c b/src/lib/ecore/ecore_exe.c
index 6cf7e59..dcf9cea 100644
--- a/src/lib/ecore/ecore_exe.c
+++ b/src/lib/ecore/ecore_exe.c
@@ -126,6 +126,8 @@ ecore_exe_send(Ecore_Exe  *obj,
if (!efl_isa(obj, MY_CLASS))
   return EINA_FALSE;
 
+   EINA_SAFETY_ON_TRUE_RETURN_VAL(size == 0, EINA_TRUE);
+
if (exe->close_stdin)
{
   ERR("Ecore_Exe %p stdin is closed! Cannot send %d bytes from %p",
diff --git a/src/lib/ecore/ecore_exe_win32.c b/src/lib/ecore/ecore_exe_win32.c
index 6479985..33854f8 100644
--- a/src/lib/ecore/ecore_exe_win32.c
+++ b/src/lib/ecore/ecore_exe_win32.c
@@ -560,7 +560,7 @@ _impl_ecore_exe_send(Ecore_Exe  *obj,
BOOL res;
 
res = WriteFile(exe->pipe_write.child_pipe_x, data, size, _exe, NULL);
-   if (size && !res || num_exe == 0)
+   if (!res || num_exe == 0)
  {
 ERR("Ecore_Exe %p stdin is closed! Cannot send %d bytes from %p",
 obj, size, data);

-- 




Re: [E-devel] [EGIT] [core/efl] master 03/03: ecore_exe: fix send on Windows

2016-12-22 Thread Gustavo Sverzut Barbieri
done, looks good to me

On Thu, Dec 22, 2016 at 3:00 PM, Andrii Kroitor  wrote:
> On 22.12.16 17:44, Gustavo Sverzut Barbieri wrote:
>> On Thu, Dec 22, 2016 at 11:40 AM, Andrii Kroitor  
>> wrote:
>>> On 22.12.16 15:00, Gustavo Sverzut Barbieri wrote:
 On Thu, Dec 22, 2016 at 10:27 AM, Andrii Kroitor  
 wrote:
> lorddrew pushed a commit to branch master.
>
> http://git.enlightenment.org/core/efl.git/commit/?id=11e687578dca47f024dc230f2d23c579ddd91961
>
> commit 11e687578dca47f024dc230f2d23c579ddd91961
> Author: Andrii Kroitor 
> Date:   Thu Dec 22 14:10:10 2016 +0200
>
>   ecore_exe: fix send on Windows
>
>   Check for bytes written only if more than 0 bytes were sent.
>   I don't know why some efl code is trying to send 0 bytes, but that 
> works on
>   Linux and therefore should be fixed on Windows.
> ---
>src/lib/ecore/ecore_exe_win32.c | 2 +-
>1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/lib/ecore/ecore_exe_win32.c 
> b/src/lib/ecore/ecore_exe_win32.c
> index 305298e..3532fe1 100644
> --- a/src/lib/ecore/ecore_exe_win32.c
> +++ b/src/lib/ecore/ecore_exe_win32.c
> @@ -560,7 +560,7 @@ _impl_ecore_exe_send(Ecore_Exe  *obj,
>   BOOL res;
>
>   res = WriteFile(exe->pipe_write.child_pipe_x, data, size, _exe, 
> NULL);
> -   if (!res || num_exe == 0)
> +   if (size && !res || num_exe == 0)
 eventually apps don't check what they try to send... but the library
 should, then don't try to send, the WriteFile with zero-size is not
 right.

>>> I've experimented with adding abort() on sending zero bytes and this
>>> leads to segfault on `elementary_test -to Thumb` on Linux.
>>> So EFL code itself is actually trying to send 0 bytes to child process.
>>> I'm wondering is there any reason to do this on Linux?
>> I bet it's a bug in upper layers. But we shouldn't try to write zero
>> bytes. Also, see the Linux manpage write(2):
>>
>> If count is zero and fd refers to a  regular  file,  then  write()  
>> may
>> return  a failure status if one of the errors below is detected.  If 
>> no
>> errors are detected, or error detection is not  performed,  0  will  
>> be
>> returned  without  causing  any  other effect.  If count is zero and 
>> fd
>> refers to a file other than a regular file, the results are not  
>> speci‐
>> fied.
>>
>> We're talking about non-regular file, thus the second case, which
>> means unspecified.
>>
>> TL;DR: before WriteFile() or write() we should check:
>>
>> EINA_SAFETY_ON_TRUE_RETURN_VAL(size == 0, ...);
>>
> Please look at https://phab.enlightenment.org/D4510
>
> --
> *Best Regards,
> Andrii Kroitor
> * Engineer, Tizen Platform Lab
>
> Samsung R Institute Ukraine
> 57, Lva Tolstogo St., Kyiv 01032, Ukraine
> email: an.kroi...@samsung.com 
>
>
> --
> Developer Access Program for Intel Xeon Phi Processors
> Access to Intel Xeon Phi processor-based developer platforms.
> With one year of Intel Parallel Studio XE.
> Training and support from Colfax.
> Order your platform today.http://sdm.link/intel
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Gustavo Sverzut Barbieri
--
Mobile: +55 (16) 99354-9890

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/efl] master 03/03: ecore_exe: fix send on Windows

2016-12-22 Thread Andrii Kroitor
On 22.12.16 17:44, Gustavo Sverzut Barbieri wrote:
> On Thu, Dec 22, 2016 at 11:40 AM, Andrii Kroitor  
> wrote:
>> On 22.12.16 15:00, Gustavo Sverzut Barbieri wrote:
>>> On Thu, Dec 22, 2016 at 10:27 AM, Andrii Kroitor  
>>> wrote:
 lorddrew pushed a commit to branch master.

 http://git.enlightenment.org/core/efl.git/commit/?id=11e687578dca47f024dc230f2d23c579ddd91961

 commit 11e687578dca47f024dc230f2d23c579ddd91961
 Author: Andrii Kroitor 
 Date:   Thu Dec 22 14:10:10 2016 +0200

   ecore_exe: fix send on Windows

   Check for bytes written only if more than 0 bytes were sent.
   I don't know why some efl code is trying to send 0 bytes, but that 
 works on
   Linux and therefore should be fixed on Windows.
 ---
src/lib/ecore/ecore_exe_win32.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/src/lib/ecore/ecore_exe_win32.c 
 b/src/lib/ecore/ecore_exe_win32.c
 index 305298e..3532fe1 100644
 --- a/src/lib/ecore/ecore_exe_win32.c
 +++ b/src/lib/ecore/ecore_exe_win32.c
 @@ -560,7 +560,7 @@ _impl_ecore_exe_send(Ecore_Exe  *obj,
   BOOL res;

   res = WriteFile(exe->pipe_write.child_pipe_x, data, size, _exe, 
 NULL);
 -   if (!res || num_exe == 0)
 +   if (size && !res || num_exe == 0)
>>> eventually apps don't check what they try to send... but the library
>>> should, then don't try to send, the WriteFile with zero-size is not
>>> right.
>>>
>> I've experimented with adding abort() on sending zero bytes and this
>> leads to segfault on `elementary_test -to Thumb` on Linux.
>> So EFL code itself is actually trying to send 0 bytes to child process.
>> I'm wondering is there any reason to do this on Linux?
> I bet it's a bug in upper layers. But we shouldn't try to write zero
> bytes. Also, see the Linux manpage write(2):
>
> If count is zero and fd refers to a  regular  file,  then  write()  
> may
> return  a failure status if one of the errors below is detected.  If 
> no
> errors are detected, or error detection is not  performed,  0  will  
> be
> returned  without  causing  any  other effect.  If count is zero and 
> fd
> refers to a file other than a regular file, the results are not  
> speci‐
> fied.
>
> We're talking about non-regular file, thus the second case, which
> means unspecified.
>
> TL;DR: before WriteFile() or write() we should check:
>
> EINA_SAFETY_ON_TRUE_RETURN_VAL(size == 0, ...);
>
Please look at https://phab.enlightenment.org/D4510

-- 
*Best Regards,
Andrii Kroitor
* Engineer, Tizen Platform Lab

Samsung R Institute Ukraine
57, Lva Tolstogo St., Kyiv 01032, Ukraine
email: an.kroi...@samsung.com 


--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: edje_cc: add svg file name '.png' if it use as image

2016-12-22 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f12a08ab15617378885e62eaa53f603b4d9e7649

commit f12a08ab15617378885e62eaa53f603b4d9e7649
Author: Vyacheslav Reutskiy 
Date:   Thu Dec 22 18:08:27 2016 +0200

edje_cc: add svg file name '.png' if it use as image

This path add notify for user in case when svg use in image section. It
need for clear understanding why vertor image scale like bitmap. And
add to file name new extension '.png'
---
 src/bin/edje/edje_cc_handlers.c |  2 ++
 src/bin/edje/edje_cc_out.c  | 18 --
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c
index 94eff48..f95189a 100644
--- a/src/bin/edje/edje_cc_handlers.c
+++ b/src/bin/edje/edje_cc_handlers.c
@@ -2212,6 +2212,8 @@ st_externals_external(void)
 included inside other blocks, normally "collections", "group" and
 "part", easing maintenance of the file list when the theme is split
 among multiple files.
+@note if svg file use as image, not vector, it will be converted to 
bitmap
+and '.png' will be add to file name.
 @endblock
 
 @property
diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c
index 6717508..3f4a79b 100644
--- a/src/bin/edje/edje_cc_out.c
+++ b/src/bin/edje/edje_cc_out.c
@@ -1320,6 +1320,7 @@ data_write_images(Eet_File *ef, int *image_num)
int i;
Ecore_Evas *ee;
Evas *evas;
+   const char *ext = NULL;
 
if (!((edje_file) && (edje_file->image_dir))) return;
 
@@ -1345,7 +1346,7 @@ data_write_images(Eet_File *ef, int *image_num)
 if (img->source_type == EDJE_IMAGE_SOURCE_TYPE_INLINE_LOSSY_ETC1 ||
 img->source_type == EDJE_IMAGE_SOURCE_TYPE_INLINE_LOSSY_ETC2)
   {
- const char *ext = strrchr(img->entry, '.');
+ ext = strrchr(img->entry, '.');
  if (ext && !strcasecmp(ext, ".tgv"))
{
   if (tgv_file_check_and_add(ef, img, image_num))
@@ -1409,6 +1410,19 @@ data_write_images(Eet_File *ef, int *image_num)
   exit(1); // ensure static analysis tools know we exit
}
   }
+if (img->source_type != EDJE_IMAGE_SOURCE_TYPE_EXTERNAL)
+  {
+ ext = strrchr(img->entry, '.');
+ if (ext && (!strcasecmp(ext, ".svg") || !strcasecmp(ext, 
".svgz")))
+   {
+  int size = strlen(img->entry) + strlen(".png") + 1;
+  char *tmp = malloc(size);
+  snprintf(tmp, size, "%s.png", img->entry);
+  INF("Vector '%s' used as image, convert to bitmap '%s'", 
img->entry, tmp);
+  free(img->entry);
+  img->entry = tmp;
+   }
+  }
  }
 }
 
@@ -2644,7 +2658,6 @@ data_write(void)
 
pending_threads++;
t = ecore_time_get();
-   data_write_header(ef);
 
INF("header: %3.5f", ecore_time_get() - t); t = ecore_time_get();
data_write_groups(ef, _num);
@@ -2705,6 +2718,7 @@ data_write(void)
pending_threads--;
if (pending_threads > 0) ecore_main_loop_begin();
INF("THREADS: %3.5f", ecore_time_get() - t);
+   data_write_header(ef);
 
err = eet_close(ef);
if (err)

-- 




[EGIT] [core/efl] master 01/02: edje_pick: fix calculation of index for parent and depended groups

2016-12-22 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=e30a197a92faa6d4235edaf7bbe85e1e4fd50099

commit e30a197a92faa6d4235edaf7bbe85e1e4fd50099
Author: Vyacheslav Reutskiy 
Date:   Wed Dec 21 11:05:22 2016 +0200

edje_pick: fix calculation of index for parent and depended groups
---
 src/bin/edje/edje_pick.c | 79 +++-
 1 file changed, 37 insertions(+), 42 deletions(-)

diff --git a/src/bin/edje/edje_pick.c b/src/bin/edje/edje_pick.c
index d02e5c7..b856115 100644
--- a/src/bin/edje/edje_pick.c
+++ b/src/bin/edje/edje_pick.c
@@ -570,6 +570,37 @@ _edje_pick_output_prepare(Edje_File *o, Edje_File *edf, 
char *name)
return o;
 }
 
+static void
+_edje_pick_header_alias_parent_add(Edje_File *out_file, Edje_File *edf, 
Edje_Part_Collection_Directory_Entry *ce, Edje_Part_Collection_Directory_Entry 
*ce_out)
+{
+   Edje_Part_Collection_Directory_Entry *ce_cor, *ce_new, *ce_f;
+   Eina_Iterator *i;
+
+   if (!ce->group_alias) return;
+
+   i = eina_hash_iterator_data_new(edf->collection);
+   EINA_ITERATOR_FOREACH(i, ce_cor)
+ {
+/* find the alias parent group */
+if ((ce->id == ce_cor->id) && (!ce_cor->group_alias))
+  {
+ ce_f = eina_hash_find(out_file->collection, ce_cor->entry);
+ if (!ce_f)
+   {
+  ce_new = malloc(sizeof(*ce_new));
+  memcpy(ce_new, ce_cor, sizeof(*ce_new));
+  ce_new->id = ce_out->id;
+  eina_hash_direct_add(out_file->collection, ce_new->entry, 
ce_new);
+   }
+ else
+   {
+  ce_out->id = ce_f->id;
+   }
+  }
+ }
+   eina_iterator_free(i);
+}
+
 static Eina_List *
 _edje_pick_header_dependencies_check(Edje_File *out_file, Edje_File *edf, 
Eina_List *groups, Edje_Part_Collection_Directory_Entry *ce, int *current_id)
 {
@@ -577,7 +608,6 @@ _edje_pick_header_dependencies_check(Edje_File *out_file, 
Edje_File *edf, Eina_L
Edje_Part_Collection *edc;
Edje_Part *part;
unsigned int i, j;
-   Eina_Iterator *is;
Edje_Pack_Element *item;
Eina_List *dep_list = NULL, *dep_list_inner = NULL;
 
@@ -607,27 +637,9 @@ _edje_pick_header_dependencies_check(Edje_File *out_file, 
Edje_File *edf, Eina_L
  Edje_Part_Collection_Directory_Entry *ce_out; \
  ce_out = malloc(sizeof(*ce_out)); \
  memcpy(ce_out, ce_cor, sizeof(*ce_out)); \
- if (ce_out->group_alias) \
-   { \
-  Edje_Part_Collection_Directory_Entry *ce_new; \
-  is = eina_hash_iterator_data_new(edf->collection); \
-  EINA_ITERATOR_FOREACH(is, ce_cor) \
-{ \
-   if (ce_out->id == ce_cor->id) \
- { \
-ce_new = malloc(sizeof(*ce_new)); \
-memcpy(ce_new, ce_cor, sizeof(*ce_new)); \
-ce_new->id = (*current_id); \
-if (!eina_hash_find(out_file->collection, 
ce_new->entry)) \
-  eina_hash_direct_add(out_file->collection, 
ce_new->entry, \
-   ce_new); \
-else \
-  free(ce_new); \
- } \
-} \
-  eina_iterator_free(is); \
-   } \
  ce_out->id = *current_id; \
+ if (ce_out->group_alias) \
+   _edje_pick_header_alias_parent_add(out_file, edf, ce, ce_out); \
  EINA_LOG_INFO("Changing ID of group <%d> to <%d>\n", ce->id, 
ce_out->id); \
  eina_hash_direct_add(out_file->collection, ce_out->entry, 
ce_out); \
  (*current_id)++; \
@@ -748,7 +760,7 @@ _edje_pick_header_make(Edje_File *out_file , Edje_File 
*edf, Eina_List *ifs)
  if (!ce)
{
   EINA_LOG_ERR("Group <%s> was not found in <%s> file.\n",
- name1, context.current_file->name);
+   name1, context.current_file->name);
   status = EDJE_PICK_GROUP_NOT_FOUND;
}
  else
@@ -761,29 +773,12 @@ _edje_pick_header_make(Edje_File *out_file , Edje_File 
*edf, Eina_List *ifs)
   memcpy(ce_out, ce, sizeof(*ce_out));
   ce_out->id = current_group_id;
   if (ce_out->group_alias)
-{
-   Edje_Part_Collection_Directory_Entry *ce_cor, *ce_new;
-   i = eina_hash_iterator_data_new(edf->collection);
-   EINA_ITERATOR_FOREACH(i, ce_cor)
- {
-if (ce->id == ce_cor->id)
-  {
- ce_new 

[EGIT] [core/efl] master 02/02: edje_cc: calculate and save the parts count in "edje/file"

2016-12-22 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=715a66ed119538983e89864b86d14e76e71aca3b

commit 715a66ed119538983e89864b86d14e76e71aca3b
Author: Vyacheslav Reutskiy 
Date:   Wed Dec 21 13:57:41 2016 +0200

edje_cc: calculate and save the parts count in "edje/file"
---
 src/bin/edje/edje_cc_handlers.c | 65 -
 src/bin/edje/edje_cc_out.c  | 26 +
 2 files changed, 90 insertions(+), 1 deletion(-)

diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c
index 864750c..94eff48 100644
--- a/src/bin/edje/edje_cc_handlers.c
+++ b/src/bin/edje/edje_cc_handlers.c
@@ -4370,6 +4370,63 @@ _filter_copy(Edje_Part_Description_Spec_Filter *ed, 
const Edje_Part_Description_
 }
 
 static void
+_parts_count_update(unsigned int type, int inc)
+{
+   switch (type)
+ {
+  case EDJE_PART_TYPE_RECTANGLE:
+ current_de->count.RECTANGLE += inc;
+ break;
+  case EDJE_PART_TYPE_TEXT:
+ current_de->count.TEXT += inc;
+ break;
+  case EDJE_PART_TYPE_IMAGE:
+ current_de->count.IMAGE += inc;
+ break;
+  case EDJE_PART_TYPE_SWALLOW:
+ current_de->count.SWALLOW += inc;
+ break;
+  case EDJE_PART_TYPE_TEXTBLOCK:
+ current_de->count.TEXTBLOCK += inc;
+ break;
+  case EDJE_PART_TYPE_GROUP:
+ current_de->count.GROUP += inc;
+ break;
+  case EDJE_PART_TYPE_BOX:
+ current_de->count.BOX += inc;
+ break;
+  case EDJE_PART_TYPE_TABLE:
+ current_de->count.TABLE += inc;
+ break;
+  case EDJE_PART_TYPE_EXTERNAL:
+ current_de->count.EXTERNAL += inc;
+ break;
+  case EDJE_PART_TYPE_PROXY:
+ current_de->count.PROXY += inc;
+ break;
+  case EDJE_PART_TYPE_MESH_NODE:
+ current_de->count.MESH_NODE += inc;
+ break;
+  case EDJE_PART_TYPE_LIGHT:
+ current_de->count.LIGHT += inc;
+ break;
+  case EDJE_PART_TYPE_CAMERA:
+ current_de->count.CAMERA += inc;
+ break;
+  case EDJE_PART_TYPE_SPACER:
+ current_de->count.SPACER += inc;
+ break;
+  case EDJE_PART_TYPE_SNAPSHOT:
+ current_de->count.SNAPSHOT += inc;
+ break;
+  case EDJE_PART_TYPE_VECTOR:
+ current_de->count.VECTOR += inc;
+ break;
+ }
+   current_de->count.part += inc;
+}
+
+static void
 _part_copy(Edje_Part *ep, Edje_Part *ep2)
 {
Edje_Part_Collection *pc;
@@ -4492,6 +4549,8 @@ _part_copy(Edje_Part *ep, Edje_Part *ep2)
 
 pitem = (Edje_Pack_Element_Parser *)item;
 pitem->can_override = EINA_TRUE;
+
+_parts_count_update(item->type, 1);
  }
 
ep->api.name = STRDUP(ep2->api.name);
@@ -5984,6 +6043,8 @@ _part_type_set(unsigned int type)
 free(dummy);
 current_desc = cur;
  }
+
+   _parts_count_update(current_part->type, 1);
 }
 
 static void
@@ -6312,7 +6373,7 @@ _part_name_check(void)
 static void
 st_collections_group_part_remove(void)
 {
-   unsigned int n, argc, orig_count;
+   unsigned int n, argc, orig_count, part_type;
Edje_Part_Collection *pc;
 
check_min_arg_count(1);
@@ -6339,6 +6400,7 @@ st_collections_group_part_remove(void)
 
  if (strcmp(pc->parts[j]->name, name)) continue;
 
+ part_type = pc->parts[j]->type;
  pc->parts[j] = _part_free(pc, pc->parts[j]);
  for (i = j; i < pc->parts_count - 1; i++)
{
@@ -6346,6 +6408,7 @@ st_collections_group_part_remove(void)
   pc->parts[i] = pc->parts[i + 1];
}
  pc->parts_count--;
+ _parts_count_update(part_type, -1);
  break;
   }
 if (cur_count == pc->parts_count)
diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c
index 13c809e..6717508 100644
--- a/src/bin/edje/edje_cc_out.c
+++ b/src/bin/edje/edje_cc_out.c
@@ -660,6 +660,31 @@ check_program(Edje_Part_Collection *pc, Edje_Program *ep, 
Eet_File *ef)
  }
 }
 
+/* reset part counters for alias */
+static void
+_alias_clean(Edje_Part_Collection_Directory_Entry *ce)
+{
+   if (ce)
+ {
+ ce->count.RECTANGLE = 0;
+ ce->count.TEXT = 0;
+ ce->count.IMAGE = 0;
+ ce->count.SWALLOW = 0;
+ ce->count.TEXTBLOCK = 0;
+ ce->count.GROUP = 0;
+ ce->count.BOX = 0;
+ ce->count.TABLE = 0;
+ ce->count.EXTERNAL = 0;
+ ce->count.PROXY = 0;
+ ce->count.MESH_NODE = 0;
+ ce->count.LIGHT = 0;
+ ce->count.CAMERA = 0;
+ ce->count.SPACER = 0;
+ ce->count.VECTOR = 0;
+ ce->count.part = 0;
+ }
+}
+
 static void
 data_thread_head(void *data, Ecore_Thread *thread EINA_UNUSED)
 {
@@ -699,6 +724,7 @@ data_thread_head(void *data, Ecore_Thread *thread 
EINA_UNUSED)
return;

Re: [E-devel] [EGIT] [core/efl] master 03/03: ecore_exe: fix send on Windows

2016-12-22 Thread Gustavo Sverzut Barbieri
On Thu, Dec 22, 2016 at 11:40 AM, Andrii Kroitor  wrote:
> On 22.12.16 15:00, Gustavo Sverzut Barbieri wrote:
>> On Thu, Dec 22, 2016 at 10:27 AM, Andrii Kroitor  
>> wrote:
>>> lorddrew pushed a commit to branch master.
>>>
>>> http://git.enlightenment.org/core/efl.git/commit/?id=11e687578dca47f024dc230f2d23c579ddd91961
>>>
>>> commit 11e687578dca47f024dc230f2d23c579ddd91961
>>> Author: Andrii Kroitor 
>>> Date:   Thu Dec 22 14:10:10 2016 +0200
>>>
>>>  ecore_exe: fix send on Windows
>>>
>>>  Check for bytes written only if more than 0 bytes were sent.
>>>  I don't know why some efl code is trying to send 0 bytes, but that 
>>> works on
>>>  Linux and therefore should be fixed on Windows.
>>> ---
>>>   src/lib/ecore/ecore_exe_win32.c | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/src/lib/ecore/ecore_exe_win32.c 
>>> b/src/lib/ecore/ecore_exe_win32.c
>>> index 305298e..3532fe1 100644
>>> --- a/src/lib/ecore/ecore_exe_win32.c
>>> +++ b/src/lib/ecore/ecore_exe_win32.c
>>> @@ -560,7 +560,7 @@ _impl_ecore_exe_send(Ecore_Exe  *obj,
>>>  BOOL res;
>>>
>>>  res = WriteFile(exe->pipe_write.child_pipe_x, data, size, _exe, 
>>> NULL);
>>> -   if (!res || num_exe == 0)
>>> +   if (size && !res || num_exe == 0)
>> eventually apps don't check what they try to send... but the library
>> should, then don't try to send, the WriteFile with zero-size is not
>> right.
>>
> I've experimented with adding abort() on sending zero bytes and this
> leads to segfault on `elementary_test -to Thumb` on Linux.
> So EFL code itself is actually trying to send 0 bytes to child process.
> I'm wondering is there any reason to do this on Linux?

I bet it's a bug in upper layers. But we shouldn't try to write zero
bytes. Also, see the Linux manpage write(2):

   If count is zero and fd refers to a  regular  file,  then  write()  may
   return  a failure status if one of the errors below is detected.  If no
   errors are detected, or error detection is not  performed,  0  will  be
   returned  without  causing  any  other effect.  If count is zero and fd
   refers to a file other than a regular file, the results are not  speci‐
   fied.

We're talking about non-regular file, thus the second case, which
means unspecified.

TL;DR: before WriteFile() or write() we should check:

EINA_SAFETY_ON_TRUE_RETURN_VAL(size == 0, ...);

-- 
Gustavo Sverzut Barbieri
--
Mobile: +55 (16) 99354-9890

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/enlightenment] master 01/01: 10_typo_restore_LDFLAGS.diff: Fix typo in configure.ac (upstream), causing empty LDFLAGS.

2016-12-22 Thread Andreas Metzler
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=8efbeb7acf9a029f4dad559ff4bedd5a586ed813

commit 8efbeb7acf9a029f4dad559ff4bedd5a586ed813
Author: Andreas Metzler 
Date:   Thu Dec 22 10:17:48 2016 -0500

10_typo_restore_LDFLAGS.diff: Fix typo in configure.ac (upstream), causing 
empty LDFLAGS.

Summary: typo spotted while packaging E 0.21.5 for Debian experimental

Reviewers: zmike!

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4507
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index bb30fed..5253f34 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1068,7 +1068,7 @@ case "$host_os" in
  AC_MSG_RESULT(yes)],
  AC_MSG_RESULT(no))
 CFLAGS="$OLDCFLAGS"
-LDFLAGS="$OLDLFDLAGS"
+LDFLAGS="$OLDLDFLAGS"
   fi
   ;;
 esac

-- 




Re: [E-devel] [EGIT] [core/efl] master 03/03: ecore_exe: fix send on Windows

2016-12-22 Thread Andrii Kroitor
On 22.12.16 15:00, Gustavo Sverzut Barbieri wrote:
> On Thu, Dec 22, 2016 at 10:27 AM, Andrii Kroitor  
> wrote:
>> lorddrew pushed a commit to branch master.
>>
>> http://git.enlightenment.org/core/efl.git/commit/?id=11e687578dca47f024dc230f2d23c579ddd91961
>>
>> commit 11e687578dca47f024dc230f2d23c579ddd91961
>> Author: Andrii Kroitor 
>> Date:   Thu Dec 22 14:10:10 2016 +0200
>>
>>  ecore_exe: fix send on Windows
>>
>>  Check for bytes written only if more than 0 bytes were sent.
>>  I don't know why some efl code is trying to send 0 bytes, but that 
>> works on
>>  Linux and therefore should be fixed on Windows.
>> ---
>>   src/lib/ecore/ecore_exe_win32.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/lib/ecore/ecore_exe_win32.c 
>> b/src/lib/ecore/ecore_exe_win32.c
>> index 305298e..3532fe1 100644
>> --- a/src/lib/ecore/ecore_exe_win32.c
>> +++ b/src/lib/ecore/ecore_exe_win32.c
>> @@ -560,7 +560,7 @@ _impl_ecore_exe_send(Ecore_Exe  *obj,
>>  BOOL res;
>>
>>  res = WriteFile(exe->pipe_write.child_pipe_x, data, size, _exe, 
>> NULL);
>> -   if (!res || num_exe == 0)
>> +   if (size && !res || num_exe == 0)
> eventually apps don't check what they try to send... but the library
> should, then don't try to send, the WriteFile with zero-size is not
> right.
>
I've experimented with adding abort() on sending zero bytes and this 
leads to segfault on `elementary_test -to Thumb` on Linux.
So EFL code itself is actually trying to send 0 bytes to child process. 
I'm wondering is there any reason to do this on Linux?


-- 
*Best Regards,
Andrii Kroitor
* Engineer, Tizen Platform Lab

Samsung R Institute Ukraine
57, Lva Tolstogo St., Kyiv 01032, Ukraine
email: an.kroi...@samsung.com 


--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/efl] master 03/03: ecore_exe: fix send on Windows

2016-12-22 Thread Gustavo Sverzut Barbieri
On Thu, Dec 22, 2016 at 10:27 AM, Andrii Kroitor  wrote:
> lorddrew pushed a commit to branch master.
>
> http://git.enlightenment.org/core/efl.git/commit/?id=11e687578dca47f024dc230f2d23c579ddd91961
>
> commit 11e687578dca47f024dc230f2d23c579ddd91961
> Author: Andrii Kroitor 
> Date:   Thu Dec 22 14:10:10 2016 +0200
>
> ecore_exe: fix send on Windows
>
> Check for bytes written only if more than 0 bytes were sent.
> I don't know why some efl code is trying to send 0 bytes, but that works 
> on
> Linux and therefore should be fixed on Windows.
> ---
>  src/lib/ecore/ecore_exe_win32.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/lib/ecore/ecore_exe_win32.c b/src/lib/ecore/ecore_exe_win32.c
> index 305298e..3532fe1 100644
> --- a/src/lib/ecore/ecore_exe_win32.c
> +++ b/src/lib/ecore/ecore_exe_win32.c
> @@ -560,7 +560,7 @@ _impl_ecore_exe_send(Ecore_Exe  *obj,
> BOOL res;
>
> res = WriteFile(exe->pipe_write.child_pipe_x, data, size, _exe, NULL);
> -   if (!res || num_exe == 0)
> +   if (size && !res || num_exe == 0)

eventually apps don't check what they try to send... but the library
should, then don't try to send, the WriteFile with zero-size is not
right.

-- 
Gustavo Sverzut Barbieri
--
Mobile: +55 (16) 99354-9890

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: ecore_exe_win32: fix typo in input poll thread

2016-12-22 Thread Andrii Kroitor
lorddrew pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=7e156742b3256f2392dffedd3043d90b6772018e

commit 7e156742b3256f2392dffedd3043d90b6772018e
Author: Andrii Kroitor 
Date:   Thu Dec 22 14:38:26 2016 +0200

ecore_exe_win32: fix typo in input poll thread
---
 src/lib/ecore/ecore_exe_win32.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/lib/ecore/ecore_exe_win32.c b/src/lib/ecore/ecore_exe_win32.c
index 3532fe1..6479985 100644
--- a/src/lib/ecore/ecore_exe_win32.c
+++ b/src/lib/ecore/ecore_exe_win32.c
@@ -105,7 +105,7 @@ _ecore_exe_win32_io_poll_thread(void *data, Ecore_Thread 
*th)
 {
Threaddata *tdat = data;
Threadreply *trep;
-   Eina_Bool data_read, data_write;
+   Eina_Bool data_read, data_error;
char buf[4096];
DWORD size, current_size;
BOOL res;
@@ -113,7 +113,7 @@ _ecore_exe_win32_io_poll_thread(void *data, Ecore_Thread 
*th)
while (EINA_TRUE)
  {
 data_read = EINA_FALSE;
-data_write = EINA_FALSE;
+data_error = EINA_FALSE;
 
 if (tdat->read)
   {
@@ -166,13 +166,13 @@ _ecore_exe_win32_io_poll_thread(void *data, Ecore_Thread 
*th)
 trep->buf_size = size;
 trep->error = EINA_TRUE;
 ecore_thread_feedback(th, trep);
-//data_error = EINA_TRUE;
+data_error = EINA_TRUE;
  }
 }
}
   }
 if (ecore_thread_check(th)) break;
-if (!(data_read || data_write)) Sleep(100);
+if (!(data_read || data_error)) Sleep(100);
 else if (ecore_thread_check(th)) break;
  }
free(tdat);

-- 




[EGIT] [core/efl] master 03/03: ecore_exe: fix send on Windows

2016-12-22 Thread Andrii Kroitor
lorddrew pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=11e687578dca47f024dc230f2d23c579ddd91961

commit 11e687578dca47f024dc230f2d23c579ddd91961
Author: Andrii Kroitor 
Date:   Thu Dec 22 14:10:10 2016 +0200

ecore_exe: fix send on Windows

Check for bytes written only if more than 0 bytes were sent.
I don't know why some efl code is trying to send 0 bytes, but that works on
Linux and therefore should be fixed on Windows.
---
 src/lib/ecore/ecore_exe_win32.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/ecore/ecore_exe_win32.c b/src/lib/ecore/ecore_exe_win32.c
index 305298e..3532fe1 100644
--- a/src/lib/ecore/ecore_exe_win32.c
+++ b/src/lib/ecore/ecore_exe_win32.c
@@ -560,7 +560,7 @@ _impl_ecore_exe_send(Ecore_Exe  *obj,
BOOL res;
 
res = WriteFile(exe->pipe_write.child_pipe_x, data, size, _exe, NULL);
-   if (!res || num_exe == 0)
+   if (size && !res || num_exe == 0)
  {
 ERR("Ecore_Exe %p stdin is closed! Cannot send %d bytes from %p",
 obj, size, data);

-- 




[EGIT] [core/efl] master 01/03: ecore: fix wait for stdin on Windows

2016-12-22 Thread Andrii Kroitor
lorddrew pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=053613db5277708f81de5b4e088155c127ba8ec9

commit 053613db5277708f81de5b4e088155c127ba8ec9
Author: Andrii Kroitor 
Date:   Wed Dec 21 15:08:58 2016 +0200

ecore: fix wait for stdin on Windows

We can't directly wait on stdin handle because it is signaled imediatly even
if there is no new data on input stream.
---
 src/lib/ecore/ecore_main.c | 39 ---
 1 file changed, 36 insertions(+), 3 deletions(-)

diff --git a/src/lib/ecore/ecore_main.c b/src/lib/ecore/ecore_main.c
index 640be7d..91bff0e 100644
--- a/src/lib/ecore/ecore_main.c
+++ b/src/lib/ecore/ecore_main.c
@@ -2551,6 +2551,15 @@ _ecore_main_win32_objects_wait(DWORD objects_nbr,
return WAIT_FAILED;
 }
 
+static unsigned int
+_stdin_wait_thread(void *data EINA_UNUSED)
+{
+   int c = getc(stdin);
+   ungetc(c, stdin);
+
+   return 0;
+}
+
 static int
 _ecore_main_win32_select(int nfds EINA_UNUSED,
  fd_set *readfds,
@@ -2559,6 +2568,9 @@ _ecore_main_win32_select(int nfds EINA_UNUSED,
  struct timeval *tv)
 {
HANDLE *objects;
+   static HANDLE stdin_wait_thread = INVALID_HANDLE_VALUE;
+   Eina_Bool stdin_thread_done = EINA_FALSE;
+   HANDLE stdin_handle;
int *sockets;
Ecore_Fd_Handler *fdh;
Ecore_Win32_Handler *wh;
@@ -2616,11 +2628,25 @@ _ecore_main_win32_select(int nfds 
EINA_UNUSED,
  objects_nbr++;
   }
  }
-
+   stdin_handle = GetStdHandle(STD_INPUT_HANDLE);
/* store the HANDLEs in the objects to wait for */
EINA_INLIST_FOREACH(win32_handlers, wh)
  {
-objects[objects_nbr] = wh->h;
+if (wh->h == stdin_handle)
+  {
+ if (stdin_wait_thread == INVALID_HANDLE_VALUE)
+   stdin_wait_thread = (HANDLE)_beginthreadex(NULL,
+  0,
+  _stdin_wait_thread,
+  NULL,
+  0,
+  NULL);
+ objects[objects_nbr] = stdin_wait_thread;
+  }
+else
+  {
+ objects[objects_nbr] = wh->h;
+  }
 objects_nbr++;
  }
 
@@ -2709,11 +2735,15 @@ _ecore_main_win32_select(int nfds 
EINA_UNUSED,
   win32_handler_current = (Ecore_Win32_Handler 
*)EINA_INLIST_GET(win32_handler_current)->next;
   }
 
+if (objects[result - WAIT_OBJECT_0] == stdin_wait_thread)
+  stdin_thread_done = EINA_TRUE;
+
 while (win32_handler_current)
   {
  wh = win32_handler_current;
 
- if (objects[result - WAIT_OBJECT_0] == wh->h)
+ if (objects[result - WAIT_OBJECT_0] == wh->h ||
+ (objects[result - WAIT_OBJECT_0] == stdin_wait_thread && 
wh->h == stdin_handle))
{
   if (!wh->delete_me)
 {
@@ -2741,6 +2771,9 @@ err :
/* Remove event objects again */
for (i = 0; i < events_nbr; i++) WSACloseEvent(objects[i]);
 
+   if (stdin_thread_done)
+ stdin_wait_thread = INVALID_HANDLE_VALUE;
+
free(objects);
free(sockets);
return res;

-- 




[EGIT] [core/efl] master 02/03: ethumb: rewrite slave input/output

2016-12-22 Thread Andrii Kroitor
lorddrew pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=9f6d773fcea57e4863c8286b5aaab7128dee92e8

commit 9f6d773fcea57e4863c8286b5aaab7128dee92e8
Author: Andrii Kroitor 
Date:   Thu Dec 22 13:15:42 2016 +0200

ethumb: rewrite slave input/output

Using stdio instead of low-level read and write because low-level API has
different behaviour on Linux and Windows.
---
 src/bin/ethumb_client/ethumbd_slave.c | 143 ++
 1 file changed, 60 insertions(+), 83 deletions(-)

diff --git a/src/bin/ethumb_client/ethumbd_slave.c 
b/src/bin/ethumb_client/ethumbd_slave.c
index 09efff5..d7b7ff6 100644
--- a/src/bin/ethumb_client/ethumbd_slave.c
+++ b/src/bin/ethumb_client/ethumbd_slave.c
@@ -25,6 +25,7 @@
 #endif
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -57,74 +58,49 @@ struct _Ethumbd_Child
 };
 
 
-int
-_ec_read_safe(int fd, void *buf, ssize_t size)
+static int
+_ec_read_safe(FILE* stream, void *buf, ssize_t size)
 {
ssize_t todo;
-   char *p;
+   unsigned char *p;
+   int c;
 
todo = size;
p = buf;
 
while (todo > 0)
  {
-   ssize_t r;
-
-   r = read(fd, p, todo);
-   if (r > 0)
- {
-todo -= r;
-p += r;
- }
-   else if (r == 0)
- return 0;
-   else
- {
-if (errno == EINTR || errno == EAGAIN)
-  continue;
-else
-  {
- ERR("could not read from fd %d: %s",
- fd, strerror(errno));
- return 0;
-  }
- }
+c = getc(stream);
+if (c == EOF)
+  {
+ ERR("could not read from stream %p", stream);
+ return 0;
+  }
+*p = c;
+++p;
+--todo;
  }
-
return 1;
 }
 
-int
-_ec_write_safe(int fd, const void *buf, ssize_t size)
+static int
+_ec_write_safe(FILE *stream, const void *buf, ssize_t size)
 {
ssize_t todo;
-   const char *p;
+   const unsigned char *p;
 
todo = size;
p = buf;
 
while (todo > 0)
  {
-   ssize_t r;
-
-   r = write(fd, p, todo);
-   if (r > 0)
- {
-todo -= r;
-p += r;
- }
-   else if (r == 0)
- return 0;
-   else
- {
-if (errno == EINTR || errno == EAGAIN)
-  continue;
-else
-  {
- ERR("could not write to fd %d: %s", fd, strerror(errno));
- return 0;
-  }
- }
+if (putc(*p, stream) == EOF)
+  {
+ ERR("could not write to stream %p", stream);
+ return 0;
+  }
+++p;
+--todo;
  }
 
return 1;
@@ -137,7 +113,7 @@ _ec_pipe_str_read(struct _Ethumbd_Child *ec EINA_UNUSED, 
char **str)
int r;
char buf[PATH_MAX] = { '\0' };
 
-   r = _ec_read_safe(STDIN_FILENO, , sizeof(size));
+   r = _ec_read_safe(stdin, , sizeof(size));
if (!r)
  {
*str = NULL;
@@ -150,7 +126,7 @@ _ec_pipe_str_read(struct _Ethumbd_Child *ec EINA_UNUSED, 
char **str)
return 1;
  }
 
-   r = _ec_read_safe(STDIN_FILENO, buf, size);
+   r = _ec_read_safe(stdin, buf, size);
if (!r)
  {
*str = NULL;
@@ -199,7 +175,7 @@ _ec_op_new(struct _Ethumbd_Child *ec)
int r;
int idx;
 
-   r = _ec_read_safe(STDIN_FILENO, , sizeof(idx));
+   r = _ec_read_safe(stdin, , sizeof(idx));
if (!r)
  return 0;
 
@@ -215,7 +191,7 @@ _ec_op_del(struct _Ethumbd_Child *ec)
int r;
int idx;
 
-   r = _ec_read_safe(STDIN_FILENO, , sizeof(idx));
+   r = _ec_read_safe(stdin, , sizeof(idx));
if (!r)
  return 0;
 
@@ -248,14 +224,15 @@ _ec_op_generated_cb(void *data EINA_UNUSED, Ethumb *e, 
Eina_Bool success)
size_cmd = sizeof(success) + sizeof(size_path) + size_path +
   sizeof(size_key) + size_key;
 
-   _ec_write_safe(STDOUT_FILENO, _cmd, sizeof(size_cmd));
-   _ec_write_safe(STDOUT_FILENO, , sizeof(success));
+   _ec_write_safe(stdout, _cmd, sizeof(size_cmd));
+   _ec_write_safe(stdout, , sizeof(success));
 
-   _ec_write_safe(STDOUT_FILENO, _path, sizeof(size_path));
-   _ec_write_safe(STDOUT_FILENO, thumb_path, size_path);
+   _ec_write_safe(stdout, _path, sizeof(size_path));
+   _ec_write_safe(stdout, thumb_path, size_path);
 
-   _ec_write_safe(STDOUT_FILENO, _key, sizeof(size_key));
-   _ec_write_safe(STDOUT_FILENO, thumb_key, size_key);
+   _ec_write_safe(stdout, _key, sizeof(size_key));
+   _ec_write_safe(stdout, thumb_key, size_key);
+   fflush(stdout);
 }
 
 static int
@@ -265,7 +242,7 @@ _ec_op_generate(struct _Ethumbd_Child *ec)
char *path, *key, *thumb_path, *thumb_key;
int r;
 
-   r = _ec_read_safe(STDIN_FILENO, , sizeof(idx));
+   r = _ec_read_safe(stdin, , sizeof(idx));
if (!r)
  return 0;
 
@@ -320,7 +297,7 @@ _ec_fdo_set(struct _Ethumbd_Child *ec EINA_UNUSED, Ethumb 
*e)
int r;

[EGIT] [tools/edi] master 01/02: don't crash on invalid lines

2016-12-22 Thread Andy Williams
ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/tools/edi.git/commit/?id=04d86d3250a2dec411b995653604ca832545093c

commit 04d86d3250a2dec411b995653604ca832545093c
Author: Andy Williams 
Date:   Wed Dec 21 21:35:40 2016 +

don't crash on invalid lines
---
 src/bin/editor/edi_editor.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/bin/editor/edi_editor.c b/src/bin/editor/edi_editor.c
index 0a33dba..10b798c 100644
--- a/src/bin/editor/edi_editor.c
+++ b/src/bin/editor/edi_editor.c
@@ -89,6 +89,9 @@ _edi_editor_current_word_get(Edi_Editor *editor, unsigned int 
row, unsigned int
code = elm_code_widget_code_get(editor->entry);
line = elm_code_file_line_get(code->file, row);
 
+   if (!line)
+ return strdup("");
+
curtext = (char *)elm_code_line_text_get(line, );
ptr = curtext + col - 1;
 

-- 




[EGIT] [tools/edi] master 02/02: editor: cleanup methods a little

2016-12-22 Thread Andy Williams
ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/tools/edi.git/commit/?id=0bc9f3dc1d0ca78eb7a19324675af1384a51c939

commit 0bc9f3dc1d0ca78eb7a19324675af1384a51c939
Author: Andy Williams 
Date:   Thu Dec 22 10:59:36 2016 +

editor: cleanup methods a little
---
 src/bin/editor/edi_editor.c | 30 +-
 1 file changed, 13 insertions(+), 17 deletions(-)

diff --git a/src/bin/editor/edi_editor.c b/src/bin/editor/edi_editor.c
index 10b798c..b845148 100644
--- a/src/bin/editor/edi_editor.c
+++ b/src/bin/editor/edi_editor.c
@@ -116,14 +116,12 @@ _suggest_item_return_get(Suggest_Item *item)
char *ret_str;
int retlen;
 
-   if (item->ret)
- {
-retlen = strlen(item->ret) + 6;
-ret_str = malloc(sizeof(char) * retlen);
-snprintf(ret_str, retlen, " %s", item->ret);
- }
-   else
- ret_str = strdup("");
+   if (!item->ret)
+ return strdup("");
+
+   retlen = strlen(item->ret) + 6;
+   ret_str = malloc(sizeof(char) * retlen);
+   snprintf(ret_str, retlen, " %s", item->ret);
 
return ret_str;
 }
@@ -134,14 +132,12 @@ _suggest_item_parameter_get(Suggest_Item *item)
char *param_str;
int paramlen;
 
-   if (item->param)
- {
-paramlen = strlen(item->param) + 6;
-param_str = malloc(sizeof(char) * paramlen);
-snprintf(param_str, paramlen, "%s", item->param);
- }
-   else
- param_str = strdup("");
+   if (!item->param)
+ return strdup("");
+
+   paramlen = strlen(item->param) + 6;
+   param_str = malloc(sizeof(char) * paramlen);
+   snprintf(param_str, paramlen, "%s", item->param);
 
return param_str;
 }
@@ -1156,7 +1152,7 @@ _edi_editor_config_changed(void *data, int type 
EINA_UNUSED, void *event EINA_UN
 }
 
 static void
-_editor_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *o EINA_UNUSED, 
void *event_info EINA_UNUSED)
+_editor_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *o, void 
*event_info EINA_UNUSED)
 {
Ecore_Event_Handler *ev_handler = data;
 

-- 




[EGIT] [tools/edi] master 01/01: autosuggest: Support detail of suggest

2016-12-22 Thread YeongJong Lee
ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/tools/edi.git/commit/?id=0866448895daeed7ca2ad5d6716a039151422a0b

commit 0866448895daeed7ca2ad5d6716a039151422a0b
Author: YeongJong Lee 
Date:   Thu Dec 22 10:45:25 2016 +

autosuggest: Support detail of suggest

Summary: The suggest list shows detail of suggest.(return type and 
parameter)

Test Plan:
1. Run edi.
2. Open project.
3. Open suggest list using  + .
4. Check that The detail of suggest is correct.

Reviewers: ajwillia.ms

Reviewed By: ajwillia.ms

Differential Revision: https://phab.enlightenment.org/D4505
---
 src/bin/editor/edi_editor.c | 359 
 src/bin/editor/edi_editor.h |   3 +
 2 files changed, 270 insertions(+), 92 deletions(-)

diff --git a/src/bin/editor/edi_editor.c b/src/bin/editor/edi_editor.c
index 3079e86..0a33dba 100644
--- a/src/bin/editor/edi_editor.c
+++ b/src/bin/editor/edi_editor.c
@@ -27,6 +27,15 @@ typedef struct
 } Edi_Range;
 
 #if HAVE_LIBCLANG
+typedef struct
+{
+   enum CXCursorKind kind;
+   char *ret;
+   char *name;
+   char *param;
+   Eina_Bool is_param_cand;
+} Suggest_Item;
+
 static Evas_Object *_suggest_popup_bg, *_suggest_popup_genlist;
 #endif
 
@@ -69,7 +78,7 @@ _changed_cb(void *data, Evas_Object *obj EINA_UNUSED, void 
*event_info EINA_UNUS
 }
 
 #if HAVE_LIBCLANG
-static char*
+static char *
 _edi_editor_current_word_get(Edi_Editor *editor, unsigned int row, unsigned 
int col)
 {
Elm_Code *code;
@@ -98,13 +107,58 @@ _edi_editor_current_word_get(Edi_Editor *editor, unsigned 
int row, unsigned int
return curword;
 }
 
+static char *
+_suggest_item_return_get(Suggest_Item *item)
+{
+   char *ret_str;
+   int retlen;
+
+   if (item->ret)
+ {
+retlen = strlen(item->ret) + 6;
+ret_str = malloc(sizeof(char) * retlen);
+snprintf(ret_str, retlen, " %s", item->ret);
+ }
+   else
+ ret_str = strdup("");
+
+   return ret_str;
+}
+
+static char *
+_suggest_item_parameter_get(Suggest_Item *item)
+{
+   char *param_str;
+   int paramlen;
+
+   if (item->param)
+ {
+paramlen = strlen(item->param) + 6;
+param_str = malloc(sizeof(char) * paramlen);
+snprintf(param_str, paramlen, "%s", item->param);
+ }
+   else
+ param_str = strdup("");
+
+   return param_str;
+}
+
+static void
+_suggest_item_free(Suggest_Item *item)
+{
+   if (item->ret) free(item->ret);
+   if (item->name) free(item->name);
+   if (item->param) free(item->param);
+   free(item);
+}
+
 static Evas_Object *
 _suggest_list_content_get(void *data, Evas_Object *obj, const char *part)
 {
Edi_Editor *editor;
Edi_Mainview_Item *item;
-   Evas_Object *label;
-   char *format, *display, *auto_str = data;
+   Suggest_Item *suggest_it = data;
+   char *format, *display;
const char *font;
int font_size, displen;
 
@@ -120,15 +174,14 @@ _suggest_list_content_get(void *data, Evas_Object *obj, 
const char *part)
elm_code_widget_font_get(editor->entry, , _size);
 
format = 

[EGIT] [core/efl] master 02/02: evas: PNG save of ARGY88 needs unpremul

2016-12-22 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=2f1d666a06d374d1930cf69cf72f21c9700caf46

commit 2f1d666a06d374d1930cf69cf72f21c9700caf46
Author: Jean-Philippe Andre 
Date:   Thu Dec 22 19:00:41 2016 +0900

evas: PNG save of ARGY88 needs unpremul

PNG saves unpremultiplied values, so we need to do that
for the newly supported ARGY88 colorspace as well. Fixes
the previous commit.
---
 src/lib/evas/common/evas_convert_color.c   | 28 ++
 src/lib/evas/common/evas_convert_color.h   |  1 +
 .../evas/image_savers/png/evas_image_save_png.c| 11 -
 3 files changed, 39 insertions(+), 1 deletion(-)

diff --git a/src/lib/evas/common/evas_convert_color.c 
b/src/lib/evas/common/evas_convert_color.c
index 421f425..3558b34 100644
--- a/src/lib/evas/common/evas_convert_color.c
+++ b/src/lib/evas/common/evas_convert_color.c
@@ -26,6 +26,34 @@ evas_common_convert_ag_premul(DATA16 *data, unsigned int len)
return nas;
 }
 
+EAPI void
+evas_common_convert_ag_unpremul(DATA16 *data, unsigned int len)
+{
+   DATA16 *de = data + len;
+   DATA16 p_val = 0x, p_res = 0x;
+
+   while (data < de)
+ {
+if (p_val == *data) *data = p_res;
+else
+  {
+ DATA16 a = (*data >> 8);
+
+ p_val = *data;
+ if ((a > 0) && (a < 255))
+   {
+  *data = ((a << 8) | (((*data & 0xff) * 0xff) / a));
+   }
+ else if (a == 0)
+   {
+  *data = 0x;
+   }
+ p_res = *data;
+  }
+data++;
+ }
+}
+
 EAPI DATA32
 evas_common_convert_argb_premul(DATA32 *data, unsigned int len)
 {
diff --git a/src/lib/evas/common/evas_convert_color.h 
b/src/lib/evas/common/evas_convert_color.h
index c3c07a3..54bd59e 100644
--- a/src/lib/evas/common/evas_convert_color.h
+++ b/src/lib/evas/common/evas_convert_color.h
@@ -3,6 +3,7 @@
 
 
 EAPI DATA32 evas_common_convert_ag_premul  (DATA16 
*data, unsigned int len);
+EAPI void evas_common_convert_ag_unpremul  (DATA16 
*data, unsigned int len);
 EAPI DATA32 evas_common_convert_argb_premul(DATA32 
*src, unsigned int len);
 EAPI void evas_common_convert_argb_unpremul(DATA32 
*src, unsigned int len);
 EAPI void evas_common_convert_color_argb_premul(int a, int 
*r, int *g, int *b);
diff --git a/src/modules/evas/image_savers/png/evas_image_save_png.c 
b/src/modules/evas/image_savers/png/evas_image_save_png.c
index 6eef2fe..eca98f8 100644
--- a/src/modules/evas/image_savers/png/evas_image_save_png.c
+++ b/src/modules/evas/image_savers/png/evas_image_save_png.c
@@ -88,7 +88,16 @@ save_image_png(RGBA_Image *im, const char *file, int 
do_compress, int interlace)
  {
 agry88 = EINA_TRUE;
 pixel_size = 2;
-data = im->image.data8;
+data = malloc(im->cache_entry.w * im->cache_entry.h * pixel_size);
+if (!data)
+  {
+ png_destroy_write_struct(_ptr, (png_infopp) & info_ptr);
+ png_destroy_info_struct(png_ptr, (png_infopp) & info_ptr);
+ goto close_file;
+  }
+free_data = EINA_TRUE;
+memcpy(data, im->image.data, im->cache_entry.w * im->cache_entry.h * 
pixel_size);
+evas_common_convert_ag_unpremul((DATA16 *) data, im->cache_entry.w * 
im->cache_entry.h);
 png_init_io(png_ptr, f);
 png_set_IHDR(png_ptr, info_ptr, im->cache_entry.w, im->cache_entry.h, 
8,
  PNG_COLOR_TYPE_GRAY_ALPHA, interlace,

-- 




[EGIT] [core/efl] master 01/02: Revert "elm theme makefile.am - remove misleading makefile not used"

2016-12-22 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=3be0e7b63b7f9df2241e854eabd8ef924978783a

commit 3be0e7b63b7f9df2241e854eabd8ef924978783a
Author: Jean-Philippe Andre 
Date:   Thu Dec 22 19:14:16 2016 +0900

Revert "elm theme makefile.am - remove misleading makefile not used"

This reverts commit 5eef9da416801702c43e109adc35b93ece26bf17.

This breaks full rebuilds with the following error (Jenkins logs):

00:25:40 configure: creating ./config.status
00:25:41 config.status: creating Makefile
00:25:41 config.status: error: cannot find input file: `data/Makefile.in'

This also broke incremental builds with a different but just
as confusing autofoo error message.
---
 data/elementary/themes/Makefile.am | 1460 
 1 file changed, 1460 insertions(+)

diff --git a/data/elementary/themes/Makefile.am 
b/data/elementary/themes/Makefile.am
new file mode 100644
index 000..529a3c7
--- /dev/null
+++ b/data/elementary/themes/Makefile.am
@@ -0,0 +1,1460 @@
+EDJE_CC_ELM_FLAGS = \
+@ELM_EDJE_DEFINES@ \
+-id $(top_srcdir)/data/elementary/themes/img \
+-id $(top_srcdir)/data/elementary/themes/fdo \
+-fd $(top_srcdir)/data/elementary/themes/fnt \
+-sd $(top_srcdir)/data/elementary/themes/snd \
+-l $(top_srcdir)/COPYING \
+-a $(top_srcdir)/AUTHORS \
+-fastdecomp
+
+
+elementary_themes_files = \
+elementary/themes/default.edc \
+\
+elementary/themes/colorclasses.edc \
+elementary/themes/fonts.edc \
+elementary/themes/macros.edc \
+\
+elementary/themes/edc/about-e.edc \
+elementary/themes/edc/about-theme.edc \
+elementary/themes/edc/appmenu.edc \
+elementary/themes/edc/background.edc \
+elementary/themes/edc/backlight.edc \
+elementary/themes/edc/battery.edc \
+elementary/themes/edc/bluez4.edc \
+elementary/themes/edc/border.edc \
+elementary/themes/edc/border-icons.edc \
+elementary/themes/edc/bryce.edc \
+elementary/themes/edc/bryce_editor.edc \
+elementary/themes/edc/button.edc \
+elementary/themes/edc/check.edc \
+elementary/themes/edc/clock.edc \
+elementary/themes/edc/colors.edc \
+elementary/themes/edc/colorwell.edc \
+elementary/themes/edc/comp.edc \
+elementary/themes/edc/comp_compat.edc \
+elementary/themes/edc/comp_effects.edc \
+elementary/themes/edc/conf.edc \
+elementary/themes/edc/connman.edc \
+elementary/themes/edc/cpufreq.edc \
+elementary/themes/edc/cslider.edc \
+elementary/themes/edc/desklock.edc \
+elementary/themes/edc/deskmirror.edc \
+elementary/themes/edc/deskpreview.edc \
+elementary/themes/edc/dialog.edc \
+elementary/themes/edc/edgebindings.edc \
+elementary/themes/edc/entry.edc \
+elementary/themes/edc/evrything.edc \
+elementary/themes/edc/fileman.edc \
+elementary/themes/edc/fontpreview.edc \
+elementary/themes/edc/frame.edc \
+elementary/themes/edc/gadman.edc \
+elementary/themes/edc/ibar-ibox.edc \
+elementary/themes/edc/icons.edc \
+elementary/themes/edc/ilist.edc \
+elementary/themes/edc/illume.edc \
+elementary/themes/edc/init.edc \
+elementary/themes/edc/label.edc \
+elementary/themes/edc/luncher.edc \
+elementary/themes/edc/menu.edc \
+elementary/themes/edc/mixer.edc \
+elementary/themes/edc/music_control.edc \
+elementary/themes/edc/notification.edc \
+elementary/themes/edc/packagekit.edc \
+elementary/themes/edc/pager.edc \
+elementary/themes/edc/pager16.edc \
+elementary/themes/edc/pointer.edc \
+elementary/themes/edc/preview.edc \
+elementary/themes/edc/radio.edc \
+elementary/themes/edc/randr.edc \
+elementary/themes/edc/scrollframe.edc \
+elementary/themes/edc/shelf.edc \
+elementary/themes/edc/slider.edc \
+elementary/themes/edc/spectrum.edc \
+elementary/themes/edc/start.edc \
+elementary/themes/edc/syscon.edc \
+elementary/themes/edc/sys.edc \
+elementary/themes/edc/systray.edc \
+elementary/themes/edc/tasks.edc \
+elementary/themes/edc/temperature.edc \
+elementary/themes/edc/textblock.edc \
+elementary/themes/edc/time.edc \
+elementary/themes/edc/toolbar.edc \
+elementary/themes/edc/transitions.edc \
+elementary/themes/edc/wallpaper.edc \
+elementary/themes/edc/winlist.edc \
+elementary/themes/edc/wireless.edc \
+elementary/themes/edc/wizard.edc \
+elementary/themes/edc/xkbswitch.edc \
+\
+elementary/themes/edc/elm/access.edc \
+elementary/themes/edc/elm/actionslider.edc \
+elementary/themes/edc/elm/bg.edc \
+elementary/themes/edc/elm/border.edc \
+elementary/themes/edc/elm/bubble.edc \
+elementary/themes/edc/elm/button.edc \
+elementary/themes/edc/elm/calendar.edc \
+elementary/themes/edc/elm/check.edc \
+elementary/themes/edc/elm/clock.edc \
+elementary/themes/edc/elm/code.edc \
+elementary/themes/edc/elm/colorsel.edc \
+elementary/themes/edc/elm/colorclass.edc \
+elementary/themes/edc/elm/conform.edc \
+elementary/themes/edc/elm/ctxpopup.edc \
+elementary/themes/edc/elm/cursor.edc \
+elementary/themes/edc/elm/dayselector.edc \
+elementary/themes/edc/elm/diskselector.edc \
+elementary/themes/edc/elm/entry.edc \

[EGIT] [core/efl] master 01/01: Edje_Edit: replace eet_read_direct by eet_read function.

2016-12-22 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=82b80212c6983ae154a79bc1318cf553249871c8

commit 82b80212c6983ae154a79bc1318cf553249871c8
Author: Mykyta Biliavskyi 
Date:   Thu Dec 22 11:18:19 2016 +0200

Edje_Edit: replace eet_read_direct by eet_read function.

eet_read_direct function doesn't works with ciphered data, but it is
possible that edje file was ciphered. In this case data, that returned
by eet_read_direct always will be NULL.
---
 src/lib/edje/edje_edit.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index 291b5af..2be9842 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -1587,7 +1587,7 @@ edje_edit_sound_samplebuffer_get(Evas_Object *obj, const 
char *sample_name)
  if (!ef)
return NULL;
  snprintf(snd_id_str, sizeof(snd_id_str), "edje/sounds/%i", 
sample->id);
- data = eet_read_direct(ef, snd_id_str, );
+ data = eet_read(ef, snd_id_str, );
  if (len <= 0)
{
   ERR("Sample from edj file '%s' has 0 length", ed->path);

-- 




[EGIT] [core/efl] master 01/01: evas: Implement GRY8/AGRY88 save support for PNG

2016-12-22 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=3425ad2abda77ef708600d19b3cf6a711b15902b

commit 3425ad2abda77ef708600d19b3cf6a711b15902b
Author: Jean-Philippe Andre 
Date:   Thu Dec 22 16:34:11 2016 +0900

evas: Implement GRY8/AGRY88 save support for PNG

This enables the PNG saver to save images with gray and
alpha + gray colorspaces. GRY8 is usually used for alpha only.

Note: This commit also introduces whitespace changes. Sorry
about the mess, but at least now we have spaces only. Read the
commit with show -w :)

@feature
---
 .../evas/image_savers/png/evas_image_save_png.c| 131 +
 1 file changed, 80 insertions(+), 51 deletions(-)

diff --git a/src/modules/evas/image_savers/png/evas_image_save_png.c 
b/src/modules/evas/image_savers/png/evas_image_save_png.c
index e7149be..6eef2fe 100644
--- a/src/modules/evas/image_savers/png/evas_image_save_png.c
+++ b/src/modules/evas/image_savers/png/evas_image_save_png.c
@@ -26,16 +26,23 @@ save_image_png(RGBA_Image *im, const char *file, int 
do_compress, int interlace)
FILE   *f;
png_structp png_ptr;
png_infop   info_ptr;
-   DATA32 *ptr, *data = NULL;
+   uint8_t*ptr, *data = NULL;
unsigned intx, y, j;
png_bytep   row_ptr;
volatile png_bytep  png_data = NULL;
-   png_color_8 sig_bit;
+   png_color_8 sig_bit = {};
int num_passes = 1, pass;
+   Eina_Bool   gry8 = EINA_FALSE, agry88 = EINA_FALSE, free_data = 
EINA_FALSE;
+   int pixel_size = 4;
 
if (!im || !im->image.data || !file)
   return 0;
 
+   if ((im->cache_entry.space != EFL_GFX_COLORSPACE_ARGB) &&
+   (im->cache_entry.space != EFL_GFX_COLORSPACE_AGRY88) &&
+   (im->cache_entry.space != EFL_GFX_COLORSPACE_GRY8))
+ return 0;
+
f = fopen(file, "wb");
if (!f) return 0;
 
@@ -46,61 +53,83 @@ save_image_png(RGBA_Image *im, const char *file, int 
do_compress, int interlace)
info_ptr = png_create_info_struct(png_ptr);
if (!info_ptr)
  {
-   png_destroy_write_struct(_ptr, NULL);
-   goto close_file;
+png_destroy_write_struct(_ptr, NULL);
+goto close_file;
  }
if (setjmp(png_jmpbuf(png_ptr)))
  {
-   png_destroy_write_struct(_ptr, (png_infopp) & info_ptr);
-   png_destroy_info_struct(png_ptr, (png_infopp) & info_ptr);
-   goto close_file;
+png_destroy_write_struct(_ptr, (png_infopp) & info_ptr);
+png_destroy_info_struct(png_ptr, (png_infopp) & info_ptr);
+goto close_file;
  }
 
if (interlace)
  {
 #ifdef PNG_WRITE_INTERLACING_SUPPORTED
-   interlace = PNG_INTERLACE_ADAM7;
+interlace = PNG_INTERLACE_ADAM7;
 #else
-   interlace = PNG_INTERLACE_NONE;
+interlace = PNG_INTERLACE_NONE;
 #endif
  }
else
  interlace = PNG_INTERLACE_NONE;
 
-   if (im->cache_entry.flags.alpha)
+   if (im->cache_entry.space == EFL_GFX_COLORSPACE_GRY8)
+ {
+gry8 = EINA_TRUE;
+pixel_size = 1;
+data = im->image.data8;
+png_init_io(png_ptr, f);
+png_set_IHDR(png_ptr, info_ptr, im->cache_entry.w, im->cache_entry.h, 
8,
+ PNG_COLOR_TYPE_GRAY, interlace,
+ PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
+ }
+   else if (im->cache_entry.space == EFL_GFX_COLORSPACE_AGRY88)
  {
-   data = malloc(im->cache_entry.w * im->cache_entry.h * sizeof(DATA32));
-   if (!data)
- {
-   png_destroy_write_struct(_ptr, (png_infopp) & info_ptr);
-   png_destroy_info_struct(png_ptr, (png_infopp) & info_ptr);
-   goto close_file;
- }
-   memcpy(data, im->image.data, im->cache_entry.w * im->cache_entry.h * 
sizeof(DATA32));
-   evas_common_convert_argb_unpremul(data, im->cache_entry.w * 
im->cache_entry.h);
-   png_init_io(png_ptr, f);
+agry88 = EINA_TRUE;
+pixel_size = 2;
+data = im->image.data8;
+png_init_io(png_ptr, f);
 png_set_IHDR(png_ptr, info_ptr, im->cache_entry.w, im->cache_entry.h, 
8,
-PNG_COLOR_TYPE_RGB_ALPHA, interlace,
-PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
+ PNG_COLOR_TYPE_GRAY_ALPHA, interlace,
+ PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
+ }
+   else if (im->cache_entry.flags.alpha)
+ {
+data = malloc(im->cache_entry.w * im->cache_entry.h * sizeof(DATA32));
+if (!data)
+  {
+ png_destroy_write_struct(_ptr, (png_infopp) & info_ptr);
+ png_destroy_info_struct(png_ptr, (png_infopp) & info_ptr);
+ goto close_file;
+  }
+free_data = EINA_TRUE;
+memcpy(data, im->image.data, im->cache_entry.w * im->cache_entry.h * 
sizeof(DATA32));
+