[EGIT] [core/efl] master 01/01: ui_spin_button: avoid duplicated calls.

2018-08-20 Thread Hermet Park
hermet pushed a commit to branch master.

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

commit 8312a99a92c1d7ad535ce89ee49f0eb26123c8a3
Author: Hermet Park 
Date:   Tue Aug 21 14:04:58 2018 +0900

ui_spin_button: avoid duplicated calls.
---
 src/lib/elementary/efl_ui_spin_button.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/elementary/efl_ui_spin_button.c 
b/src/lib/elementary/efl_ui_spin_button.c
index fa21913e75..02b5da6bbe 100644
--- a/src/lib/elementary/efl_ui_spin_button.c
+++ b/src/lib/elementary/efl_ui_spin_button.c
@@ -887,6 +887,8 @@ _efl_ui_spin_button_efl_object_constructor(Eo *obj, 
Efl_Ui_Spin_Button_Data *sd)
 EOLIAN static void
 _efl_ui_spin_button_efl_ui_direction_direction_set(Eo *obj, 
Efl_Ui_Spin_Button_Data *sd, Efl_Ui_Dir dir)
 {
+   if (sd->dir == dir) return;
+
sd->dir = dir;
 
efl_ui_widget_theme_apply(obj);

-- 




[EGIT] [core/efl] master 01/01: efl_ui_spin_button: Addded direction feature.

2018-08-20 Thread Woochanlee
hermet pushed a commit to branch master.

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

commit 739da4f736cec242042ba3a39d8a7c2417d924ab
Author: Woochanlee 
Date:   Tue Aug 21 13:52:28 2018 +0900

efl_ui_spin_button: Addded direction feature.

Summary:
The Spin_Button class supports two types(horizontal, vertical).

User can use 'efl_ui_direction()' for spin_button.

@feature

Test Plan: elementary_test-> spin_button sample.

Reviewers: Hermet, Jaehyun_Cho

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6680
---
 data/elementary/themes/edc/efl/datepicker.edc   | 12 
 data/elementary/themes/edc/efl/spin_button.edc  | 83 +++---
 data/elementary/themes/edc/efl/timepicker.edc   | 15 
 src/bin/elementary/test_ui_spin_button.c|  1 +
 src/lib/elementary/efl_ui_datepicker.c  | 12 ++--
 src/lib/elementary/efl_ui_spin_button.c | 92 -
 src/lib/elementary/efl_ui_spin_button.eo|  3 +-
 src/lib/elementary/efl_ui_spin_button_private.h |  2 +
 src/lib/elementary/efl_ui_timepicker.c  |  8 +--
 9 files changed, 144 insertions(+), 84 deletions(-)

diff --git a/data/elementary/themes/edc/efl/datepicker.edc 
b/data/elementary/themes/edc/efl/datepicker.edc
index e15343af46..31eb20610a 100644
--- a/data/elementary/themes/edc/efl/datepicker.edc
+++ b/data/elementary/themes/edc/efl/datepicker.edc
@@ -331,15 +331,3 @@ group { "efl/datepicker/spin_button";
   }
}
 }
-
-group { "efl/datepicker/spin_button/text_button";
-   inherit: "efl/spin_button/text_button";
-}
-
-group { "efl/datepicker/spin_button/inc_button";
-   inherit: "efl/spin_button/inc_button:vertical";
-}
-
-group { "efl/datepicker/spin_button/dec_button";
-   inherit: "efl/spin_button/dec_button:vertical";
-}
diff --git a/data/elementary/themes/edc/efl/spin_button.edc 
b/data/elementary/themes/edc/efl/spin_button.edc
index 4cb7783f1f..417d002154 100644
--- a/data/elementary/themes/edc/efl/spin_button.edc
+++ b/data/elementary/themes/edc/efl/spin_button.edc
@@ -1,4 +1,4 @@
-group { "efl/spin_button";
+group { "efl/spin_button/horizontal";
images.image: "vert_bar_inset.png" COMP;
parts {
   rect { "clip";
@@ -53,11 +53,6 @@ group { "efl/spin_button";
  scale;
  desc { "default";
 fixed: 1 0;
-rel1.to: "inset";
-rel1.offset: 1 1;
-rel2.to: "inset";
-rel2.offset: 1 -2;
-rel2.relative: 0.0 1.0;
 align: 0.0 0.5;
 min: 15 15;
 aspect: 1.0 1.0; aspect_preference: VERTICAL;
@@ -67,11 +62,6 @@ group { "efl/spin_button";
  scale;
  desc { "default";
 fixed: 1 0;
-rel1.to: "inset";
-rel1.offset: 1 1;
-rel1.relative: 1.0 0.0;
-rel2.to: "inset";
-rel2.offset: 1 -2;
 align: 1.0 0.5;
 min: 15 15;
 aspect: 1.0 1.0; aspect_preference: VERTICAL;
@@ -160,47 +150,53 @@ group { "efl/spin_button";
}
 }
 
-group { "efl/spin_button:vertical";
-   inherit: "efl/spin_button";
+group { "efl/spin_button/vertical";
+   inherit: "efl/spin_button/horizontal";
parts {
+  image { "inset"; nomouse;
+ desc { "default";
+min: 40 150;
+ }
+  }
   swallow { "efl.inc_button";
  scale;
  desc { "default";
-rel1.to: "inset";
-rel1.offset: 1 1;
-rel1.relative: 1.0 0.0;
-rel2.to: "inset";
-rel2.offset: 1 -2;
-align: 1.0 0.5;
+rel.to: "inset";
+align: 0.5 0.0;
+min: 40 40;
+max: 40 40;
+fixed: 1 1;
  }
   }
-  swallow { "efl.text_button";
+  swallow { "efl.dec_button";
  scale;
  desc { "default";
-vis;
-rel1.to_y: "inset";
-rel1.to_x: "efl.dec_button";
-rel1.relative: 1.0 0.0;
-rel1.offset: 1 1;
-rel2.to_y: "inset";
-rel2.to_x: "efl.inc_button";
-rel2.relative: 0.0 1.0;
-rel2.offset: -2 -2;
- }
- desc { "active";
-inherit: "default";
-hid;
+rel.to: "inset";
+align: 0.5 1.0;
+min: 40 40;
+max: 40 40;
+fixed: 1 1;
  }
   }
-  swallow { "efl.dec_button";
+  swallow { "efl.text_button";
  scale;
  desc { "default";
-rel1.to: "inset";
-rel1.offset: 1 1;
-rel2.to: "inset";
-rel2.offset: 1 -2;
-rel2.relative: 0.0 1.0;
-align: 0.0 0.5;
+rel.to_x: "inset";
+rel1 {
+   to_y: "efl.inc_button";
+   relative: 

[EGIT] [core/efl] master 01/01: efl_ui_focus_composition: remove unused variable

2018-08-20 Thread Yeongjong Lee
hermet pushed a commit to branch master.

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

commit 28ee520428872f4503be036492db9f7455fc2e8c
Author: Yeongjong Lee 
Date:   Tue Aug 21 13:22:40 2018 +0900

efl_ui_focus_composition: remove unused variable

Summary: adapters variable has not been used since ac4d75a1a.

Reviewers: bu5hm4n, Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6872
---
 src/lib/elementary/efl_ui_focus_composition.c | 8 
 1 file changed, 8 deletions(-)

diff --git a/src/lib/elementary/efl_ui_focus_composition.c 
b/src/lib/elementary/efl_ui_focus_composition.c
index d62f1e4ed3..ebcb051451 100644
--- a/src/lib/elementary/efl_ui_focus_composition.c
+++ b/src/lib/elementary/efl_ui_focus_composition.c
@@ -14,7 +14,6 @@
 typedef struct {
Eina_List *order, *targets_ordered;
Eina_List *register_target, *registered_targets;
-   Eina_List *adapters;
Efl_Ui_Focus_Manager *registered, *custom_manager, *old_manager;
Eina_Bool dirty;
Eina_Bool logical;
@@ -102,7 +101,6 @@ _del(void *data, const Efl_Event *ev)
 EOLIAN static void
 _efl_ui_focus_composition_composition_elements_set(Eo *obj, 
Efl_Ui_Focus_Composition_Data *pd, Eina_List *logical_order)
 {
-   Efl_Ui_Focus_Composition_Adapter *adapter;
Evas_Object *elem;
Eina_List *n;
 
@@ -115,12 +113,6 @@ _efl_ui_focus_composition_composition_elements_set(Eo 
*obj, Efl_Ui_Focus_Composi
pd->order = eina_list_free(pd->order);
pd->order = logical_order;
 
-   //get rid of all adapter objects
-   EINA_LIST_FREE(pd->adapters, adapter)
- {
-efl_unref(adapter);
- }
-
//now build a composition_elements list
EINA_LIST_FOREACH(logical_order, n, elem)
  {

-- 




[EGIT] [core/efl] efl-1.21 02/02: ecore_wl2_dmabuf: Depend on ecore_wl2

2018-08-20 Thread Derek Foreman
derekf pushed a commit to branch efl-1.21.

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

commit 2319ca7edbd3aa1d0ae55c7882c314bde8ff427e
Author: Derek Foreman 
Date:   Mon Aug 20 14:08:19 2018 -0400

ecore_wl2_dmabuf: Depend on ecore_wl2

Summary:
fix commit 87332f2e3ab2694f27913222ddadbadbca5c4d54 which added a
requirement to link with ecore_wl2 but no requirement that it be
built first.

ref T7327

@fix

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Maniphest Tasks: T7327

Differential Revision: https://phab.enlightenment.org/D6875
---
 src/Makefile_Ecore_Wl2.am | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/Makefile_Ecore_Wl2.am b/src/Makefile_Ecore_Wl2.am
index cad2769bf1..a3bdec5814 100644
--- a/src/Makefile_Ecore_Wl2.am
+++ b/src/Makefile_Ecore_Wl2.am
@@ -86,6 +86,7 @@ $(install_ecorewl2enginedmabufpkgLTLIBRARIES): 
install-libLTLIBRARIES
 modules_ecore_wl2_engines_dmabuf_module_la_SOURCES = $(DMABUFSOURCES)
 modules_ecore_wl2_engines_dmabuf_module_la_CPPFLAGS = 
-I$(top_builddir)/src/lib/efl @ECORE_WL2_CFLAGS@
 modules_ecore_wl2_engines_dmabuf_module_la_LDFLAGS = -module 
@EFL_LTMODULE_FLAGS@ @USE_ECORE_WL2_LIBS@
+modules_ecore_wl2_engines_dmabuf_module_la_DEPENDENCIES = 
lib/ecore_wl2/libecore_wl2.la
 modules_ecore_wl2_engines_dmabuf_module_la_LIBTOOLFLAGS = --tag=disable-static
 
 endif

-- 




[EGIT] [core/efl] efl-1.21 01/02: ecore_wl2_dmabuf: Link with ecore_wl2

2018-08-20 Thread Derek Foreman
derekf pushed a commit to branch efl-1.21.

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

commit eac7d3d116e4a8ec683d24698067df71b72111cf
Author: Derek Foreman 
Date:   Mon Aug 20 13:06:57 2018 -0400

ecore_wl2_dmabuf: Link with ecore_wl2

Summary:
This generated .so file is only ever loaded with dlopen, so it hasn't
mattered that it doesn't appropriately link dependent libraries.

However, Debian builds this with strict linking, which breaks if the
.so doesn't depend on everything that supplies the functions it calls.

fix T7327

@fix

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Maniphest Tasks: T7327

Differential Revision: https://phab.enlightenment.org/D6874
---
 src/Makefile_Ecore_Wl2.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/Makefile_Ecore_Wl2.am b/src/Makefile_Ecore_Wl2.am
index 3415d0762e..cad2769bf1 100644
--- a/src/Makefile_Ecore_Wl2.am
+++ b/src/Makefile_Ecore_Wl2.am
@@ -85,7 +85,7 @@ $(install_ecorewl2enginedmabufpkgLTLIBRARIES): 
install-libLTLIBRARIES
 
 modules_ecore_wl2_engines_dmabuf_module_la_SOURCES = $(DMABUFSOURCES)
 modules_ecore_wl2_engines_dmabuf_module_la_CPPFLAGS = 
-I$(top_builddir)/src/lib/efl @ECORE_WL2_CFLAGS@
-modules_ecore_wl2_engines_dmabuf_module_la_LDFLAGS = -module 
@EFL_LTMODULE_FLAGS@
+modules_ecore_wl2_engines_dmabuf_module_la_LDFLAGS = -module 
@EFL_LTMODULE_FLAGS@ @USE_ECORE_WL2_LIBS@
 modules_ecore_wl2_engines_dmabuf_module_la_LIBTOOLFLAGS = --tag=disable-static
 
 endif

-- 




[EGIT] [core/efl] master 01/01: ecore_wl2_dmabuf: Depend on ecore_wl2

2018-08-20 Thread Derek Foreman
discomfitor pushed a commit to branch master.

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

commit e793a698dc39ddf7fb899b5d9a0e499cf1cb11e4
Author: Derek Foreman 
Date:   Mon Aug 20 14:08:19 2018 -0400

ecore_wl2_dmabuf: Depend on ecore_wl2

Summary:
fix commit 87332f2e3ab2694f27913222ddadbadbca5c4d54 which added a
requirement to link with ecore_wl2 but no requirement that it be
built first.

ref T7327

@fix

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Maniphest Tasks: T7327

Differential Revision: https://phab.enlightenment.org/D6875
---
 src/Makefile_Ecore_Wl2.am | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/Makefile_Ecore_Wl2.am b/src/Makefile_Ecore_Wl2.am
index cad2769bf1..a3bdec5814 100644
--- a/src/Makefile_Ecore_Wl2.am
+++ b/src/Makefile_Ecore_Wl2.am
@@ -86,6 +86,7 @@ $(install_ecorewl2enginedmabufpkgLTLIBRARIES): 
install-libLTLIBRARIES
 modules_ecore_wl2_engines_dmabuf_module_la_SOURCES = $(DMABUFSOURCES)
 modules_ecore_wl2_engines_dmabuf_module_la_CPPFLAGS = 
-I$(top_builddir)/src/lib/efl @ECORE_WL2_CFLAGS@
 modules_ecore_wl2_engines_dmabuf_module_la_LDFLAGS = -module 
@EFL_LTMODULE_FLAGS@ @USE_ECORE_WL2_LIBS@
+modules_ecore_wl2_engines_dmabuf_module_la_DEPENDENCIES = 
lib/ecore_wl2/libecore_wl2.la
 modules_ecore_wl2_engines_dmabuf_module_la_LIBTOOLFLAGS = --tag=disable-static
 
 endif

-- 




[EGIT] [apps/terminology] master 01/01: get rid of lz4 code as it's unused. Closes T7328

2018-08-20 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=9e7258ba3b5a4e4038a663f8cafc9ea6bf67f395

commit 9e7258ba3b5a4e4038a663f8cafc9ea6bf67f395
Author: Boris Faure 
Date:   Mon Aug 20 19:33:35 2018 +0200

get rid of lz4 code as it's unused. Closes T7328
---
 .gitignore|2 -
 src/bin/lz4/LICENSE   |   24 -
 src/bin/lz4/README.md |   54 ---
 src/bin/lz4/lz4.c | 1250 -
 src/bin/lz4/lz4.h |  306 
 src/bin/meson.build   |1 -
 src/bin/termptysave.c |1 -
 7 files changed, 1638 deletions(-)

diff --git a/.gitignore b/.gitignore
index 41ffa72..66229d6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,8 +17,6 @@
 /src/bin/*_generated.c
 /src/bin/*_generated.h
 /src/bin/.deps/
-/src/bin/lz4/.deps/
-/src/bin/lz4/.dirstamp
 /src/bin/md5/.deps/
 /src/bin/md5/.dirstamp
 /src/bin/terminology
diff --git a/src/bin/lz4/LICENSE b/src/bin/lz4/LICENSE
deleted file mode 100644
index b566df3..000
--- a/src/bin/lz4/LICENSE
+++ /dev/null
@@ -1,24 +0,0 @@
-LZ4 Library
-Copyright (c) 2011-2014, Yann Collet
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without 
modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice, 
this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 
FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/src/bin/lz4/README.md b/src/bin/lz4/README.md
deleted file mode 100644
index 463ae4f..000
--- a/src/bin/lz4/README.md
+++ /dev/null
@@ -1,54 +0,0 @@
-LZ4 - Extremely fast compression
-
-
-LZ4 is lossless compression algorithm, providing compression speed at 400 MB/s 
per core, scalable with multi-cores CPU. It also features an extremely fast 
decoder, with speed in multiple GB/s per core, typically reaching RAM speed 
limits on multi-core systems.
-A high compression derivative, called LZ4_HC, is also provided. It trades CPU 
time for compression ratio.
-
-|Branch  |Status   |
-||-|
-|master  | [![Build 
Status](https://travis-ci.org/Cyan4973/lz4.svg?branch=master)](https://travis-ci.org/Cyan4973/lz4)
 |
-|dev | [![Build 
Status](https://travis-ci.org/Cyan4973/lz4.svg?branch=dev)](https://travis-ci.org/Cyan4973/lz4)
 |
-
-This is an official mirror of LZ4 project, [hosted on Google 
Code](http://code.google.com/p/lz4/).
-The intention is to offer github's capabilities to lz4 users, such as cloning, 
branch, or source download.
-
-The "master" branch will reflect, the status of lz4 at its official homepage. 
Other branches will also exist, typically to fix some open issues or new 
requirements, and be available for testing before merge into master.
-
-
-Benchmarks
--
-
-The benchmark uses the [Open-Source Benchmark program by m^2 
(v0.14.2)](http://encode.ru/threads/1371-Filesystem-benchmark?p=33548=1#post33548)
 compiled with GCC v4.6.1 on Linux Ubuntu 64-bits v11.10,
-The reference system uses a Core i5-3340M @2.7GHz.
-Benchmark evaluates the compression of reference [Silesia 
Corpus](http://sun.aei.polsl.pl/~sdeor/index.php?page=silesia) in single-thread 
mode.
-
-
-  
-CompressorRatioCompressionDecompression
-  
-  
-LZ4 (r101)2.084422 MB/s1820 MB/s
-  
-  
-LZO 2.062.106414 MB/s600 MB/s
-  
-  
-QuickLZ 1.5.1b62.237373 MB/s420 MB/s
-  
-  
-Snappy 1.1.02.091323 MB/s1070 MB/s
-  
-  
-LZF2.077270 MB/s570 MB/s
-  
-  
-zlib 1.2.8 -12.73065 MB/s280 MB/s
-  
-  
-LZ4 HC (r101)2.72025 MB/s2080 MB/s
-  
-  
-zlib 1.2.8 -63.09921 MB/s300 MB/s
-  
-
-
diff --git a/src/bin/lz4/lz4.c b/src/bin/lz4/lz4.c
deleted file mode 100644
index b3062f0..000
--- a/src/bin/lz4/lz4.c
+++ /dev/null
@@ -1,1250 +0,0 @@
-/*
-   LZ4 - Fast LZ compression algorithm
-   Copyright (C) 2011-2014, Yann Collet.
-   BSD 2-Clause License 

[EGIT] [core/efl] master 01/01: efl_object: add call for getting invalidating

2018-08-20 Thread Marcel Hollerbach
discomfitor pushed a commit to branch master.

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

commit 365c0334ff66af2592c8f86f542024d0b506ca3e
Author: Marcel Hollerbach 
Date:   Mon Aug 20 13:15:56 2018 -0400

efl_object: add call for getting invalidating

Summary:
there is now invalidated & invalidating.

invalidated returns true when all children are invalidated, and the
object is / was requested to be invalidated.

invalidating return true when the object is called to be invalidated but
not all children are invalidated yet. However, the object is garanteed
to be invalidated in near future.

Reviewers: zmike

Reviewed By: zmike

Subscribers: cedric

Tags: #efl, #do_not_merge

Differential Revision: https://phab.enlightenment.org/D6722
---
 src/lib/eo/efl_object.eo   | 11 +++
 src/lib/eo/eo_base_class.c | 10 ++
 src/tests/eo/suite/eo_test_lifecycle.c | 30 ++
 3 files changed, 51 insertions(+)

diff --git a/src/lib/eo/efl_object.eo b/src/lib/eo/efl_object.eo
index 97a9489c30..a0d500bfea 100644
--- a/src/lib/eo/efl_object.eo
+++ b/src/lib/eo/efl_object.eo
@@ -129,6 +129,17 @@ abstract Efl.Object ()
 finalized: bool; [[$true if the object is invalidated, $false 
otherwise]]
  }
   }
+  @property invalidating {
+ [[True if the object is about to be invalidated, and the invalidation 
of the children is already happening.
+
+   Note this is true before the invalidate call on the object.
+ ]]
+ get {
+ }
+ values {
+invalidating: bool; [[$true if the object is invalidating, $false 
otherwise]]
+ }
+  }
   provider_find @const {
 [[Searches upwards in the object tree for a provider which knows the 
given class/interface.
 
diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c
index 5acc70bca2..b2de426e37 100644
--- a/src/lib/eo/eo_base_class.c
+++ b/src/lib/eo/eo_base_class.c
@@ -827,6 +827,16 @@ _efl_object_invalidated_get(const Eo *obj_id, 
Efl_Object_Data *pd)
return invalidate;
 }
 
+EOLIAN static Eina_Bool
+_efl_object_invalidating_get(const Eo *obj_id, Efl_Object_Data *pd EINA_UNUSED)
+{
+   Eina_Bool invalidating;
+   EO_OBJ_POINTER_RETURN_VAL(obj_id, obj, EINA_TRUE);
+   invalidating = obj->is_invalidating;
+   EO_OBJ_DONE(obj_id);
+   return invalidating;
+}
+
 EOLIAN static Efl_Object *
 _efl_object_provider_find(const Eo *obj, Efl_Object_Data *pd, const Efl_Object 
*klass)
 {
diff --git a/src/tests/eo/suite/eo_test_lifecycle.c 
b/src/tests/eo/suite/eo_test_lifecycle.c
index b0c67bca45..190a7366ca 100644
--- a/src/tests/eo/suite/eo_test_lifecycle.c
+++ b/src/tests/eo/suite/eo_test_lifecycle.c
@@ -162,6 +162,35 @@ EFL_START_TEST(eo_test_unref_noref)
 }
 EFL_END_TEST
 
+
+typedef struct {
+  Eo *par;
+  Eina_Bool called;
+} Invalidating_Test_Helper;
+
+static void
+_invalidate2(void *data, const Efl_Event *ev EINA_UNUSED)
+{
+   Invalidating_Test_Helper *iev = data;
+
+   iev->called = EINA_TRUE;
+   ck_assert_int_eq(efl_invalidating_get(iev->par), EINA_TRUE);
+   ck_assert_int_eq(efl_invalidated_get(iev->par), EINA_FALSE);
+}
+
+EFL_START_TEST(eo_test_invalidating_get)
+{
+   Eo *par = efl_add_ref(SIMPLE_CLASS, NULL);
+   Eo *obj = efl_add(SIMPLE_CLASS, par);
+   Invalidating_Test_Helper data = {par, EINA_FALSE};
+
+   efl_event_callback_add(obj, EFL_EVENT_INVALIDATE, _invalidate2, );
+
+   efl_unref(par);
+   ck_assert_int_eq(data.called, EINA_TRUE);
+}
+EFL_END_TEST
+
 void eo_test_lifecycle(TCase *tc)
 {
tcase_add_test(tc, eo_test_base_del);
@@ -169,4 +198,5 @@ void eo_test_lifecycle(TCase *tc)
tcase_add_test(tc, eo_test_shutdown_eventting);
tcase_add_test(tc, eo_test_del_in_noref);
tcase_add_test(tc, eo_test_unref_noref);
+   tcase_add_test(tc, eo_test_invalidating_get);
 }

-- 




[EGIT] [core/efl] master 03/09: move efreet xdg envvars to eina

2018-08-20 Thread Marcel Hollerbach
discomfitor pushed a commit to branch master.

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

commit 7968a0d0b979493774372fe07bcff0559233e8be
Author: Marcel Hollerbach 
Date:   Mon Aug 20 12:57:57 2018 -0400

move efreet xdg envvars to eina

Summary:
The contents of the XDG_ env vars are also usefull for eina subsystems,
thus we should init those env vars here.

Depends on D6751

Reviewers: zmike, stefan_schmidt, #committers

Reviewed By: zmike, #committers

Subscribers: #reviewers, cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6744
---
 src/Makefile_Eina.am  |  3 +-
 src/lib/efreet/efreet.c   | 78 
 src/lib/eina/eina_internal.h  |  3 ++
 src/lib/eina/eina_vpath.c |  1 +
 src/lib/eina/eina_vpath_xdg.c | 83 +++
 5 files changed, 89 insertions(+), 79 deletions(-)

diff --git a/src/Makefile_Eina.am b/src/Makefile_Eina.am
index 997c5262dd..965bff34ae 100644
--- a/src/Makefile_Eina.am
+++ b/src/Makefile_Eina.am
@@ -185,7 +185,8 @@ lib/eina/eina_bezier.c \
 lib/eina/eina_safepointer.c \
 lib/eina/eina_freeq.c \
 lib/eina/eina_slstr.c \
-lib/eina/eina_vpath.c
+lib/eina/eina_vpath.c \
+lib/eina/eina_vpath_xdg.c
 
 
 if HAVE_WIN32
diff --git a/src/lib/efreet/efreet.c b/src/lib/efreet/efreet.c
index d17e1dabaf..091899f2b2 100644
--- a/src/lib/efreet/efreet.c
+++ b/src/lib/efreet/efreet.c
@@ -10,8 +10,6 @@
 #include 
 #include 
 
-#include "eina_internal.h"
-
 /* define macros and variable for using the eina logging system  */
 #define EFREET_MODULE_LOG_DOM /* no logging in this file */
 
@@ -38,79 +36,6 @@ static uid_t ruid;
 static uid_t rgid;
 #endif
 
-static void
-_efreet_efreet_app_interface_set(void)
-{
-   char buf[PATH_MAX];
-   char *s;
-   const char *home;
-   Eina_Vpath_Interface_User user;
-
-   home = eina_vpath_resolve("(:home:)/");
-
-   memset(, 0, sizeof(Eina_Vpath_Interface_User));
-
-# if defined(HAVE_GETUID) && defined(HAVE_GETEUID)
-#  define ENV_HOME_SET(_env, _dir, _meta) \
-   if ((getuid() != geteuid()) || (!(s = getenv(_env { \
-  snprintf(buf, sizeof(buf), "%s/"_dir, home); \
-  s = buf; \
-   } \
-   ()->_meta = s;
-#else
-#  define ENV_HOME_SET(_env, _dir, _meta) \
-   if (!(s = getenv(_env))) { \
-  snprintf(buf, sizeof(buf), "%s/"_dir, home); \
-  s = buf; \
-   } \
-   ()->_meta = s;
-#endif
-   // $XDG_DESKTOP_DIR="$HOME/Desktop"
-   ENV_HOME_SET("XDG_DESKTOP_DIR", "Desktop", desktop);
-   // $XDG_DOCUMENTS_DIR="$HOME/Documents"
-   ENV_HOME_SET("XDG_DOCUMENTS_DIR", "Documents", documents);
-   // $XDG_DOWNLOAD_DIR="$HOME/Downloads"
-   ENV_HOME_SET("XDG_DOWNLOAD_DIR", "Downloads", downloads);
-   // $XDG_MUSIC_DIR="$HOME/Music"
-   ENV_HOME_SET("XDG_MUSIC_DIR", "Music", music);
-   // $XDG_PICTURES_DIR="$HOME/Pictures"
-   ENV_HOME_SET("XDG_PICTURES_DIR", "Pictures", pictures);
-   // $XDG_PUBLICSHARE_DIR="$HOME/Public"
-   ENV_HOME_SET("XDG_PUBLIC_DIR", "Public", pub);
-   // $XDG_TEMPLATES_DIR="$HOME/.Templates"
-   ENV_HOME_SET("XDG_TEMPLATES_DIR", ".Templates", templates);
-   // $XDG_VIDEOS_DIR="$HOME/Videos"
-   ENV_HOME_SET("XDG_VIDEOS_DIR", "Videos", videos);
-   // $XDG_DATA_HOME defines the base directory relative to which user
-   //   specific data files should be stored. If $XDG_DATA_HOME is either
-   //   not set or empty, a default equal to $HOME/.local/share should be
-   //   used.
-   ENV_HOME_SET("XDG_DATA_HOME", ".local/share", data);
-   ENV_HOME_SET("XDG_TMP_HOME", ".local/tmp", tmp);
-   // $XDG_CONFIG_HOME defines the base directory relative to which user
-   //   specific configuration files should be stored. If $XDG_CONFIG_HOME
-   //   is either not set or empty, a default equal to $HOME/.config should
-   //   be used.
-   ENV_HOME_SET("XDG_CONFIG_HOME", ".config", config);
-   // $XDG_CACHE_HOME defines the base directory relative to which
-   //   user specific non-essential data files should be stored. If
-   //   $XDG_CACHE_HOME is either not set or empty, a default equal to
-   //   $HOME/.cache should be used.
-   ENV_HOME_SET("XDG_CACHE_HOME", ".cache", cache);
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETEUID)
-   if ((getuid() != geteuid()) || (!(s = getenv("XDG_RUNTIME_DIR"
-#else
-   if (!(s = getenv("XDG_RUNTIME_DIR")))
-#endif
- user.run = NULL;
-   else
- user.run = s;
-
-   eina_vpath_interface_user_set();
-}
-
-
 EAPI int
 efreet_init(void)
 {
@@ -145,9 +70,6 @@ efreet_init(void)
if (!ecore_file_init())
  goto shutdown_ecore;
 
-   //this needs to be early initializied efreet itself is using vpaths
-   _efreet_efreet_app_interface_set();
-
if (!efreet_base_init())
  goto shutdown_ecore_file;
 
diff --git a/src/lib/eina/eina_internal.h b/src/lib/eina/eina_internal.h
index 9fea25b1f0..9ae14df76b 100644
--- 

[EGIT] [core/efl] master 04/09: quicklaunch: use xdg abstraction instead of direct env var

2018-08-20 Thread Marcel Hollerbach
discomfitor pushed a commit to branch master.

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

commit 77ce62e1d2da448eea32aaeb753dcba7a7808f57
Author: Marcel Hollerbach 
Date:   Mon Aug 20 12:58:23 2018 -0400

quicklaunch: use xdg abstraction instead of direct env var

Summary:
there are defined ways what should happen in XDG_RUNTIME_DIR is not
defined, eina_vpath is the abstraction for doing this.

This ensures that the socket is created in the correct directory.

Depends on D6744

Reviewers: zmike, stefan_schmidt

Reviewed By: zmike

Subscribers: #reviewers, cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6745
---
 src/bin/elementary/quicklaunch.c | 7 ++-
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/src/bin/elementary/quicklaunch.c b/src/bin/elementary/quicklaunch.c
index eb376ee216..d23287e32e 100644
--- a/src/bin/elementary/quicklaunch.c
+++ b/src/bin/elementary/quicklaunch.c
@@ -182,7 +182,6 @@ main(int argc, char **argv)
char buf[PATH_MAX];
struct sigaction action;
const char *domain;
-   char *rundir;
int ret = 0;
 
if (!eina_init())
@@ -204,9 +203,7 @@ main(int argc, char **argv)
 if (!domain) domain = getenv("DISPLAY");
 if (!domain) domain = "unknown";
  }
-   rundir = getenv("XDG_RUNTIME_DIR");
-   if (!rundir) rundir = "/tmp";
-   snprintf(buf, sizeof(buf), "%s/elm-ql-%i", rundir, getuid());
+   eina_vpath_resolve_snprintf(buf, sizeof(buf), "(:usr.run:)/elm-ql-%i", 
getuid());
if (stat(buf, ) < 0)
  {
 ret = mkdir(buf, S_IRUSR | S_IWUSR | S_IXUSR);
@@ -216,7 +213,7 @@ main(int argc, char **argv)
  exit(-1);
   }
  }
-   snprintf(buf, sizeof(buf), "%s/elm-ql-%i/%s", rundir, getuid(), domain);
+   eina_vpath_resolve_snprintf(buf, sizeof(buf), "(:usr.run:)/elm-ql-%i/%s", 
getuid(), domain);
unlink(buf);
sock = socket(AF_UNIX, SOCK_STREAM, 0);
if (sock < 0)

-- 




[EGIT] [core/efl] master 08/09: configure: do not drop to max loglevel 3

2018-08-20 Thread Marcel Hollerbach
discomfitor pushed a commit to branch master.

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

commit e306a0bd94188e4e0efd6c5056c9a40cb8282e3c
Author: Marcel Hollerbach 
Date:   Mon Aug 20 13:02:08 2018 -0400

configure: do not drop to max loglevel 3

Summary:
For the actaul release this might be helpfull, however, we are in a
freeze, people are getting theire alpha releases, that might contain
bugs, its just makes the workflow of fixing faster if we can get and
see debugging output.

Reviewers: devilhorns, stefan_schmidt

Reviewed By: devilhorns

Subscribers: cedric, #committers, zmike

Tags: #efl

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

diff --git a/configure.ac b/configure.ac
index 5e5c6a23bc..feba751b34 100644
--- a/configure.ac
+++ b/configure.ac
@@ -901,7 +901,7 @@ case "${build_profile}" in
  ;;
 
release)
- with_max_log_level="3"
+ with_max_log_level=""
  have_stringshare_usage="no"
  want_valgrind="no"
  want_debug_malloc="no"

-- 




[EGIT] [core/efl] master 05/09: ecore_con: migrate to eina_vpath

2018-08-20 Thread Marcel Hollerbach
discomfitor pushed a commit to branch master.

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

commit f6579e47ab27782f5f97bab8b8f26d86d2ca4ff9
Author: Marcel Hollerbach 
Date:   Mon Aug 20 12:58:35 2018 -0400

ecore_con: migrate to eina_vpath

Summary:
the logic here was against the xdg standard, thus we migrate to
eina_vpath which uses the correct xdg standard

Depends on D6745

Reviewers: zmike, stefan_schmidt, #committers

Reviewed By: zmike, #committers

Subscribers: #reviewers, cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6746
---
 src/lib/ecore_con/ecore_con_local.c | 37 +++--
 1 file changed, 3 insertions(+), 34 deletions(-)

diff --git a/src/lib/ecore_con/ecore_con_local.c 
b/src/lib/ecore_con/ecore_con_local.c
index 874fd7b2c7..b3568837b5 100644
--- a/src/lib/ecore_con/ecore_con_local.c
+++ b/src/lib/ecore_con/ecore_con_local.c
@@ -27,22 +27,6 @@
 #include "Ecore_Con.h"
 #include "ecore_con_private.h"
 
-#ifndef _WIN32
-static const char *
-_ecore_con_local_path_get(void)
-{
-   static char *homedir = NULL;
-   if (homedir) return homedir;
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETEUID)
-   if (getuid() == geteuid()) homedir = getenv("XDG_RUNTIME_DIR");
-#endif
-   if (!homedir) homedir = (char *)eina_environment_home_get();
-   if (!homedir) homedir = (char *)eina_environment_tmp_get();
-   return homedir;
-}
-#endif
-
 EAPI char *
 ecore_con_local_path_new(Eina_Bool is_system, const char *name, int port)
 {
@@ -84,26 +68,11 @@ ecore_con_local_path_new(Eina_Bool is_system, const char 
*name, int port)
 
if (!is_system)
  {
-#if defined(HAVE_GETUID) && defined(HAVE_GETEUID)
-if (getuid() == geteuid())
-#endif
-  homedir = _ecore_con_local_path_get();
-#if defined(HAVE_GETUID) && defined(HAVE_GETEUID)
-else
-  {
- struct passwd *pw = getpwent();
-
- if ((!pw) || (!pw->pw_dir)) homedir = "/tmp";
- else homedir = pw->pw_dir;
-  }
-#endif
-
 if (port < 0)
-   snprintf(buf, sizeof(buf), "%s/.ecore/%s",
-homedir, name);
+  eina_vpath_resolve_snprintf(buf, sizeof(buf), 
"(:usr.run:)/.ecore/%s", name);
 else
-   snprintf(buf, sizeof(buf), "%s/.ecore/%s/%i",
-homedir, name, port);
+  eina_vpath_resolve_snprintf(buf, sizeof(buf), 
"(:usr.run:)/.ecore/%s/%i", name, port);
+
 return strdup(buf);
  }
else

-- 




[EGIT] [core/efl] master 09/09: ecore_wl2_dmabuf: Link with ecore_wl2

2018-08-20 Thread Derek Foreman
discomfitor pushed a commit to branch master.

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

commit 87332f2e3ab2694f27913222ddadbadbca5c4d54
Author: Derek Foreman 
Date:   Mon Aug 20 13:06:57 2018 -0400

ecore_wl2_dmabuf: Link with ecore_wl2

Summary:
This generated .so file is only ever loaded with dlopen, so it hasn't
mattered that it doesn't appropriately link dependent libraries.

However, Debian builds this with strict linking, which breaks if the
.so doesn't depend on everything that supplies the functions it calls.

fix T7327

@fix

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Maniphest Tasks: T7327

Differential Revision: https://phab.enlightenment.org/D6874
---
 src/Makefile_Ecore_Wl2.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/Makefile_Ecore_Wl2.am b/src/Makefile_Ecore_Wl2.am
index 3415d0762e..cad2769bf1 100644
--- a/src/Makefile_Ecore_Wl2.am
+++ b/src/Makefile_Ecore_Wl2.am
@@ -85,7 +85,7 @@ $(install_ecorewl2enginedmabufpkgLTLIBRARIES): 
install-libLTLIBRARIES
 
 modules_ecore_wl2_engines_dmabuf_module_la_SOURCES = $(DMABUFSOURCES)
 modules_ecore_wl2_engines_dmabuf_module_la_CPPFLAGS = 
-I$(top_builddir)/src/lib/efl @ECORE_WL2_CFLAGS@
-modules_ecore_wl2_engines_dmabuf_module_la_LDFLAGS = -module 
@EFL_LTMODULE_FLAGS@
+modules_ecore_wl2_engines_dmabuf_module_la_LDFLAGS = -module 
@EFL_LTMODULE_FLAGS@ @USE_ECORE_WL2_LIBS@
 modules_ecore_wl2_engines_dmabuf_module_la_LIBTOOLFLAGS = --tag=disable-static
 
 endif

-- 




[EGIT] [core/efl] master 07/09: eina_debug: switch to vpath

2018-08-20 Thread Marcel Hollerbach
discomfitor pushed a commit to branch master.

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

commit cf74462b766755b7b9944a5f5715d72164bc67d4
Author: Marcel Hollerbach 
Date:   Mon Aug 20 12:59:15 2018 -0400

eina_debug: switch to vpath

Summary:
eina debug was using the xdg runtime dir in a wrong manner. Since the
directory should be only used by the user, and the directory should be
be subject of any other usage. Additionally, apps tend to create files
like: $XDG_RUNTIME_DIR/foo.bar which is probebly not what you want in
$HOME.

ref T7107

Depends on D6747

Reviewers: zmike, stefan_schmidt, #committers

Reviewed By: zmike, #committers

Subscribers: #reviewers, cedric, #committers, zmike

Tags: #efl

Maniphest Tasks: T7107

Differential Revision: https://phab.enlightenment.org/D6748
---
 src/lib/eina/eina_debug.c | 14 +++---
 src/lib/eina/eina_main.c  |  4 ++--
 2 files changed, 5 insertions(+), 13 deletions(-)

diff --git a/src/lib/eina/eina_debug.c b/src/lib/eina/eina_debug.c
index 4d70454d0a..4d003bf029 100644
--- a/src/lib/eina/eina_debug.c
+++ b/src/lib/eina/eina_debug.c
@@ -70,6 +70,8 @@
 #include "eina_hash.h"
 #include "eina_stringshare.h"
 #include "eina_debug_private.h"
+#include "eina_vpath.h"
+#include "eina_internal.h"
 
 #ifdef EINA_HAVE_PTHREAD_SETNAME
 # ifndef __linux__
@@ -442,16 +444,6 @@ _opcodes_unregister_all(Eina_Debug_Session *session)
  }
 }
 
-static const char *
-_socket_home_get()
-{
-   // get possible debug daemon socket directory base
-   const char *dir = getenv("XDG_RUNTIME_DIR");
-   if (!dir) dir = eina_environment_home_get();
-   if (!dir) dir = eina_environment_tmp_get();
-   return dir;
-}
-
 #define LENGTH_OF_SOCKADDR_UN(s) \
(strlen((s)->sun_path) + (size_t)(((struct sockaddr_un *)NULL)->sun_path))
 #endif
@@ -514,7 +506,7 @@ eina_debug_local_connect(Eina_Bool is_master)
//   ~/.ecore/efl_debug/0
// or maybe
//   /var/run/UID/.ecore/efl_debug/0
-   snprintf(buf, sizeof(buf), "%s/%s/%s/%i", _socket_home_get(),
+   eina_vpath_resolve_snprintf(buf, sizeof(buf), "(:usr.run:)/%s/%s/%i",
  LOCAL_SERVER_PATH, LOCAL_SERVER_NAME, LOCAL_SERVER_PORT);
// create the socket
fd = socket(AF_UNIX, SOCK_STREAM, 0);
diff --git a/src/lib/eina/eina_main.c b/src/lib/eina/eina_main.c
index b3790f14d7..024d1e3eaa 100644
--- a/src/lib/eina/eina_main.c
+++ b/src/lib/eina/eina_main.c
@@ -173,9 +173,10 @@ static const struct eina_desc_setup _eina_desc_setup[] = {
S(module),
S(mempool),
S(list),
+   S(stringshare),
+   S(vpath),
S(debug),
S(evlog),
-   S(stringshare),
S(error),
S(safety_checks),
S(magic_string),
@@ -205,7 +206,6 @@ static const struct eina_desc_setup _eina_desc_setup[] = {
S(safepointer),
S(slstr),
S(promise),
-   S(vpath),
 #undef S
 };
 static const size_t _eina_desc_setup_len = sizeof(_eina_desc_setup) /

-- 




[EGIT] [core/efl] master 02/09: eina_vpath: introduce eina_vpath in style of snprintf

2018-08-20 Thread Marcel Hollerbach
discomfitor pushed a commit to branch master.

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

commit e31ce7b28711c43d37fb5d8469a236e6a17460ab
Author: Marcel Hollerbach 
Date:   Mon Aug 20 12:56:51 2018 -0400

eina_vpath: introduce eina_vpath in style of snprintf

Summary:
this can be usefull for later regactor usages.

Depends on D6742

Reviewers: zmike, stefan_schmidt, #committers

Reviewed By: zmike, #committers

Subscribers: #reviewers, segfaultxavi, cedric, #committers, zmike

Tags: PHID-PROJ-55rnlag4d454jfmlmuhu

Differential Revision: https://phab.enlightenment.org/D6743
---
 src/lib/eina/eina_vpath.c| 42 ++--
 src/lib/eina/eina_vpath.h| 14 ++
 src/tests/eina/eina_test_vpath.c | 31 +
 3 files changed, 73 insertions(+), 14 deletions(-)

diff --git a/src/lib/eina/eina_vpath.c b/src/lib/eina/eina_vpath.c
index c958bbe4f9..bc7c4d0045 100644
--- a/src/lib/eina/eina_vpath.c
+++ b/src/lib/eina/eina_vpath.c
@@ -214,6 +214,19 @@ _fetch_user_homedir(char **str, const char *name, const 
char *error)
 EAPI char *
 eina_vpath_resolve(const char* path)
 {
+   char buf[PATH_MAX];
+
+   if (eina_vpath_resolve_snprintf(buf, sizeof(buf), path) > 0)
+ return strdup(buf);
+   return NULL;
+}
+
+EAPI int
+eina_vpath_resolve_snprintf(char *str, size_t size, const char *format, ...)
+{
+   va_list args;
+   char *path;
+   int len;
// XXX: implement parse of path then look up in hash if not just create
// object where path and result are the same and return that with
// path set and result set to resolved path - return obj handler calls
@@ -223,7 +236,11 @@ eina_vpath_resolve(const char* path)
/* FIXME: not working for WIndows */
// /* <- full path
 
-   if (!path) return NULL;
+   path = alloca(size + 1);
+
+   va_start(args, format);
+   len = vsnprintf(path, size, format, args);
+   va_end(args);
 
if (path[0] == '~')
  {
@@ -237,7 +254,7 @@ eina_vpath_resolve(const char* path)
 // ~username/ <- homedir of user "username"
 else
   {
- char *p, *name, buf[PATH_MAX];
+ char *p, *name;
 
  for (p = path + 1; *p; p++)
{
@@ -248,21 +265,19 @@ eina_vpath_resolve(const char* path)
  name[p - path - 1] = 0;
 
  if (!_fetch_user_homedir(, name, path))
-   return NULL;
+   return 0;
  path = p;
}
  if (home)
{
-  char buf[PATH_MAX];
-  snprintf(buf, sizeof(buf), "%s%s", home, path);
-  return strdup(buf);
+  return snprintf(str, size, "%s%s", home, path);
}
 }
   // (:xxx:)/* ... <- meta hash table
   else if ((path[0] == '(') && (path[1] == ':'))
 {
const char *p, *end, *meta;
-   char *name, buf[PATH_MAX];
+   char *name;
int max_len = strlen(path);
Eina_Bool found = EINA_FALSE;
 
@@ -280,13 +295,13 @@ eina_vpath_resolve(const char* path)
if (!found)
  {
 ERR("(: Needs to have a matching ':)'\nThe string was: %s", path);
-return NULL;
+return 0;
  }
 
if (*p != '/')
  {
 ERR("A / is expected after :)\nThe string was: %s", path);
-return NULL;
+return 0;
  }
 
if (found)
@@ -297,25 +312,24 @@ eina_vpath_resolve(const char* path)
 meta = _eina_vpath_data_get(name);
 if (meta)
   {
- snprintf(buf, sizeof(buf), "%s%s", meta, end + 2);
- return strdup(buf);
+ return snprintf(str, size, "%s%s", meta, end + 2);
   }
 else
   {
  ERR("Meta key '%s' was not registered!\nThe string was: %s", 
name, path);
- return NULL;
+ return 0;
   }
  }
 }
//just return the path, since we assume that this is a normal path
else
 {
-   return strdup(path);
+   return snprintf(str, size, "%s", path);
 }
 
ERR("The path has to start with either '~/' or '(:NAME:)/' or be a normal 
path \nThe string was: %s", path);
 
-   return NULL;
+   return 0;
 }
 
 EAPI void
diff --git a/src/lib/eina/eina_vpath.h b/src/lib/eina/eina_vpath.h
index 5c1e80e5bf..287623fcda 100644
--- a/src/lib/eina/eina_vpath.h
+++ b/src/lib/eina/eina_vpath.h
@@ -94,5 +94,19 @@ typedef const char * Eina_Vpath;
  */
 EAPI char *eina_vpath_resolve(Eina_Vpath path);
 
+/*
+ * Translate a virtual path into a normal path, and print it into str.
+ *
+ * @param str the buffer to stuff the characters into
+ * @param size the size of the buffer
+ * @param format A snprintf style format string, which will get evalulated 
after the vpath strings are getting 

[EGIT] [core/efl] master 01/09: eina_vpath: fix homedirectory fetching

2018-08-20 Thread Marcel Hollerbach
discomfitor pushed a commit to branch master.

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

commit aa416afffbbf064010ccf46b7c67e56227b3cd43
Author: Marcel Hollerbach 
Date:   Mon Aug 20 12:56:30 2018 -0400

eina_vpath: fix homedirectory fetching

Summary:
the fetching of the homedirectorty did not work. pw_dir was never
prepended. Additionally you would get a silent NULL string back
if the system does not support HAVE_GETPWENT.

ref T7107

Depends on D6737

Reviewers: zmike

Reviewed By: zmike

Subscribers: #reviewers, raster, vtorri, cedric, #committers, zmike

Tags: #efl

Maniphest Tasks: T7107

Differential Revision: https://phab.enlightenment.org/D6742
---
 src/lib/eina/eina_vpath.c | 58 ++-
 1 file changed, 37 insertions(+), 21 deletions(-)

diff --git a/src/lib/eina/eina_vpath.c b/src/lib/eina/eina_vpath.c
index f49a9e1f13..c958bbe4f9 100644
--- a/src/lib/eina/eina_vpath.c
+++ b/src/lib/eina/eina_vpath.c
@@ -188,6 +188,29 @@ eina_vpath_shutdown(void)
return EINA_TRUE;
 }
 
+static Eina_Bool
+_fetch_user_homedir(char **str, const char *name, const char *error)
+{
+  *str = NULL;
+#ifdef HAVE_GETPWENT
+  struct passwd *pwent;
+
+  pwent = getpwnam(name);
+  if (!pwent)
+{
+   ERR("User %s not found\nThe string was: %s", name, error);
+   return EINA_FALSE;
+}
+  *str = pwent->pw_dir;
+
+  return EINA_TRUE;
+#else
+  ERR("User fetching is disabled on this system\nThe string was: %s", error);
+  return EINA_FALSE;
+#endif
+}
+
+
 EAPI char *
 eina_vpath_resolve(const char* path)
 {
@@ -204,25 +227,17 @@ eina_vpath_resolve(const char* path)
 
if (path[0] == '~')
  {
+char *home = NULL;
 // ~/ <- home directory
 if (path[1] == '/')
   {
- char buf[PATH_MAX];
- const char *home = eina_hash_find(vpath_data, "home");
-
- if (home)
-   {
-  snprintf(buf, sizeof(buf), "%s%s", home, path + 1);
-  return strdup(buf);
-   }
+ home = eina_hash_find(vpath_data, "home");
+ path ++;
   }
-#ifdef HAVE_GETPWENT
 // ~username/ <- homedir of user "username"
 else
   {
- const char *p;
- struct passwd pwent, *pwent2 = NULL;
- char *name, buf[PATH_MAX], pwbuf[8129];
+ char *p, *name, buf[PATH_MAX];
 
  for (p = path + 1; *p; p++)
{
@@ -231,16 +246,17 @@ eina_vpath_resolve(const char* path)
  name = alloca(p - path);
  strncpy(name, path + 1, p - path - 1);
  name[p - path - 1] = 0;
- if (!getpwnam_r(name, , pwbuf, sizeof(pwbuf), ))
-   {
-  if ((pwent2) && (pwent.pw_dir))
-{
-   return strdup(buf);
-}
-   }
+
+ if (!_fetch_user_homedir(, name, path))
+   return NULL;
+ path = p;
+   }
+ if (home)
+   {
+  char buf[PATH_MAX];
+  snprintf(buf, sizeof(buf), "%s%s", home, path);
+  return strdup(buf);
}
-#endif /* HAVE_GETPWENT */
-   return NULL;
 }
   // (:xxx:)/* ... <- meta hash table
   else if ((path[0] == '(') && (path[1] == ':'))

-- 




[EGIT] [core/efl] master 06/09: efl_debugd: move to eina vpath

2018-08-20 Thread Marcel Hollerbach
discomfitor pushed a commit to branch master.

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

commit 7a02c2ac38534fbb715c230b6d55b1edd7494dc1
Author: Marcel Hollerbach 
Date:   Mon Aug 20 12:58:50 2018 -0400

efl_debugd: move to eina vpath

Summary:
the logic here was against the xdg standard, thus we migrate to
eina_vpath which uses the correct xdg standard

Depends on D6746

Reviewers: zmike, stefan_schmidt, #committers

Reviewed By: zmike, #committers

Subscribers: #reviewers, cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6747
---
 src/bin/efl/efl_debugd.c | 24 +++-
 1 file changed, 3 insertions(+), 21 deletions(-)

diff --git a/src/bin/efl/efl_debugd.c b/src/bin/efl/efl_debugd.c
index c7cad1e4ff..fd2bc9e426 100644
--- a/src/bin/efl/efl_debugd.c
+++ b/src/bin/efl/efl_debugd.c
@@ -527,46 +527,29 @@ _error(void *data EINA_UNUSED, const Efl_Event *event)
_retval = EXIT_FAILURE;
 }
 
-static char *
-_socket_home_get(void)
-{
-   // get possible debug daemon socket directory base
-   char *ret = NULL;
-   const char *dir = getenv("XDG_RUNTIME_DIR");
-   if (!dir) dir = eina_environment_home_get();
-   if (!dir) dir = eina_environment_tmp_get();
-   if (dir)
- {
-ret = calloc(1024, 1);
-strncpy(ret, dir, 1023);
- }
-   return ret;
-}
-
 static Eina_Bool
 _local_server_create(void)
 {
Eo *loop;
Eina_Error err;
-   char *socket_path = _socket_home_get();
mode_t mask = 0;
char path[512];
Eina_Bool ret = EINA_FALSE;
 
-   snprintf(path, sizeof(path) - 1, "%s/%s", socket_path, LOCAL_SERVER_PATH);
+   eina_vpath_resolve_snprintf(path, sizeof(path), "(:usr.run:)/%s", 
LOCAL_SERVER_PATH);
if (mkdir(path, S_IRWXU) < 0 && errno != EEXIST)
  {
 perror("mkdir SERVER_PATH");
 goto end;
  }
-   snprintf(path, sizeof(path) - 1, "%s/%s/%s", socket_path, 
LOCAL_SERVER_PATH, LOCAL_SERVER_NAME);
+   eina_vpath_resolve_snprintf(path, sizeof(path), "(:usr.run:)/%s/%s", 
LOCAL_SERVER_PATH, LOCAL_SERVER_NAME);
if (mkdir(path, S_IRWXU) < 0 && errno != EEXIST)
  {
 perror("mkdir SERVER_NAME");
 goto end;
  }
mask = umask(S_IRWXG | S_IRWXO);
-   snprintf(path, sizeof(path) - 1, "%s/%s/%s/%i", socket_path,
+   eina_vpath_resolve_snprintf(path, sizeof(path) - 1, "(:usr.run:)/%s/%s/%i",
  LOCAL_SERVER_PATH, LOCAL_SERVER_NAME, LOCAL_SERVER_PORT);
 
loop = efl_main_loop_get();
@@ -610,7 +593,6 @@ end:
 efl_del(_local_server);
 _local_server = NULL;
  }
-   free(socket_path);
return ret;
 }
 

-- 




[EGIT] [core/efl] master 01/01: Revert "elm/win: move trigger for "shot" to first pre-render callback"

2018-08-20 Thread Stefan Schmidt
discomfitor pushed a commit to branch master.

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

commit 9e7d0d03e4ce54038c3f1659d9206e2614f51866
Author: Stefan Schmidt 
Date:   Mon Aug 20 11:00:09 2018 -0400

Revert "elm/win: move trigger for "shot" to first pre-render callback"

Summary:
This reverts commit 93228108efaf6097ac680664bdb9158b5cf57499.

The original commit resulted in a hang during the use of the shot engine
in our make doc target. During the doc run we generate screenshots for
the documentation using the shot engine.

It is not a clean revert as other things changed since this got in, but
I verified that the screenshots for the documentation is generated
correctly again. This might leave open the original issue T6929 which
the now reverted commit tried to address.

Fixes T7166

Reviewers: zmike, JackDanielZ, xavi

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7166

Differential Revision: https://phab.enlightenment.org/D6873
---
 src/lib/elementary/efl_ui_win.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 29dce4dabb..b4307da693 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -1031,7 +1031,6 @@ _elm_win_pre_render(Ecore_Evas *ee)
   ecore_x_window_shape_input_rectangle_set(sd->x.xwin, 0, 0, 0, 0);
 #endif
 sd->first_draw = EINA_TRUE;
-if (sd->shot.info) _shot_handle(sd);
  }
if (sd->deferred_resize_job)
  {
@@ -2386,6 +2385,9 @@ _efl_ui_win_show(Eo *obj, Efl_Ui_Win_Data *sd)
   }
 _elm_win_state_eval(NULL);
  }
+
+   if (sd->shot.info) _shot_handle(sd);
+
if (!sd->first_draw) return;
if (sd->frame_obj)
  {

-- 




[EGIT] [core/efl] master 01/01: evas textblock: add/apply cursor cluster APIs based on grapheme cluster

2018-08-20 Thread Youngbok Shin
discomfitor pushed a commit to branch master.

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

commit 517018e00897f61136418861563a49144a5fe39a
Author: Youngbok Shin 
Date:   Mon Aug 20 07:21:53 2018 -0400

evas textblock: add/apply cursor cluster APIs based on grapheme cluster

Summary:
Add a feature for moving cursor over a grapheme cluster.
It is applied to edje_entry.c and elm_entry.c for improving
cursor handling just like other modern text editors. ex) gedit
The patch on Evas needs to update libunibreak library.
So, the patch will update libunibreak, too.
@feature

Test Plan:
1. Put "ഹലോ" in your entry.
2. Your cursor can reach at the end of text from the beginning
   only in 2 right key event with this feature.

Reviewers: raster, cedric, jpeg, herdsman, zmike, devilhorns

Reviewed By: herdsman, zmike

Subscribers: #reviewers, #committers, zmike, bowonryu, woohyun

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D5490
---
 src/Makefile_Evas.am   |8 +-
 src/lib/edje/edje_entry.c  |   51 +-
 src/lib/efl/interfaces/efl_text_cursor.eo  |   25 +
 src/lib/evas/canvas/efl_canvas_text.eo |3 +
 src/lib/evas/canvas/evas_object_textblock.c|  276 +++-
 src/lib/evas/canvas/evas_textblock_legacy.h|   26 +
 src/static_libs/libunibreak/ChangeLog  |   92 ++
 src/static_libs/libunibreak/LICENCE|5 +-
 src/static_libs/libunibreak/NEWS   |7 +
 src/static_libs/libunibreak/README.md  |   14 +-
 src/static_libs/libunibreak/graphemebreak.c|  283 +
 .../libunibreak/{wordbreak.h => graphemebreak.h}   |   47 +-
 src/static_libs/libunibreak/graphemebreakdata.c| 1337 
 src/static_libs/libunibreak/graphemebreakdef.h |   82 ++
 src/static_libs/libunibreak/linebreak.c|   28 +-
 src/static_libs/libunibreak/linebreak.h|1 -
 src/static_libs/libunibreak/linebreakdef.c |1 -
 src/static_libs/libunibreak/linebreakdef.h |1 -
 src/static_libs/libunibreak/unibreakbase.c |3 +-
 src/static_libs/libunibreak/unibreakbase.h |5 +-
 src/static_libs/libunibreak/unibreakdef.c  |3 +-
 src/static_libs/libunibreak/unibreakdef.h  |3 +-
 src/static_libs/libunibreak/wordbreak.c|   33 +-
 src/static_libs/libunibreak/wordbreak.h|9 +-
 src/static_libs/libunibreak/wordbreakdef.h |9 +-
 src/tests/evas/evas_test_textblock.c   |   24 +-
 26 files changed, 2246 insertions(+), 130 deletions(-)

diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am
index 0699dde533..b09521cb72 100644
--- a/src/Makefile_Evas.am
+++ b/src/Makefile_Evas.am
@@ -193,7 +193,10 @@ static_libs/libunibreak/linebreak.h \
 static_libs/libunibreak/linebreakdef.h \
 static_libs/libunibreak/wordbreakdef.h \
 static_libs/libunibreak/wordbreak.h \
-static_libs/libunibreak/wordbreakdata.c
+static_libs/libunibreak/wordbreakdata.c \
+static_libs/libunibreak/graphemebreak.h \
+static_libs/libunibreak/graphemebreakdef.h \
+static_libs/libunibreak/graphemebreakdata.c
 
 # Linebreak
 lib_evas_libevas_la_SOURCES = \
@@ -202,7 +205,8 @@ static_libs/libunibreak/unibreakdef.c \
 static_libs/libunibreak/linebreak.c \
 static_libs/libunibreak/linebreakdata.c \
 static_libs/libunibreak/linebreakdef.c \
-static_libs/libunibreak/wordbreak.c
+static_libs/libunibreak/wordbreak.c \
+static_libs/libunibreak/graphemebreak.c
 
 # Main
 lib_evas_libevas_la_SOURCES += \
diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c
index 6c1f8960ff..1ad3c30b65 100644
--- a/src/lib/edje/edje_entry.c
+++ b/src/lib/edje/edje_entry.c
@@ -536,7 +536,7 @@ _curs_jump_line(Evas_Textblock_Cursor *c, Evas_Object *o, 
Entry *en, int ln)
 
if (!evas_object_textblock_line_number_geometry_get(o, ln, , , , 
))
  return EINA_FALSE;
-   if (evas_textblock_cursor_char_coord_set(c, cx, ly + (lh / 2)))
+   if (evas_textblock_cursor_cluster_coord_set(c, cx, ly + (lh / 2)))
  return EINA_TRUE;
evas_textblock_cursor_line_set(c, ln);
if (cx < (lx + (lw / 2)))
@@ -1607,24 +1607,33 @@ _delete_emit(Edje *ed, Evas_Textblock_Cursor *c, Entry 
*en, size_t pos,
 ERR("Running very low on memory");
 return;
  }
-   char *tmp = evas_textblock_cursor_content_get(c);
+   char *tmp = NULL;
 
info->insert = EINA_FALSE;
if (backspace)
  {
 info->change.del.start = pos - 1;
 info->change.del.end = pos;
+tmp = evas_textblock_cursor_content_get(c);
+evas_textblock_cursor_char_delete(c);
  }
else
  {
-info->change.del.start = pos + 1;
+Evas_Textblock_Cursor *cc = 
evas_object_textblock_cursor_new(en->rp->object);
+

[EGIT] [website/www-content] master 01/01: Wiki page start.md changed with summary [typo] by Xavi Artigas

2018-08-20 Thread Xavi Artigas
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=1dec9516e9071e00444350f553379a4034656d24

commit 1dec9516e9071e00444350f553379a4034656d24
Author: Xavi Artigas 
Date:   Mon Aug 20 06:41:32 2018 -0700

Wiki page start.md changed with summary [typo] by Xavi Artigas
---
 pages/contrib/devs/start.md.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pages/contrib/devs/start.md.txt b/pages/contrib/devs/start.md.txt
index 2230d618b..820afc4d9 100644
--- a/pages/contrib/devs/start.md.txt
+++ b/pages/contrib/devs/start.md.txt
@@ -15,7 +15,7 @@ Code contributed to the Enlightenment Project must follow the 
short list of proj
 
 * Contributed code must be written and commented in American English
 * Contributed code should not be malicious or discriminative
-* Code should be tested (including the use of ``valgrind`` before being 
submitted
+* Code should be tested (including the use of ``valgrind``) before being 
submitted
 * Contributed code must match the project License
 
 When contributing code to the Enlightenment Project you retain your copyright 
by default; no contributors are required to assign copyright elsewhere.

-- 




[EGIT] [core/efl] master 01/01: efl_ui_composition: remove all children in invalidate

2018-08-20 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 8da56ac873d5bb083b7cfe08aeefdaa2ad9a4b99
Author: Marcel Hollerbach 
Date:   Mon Aug 6 15:02:19 2018 +0200

efl_ui_composition: remove all children in invalidate

When the element that iherits from composition is invalidated, all items
should be unregistered.

fix T7213

Differential Revision: https://phab.enlightenment.org/D6755
---
 src/lib/elementary/efl_ui_focus_composition.c  | 9 +
 src/lib/elementary/efl_ui_focus_composition.eo | 1 +
 2 files changed, 10 insertions(+)

diff --git a/src/lib/elementary/efl_ui_focus_composition.c 
b/src/lib/elementary/efl_ui_focus_composition.c
index 57c45ad35b..d62f1e4ed3 100644
--- a/src/lib/elementary/efl_ui_focus_composition.c
+++ b/src/lib/elementary/efl_ui_focus_composition.c
@@ -225,6 +225,15 @@ _efl_ui_focus_composition_logical_mode_get(const Eo *obj 
EINA_UNUSED, Efl_Ui_Foc
return pd->logical;
 }
 
+EOLIAN static void
+_efl_ui_focus_composition_efl_object_invalidate(Eo *obj, 
Efl_Ui_Focus_Composition_Data *pd EINA_UNUSED)
+{
+   efl_invalidate(efl_super(obj, MY_CLASS));
+
+   efl_ui_focus_composition_elements_set(obj, NULL);
+}
+
+
 #include "efl_ui_focus_composition.eo.c"
 
 typedef struct {
diff --git a/src/lib/elementary/efl_ui_focus_composition.eo 
b/src/lib/elementary/efl_ui_focus_composition.eo
index 0654db8b97..2befe106b0 100644
--- a/src/lib/elementary/efl_ui_focus_composition.eo
+++ b/src/lib/elementary/efl_ui_focus_composition.eo
@@ -46,6 +46,7 @@ mixin Efl.Ui.Focus.Composition (Efl.Interface, Efl.Ui.Widget) 
{
   }
}
implements {
+  Efl.Object.invalidate;
   Efl.Ui.Widget.focus_state_apply;
   Efl.Ui.Focus.Object.prepare_logical_none_recursive;
   @empty .prepare;

-- 




[EGIT] [core/efl] master 01/01: elm/win: check object class before using it

2018-08-20 Thread Shinwoo Kim
kimcinoo pushed a commit to branch master.

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

commit 1c0f878fa6e02d930b3a88ad7281889cc15da145
Author: Shinwoo Kim 
Date:   Mon Aug 20 16:19:02 2018 +0900

elm/win: check object class before using it

Summary:
elm_win_focus_get with non Efl.Ui.Win object could return incorrect value.
If an object implements Efl.Ui.Focus.Object.focus { get; } then the return
value of elm_win_focus_get with this object depends upon the object status.

Reviewers: Hermet, YOhoho

Reviewed By: YOhoho

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6868
---
 src/lib/elementary/efl_ui_win.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index df7094af13..29dce4dabb 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -8735,6 +8735,7 @@ elm_win_socket_listen(Efl_Ui_Win *obj, const char 
*svcname, int svcnum, Eina_Boo
 EAPI Eina_Bool
 elm_win_focus_get(const Efl_Ui_Win *obj)
 {
+   EINA_SAFETY_ON_FALSE_RETURN_VAL(efl_isa(obj, MY_CLASS), EINA_FALSE);
return efl_ui_focus_object_focus_get(obj);
 }
 

--