[EGIT] [core/efl] master 01/01: ui_spin_button: avoid duplicated calls.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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"
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
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
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
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
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); } --