From f944f91407d3bd3d022f80c86479ca25478fee4a Mon Sep 17 00:00:00 2001 From: Wonki Kim Date: Mon, 15 Apr 2019 16:24:17 +0900 Subject: [PATCH 01/80] scroll_mgr: fix a type for some vars to be portable Summary: char type can be singed or unsinged according to the standard. variables for keeping sign value should be sign, and that is the reason why this patch modify a type for some variables explictly. Reviewers: eagleeye Reviewed By: eagleeye Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8604 --- src/lib/elementary/efl_ui_scroll_manager.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/efl_ui_scroll_manager.c b/src/lib/elementary/efl_ui_scroll_manager.c index 98da2fd830..e58aa874fb 100644 --- a/src/lib/elementary/efl_ui_scroll_manager.c +++ b/src/lib/elementary/efl_ui_scroll_manager.c @@ -1023,7 +1023,7 @@ _efl_ui_scroll_manager_mouse_up_event_momentum_eval(Efl_Ui_Scroll_Manager_Data * { double t, at; Evas_Coord dx, dy, ax, ay, vel; - char sdx, sdy; + signed char sdx, sdy; t = ev->timestamp / 1000.0; @@ -1294,7 +1294,7 @@ _scroll_manager_momentum_animator_add(Efl_Ui_Scroll_Manager_Data *sd, double vx, #define INVERSE_MASS 1 #define ACCEL (FRICTION * INVERSE_MASS) double dur = 0.0; - char sdx = 0, sdy = 0; + signed char sdx = 0, sdy = 0; Evas_Coord dstx = 0, dsty = 0; /* From 7ded9453233732c083e8d307089d22cbde5624d7 Mon Sep 17 00:00:00 2001 From: Yeongjong Lee Date: Mon, 15 Apr 2019 13:07:54 +0200 Subject: [PATCH 02/80] gitignore: add elm_default_config.x Summary: elm_default_config.x is created by build script. Reviewers: segfaultxavi Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8605 --- src/lib/elementary/.gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elementary/.gitignore b/src/lib/elementary/.gitignore index 9076648525..0a04d8032d 100644 --- a/src/lib/elementary/.gitignore +++ b/src/lib/elementary/.gitignore @@ -9,4 +9,4 @@ /eldbus_elementary_colorclass.c /eldbus_elementary_colorclass.h /eldbus_utils.h - +/elm_default_config.x From bc5df48ffe460b54da70d95efe0b617468158908 Mon Sep 17 00:00:00 2001 From: abdulleh Ghujeh Date: Mon, 15 Apr 2019 13:48:24 +0200 Subject: [PATCH 03/80] Unreachable code Summary: Removed condition that will never be fulfilled Reviewers: ali.alzyod, bowonryu, woohyun, segfaultxavi Reviewed By: segfaultxavi Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8606 --- src/modules/evas/engines/gl_common/evas_gl_font.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/modules/evas/engines/gl_common/evas_gl_font.c b/src/modules/evas/engines/gl_common/evas_gl_font.c index 3d5d436448..b7bd643756 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_font.c +++ b/src/modules/evas/engines/gl_common/evas_gl_font.c @@ -5,7 +5,7 @@ evas_gl_font_texture_new(void *context, RGBA_Font_Glyph *fg) { Evas_Engine_GL_Context *gc = context; Evas_GL_Texture *tex; - int w, h, j, nw, fh, y; + int w, h, nw, fh, y; DATA8 *ndata, *data, *p1, *p2; if (fg->ext_dat) return fg->ext_dat; // FIXME: one engine at a time can do this :( @@ -17,8 +17,6 @@ evas_gl_font_texture_new(void *context, RGBA_Font_Glyph *fg) if (!fg->glyph_out->rle) return NULL; data = evas_common_font_glyph_uncompress(fg, &w, &h); if (!data) return NULL; - j = w; - if (j < w) j = w; // expand to 32bit (4 byte) aligned rows for texture upload nw = ((w + 3) / 4) * 4; @@ -31,7 +29,7 @@ evas_gl_font_texture_new(void *context, RGBA_Font_Glyph *fg) // else copy row by row for (y = 0; y < h; y++) { - p1 = data + (j * y); + p1 = data + (w * y); p2 = ndata + (nw * y); memcpy(p2,p1,w); } From 01f634b7db9f511f51e49b5823e20fb28243db30 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Fri, 12 Apr 2019 13:40:04 +0100 Subject: [PATCH 04/80] elm test - add tests ofr other styles for panes provided by default --- src/bin/elementary/test.c | 10 +++++++ src/bin/elementary/test_panes.c | 47 ++++++++++++++++++++++++++++++--- 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c index f81af61ada..146d7ef902 100644 --- a/src/bin/elementary/test.c +++ b/src/bin/elementary/test.c @@ -212,6 +212,11 @@ void test_menu2(void *data, Evas_Object *obj, void *event_info); void test_panel(void *data, Evas_Object *obj, void *event_info); void test_panel2(void *data, Evas_Object *obj, void *event_info); void test_panes(void *data, Evas_Object *obj, void *event_info); +void test_panes_flush(void *data, Evas_Object *obj, void *event_info); +void test_panes_left_fold(void *data, Evas_Object *obj, void *event_info); +void test_panes_right_fold(void *data, Evas_Object *obj, void *event_info); +void test_panes_up_fold(void *data, Evas_Object *obj, void *event_info); +void test_panes_down_fold(void *data, Evas_Object *obj, void *event_info); void test_panes_minsize(void *data, Evas_Object *obj, void *event_info); void test_calendar(void *data, Evas_Object *obj, void *event_info); void test_calendar2(void *data, Evas_Object *obj, void *event_info); @@ -1172,6 +1177,11 @@ add_tests: ADD_TEST(NULL, "Dividers", "Panel", test_panel); ADD_TEST(NULL, "Dividers", "Panel Scrollable", test_panel2); ADD_TEST(NULL, "Dividers", "Panes", test_panes); + ADD_TEST(NULL, "Dividers", "Panes Flush", test_panes_flush); + ADD_TEST(NULL, "Dividers", "Panes Left Fold", test_panes_left_fold); + ADD_TEST(NULL, "Dividers", "Panes Right Fold", test_panes_right_fold); + ADD_TEST(NULL, "Dividers", "Panes Up Fold", test_panes_up_fold); + ADD_TEST(NULL, "Dividers", "Panes Down Fold", test_panes_down_fold); ADD_TEST_EO(NULL, "Dividers", "Efl.Ui.Panes", test_panes_minsize); ADD_TEST_EO(NULL, "Dividers", "Efl.Ui.Panel", test_ui_panel); ADD_TEST_EO(NULL, "Dividers", "Efl.Ui.Panel Scrollable", test_ui_panel2); diff --git a/src/bin/elementary/test_panes.c b/src/bin/elementary/test_panes.c index 21eb3dcf5b..8560daa504 100644 --- a/src/bin/elementary/test_panes.c +++ b/src/bin/elementary/test_panes.c @@ -38,8 +38,8 @@ _clicked_double(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) elm_panes_content_left_size_set(obj, *size); } -void -test_panes(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +static void +_test_panes(const char *style) { Evas_Object *win, *bg, *panes, *panes_h, *bt; static double vbar_size = 0.0; @@ -56,6 +56,7 @@ test_panes(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_inf evas_object_show(bg); panes = elm_panes_add(win); + elm_object_style_set(panes, style); evas_object_size_hint_weight_set(panes, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_panes_content_left_min_size_set(panes, 100); elm_panes_content_left_size_set(panes, 0.7); @@ -76,6 +77,7 @@ test_panes(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_inf // add panes panes_h = elm_panes_add(win); + elm_object_style_set(panes_h, style); elm_panes_horizontal_set(panes_h, EINA_TRUE); elm_panes_content_right_min_size_set(panes_h, 100); elm_panes_content_right_size_set(panes_h, 0.3); @@ -102,4 +104,43 @@ test_panes(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_inf evas_object_resize(win, 320, 400); evas_object_show(win); -} \ No newline at end of file +} + +void +test_panes(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + _test_panes("default"); +} + +void +test_panes_flush(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + _test_panes("flush"); +} + +void +test_panes_left_fold(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + _test_panes("left-fold"); +} + +void +test_panes_right_fold(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + _test_panes("right-fold"); +} + +void +test_panes_up_fold(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + _test_panes("up-fold"); +} + +void +test_panes_down_fold(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + _test_panes("down-fold"); +} + + + From f218ac741ccd832fc1e6f62bca0207882c293e54 Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Mon, 15 Apr 2019 11:53:42 +0100 Subject: [PATCH 05/80] Windows : fix the definition of EAPI Summary: with autotools, EFL_BUILD was passed to the preprocessor for libraries and binaries, which was wrong. Only libraries must have EFL_BUILD defined. See T7797 for an explanation This also fix EAPI in Ecore_Getopt.g and Efl_UI.h Also note that all the wayland and drm Makefile's have not been touched Test Plan: compilation Reviewers: raster, zmike, cedric Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8602 --- m4/efl.m4 | 2 +- src/Makefile_EPhysics.am | 2 +- src/Makefile_Ecore.am | 1 + src/Makefile_Ecore_Audio.am | 2 +- src/Makefile_Ecore_Avahi.am | 2 +- src/Makefile_Ecore_Con.am | 1 + src/Makefile_Ecore_Evas.am | 4 ++ src/Makefile_Ecore_File.am | 2 +- src/Makefile_Ecore_IMF.am | 1 + src/Makefile_Ecore_IMF_Evas.am | 2 +- src/Makefile_Ecore_Input.am | 2 +- src/Makefile_Ecore_Input_Evas.am | 2 +- src/Makefile_Ecore_Ipc.am | 2 +- src/Makefile_Ecore_SDL.am | 2 +- src/Makefile_Ecore_Win32.am | 2 +- src/Makefile_Ecore_X.am | 1 + src/Makefile_Ector.am | 1 + src/Makefile_Edje.am | 2 +- src/Makefile_Eet.am | 1 + src/Makefile_Eeze.am | 1 + src/Makefile_Efl.am | 2 +- src/Makefile_Efl_Mono.am | 1 + src/Makefile_Efreet.am | 6 +-- src/Makefile_Eina.am | 7 ++-- src/Makefile_Eio.am | 2 +- src/Makefile_Eldbus.am | 1 + src/Makefile_Elementary.am | 9 +++- src/Makefile_Elocation.am | 2 +- src/Makefile_Elput.am | 1 + src/Makefile_Elua.am | 1 + src/Makefile_Embryo.am | 1 + src/Makefile_Emile.am | 1 + src/Makefile_Emotion.am | 7 ++++ src/Makefile_Eo.am | 3 +- src/Makefile_Eolian.am | 1 + src/Makefile_Ethumb.am | 2 + src/Makefile_Ethumb_Client.am | 2 +- src/Makefile_Evas.am | 43 ++++++++++++++++++-- src/Makefile_Evil.am | 2 +- src/lib/ecore/Ecore_Getopt.h | 3 ++ src/lib/elementary/Efl_Ui.h | 70 ++++++++++++++++---------------- 41 files changed, 139 insertions(+), 63 deletions(-) diff --git a/m4/efl.m4 b/m4/efl.m4 index d051155e56..a01c5b401c 100644 --- a/m4/efl.m4 +++ b/m4/efl.m4 @@ -424,7 +424,7 @@ m4_defn([UP])_LIBS=" ${m4_defn([UP])_LDFLAGS} ${EFLALL_COV_LIBS} ${EFLALL_LIBS} m4_defn([UP])_INTERNAL_LIBS="${m4_defn([UP])_INTERNAL_LIBS} ${requirements_internal_libs_[]m4_defn([DOWN])}" USE_[]m4_defn([UP])_LIBS="${m4_defn([UP])_LIBS} lib/${libdirname}/lib${libname}.la" USE_[]m4_defn([UP])_INTERNAL_LIBS="${m4_defn([UP])_INTERNAL_LIBS} lib/${libdirname}/lib${libname}.la" -m4_defn([UP])_CFLAGS="${EFL_WINDOWS_VERSION_CFLAGS} ${EFLALL_COV_CFLAGS} ${EFLALL_CFLAGS} ${m4_defn([UP])_CFLAGS} -I\$(top_srcdir)/src/lib/${libdirname} -I\$(top_builddir)/src/lib/${libdirname} -I\$(top_srcdir)/src/bindings/cxx/${libdirname} -I\$(top_builddir)/src/bindings/${libdirname} ${requirements_cflags_[]m4_defn([DOWN])} ${requirements_cflags_eflall} -DEFL_BUILD=1" +m4_defn([UP])_CFLAGS="${EFL_WINDOWS_VERSION_CFLAGS} ${EFLALL_COV_CFLAGS} ${EFLALL_CFLAGS} ${m4_defn([UP])_CFLAGS} -I\$(top_srcdir)/src/lib/${libdirname} -I\$(top_builddir)/src/lib/${libdirname} -I\$(top_srcdir)/src/bindings/cxx/${libdirname} -I\$(top_builddir)/src/bindings/${libdirname} ${requirements_cflags_[]m4_defn([DOWN])} ${requirements_cflags_eflall}" requirements_pc_[]m4_defn([DOWN])="${requirements_pc_[]m4_defn([DOWN])} ${requirements_pc_eflall}" requirements_pc_deps_[]m4_defn([DOWN])="${requirements_pc_deps_[]m4_defn([DOWN])} ${requirements_pc_deps_eflall}" diff --git a/src/Makefile_EPhysics.am b/src/Makefile_EPhysics.am index 708248a616..78d28d9f77 100644 --- a/src/Makefile_EPhysics.am +++ b/src/Makefile_EPhysics.am @@ -21,7 +21,7 @@ lib/ephysics/ephysics_quaternion.cpp \ lib/ephysics/ephysics_shape.cpp \ lib/ephysics/ephysics_world.cpp -lib_ephysics_libephysics_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EPHYSICS_CFLAGS@ +lib_ephysics_libephysics_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EPHYSICS_CFLAGS@ -DEFL_BUILD lib_ephysics_libephysics_la_LIBADD = @EPHYSICS_LIBS@ lib_ephysics_libephysics_la_DEPENDENCIES = @EPHYSICS_INTERNAL_LIBS@ lib_ephysics_libephysics_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore.am b/src/Makefile_Ecore.am index 1b83d74fa5..649dbbec28 100644 --- a/src/Makefile_Ecore.am +++ b/src/Makefile_Ecore.am @@ -207,6 +207,7 @@ lib_ecore_libecore_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_DATA_DIR=\"$(datadir)/ecore\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \ -DPACKAGE_SRC_DIR=\"$(abs_top_srcdir)\" \ +-DEFL_BUILD \ @ECORE_CFLAGS@ lib_ecore_libecore_la_LIBADD = @ECORE_LIBS@ @EVIL_LIBS@ lib_ecore_libecore_la_DEPENDENCIES = @ECORE_INTERNAL_LIBS@ diff --git a/src/Makefile_Ecore_Audio.am b/src/Makefile_Ecore_Audio.am index 330a5129e2..695879f170 100644 --- a/src/Makefile_Ecore_Audio.am +++ b/src/Makefile_Ecore_Audio.am @@ -53,7 +53,7 @@ lib/ecore_audio/ecore_audio_obj_out.c \ lib/ecore_audio/ecore_audio_obj_in_tone.c \ lib/ecore_audio/ecore_audio_private.h -lib_ecore_audio_libecore_audio_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_AUDIO_CFLAGS@ @ECORE_AUDIO_ALSA_CFLAGS@ @ECORE_AUDIO_PULSE_CFLAGS@ @ECORE_AUDIO_SNDFILE_CFLAGS@ +lib_ecore_audio_libecore_audio_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_AUDIO_CFLAGS@ @ECORE_AUDIO_ALSA_CFLAGS@ @ECORE_AUDIO_PULSE_CFLAGS@ @ECORE_AUDIO_SNDFILE_CFLAGS@ -DEFL_BUILD lib_ecore_audio_libecore_audio_la_LIBADD = @ECORE_AUDIO_LIBS@ @ECORE_AUDIO_ALSA_LIBS@ lib_ecore_audio_libecore_audio_la_DEPENDENCIES = @ECORE_AUDIO_INTERNAL_LIBS@ lib_ecore_audio_libecore_audio_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore_Avahi.am b/src/Makefile_Ecore_Avahi.am index 3dba43e6ca..0390020c78 100644 --- a/src/Makefile_Ecore_Avahi.am +++ b/src/Makefile_Ecore_Avahi.am @@ -10,7 +10,7 @@ lib/ecore_avahi/Ecore_Avahi.h lib_ecore_avahi_libecore_avahi_la_SOURCES = \ lib/ecore_avahi/ecore_avahi.c -lib_ecore_avahi_libecore_avahi_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_AVAHI_CFLAGS@ +lib_ecore_avahi_libecore_avahi_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_AVAHI_CFLAGS@ -DEFL_BUILD lib_ecore_avahi_libecore_avahi_la_LIBADD = @ECORE_AVAHI_LIBS@ lib_ecore_avahi_libecore_avahi_la_DEPENDENCIES = @ECORE_AVAHI_INTERNAL_LIBS@ lib_ecore_avahi_libecore_avahi_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore_Con.am b/src/Makefile_Ecore_Con.am index c51e38f2f4..594046b3c5 100644 --- a/src/Makefile_Ecore_Con.am +++ b/src/Makefile_Ecore_Con.am @@ -188,6 +188,7 @@ lib_ecore_con_libecore_con_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_DATA_DIR=\"$(datadir)/ecore\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \ -DPACKAGE_SRC_DIR=\"$(abs_top_srcdir)\" \ +-DEFL_BUILD \ @ECORE_CON_CFLAGS@ lib_ecore_con_libecore_con_la_LIBADD = @ECORE_CON_LIBS@ @EVIL_LIBS@ lib_ecore_con_libecore_con_la_DEPENDENCIES = @ECORE_CON_INTERNAL_LIBS@ diff --git a/src/Makefile_Ecore_Evas.am b/src/Makefile_Ecore_Evas.am index 0c3c335679..8f74f95b0b 100644 --- a/src/Makefile_Ecore_Evas.am +++ b/src/Makefile_Ecore_Evas.am @@ -34,6 +34,7 @@ lib_ecore_evas_libecore_evas_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_DATA_DIR=\"$(datadir)/ecore_evas\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \ -DPACKAGE_SRC_DIR=\"$(abs_top_srcdir)\" \ +-DEFL_BUILD \ @ECORE_EVAS_CFLAGS@ lib_ecore_evas_libecore_evas_la_LIBADD = @ECORE_EVAS_LIBS@ lib_ecore_evas_libecore_evas_la_DEPENDENCIES = @ECORE_EVAS_INTERNAL_LIBS@ @@ -83,6 +84,7 @@ $(install_ecoreevasenginexpkgLTLIBRARIES): install-libLTLIBRARIES modules_ecore_evas_engines_x_module_la_SOURCES = $(XSOURCES) modules_ecore_evas_engines_x_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @ECORE_EVAS_CFLAGS@ \ @ECORE_X_CFLAGS@ \ -I$(top_srcdir)/src/modules/evas/engines/software_x11 \ @@ -193,6 +195,7 @@ $(install_ecoreevasenginesdlpkgLTLIBRARIES): install-libLTLIBRARIES modules_ecore_evas_engines_sdl_module_la_SOURCES = $(SDLSOURCES) modules_ecore_evas_engines_sdl_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @ECORE_EVAS_CFLAGS@ \ @ECORE_SDL_CFLAGS@ \ -I$(top_srcdir)/src/modules/evas/engines/buffer \ @@ -220,6 +223,7 @@ $(install_ecoreevasengineswin32pkgLTLIBRARIES): install-libLTLIBRARIES modules_ecore_evas_engines_win32_module_la_SOURCES = $(WIN32SOURCES) modules_ecore_evas_engines_win32_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @ECORE_EVAS_CFLAGS@ \ @ECORE_WIN32_CFLAGS@ \ -I$(top_srcdir)/src/modules/evas/engines/software_ddraw \ diff --git a/src/Makefile_Ecore_File.am b/src/Makefile_Ecore_File.am index a31431508e..8f5924504f 100644 --- a/src/Makefile_Ecore_File.am +++ b/src/Makefile_Ecore_File.am @@ -27,7 +27,7 @@ lib/ecore_file/ecore_file_monitor_poll.c endif endif -lib_ecore_file_libecore_file_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_FILE_CFLAGS@ +lib_ecore_file_libecore_file_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_FILE_CFLAGS@ -DEFL_BUILD lib_ecore_file_libecore_file_la_LIBADD = @ECORE_FILE_LIBS@ lib_ecore_file_libecore_file_la_DEPENDENCIES = @ECORE_FILE_INTERNAL_LIBS@ lib_ecore_file_libecore_file_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore_IMF.am b/src/Makefile_Ecore_IMF.am index c43f2a82c1..ac099c38bb 100644 --- a/src/Makefile_Ecore_IMF.am +++ b/src/Makefile_Ecore_IMF.am @@ -22,6 +22,7 @@ lib_ecore_imf_libecore_imf_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_DATA_DIR=\"$(datadir)/ecore_imf\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \ -DPACKAGE_SRC_DIR=\"$(abs_top_srcdir)\" \ +-DEFL_BUILD \ @ECORE_IMF_CFLAGS@ lib_ecore_imf_libecore_imf_la_LIBADD = @ECORE_IMF_LIBS@ lib_ecore_imf_libecore_imf_la_DEPENDENCIES = @ECORE_IMF_INTERNAL_LIBS@ diff --git a/src/Makefile_Ecore_IMF_Evas.am b/src/Makefile_Ecore_IMF_Evas.am index abb3d57ae6..b2fd780713 100644 --- a/src/Makefile_Ecore_IMF_Evas.am +++ b/src/Makefile_Ecore_IMF_Evas.am @@ -9,7 +9,7 @@ lib_LTLIBRARIES += \ lib/ecore_imf_evas/libecore_imf_evas.la lib_ecore_imf_evas_libecore_imf_evas_la_SOURCES = lib/ecore_imf_evas/ecore_imf_evas.c -lib_ecore_imf_evas_libecore_imf_evas_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_IMF_EVAS_CFLAGS@ +lib_ecore_imf_evas_libecore_imf_evas_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_IMF_EVAS_CFLAGS@ -DEFL_BUILD lib_ecore_imf_evas_libecore_imf_evas_la_LIBADD = @ECORE_IMF_EVAS_LIBS@ lib_ecore_imf_evas_libecore_imf_evas_la_DEPENDENCIES = @ECORE_IMF_EVAS_INTERNAL_LIBS@ lib_ecore_imf_evas_libecore_imf_evas_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore_Input.am b/src/Makefile_Ecore_Input.am index a664cfba6d..0dc407bab5 100644 --- a/src/Makefile_Ecore_Input.am +++ b/src/Makefile_Ecore_Input.am @@ -15,7 +15,7 @@ lib/ecore_input/ecore_input_joystick.c \ lib/ecore_input/ecore_input_compose.h \ lib/ecore_input/ecore_input_private.h -lib_ecore_input_libecore_input_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_INPUT_CFLAGS@ +lib_ecore_input_libecore_input_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_INPUT_CFLAGS@ -DEFL_BUILD lib_ecore_input_libecore_input_la_LIBADD = @ECORE_INPUT_LIBS@ lib_ecore_input_libecore_input_la_DEPENDENCIES = @ECORE_INPUT_INTERNAL_LIBS@ lib_ecore_input_libecore_input_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore_Input_Evas.am b/src/Makefile_Ecore_Input_Evas.am index b56efc3741..23bcb92cda 100644 --- a/src/Makefile_Ecore_Input_Evas.am +++ b/src/Makefile_Ecore_Input_Evas.am @@ -12,7 +12,7 @@ lib_ecore_input_evas_libecore_input_evas_la_SOURCES = \ lib/ecore_input_evas/ecore_input_evas.c \ lib/ecore_input_evas/ecore_input_evas_private.h -lib_ecore_input_evas_libecore_input_evas_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_INPUT_EVAS_CFLAGS@ +lib_ecore_input_evas_libecore_input_evas_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_INPUT_EVAS_CFLAGS@ -DEFL_BUILD lib_ecore_input_evas_libecore_input_evas_la_LIBADD = @ECORE_INPUT_EVAS_LIBS@ lib_ecore_input_evas_libecore_input_evas_la_DEPENDENCIES = @ECORE_INPUT_EVAS_INTERNAL_LIBS@ lib_ecore_input_evas_libecore_input_evas_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore_Ipc.am b/src/Makefile_Ecore_Ipc.am index 4740b76253..0f09209f47 100644 --- a/src/Makefile_Ecore_Ipc.am +++ b/src/Makefile_Ecore_Ipc.am @@ -11,7 +11,7 @@ lib_ecore_ipc_libecore_ipc_la_SOURCES = \ lib/ecore_ipc/ecore_ipc.c \ lib/ecore_ipc/ecore_ipc_private.h -lib_ecore_ipc_libecore_ipc_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_IPC_CFLAGS@ +lib_ecore_ipc_libecore_ipc_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_IPC_CFLAGS@ -DEFL_BUILD lib_ecore_ipc_libecore_ipc_la_LIBADD = @ECORE_IPC_LIBS@ @EVIL_LIBS@ lib_ecore_ipc_libecore_ipc_la_DEPENDENCIES = @ECORE_IPC_INTERNAL_LIBS@ lib_ecore_ipc_libecore_ipc_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore_SDL.am b/src/Makefile_Ecore_SDL.am index 7262c2b324..88eec1bd10 100644 --- a/src/Makefile_Ecore_SDL.am +++ b/src/Makefile_Ecore_SDL.am @@ -13,7 +13,7 @@ lib/ecore_sdl/ecore_sdl.c \ lib/ecore_sdl/Ecore_Sdl_Keys.h \ lib/ecore_sdl/ecore_sdl_private.h -lib_ecore_sdl_libecore_sdl_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_SDL_CFLAGS@ +lib_ecore_sdl_libecore_sdl_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_SDL_CFLAGS@ -DEFL_BUILD lib_ecore_sdl_libecore_sdl_la_LIBADD = @ECORE_SDL_LIBS@ lib_ecore_sdl_libecore_sdl_la_DEPENDENCIES = @ECORE_SDL_INTERNAL_LIBS@ lib_ecore_sdl_libecore_sdl_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore_Win32.am b/src/Makefile_Ecore_Win32.am index c230a8b8f1..817eabe90b 100644 --- a/src/Makefile_Ecore_Win32.am +++ b/src/Makefile_Ecore_Win32.am @@ -28,7 +28,7 @@ lib/ecore_win32/ecore_win32_dnd_drop_source.h \ lib/ecore_win32/ecore_win32_dnd_drop_target.h \ lib/ecore_win32/ecore_win32_keysym_table.h -lib_ecore_win32_libecore_win32_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_WIN32_CFLAGS@ +lib_ecore_win32_libecore_win32_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_WIN32_CFLAGS@ -DEFL_BUILD lib_ecore_win32_libecore_win32_la_LIBADD = @ECORE_WIN32_LIBS@ lib_ecore_win32_libecore_win32_la_DEPENDENCIES = @ECORE_WIN32_INTERNAL_LIBS@ lib_ecore_win32_libecore_win32_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Ecore_X.am b/src/Makefile_Ecore_X.am index 3b0252290b..636f745d90 100644 --- a/src/Makefile_Ecore_X.am +++ b/src/Makefile_Ecore_X.am @@ -49,6 +49,7 @@ lib/ecore_x/ecore_x_private.h lib_ecore_x_libecore_x_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @ECORE_X_CFLAGS@ @ECORE_CON_CFLAGS@ \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ diff --git a/src/Makefile_Ector.am b/src/Makefile_Ector.am index 9288458fc3..52a6047067 100644 --- a/src/Makefile_Ector.am +++ b/src/Makefile_Ector.am @@ -161,6 +161,7 @@ lib_ector_libector_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/static_libs/freetype \ -I$(top_srcdir)/src/static_libs/draw \ -I$(top_srcdir)/src/static_libs/triangulator \ +-DEFL_BUILD \ @ECTOR_CFLAGS@ \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ diff --git a/src/Makefile_Edje.am b/src/Makefile_Edje.am index 916ab65b98..aa1cd787e0 100644 --- a/src/Makefile_Edje.am +++ b/src/Makefile_Edje.am @@ -127,7 +127,7 @@ static_libs/buildsystem/buildsystem.h \ static_libs/buildsystem/buildsystem_autotools.c -lib_edje_libedje_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(EDJE_COMMON_CPPFLAGS) +lib_edje_libedje_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(EDJE_COMMON_CPPFLAGS) -DEFL_BUILD lib_edje_libedje_la_LIBADD = @EDJE_LIBS@ @EDJE_LUA_LIBS@ lib_edje_libedje_la_DEPENDENCIES = @EDJE_INTERNAL_LIBS@ lib_edje_libedje_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Eet.am b/src/Makefile_Eet.am index 6724cdb4a5..3dc86a5c6e 100644 --- a/src/Makefile_Eet.am +++ b/src/Makefile_Eet.am @@ -27,6 +27,7 @@ lib_eet_libeet_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/eet\" \ +-DEFL_BUILD \ @EET_CFLAGS@ \ @NEON_CFLAGS@ lib_eet_libeet_la_LIBADD = @EET_LIBS@ @EVIL_LIBS@ diff --git a/src/Makefile_Eeze.am b/src/Makefile_Eeze.am index 2e650d8069..5f8eb02605 100644 --- a/src/Makefile_Eeze.am +++ b/src/Makefile_Eeze.am @@ -53,6 +53,7 @@ lib_eeze_libeeze_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_DATA_DIR=\"$(datadir)/eeze\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \ -DPACKAGE_SRC_DIR=\"$(abs_top_srcdir)\" \ +-DEFL_BUILD \ @EEZE_CFLAGS@ lib_eeze_libeeze_la_LIBADD = @EEZE_LIBS@ lib_eeze_libeeze_la_DEPENDENCIES = @EEZE_INTERNAL_LIBS@ diff --git a/src/Makefile_Efl.am b/src/Makefile_Efl.am index c178a7d4dc..283c8b975c 100644 --- a/src/Makefile_Efl.am +++ b/src/Makefile_Efl.am @@ -139,7 +139,7 @@ lib/efl/interfaces/efl_text_markup_util.c \ lib/efl/interfaces/efl_ui_direction_readonly.c \ $(NULL) -lib_efl_libefl_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl -I$(top_srcdir)/src/lib/efl @EFL_CFLAGS@ -DEFL_GFX_FILTER_BETA +lib_efl_libefl_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl -I$(top_srcdir)/src/lib/efl @EFL_CFLAGS@ -DEFL_GFX_FILTER_BETA -DEFL_BUILD lib_efl_libefl_la_LIBADD = @EFL_LIBS@ lib_efl_libefl_la_DEPENDENCIES = @EFL_INTERNAL_LIBS@ lib_efl_libefl_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Efl_Mono.am b/src/Makefile_Efl_Mono.am index 43f2a1c6e2..5c6d57e626 100644 --- a/src/Makefile_Efl_Mono.am +++ b/src/Makefile_Efl_Mono.am @@ -244,6 +244,7 @@ lib_efl_mono_libeflcustomexportsmono_la_SOURCES = \ lib_efl_mono_libeflcustomexportsmono_la_CPPFLAGS = \ -DEFL_BETA_API_SUPPORT \ -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @EFL_CUSTOM_EXPORTS_MONO_CFLAGS@ lib_efl_mono_libeflcustomexportsmono_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ lib_efl_mono_libeflcustomexportsmono_la_LIBADD = @EFL_CUSTOM_EXPORTS_MONO_LIBS@ diff --git a/src/Makefile_Efreet.am b/src/Makefile_Efreet.am index a8aa02ff2f..c0ad0d7b60 100644 --- a/src/Makefile_Efreet.am +++ b/src/Makefile_Efreet.am @@ -49,21 +49,21 @@ lib/efreet/efreet_cache_private.h \ static_libs/buildsystem/buildsystem.h \ static_libs/buildsystem/buildsystem_autotools.c -lib_efreet_libefreet_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(EFREET_COMMON_CPPFLAGS) +lib_efreet_libefreet_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(EFREET_COMMON_CPPFLAGS) -DEFL_BUILD lib_efreet_libefreet_la_LIBADD = @EFREET_LIBS@ @EVIL_LIBS@ lib_efreet_libefreet_la_DEPENDENCIES = @EFREET_INTERNAL_LIBS@ lib_efreet_libefreet_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ # libefreet_mime.la lib_efreet_libefreet_mime_la_SOURCES = lib/efreet/efreet_mime.c -lib_efreet_libefreet_mime_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(EFREET_COMMON_CPPFLAGS) +lib_efreet_libefreet_mime_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(EFREET_COMMON_CPPFLAGS) -DEFL_BUILD lib_efreet_libefreet_mime_la_LIBADD = @USE_EFREET_LIBS@ @EVIL_LIBS@ lib_efreet_libefreet_mime_la_DEPENDENCIES = @USE_EFREET_INTERNAL_LIBS@ lib_efreet_libefreet_mime_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ # libefreet_trash.la lib_efreet_libefreet_trash_la_SOURCES = lib/efreet/efreet_trash.c -lib_efreet_libefreet_trash_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(EFREET_COMMON_CPPFLAGS) +lib_efreet_libefreet_trash_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(EFREET_COMMON_CPPFLAGS) -DEFL_BUILD lib_efreet_libefreet_trash_la_LIBADD = @USE_EFREET_LIBS@ @EVIL_LIBS@ lib_efreet_libefreet_trash_la_DEPENDENCIES = @USE_EFREET_INTERNAL_LIBS@ lib_efreet_libefreet_trash_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Eina.am b/src/Makefile_Eina.am index c274887438..40ef392965 100644 --- a/src/Makefile_Eina.am +++ b/src/Makefile_Eina.am @@ -210,7 +210,7 @@ einampchainedpool_LTLIBRARIES = modules/eina/mp/chained_pool/chained_pool_module install_einampchainedpoolLTLIBRARIES = install-einampchainedpoolLTLIBRARIES $(install_einampchainedpoolLTLIBRARIES): install-libLTLIBRARIES -modules_eina_mp_chained_pool_chained_pool_module_la_CFLAGS = $(EINA_MODULE_COMMON_CFLAGS) +modules_eina_mp_chained_pool_chained_pool_module_la_CFLAGS = $(EINA_MODULE_COMMON_CFLAGS) -DEFL_BUILD modules_eina_mp_chained_pool_chained_pool_module_la_LIBADD = @USE_EINA_LIBS@ modules_eina_mp_chained_pool_chained_pool_module_la_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@ modules_eina_mp_chained_pool_chained_pool_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ @@ -229,7 +229,7 @@ einamponebig_LTLIBRARIES = modules/eina/mp/one_big/one_big_module.la install_einamponebigLTLIBRARIES = install-einamponebigLTLIBRARIES $(install_einamponebigLTLIBRARIES): install-libLTLIBRARIES -modules_eina_mp_one_big_one_big_module_la_CFLAGS = $(EINA_MODULE_COMMON_CFLAGS) +modules_eina_mp_one_big_one_big_module_la_CFLAGS = $(EINA_MODULE_COMMON_CFLAGS) -DEFL_BUILD modules_eina_mp_one_big_one_big_module_la_LIBADD = @USE_EINA_LIBS@ modules_eina_mp_one_big_one_big_module_la_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@ modules_eina_mp_one_big_one_big_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ @@ -248,7 +248,7 @@ einamppassthrough_LTLIBRARIES = modules/eina/mp/pass_through/pass_through_module install_einamppassthroughLTLIBRARIES = install-einamppassthroughLTLIBRARIES $(install_einamppassthroughLTLIBRARIES): install-libLTLIBRARIES -modules_eina_mp_pass_through_pass_through_module_la_CFLAGS = $(EINA_MODULE_COMMON_CFLAGS) +modules_eina_mp_pass_through_pass_through_module_la_CFLAGS = $(EINA_MODULE_COMMON_CFLAGS) -DEFL_BUILD modules_eina_mp_pass_through_pass_through_module_la_LIBADD = @USE_EINA_LIBS@ modules_eina_mp_pass_through_pass_through_module_la_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@ modules_eina_mp_pass_through_pass_through_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ @@ -262,6 +262,7 @@ lib_eina_libeina_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/eina\" \ +-DEFL_BUILD \ @VALGRIND_CFLAGS@ lib_eina_libeina_la_LIBADD = @EINA_LIBS@ @UNWIND_LIBS@ diff --git a/src/Makefile_Eio.am b/src/Makefile_Eio.am index a92f13030b..aa75c5fbcf 100644 --- a/src/Makefile_Eio.am +++ b/src/Makefile_Eio.am @@ -61,7 +61,7 @@ endif endif endif -lib_eio_libeio_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EIO_CFLAGS@ @EFL_CFLAGS@ +lib_eio_libeio_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EIO_CFLAGS@ @EFL_CFLAGS@ -DEFL_BUILD lib_eio_libeio_la_LIBADD = @EIO_LIBS@ @EFL_LIBS@ lib_eio_libeio_la_DEPENDENCIES = @EIO_INTERNAL_LIBS@ @EFL_INTERNAL_LIBS@ lib_eio_libeio_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Eldbus.am b/src/Makefile_Eldbus.am index bb786104d5..dace370ec2 100644 --- a/src/Makefile_Eldbus.am +++ b/src/Makefile_Eldbus.am @@ -84,6 +84,7 @@ lib/eldbus/eldbus_introspection.c lib_eldbus_libeldbus_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -include $(top_builddir)/config.h \ +-DEFL_BUILD \ @ELDBUS_CFLAGS@ @EFL_CFLAGS@ lib_eldbus_libeldbus_la_LIBADD = @ELDBUS_LIBS@ @EFL_LIBS@ lib_eldbus_libeldbus_la_DEPENDENCIES = @ELDBUS_INTERNAL_LIBS@ @EFL_INTERNAL_LIBS@ diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index fe0bf42c8c..f0e2b638cf 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -1243,7 +1243,7 @@ lib_elementary_libelementary_la_CPPFLAGS = \ -DLOCALE_DIR=\"$(localedir)\" \ -DICON_DIR=\"$(datadir)/icons\" \ -DELM_TOP_BUILD_DIR=\"$(top_builddir)\" \ --DELEMENTARY_BUILD \ +-DEFL_BUILD \ @ELEMENTARY_CFLAGS@ if HAVE_WINDOWS @@ -1558,6 +1558,7 @@ modules_elementary_access_output_module_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/elementary \ -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DEFL_BUILD \ @ELEMENTARY_CFLAGS@ modules_elementary_access_output_module_la_LIBADD = @USE_ELEMENTARY_LIBS@ modules_elementary_access_output_module_la_DEPENDENCIES = @USE_ELEMENTARY_INTERNAL_LIBS@ @@ -1585,6 +1586,7 @@ modules_elementary_clock_input_ctxpopup_module_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/elementary \ -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DEFL_BUILD \ @ELEMENTARY_CFLAGS@ modules_elementary_clock_input_ctxpopup_module_la_LIBADD = @USE_ELEMENTARY_LIBS@ modules_elementary_clock_input_ctxpopup_module_la_DEPENDENCIES = @USE_ELEMENTARY_INTERNAL_LIBS@ @@ -1640,6 +1642,7 @@ modules_elementary_prefs_module_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/elementary \ -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DEFL_BUILD \ @ELEMENTARY_CFLAGS@ if HAVE_WINDOWS @@ -1674,6 +1677,7 @@ modules_elementary_test_entry_module_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/elementary \ -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DEFL_BUILD \ @ELEMENTARY_CFLAGS@ modules_elementary_test_entry_module_la_LIBADD = @USE_ELEMENTARY_LIBS@ modules_elementary_test_entry_module_la_DEPENDENCIES = @USE_ELEMENTARY_INTERNAL_LIBS@ @@ -1700,6 +1704,7 @@ modules_elementary_test_map_module_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/elementary \ -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DEFL_BUILD \ @ELEMENTARY_CFLAGS@ modules_elementary_test_map_module_la_LIBADD = @USE_ELEMENTARY_LIBS@ modules_elementary_test_map_module_la_DEPENDENCIES = @USE_ELEMENTARY_INTERNAL_LIBS@ @@ -1735,6 +1740,7 @@ modules_elementary_web_none_module_la_CPPFLAGS = \ -I$(top_builddir)/src/modules/elementary/web/none \ -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DEFL_BUILD \ @ELEMENTARY_CFLAGS@ modules_elementary_web_none_module_la_LIBADD = @USE_ELEMENTARY_LIBS@ modules_elementary_web_none_module_la_DEPENDENCIES = @USE_ELEMENTARY_INTERNAL_LIBS@ @@ -1804,6 +1810,7 @@ edje_external_elementary_module_la_CPPFLAGS = \ -I$(top_builddir)/src/edje_externals \ -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DEFL_BUILD \ @ELEMENTARY_CFLAGS@ edje_external_elementary_module_la_LIBADD = @USE_ELEMENTARY_LIBS@ edje_external_elementary_module_la_DEPENDENCIES = @USE_ELEMENTARY_INTERNAL_LIBS@ diff --git a/src/Makefile_Elocation.am b/src/Makefile_Elocation.am index 292f4738be..d9c5a489a8 100644 --- a/src/Makefile_Elocation.am +++ b/src/Makefile_Elocation.am @@ -17,7 +17,7 @@ lib/elocation/gen/eldbus_geo_clue2_client.c \ lib/elocation/gen/eldbus_geo_clue2_location.c \ lib/elocation/gen/eldbus_geo_clue2_manager.c -lib_elocation_libelocation_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ELOCATION_CFLAGS@ @EFL_CFLAGS@ +lib_elocation_libelocation_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ELOCATION_CFLAGS@ @EFL_CFLAGS@ -DEFL_BUILD lib_elocation_libelocation_la_LIBADD = @ELOCATION_LIBS@ lib_elocation_libelocation_la_DEPENDENCIES = @ELOCATION_INTERNAL_LIBS@ lib_elocation_libelocation_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Elput.am b/src/Makefile_Elput.am index d2b97930ce..a3abb335b3 100644 --- a/src/Makefile_Elput.am +++ b/src/Makefile_Elput.am @@ -19,6 +19,7 @@ lib/elput/elput_private.h lib_elput_libelput_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/efl \ + -DEFL_BUILD \ @ELPUT_CFLAGS@ @EFL_CFLAGS@ \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DMODULE_ARCH=\"$(MODULE_ARCH)\" diff --git a/src/Makefile_Elua.am b/src/Makefile_Elua.am index 5b1004b884..069a33c0ef 100644 --- a/src/Makefile_Elua.am +++ b/src/Makefile_Elua.am @@ -13,6 +13,7 @@ lib_elua_libelua_la_SOURCES = \ lib/elua/cache.c lib_elua_libelua_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ELUA_CFLAGS@ \ + -DEFL_BUILD \ -DLOCALE_DIR=\"@LOCALE_DIR@\" \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/elua\" diff --git a/src/Makefile_Embryo.am b/src/Makefile_Embryo.am index f5e187c8f2..be764f4f92 100644 --- a/src/Makefile_Embryo.am +++ b/src/Makefile_Embryo.am @@ -20,6 +20,7 @@ lib_embryo_libembryo_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/embryo\" \ +-DEFL_BUILD \ @EMBRYO_CFLAGS@ lib_embryo_libembryo_la_LIBADD = @EMBRYO_LIBS@ lib_embryo_libembryo_la_DEPENDENCIES = @EMBRYO_INTERNAL_LIBS@ diff --git a/src/Makefile_Emile.am b/src/Makefile_Emile.am index 90834cfc3f..59ac7bb4e9 100644 --- a/src/Makefile_Emile.am +++ b/src/Makefile_Emile.am @@ -44,6 +44,7 @@ lib_emile_libemile_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/emile\" \ +-DEFL_BUILD \ @EMILE_CFLAGS@ \ @NEON_CFLAGS@ diff --git a/src/Makefile_Emotion.am b/src/Makefile_Emotion.am index 639557ea53..2de10651c2 100644 --- a/src/Makefile_Emotion.am +++ b/src/Makefile_Emotion.am @@ -47,6 +47,7 @@ lib_emotion_libemotion_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_DATA_DIR=\"$(datadir)/emotion\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \ -DPACKAGE_SRC_DIR=\"$(abs_top_srcdir)\" \ +-DEFL_BUILD \ @EMOTION_CFLAGS@ lib_emotion_libemotion_la_LIBADD = @EMOTION_LIBS@ lib_emotion_libemotion_la_DEPENDENCIES = @EMOTION_INTERNAL_LIBS@ @@ -74,6 +75,7 @@ $(install_emotionmodulexineLTLIBRARIES): install-libLTLIBRARIES modules_emotion_xine_module_la_SOURCES = $(EMOTION_XINE_SOURCES) modules_emotion_xine_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @EMOTION_CFLAGS@ \ @EMOTION_MODULE_XINE_CFLAGS@ modules_emotion_xine_module_la_LIBADD = \ @@ -108,6 +110,7 @@ $(install_emotionmodulegstreamerLTLIBRARIES): install-libLTLIBRARIES modules_emotion_gstreamer_module_la_SOURCES = $(EMOTION_GSTREAMER_SOURCES) modules_emotion_gstreamer_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @EMOTION_CFLAGS@ \ @EMOTION_MODULE_GSTREAMER_CFLAGS@ modules_emotion_gstreamer_module_la_LIBADD = \ @@ -146,6 +149,7 @@ $(install_emotionmodulegstreamer1LTLIBRARIES): install-libLTLIBRARIES modules_emotion_gstreamer1_module_la_SOURCES = $(EMOTION_GSTREAMER1_SOURCES) modules_emotion_gstreamer1_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @EMOTION_CFLAGS@ \ @EMOTION_MODULE_GSTREAMER1_CFLAGS@ modules_emotion_gstreamer1_module_la_LIBADD = \ @@ -175,6 +179,7 @@ $(install_emotionmodulelibvlcLTLIBRARIES): install-libLTLIBRARIES modules_emotion_libvlc_module_la_SOURCES = $(EMOTION_LIBVLC_SOURCES) modules_emotion_libvlc_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @EMOTION_CFLAGS@ \ @EMOTION_MODULE_LIBVLC_CFLAGS@ modules_emotion_libvlc_module_la_LIBADD = \ @@ -205,6 +210,7 @@ $(install_emotionmodulegenericLTLIBRARIES): install-libLTLIBRARIES modules_emotion_generic_module_la_SOURCES = $(EMOTION_GENERIC_SOURCES) modules_emotion_generic_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @EMOTION_CFLAGS@ \ @EMOTION_MODULE_GENERIC_CFLAGS@ \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ @@ -237,6 +243,7 @@ $(install_emotionedjeexternalLTLIBRARIES): install-libLTLIBRARIES edje_external_emotion_module_la_SOURCES = \ edje_external/emotion/emotion.c edje_external_emotion_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @EDJE_CFLAGS@ \ @EMOTION_CFLAGS@ \ -DPACKAGE_DATA_DIR=\"$(datadir)/emotion\" diff --git a/src/Makefile_Eo.am b/src/Makefile_Eo.am index 68a8c02f3e..19179a78c3 100644 --- a/src/Makefile_Eo.am +++ b/src/Makefile_Eo.am @@ -35,6 +35,7 @@ lib/eo/eo_private.h lib_eo_libeo_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ @EO_CFLAGS@ \ @VALGRIND_CFLAGS@ lib_eo_libeo_la_LIBADD = @EO_LIBS@ @@ -43,7 +44,7 @@ lib_eo_libeo_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ ### The Eo debug build lib_eo_libeo_dbg_la_SOURCES = $(lib_eo_libeo_la_SOURCES) -lib_eo_libeo_dbg_la_CPPFLAGS = $(lib_eo_libeo_la_CPPFLAGS) -DEO_DEBUG +lib_eo_libeo_dbg_la_CPPFLAGS = $(lib_eo_libeo_la_CPPFLAGS) -DEO_DEBUG -DEFL_BUILD lib_eo_libeo_dbg_la_LIBADD = $(lib_eo_libeo_la_LIBADD) lib_eo_libeo_dbg_la_DEPENDENCIES = $(lib_eo_libeo_la_DEPENDENCIES) lib_eo_libeo_dbg_la_LDFLAGS = $(lib_eo_libeo_la_LDFLAGS) diff --git a/src/Makefile_Eolian.am b/src/Makefile_Eolian.am index 06c7638c8e..c75394e03f 100644 --- a/src/Makefile_Eolian.am +++ b/src/Makefile_Eolian.am @@ -40,6 +40,7 @@ lib_eolian_libeolian_la_SOURCES = \ lib/eolian/eolian_aux.c lib_eolian_libeolian_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EOLIAN_CFLAGS@ \ + -DEFL_BUILD \ -DPACKAGE_DATA_DIR=\"$(datadir)/eolian\" lib_eolian_libeolian_la_LIBADD = @EOLIAN_LIBS@ diff --git a/src/Makefile_Ethumb.am b/src/Makefile_Ethumb.am index f359ef434b..6d9f0cb0ce 100644 --- a/src/Makefile_Ethumb.am +++ b/src/Makefile_Ethumb.am @@ -22,6 +22,7 @@ lib_ethumb_libethumb_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_DATA_DIR=\"$(datadir)/ethumb\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \ -DPACKAGE_SRC_DIR=\"$(abs_top_srcdir)\" \ +-DEFL_BUILD \ @ETHUMB_CFLAGS@ lib_ethumb_libethumb_la_LIBADD = @ETHUMB_LIBS@ lib_ethumb_libethumb_la_DEPENDENCIES = @ETHUMB_INTERNAL_LIBS@ @@ -46,6 +47,7 @@ modules_ethumb_emotion_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/ethumb\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \ +-DEFL_BUILD \ @EMOTION_CFLAGS@ \ @ETHUMB_CFLAGS@ modules_ethumb_emotion_module_la_LIBADD = \ diff --git a/src/Makefile_Ethumb_Client.am b/src/Makefile_Ethumb_Client.am index 6b37b34dbd..a319f5da02 100644 --- a/src/Makefile_Ethumb_Client.am +++ b/src/Makefile_Ethumb_Client.am @@ -9,7 +9,7 @@ lib/ethumb_client/Ethumb_Client.h # libethumb_client.la lib_ethumb_client_libethumb_client_la_SOURCES = lib/ethumb_client/ethumb_client.c -lib_ethumb_client_libethumb_client_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ETHUMB_CLIENT_CFLAGS@ +lib_ethumb_client_libethumb_client_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ETHUMB_CLIENT_CFLAGS@ -DEFL_BUILD lib_ethumb_client_libethumb_client_la_LIBADD = @ETHUMB_CLIENT_LIBS@ lib_ethumb_client_libethumb_client_la_DEPENDENCIES = @ETHUMB_CLIENT_INTERNAL_LIBS@ lib_ethumb_client_libethumb_client_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 3dc49ce4d5..22b36669af 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -526,6 +526,7 @@ lib_evas_libevas_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DPACKAGE_DATA_DIR=\"$(datadir)/evas\" \ -DPACKAGE_BUILD_DIR=\"$(abs_top_builddir)\" \ -DPACKAGE_SRC_DIR=\"$(abs_top_srcdir)\" \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @VALGRIND_CFLAGS@ \ @NEON_CFLAGS@ \ @@ -540,6 +541,7 @@ lib/evas/common/evas_op_blend/op_blend_master_sse3.c \ static_libs/draw/draw_main_sse2.c lib_evas_common_libevas_op_blend_sse3_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ $(lib_evas_libevas_la_CPPFLAGS) \ @SSE3_CFLAGS@ @@ -553,6 +555,7 @@ lib_evas_common_libevas_convert_rgb_32_la_SOURCES = \ lib/evas/common/evas_convert_rgb_32.c lib_evas_common_libevas_convert_rgb_32_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DEFL_BUILD \ $(lib_evas_libevas_la_CPPFLAGS) \ @NEON_CFLAGS@ @@ -788,6 +791,7 @@ modules_evas_engines_software_generic_module_la_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src/lib/evas/filters \ -I$(top_builddir)/src/lib/evas/canvas \ -I$(top_builddir)/src/modules/evas/engines/software_generic \ +-DEFL_BUILD \ @EVAS_CFLAGS@ modules_evas_engines_software_generic_module_la_LIBADD = @USE_EVAS_LIBS@ modules_evas_engines_software_generic_module_la_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ @@ -815,6 +819,7 @@ $(install_enginebufferpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_engines_buffer_module_la_SOURCES = $(BUFFER_SOURCES) modules_evas_engines_buffer_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ modules_evas_engines_buffer_module_la_LIBADD = @USE_EVAS_LIBS@ modules_evas_engines_buffer_module_la_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ @@ -1026,6 +1031,7 @@ modules_evas_engines_gl_generic_module_la_CFLAGS = \ -I$(top_builddir)/src/modules/evas/engines/gl_generic \ -I$(top_builddir)/src/modules/evas/engines/software_generic \ @evas_engine_gl_common_cflags@ \ +-DEFL_BUILD \ @EVAS_CFLAGS@ modules_evas_engines_gl_generic_module_la_LIBADD = \ modules/evas/engines/gl_common/libevas_engine_gl_common.la \ @@ -1038,7 +1044,7 @@ modules_evas_engines_gl_generic_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ modules_evas_engines_gl_generic_module_la_LIBTOOLFLAGS = --tag=disable-static if BUILD_ENGINE_GL_X11 -modules_evas_engines_gl_common_libevas_engine_gl_common_la_CPPFLAGS += @evas_engine_gl_xlib_cflags@ +modules_evas_engines_gl_common_libevas_engine_gl_common_la_CPPFLAGS += @evas_engine_gl_xlib_cflags@ -DEFL_BUILD endif if BUILD_ENGINE_WAYLAND_EGL modules_evas_engines_gl_common_libevas_engine_gl_common_la_CPPFLAGS += @evas_engine_wayland_egl_cflags@ @@ -1047,7 +1053,7 @@ if BUILD_ENGINE_GL_DRM modules_evas_engines_gl_common_libevas_engine_gl_common_la_CPPFLAGS += @evas_engine_gl_drm_cflags@ endif if BUILD_ENGINE_EGLFS -modules_evas_engines_gl_common_libevas_engine_gl_common_la_CPPFLAGS += @evas_engine_eglfs_cflags@ +modules_evas_engines_gl_common_libevas_engine_gl_common_la_CPPFLAGS += @evas_engine_eglfs_cflags@ -DEFL_BUILD endif if BUILD_ENGINE_GL_COCOA modules_evas_engines_gl_common_libevas_engine_gl_common_la_CPPFLAGS += @evas_engine_gl_cocoa_cflags@ @@ -1120,6 +1126,7 @@ modules_evas_engines_gl_sdl_module_la_SOURCES = $(GL_SDL_SOURCES) modules_evas_engines_gl_sdl_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ -I$(top_srcdir)/src/modules/evas/engines/gl_common \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_engine_gl_sdl_cflags@ modules_evas_engines_gl_sdl_module_la_LIBADD = \ @@ -1154,6 +1161,7 @@ $(install_engineglx11pkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_engines_gl_x11_module_la_SOURCES = $(GL_X11_SOURCES) modules_evas_engines_gl_x11_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_engine_gl_xlib_cflags@ modules_evas_engines_gl_x11_module_la_LIBADD = \ @@ -1199,6 +1207,7 @@ $(install_enginesoftwareddrawpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_engines_software_ddraw_module_la_SOURCES = $(SOFTWARE_DDRAW_SOURCES) modules_evas_engines_software_ddraw_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_engine_software_ddraw_cflags@ modules_evas_engines_software_ddraw_module_la_CXXFLAGS = -fno-rtti -fno-exceptions @@ -1235,6 +1244,7 @@ $(install_enginesoftwaregdipkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_engines_software_gdi_module_la_SOURCES = $(SOFTWARE_GDI_SOURCES) modules_evas_engines_software_gdi_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_engine_software_gdi_cflags@ modules_evas_engines_software_gdi_module_la_LIBADD = \ @@ -1292,7 +1302,7 @@ install_enginesoftwarex11pkgLTLIBRARIES = install-enginesoftwarex11pkgLTLIBRARIE $(install_enginesoftwarex11pkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_engines_software_x11_module_la_SOURCES = $(SOFTWARE_X11_SOURCES) -modules_evas_engines_software_x11_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(SOFTWARE_X11_CPPFLAGS) +modules_evas_engines_software_x11_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl $(SOFTWARE_X11_CPPFLAGS) -DEFL_BUILD modules_evas_engines_software_x11_module_la_LIBADD = @USE_ECORE_X_LIBS@ @USE_EVAS_LIBS@ $(SOFTWARE_X11_LIBADD) modules_evas_engines_software_x11_module_la_DEPENDENCIES = @USE_ECORE_X_INTERNAL_LIBS@ @USE_EVAS_INTERNAL_LIBS@ modules_evas_engines_software_x11_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ @@ -1476,6 +1486,7 @@ modules_evas_engines_eglfs_module_la_SOURCES = $(EGLFS_SOURCES) modules_evas_engines_eglfs_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ -I$(top_srcdir)/src/modules/evas/engines/eglfs \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @ECORE_DRM_CFLAGS@ \ @evas_engine_eglfs_cflags@ @@ -1514,6 +1525,7 @@ static_libs/vg_common/vg_common.h modules_evas_vg_loaders_svg_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ -I$(top_srcdir)/src/static_libs/vg_common \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_vg_loader_svg_cflags@ modules_evas_vg_loaders_svg_module_la_LIBADD = \ @@ -1537,6 +1549,7 @@ static_libs/vg_common/vg_common.h modules_evas_vg_savers_svg_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ -I$(top_srcdir)/src/static_libs/vg_common \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_vg_saver_svg_cflags@ modules_evas_vg_savers_svg_module_la_LIBADD = \ @@ -1565,6 +1578,7 @@ $(install_vgloadereetpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_vg_loaders_eet_module_la_SOURCES = modules/evas/vg_loaders/eet/evas_vg_load_eet.c modules_evas_vg_loaders_eet_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_vg_loader_eet_cflags@ modules_evas_vg_loaders_eet_module_la_LIBADD = \ @@ -1585,6 +1599,7 @@ $(install_vgsavereetpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_vg_savers_eet_module_la_SOURCES = modules/evas/vg_savers/eet/evas_vg_save_eet.c modules_evas_vg_savers_eet_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_vg_saver_eet_cflags@ modules_evas_vg_savers_eet_module_la_LIBADD = \ @@ -1614,6 +1629,7 @@ $(install_loaderbmppkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_bmp_module_la_SOURCES = modules/evas/image_loaders/bmp/evas_image_load_bmp.c modules_evas_image_loaders_bmp_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_bmp_cflags@ modules_evas_image_loaders_bmp_module_la_LIBADD = \ @@ -1648,6 +1664,7 @@ modules/evas/image_loaders/dds/s3tc_decoder.c \ modules/evas/image_loaders/dds/s3tc.h modules_evas_image_loaders_dds_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_dds_cflags@ modules_evas_image_loaders_dds_module_la_LIBADD = \ @@ -1676,6 +1693,7 @@ $(install_loadereetpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_eet_module_la_SOURCES = modules/evas/image_loaders/eet/evas_image_load_eet.c modules_evas_image_loaders_eet_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_eet_cflags@ modules_evas_image_loaders_eet_module_la_LIBADD = \ @@ -1704,6 +1722,7 @@ $(install_loadergenericpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_generic_module_la_SOURCES = modules/evas/image_loaders/generic/evas_image_load_generic.c modules_evas_image_loaders_generic_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_generic_cflags@ modules_evas_image_loaders_generic_module_la_LIBADD = \ @@ -1732,6 +1751,7 @@ $(install_loadergifpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_gif_module_la_SOURCES = modules/evas/image_loaders/gif/evas_image_load_gif.c modules_evas_image_loaders_gif_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_gif_cflags@ modules_evas_image_loaders_gif_module_la_LIBADD = \ @@ -1760,6 +1780,7 @@ $(install_loadericopkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_ico_module_la_SOURCES = modules/evas/image_loaders/ico/evas_image_load_ico.c modules_evas_image_loaders_ico_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_ico_cflags@ modules_evas_image_loaders_ico_module_la_LIBADD = \ @@ -1789,6 +1810,7 @@ $(install_loaderjpegpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_jpeg_module_la_SOURCES = modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c modules_evas_image_loaders_jpeg_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_jpeg_cflags@ modules_evas_image_loaders_jpeg_module_la_LIBADD = \ @@ -1808,6 +1830,7 @@ $(install_saverjpegpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_savers_jpeg_module_la_SOURCES = modules/evas/image_savers/jpeg/evas_image_save_jpeg.c modules_evas_image_savers_jpeg_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_jpeg_cflags@ modules_evas_image_savers_jpeg_module_la_LIBADD = \ @@ -1838,6 +1861,7 @@ modules_evas_image_loaders_jp2k_module_la_CPPFLAGS = \ @evas_image_loader_jp2k_cflags@ \ -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ modules_evas_image_loaders_jp2k_module_la_LIBADD = \ @USE_EVAS_LIBS@ \ @@ -1865,6 +1889,7 @@ $(install_loaderpmapspkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_pmaps_module_la_SOURCES = modules/evas/image_loaders/pmaps/evas_image_load_pmaps.c modules_evas_image_loaders_pmaps_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_pmaps_cflags@ modules_evas_image_loaders_pmaps_module_la_LIBADD = \ @@ -1893,6 +1918,7 @@ $(install_loaderpngpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_png_module_la_SOURCES = modules/evas/image_loaders/png/evas_image_load_png.c modules_evas_image_loaders_png_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_png_cflags@ modules_evas_image_loaders_png_module_la_LIBADD = \ @@ -1913,6 +1939,7 @@ $(install_saverpngpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_savers_png_module_la_SOURCES = modules/evas/image_savers/png/evas_image_save_png.c modules_evas_image_savers_png_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_png_cflags@ modules_evas_image_savers_png_module_la_LIBADD = \ @@ -1941,6 +1968,7 @@ $(install_loaderpsdpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_psd_module_la_SOURCES = modules/evas/image_loaders/psd/evas_image_load_psd.c modules_evas_image_loaders_psd_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_psd_cflags@ modules_evas_image_loaders_psd_module_la_LIBADD = \ @@ -1969,6 +1997,7 @@ $(install_loadertgapkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_tga_module_la_SOURCES = modules/evas/image_loaders/tga/evas_image_load_tga.c modules_evas_image_loaders_tga_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_tga_cflags@ modules_evas_image_loaders_tga_module_la_LIBADD = \ @@ -1997,6 +2026,7 @@ $(install_loadertiffpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_tiff_module_la_SOURCES = modules/evas/image_loaders/tiff/evas_image_load_tiff.c modules_evas_image_loaders_tiff_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_tiff_cflags@ modules_evas_image_loaders_tiff_module_la_LIBADD = \ @@ -2017,6 +2047,7 @@ $(install_savertiffpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_savers_tiff_module_la_SOURCES = modules/evas/image_savers/tiff/evas_image_save_tiff.c modules_evas_image_savers_tiff_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_tiff_cflags@ modules_evas_image_savers_tiff_module_la_LIBADD = \ @@ -2045,6 +2076,7 @@ $(install_loaderwbmppkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_wbmp_module_la_SOURCES = modules/evas/image_loaders/wbmp/evas_image_load_wbmp.c modules_evas_image_loaders_wbmp_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_wbmp_cflags@ modules_evas_image_loaders_wbmp_module_la_LIBADD = \ @@ -2073,6 +2105,7 @@ $(install_loaderwebppkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_webp_module_la_SOURCES = modules/evas/image_loaders/webp/evas_image_load_webp.c modules_evas_image_loaders_webp_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_webp_cflags@ modules_evas_image_loaders_webp_module_la_LIBADD = \ @@ -2093,6 +2126,7 @@ $(install_saverwebppkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_savers_webp_module_la_SOURCES = modules/evas/image_savers/webp/evas_image_save_webp.c modules_evas_image_savers_webp_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_webp_cflags@ modules_evas_image_savers_webp_module_la_LIBADD = \ @@ -2121,6 +2155,7 @@ $(install_loaderxpmpkgLTLIBRARIES): install-libLTLIBRARIES modules_evas_image_loaders_xpm_module_la_SOURCES = modules/evas/image_loaders/xpm/evas_image_load_xpm.c modules_evas_image_loaders_xpm_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/evas/include \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_loader_xpm_cflags@ modules_evas_image_loaders_xpm_module_la_LIBADD = \ @@ -2175,6 +2210,7 @@ modules_evas_image_loaders_tgv_module_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/static_libs/rg_etc \ -I$(top_srcdir)/src/lib/evas/ \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @NEON_CFLAGS@ if ! ENABLE_LIBLZ4 @@ -2211,6 +2247,7 @@ modules_evas_image_savers_tgv_module_la_CPPFLAGS = \ -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/static_libs/rg_etc \ -I$(top_srcdir)/src/lib/evas/ \ +-DEFL_BUILD \ @EVAS_CFLAGS@ \ @evas_image_saver_tgv_cflags@ if ! ENABLE_LIBLZ4 diff --git a/src/Makefile_Evil.am b/src/Makefile_Evil.am index c18e0eab4b..91dcc1c7f1 100644 --- a/src/Makefile_Evil.am +++ b/src/Makefile_Evil.am @@ -47,7 +47,7 @@ lib/evil/evil_util.c \ lib/evil/evil_private.h \ lib/evil/evil_fnmatch_private.h -lib_evil_libevil_la_CPPFLAGS = @EVIL_CPPFLAGS@ +lib_evil_libevil_la_CPPFLAGS = @EVIL_CPPFLAGS@ -DEFL_BUILD lib_evil_libevil_la_CFLAGS = @EVIL_CFLAGS@ @EVIL_CFLAGS_WRN@ -D__USE_MINGW_ANSI_STDIO lib_evil_libevil_la_LIBADD = @EVIL_LIBS@ lib_evil_libevil_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ diff --git a/src/lib/ecore/Ecore_Getopt.h b/src/lib/ecore/Ecore_Getopt.h index a4f188c8c2..7a038f744a 100644 --- a/src/lib/ecore/Ecore_Getopt.h +++ b/src/lib/ecore/Ecore_Getopt.h @@ -1215,4 +1215,7 @@ EAPI Eina_Bool ecore_getopt_callback_size_parse(const Ecore_Getopt *parser, con * @} */ +#undef EAPI +#define EAPI + #endif /* _ECORE_GETOPT_H */ diff --git a/src/lib/elementary/Efl_Ui.h b/src/lib/elementary/Efl_Ui.h index 22e446a998..246ebf8456 100644 --- a/src/lib/elementary/Efl_Ui.h +++ b/src/lib/elementary/Efl_Ui.h @@ -53,41 +53,6 @@ #include #include -#ifdef EAPI -# undef EAPI -#endif -#ifdef EWAPI -# undef EWAPI -#endif - -#ifdef _WIN32 -# ifdef EFL_BUILD -# ifdef DLL_EXPORT -# define EAPI __declspec(dllexport) -# else -# define EAPI -# endif -# else -# define EAPI __declspec(dllimport) -# endif -# define EAPI_WEAK -#else -# ifdef __GNUC__ -# if __GNUC__ >= 4 -# define EAPI __attribute__ ((visibility("default"))) -# define EAPI_WEAK __attribute__ ((weak)) -# else -# define EAPI -# define EAPI_WEAK -# endif -# else -# define EAPI -# define EAPI_WEAK -# endif -#endif - -#define EWAPI EAPI EAPI_WEAK - #ifdef _WIN32 # define WIN32_LEAN_AND_MEAN # include @@ -133,6 +98,41 @@ #include #endif +#ifdef EAPI +# undef EAPI +#endif +#ifdef EWAPI +# undef EWAPI +#endif + +#ifdef _WIN32 +# ifdef EFL_BUILD +# ifdef DLL_EXPORT +# define EAPI __declspec(dllexport) +# else +# define EAPI +# endif +# else +# define EAPI __declspec(dllimport) +# endif +# define EAPI_WEAK +#else +# ifdef __GNUC__ +# if __GNUC__ >= 4 +# define EAPI __attribute__ ((visibility("default"))) +# define EAPI_WEAK __attribute__ ((weak)) +# else +# define EAPI +# define EAPI_WEAK +# endif +# else +# define EAPI +# define EAPI_WEAK +# endif +#endif + +#define EWAPI EAPI EAPI_WEAK + #ifdef __cplusplus extern "C" { #endif From cff35dc9dcabb2d572337676dd40f6e169ee87da Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Mon, 15 Apr 2019 13:33:46 +0100 Subject: [PATCH 06/80] update po... --- po/ca.po | 74 ++++++++++++++++++++++++++--------------------------- po/cs.po | 74 ++++++++++++++++++++++++++--------------------------- po/da.po | 74 ++++++++++++++++++++++++++--------------------------- po/de.po | 74 ++++++++++++++++++++++++++--------------------------- po/el.po | 74 ++++++++++++++++++++++++++--------------------------- po/eo.po | 74 ++++++++++++++++++++++++++--------------------------- po/es.po | 74 ++++++++++++++++++++++++++--------------------------- po/fi.po | 74 ++++++++++++++++++++++++++--------------------------- po/fr.po | 74 ++++++++++++++++++++++++++--------------------------- po/gl.po | 74 ++++++++++++++++++++++++++--------------------------- po/hu.po | 74 ++++++++++++++++++++++++++--------------------------- po/it.po | 74 ++++++++++++++++++++++++++--------------------------- po/ja.po | 74 ++++++++++++++++++++++++++--------------------------- po/ko.po | 74 ++++++++++++++++++++++++++--------------------------- po/lt.po | 74 ++++++++++++++++++++++++++--------------------------- po/nl.po | 74 ++++++++++++++++++++++++++--------------------------- po/pl.po | 74 ++++++++++++++++++++++++++--------------------------- po/pt.po | 74 ++++++++++++++++++++++++++--------------------------- po/ru.po | 74 ++++++++++++++++++++++++++--------------------------- po/sl.po | 74 ++++++++++++++++++++++++++--------------------------- po/sr.po | 74 ++++++++++++++++++++++++++--------------------------- po/tr.po | 74 ++++++++++++++++++++++++++--------------------------- po/vi.po | 74 ++++++++++++++++++++++++++--------------------------- po/zh_CN.po | 74 ++++++++++++++++++++++++++--------------------------- 24 files changed, 888 insertions(+), 888 deletions(-) diff --git a/po/ca.po b/po/ca.po index ede2ab544a..d74907342f 100644 --- a/po/ca.po +++ b/po/ca.po @@ -4,12 +4,12 @@ # Marc Furtià i Puig , 2013. # Joan Coll , 2013. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: Elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2015-02-10 09:34+0000\n" "Last-Translator: JoanColl \n" "Language-Team: Catalan\n" @@ -240,37 +240,37 @@ msgstr "Imatges" msgid "Videos" msgstr "Vídeos" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Amunt" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Carpeta personal" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "Cerca" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "Accepta" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Cancel·la" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Estat: desactivat" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -305,15 +305,15 @@ msgstr "Enrere" msgid "Next" msgstr "Següent" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Títol finestra emergent" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Text de la finestra emergent" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -374,21 +374,21 @@ msgstr "mes del calendari" msgid "calendar year" msgstr "any del calendari" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Estat: activat" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Estat: desactivat" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Estat" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Comprova" @@ -438,7 +438,7 @@ msgstr "paleta de selecció de color" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -450,23 +450,23 @@ msgstr "selector de dia" msgid "diskselector item" msgstr "selector de disc" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Retalla" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Copia" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Enganxa" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Selecciona" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Entrada" @@ -510,20 +510,20 @@ msgstr "barra de progrés" msgid "Radio" msgstr "Opció" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Estat: Seleccionat" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Estat: No seleccionat" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Element de control del segment" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "control lliscant" @@ -551,23 +551,23 @@ msgstr "botó de decrement del spinner" msgid "spinner text" msgstr "text rotatiu" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Seleccionat" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Separador" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Té menú" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "No seleccionat" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Element de barra d'eines" diff --git a/po/cs.po b/po/cs.po index fac0a1efb4..d84b91170d 100644 --- a/po/cs.po +++ b/po/cs.po @@ -5,12 +5,12 @@ # quaker66@gmail.com # Vít Pelčák , 2011. # Tomáš Čech , 2012. -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2014-05-22 22:44+0200\n" "Last-Translator: Tomáš Čech \n" "Language-Team: Czech \n" @@ -243,37 +243,37 @@ msgstr "Obrázky" msgid "Videos" msgstr "Videa" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Nahoru" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Domů" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "OK" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Zrušit" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Stav: Zakázáno" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -308,15 +308,15 @@ msgstr "Zpět" msgid "Next" msgstr "Další" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Titulek vyskakujícího okna" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Text vyskakovacího okna" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -377,21 +377,21 @@ msgstr "kalendářní měsíc" msgid "calendar year" msgstr "kalendářní rok" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Stav: Zapnuto" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Stav: Vypnuto" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Stav" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Ověřit" @@ -441,7 +441,7 @@ msgstr "položka výběru barvy z palety" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -453,23 +453,23 @@ msgstr "položka výběru dne" msgid "diskselector item" msgstr "položka výběru disků" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Vyjmout" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopírovat" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Vložit" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Vybrat" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Vstup" @@ -513,20 +513,20 @@ msgstr "ukazatel průběhu" msgid "Radio" msgstr "Přepínač" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Stav: Vybráno" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Stav: Nevybráno" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "položka ovládání segmentu" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "šoupátko" @@ -555,23 +555,23 @@ msgstr "odečítací tlačítko spinneru" msgid "spinner text" msgstr "spinner" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Vybrané" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Oddělovač" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Má nabídku" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Nevybrané" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Položka panelu nástrojů" diff --git a/po/da.po b/po/da.po index 8635367bd3..25bbc265b3 100644 --- a/po/da.po +++ b/po/da.po @@ -2,12 +2,12 @@ # Copyright (C) 2017 Enlightenment development team # This file is distributed under the same license as the efl package. # scootergrisen, 2017-2018. -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: efl 1.21\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2018-08-09 18:38+0200\n" "Last-Translator: scootergrisen\n" "Language-Team: Danish\n" @@ -237,37 +237,37 @@ msgstr "Billeder" msgid "Videos" msgstr "Videoer" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Op" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Hjem" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "Søg" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "OK" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Annuller" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Tilstand: Deaktiveret" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "Svævemarkering" @@ -301,15 +301,15 @@ msgstr "Tilbage" msgid "Next" msgstr "Næste" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Titel til pop op" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Brødtekst til pop op" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "Besked" @@ -370,21 +370,21 @@ msgstr "kalender måned" msgid "calendar year" msgstr "kalender år" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Tilstand: Til" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Tilstand: Fra" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Tilstand" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Tilvælg" @@ -434,7 +434,7 @@ msgstr "palet-element til farvevælger" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -446,23 +446,23 @@ msgstr "dagvælger-element" msgid "diskselector item" msgstr "diskvælger-element" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Klip" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopiér" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Indsæt" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Vælg" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Indtastning" @@ -506,20 +506,20 @@ msgstr "forløbslinje" msgid "Radio" msgstr "Radio" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Tilstand: Valgt" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Tilstand: Fravalgt" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Segmentkontrol-element" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "skyder" @@ -547,23 +547,23 @@ msgstr "formindsk-knap til ruller" msgid "spinner text" msgstr "rullertekst" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Valgt" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Separator" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Har menu" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Fravalgt" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Værktøjslinje-element" diff --git a/po/de.po b/po/de.po index d195ca8eba..9a21732685 100644 --- a/po/de.po +++ b/po/de.po @@ -4,12 +4,12 @@ # Chris Leick , 2009. # Fabian Nowak , 2010. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary 0.7.0.57309\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2011-02-25 20:22+0100\n" "Last-Translator: Fabian Nowak \n" "Language-Team: German\n" @@ -241,37 +241,37 @@ msgstr "" msgid "Videos" msgstr "" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Aufwärts" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Persönlicher Ordner" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "OK" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Abbrechen" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -305,15 +305,15 @@ msgstr "" msgid "Next" msgstr "" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -374,21 +374,21 @@ msgstr "" msgid "calendar year" msgstr "" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "" @@ -438,7 +438,7 @@ msgstr "" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -450,23 +450,23 @@ msgstr "" msgid "diskselector item" msgstr "" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Ausschneiden" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopieren" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Einfügen" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Auswählen" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "" @@ -510,21 +510,21 @@ msgstr "" msgid "Radio" msgstr "" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 #, fuzzy msgid "State: Unselected" msgstr "Auswählen" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "" @@ -552,24 +552,24 @@ msgstr "" msgid "spinner text" msgstr "" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 #, fuzzy msgid "Selected" msgstr "Auswählen" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 #, fuzzy msgid "Unselected" msgstr "Auswählen" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "" diff --git a/po/el.po b/po/el.po index 315427a190..d70548b9d6 100644 --- a/po/el.po +++ b/po/el.po @@ -6,12 +6,12 @@ # Alex-P. Natsios 2012 # Efstathios Iosifidis , 2012. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2012-12-19 15:58+0200\n" "Last-Translator: Efstathios Iosifidis \n" "Language-Team: Ελληνικά, Σύγχρονα \n" @@ -244,37 +244,37 @@ msgstr "Εικόνες" msgid "Videos" msgstr "Βίντεο" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Πάνω" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Αρχική" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "Εντάξει" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Άκυρο" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Κατάσταση: Απενεργοποιημένο" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -308,15 +308,15 @@ msgstr "" msgid "Next" msgstr "" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -383,21 +383,21 @@ msgstr "Μηνας Ημερολογίου" msgid "calendar year" msgstr "αντικείμενο ημερολογίου" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Κατάσταση: Ενεργό" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Κατάσταση: Ανενεργό" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Κατάσταση" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Επιλογή" @@ -449,7 +449,7 @@ msgstr "παλέτα επιλογής χρώματος" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -462,23 +462,23 @@ msgstr "επιλογή δίσκου" msgid "diskselector item" msgstr "επιλογή δίσκου" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Αποκοπή" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Αντιγραφή" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Επικόλληση" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Επιλογή" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Καταχώριση" @@ -522,21 +522,21 @@ msgstr "Μπάρα Προόδου" msgid "Radio" msgstr "Επιλογή" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Κατάσταση: Επιλεγμένο" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 #, fuzzy msgid "State: Unselected" msgstr "Κατάσταση: Επιλεγμένο" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "μπάρα κύλισης" @@ -568,23 +568,23 @@ msgstr "κουμπί spinner προηγούμενο" msgid "spinner text" msgstr "spinner" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Επιλεγμένο" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Διαχωριστικό" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Έχει μενού" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Μη Επιλεγμένο" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Αντικείμενο μπάρας εργαλείων" diff --git a/po/eo.po b/po/eo.po index a04210d81d..6f19cab7bd 100644 --- a/po/eo.po +++ b/po/eo.po @@ -3,12 +3,12 @@ # This file is distributed under the same license as the enlightenment package. # FIRST AUTHOR , 2012. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: enlightenment\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2013-11-05 18:59+0000\n" "Last-Translator: Eliovir \n" "Language-Team: Esperanto \n" @@ -239,37 +239,37 @@ msgstr "Bildujo" msgid "Videos" msgstr "Videujo" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Supren" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Hejmo" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "Bone" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Nuligi" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Stato: malŝaltita" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -304,15 +304,15 @@ msgstr "Reen" msgid "Next" msgstr "Antaŭen" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Titolo de spruĉfenestro" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Enhava teksto de spruĉfenestro" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -373,21 +373,21 @@ msgstr "monato de kalendaro" msgid "calendar year" msgstr "jara kalendaro" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Stato: enŝaltita" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Stato: malŝaltita" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Stato" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Kontroli" @@ -437,7 +437,7 @@ msgstr "ero de elektilo de kolorpaletro" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -449,23 +449,23 @@ msgstr "" msgid "diskselector item" msgstr "ero de diskelektilo" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Eltondi" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopii" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Alglui" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Elekti" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Ero" @@ -509,20 +509,20 @@ msgstr "progresbreto" msgid "Radio" msgstr "Radiobutono" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Stato: elektita" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Stato: ne elektita" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "ŝovilo" @@ -551,23 +551,23 @@ msgstr "dekrementa sago-butono" msgid "spinner text" msgstr "sago-butono" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Elektita" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Disigilo" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Ĝi havas menuo" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Malelektita" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Ilobretero" diff --git a/po/es.po b/po/es.po index 652b0618b2..4c913ce6c4 100644 --- a/po/es.po +++ b/po/es.po @@ -4,12 +4,12 @@ # Aníbal Garrido , 2012. # Adrián Arévalo , 2015. # Roy W. Reese 2015. -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2015-05-03 18:19+0100\n" "Last-Translator: Adrián Arévalo \n" "Language-Team: Enlightenment Team\n" @@ -239,37 +239,37 @@ msgstr "Imágenes" msgid "Videos" msgstr "Vídeos" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Arriba" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Carpeta personal" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "Buscar" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "Aceptar" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Cancelar" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Estado: Desactivado" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -304,17 +304,17 @@ msgstr "Atrás" msgid "Next" msgstr "Siguiente" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 #, fuzzy msgid "Popup Title" msgstr "Nombre emergente" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 #, fuzzy msgid "Popup Body Text" msgstr "Texto emergente" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -377,21 +377,21 @@ msgid "calendar year" msgstr "año del calendario" # RR: Traducción italiana usa ativado/desactivado. No sé a que refiere la cadena. -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Estado: Conectado" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Estado: Desconectado" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Estado" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Comprobar" @@ -442,7 +442,7 @@ msgstr "Selector de color de paleta" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -454,23 +454,23 @@ msgstr "Selector de día" msgid "diskselector item" msgstr "Selector de disco" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Cortar" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Copiar" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Pegar" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Seleccionar" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Entrada" @@ -514,20 +514,20 @@ msgstr "barra de progreso" msgid "Radio" msgstr "Radio" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Estado: Seleccionado" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Estado: No seleccionado" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Elemento del control del segmento" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "deslizador" @@ -556,23 +556,23 @@ msgstr "botón de decremento del spinner" msgid "spinner text" msgstr "spinner" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Seleccionado" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Separador" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Tiene menú" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Sin seleccionar" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Elemento de la barra de herramientas" diff --git a/po/fi.po b/po/fi.po index e2f87954c8..950af55d7c 100644 --- a/po/fi.po +++ b/po/fi.po @@ -3,12 +3,12 @@ # This file is distributed under the same license as the enlightenment package. # FIRST AUTHOR , 2014. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: enlightenment\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2014-08-31 15:13+0000\n" "Last-Translator: Kai Huuhko \n" "Language-Team: Finnish \n" @@ -239,37 +239,37 @@ msgstr "Kuvat" msgid "Videos" msgstr "Videot" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Ylös" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Koti" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "OK" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Peruuta" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Tila: Pois käytöstä" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -304,15 +304,15 @@ msgstr "Takaisin" msgid "Next" msgstr "Seuraava" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Ponnahdusikkunan otsikko" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Ponnahdusikkunan leipäteksti" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -373,21 +373,21 @@ msgstr "kalenterikuukausi" msgid "calendar year" msgstr "kalenterivuosi" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Tila: päällä" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Tila: pois päältä" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Tila" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Valinta" @@ -437,7 +437,7 @@ msgstr "värivalitsimen palettikohta" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -449,23 +449,23 @@ msgstr "päivyrin kohta" msgid "diskselector item" msgstr "kiekkovalitsimen kohta" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Leikkaa" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopioi" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Liitä" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Valitse" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Syöttökenttä" @@ -509,20 +509,20 @@ msgstr "Tilanneilmaisin" msgid "Radio" msgstr "Vaihtoehto" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Tila: valittu" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Tila: valitsematon" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "liukusäädin" @@ -551,23 +551,23 @@ msgstr "Pyörövalitsimen vähennä-nappi" msgid "spinner text" msgstr "pyörövalitsin" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Valittu" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Erotin" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Valikollinen" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Valitsematon" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Työkalupalkin kohta" diff --git a/po/fr.po b/po/fr.po index a41c2f990b..2c9b3b7ade 100644 --- a/po/fr.po +++ b/po/fr.po @@ -6,12 +6,12 @@ # Jerome Pinot , 2012. # Chidambar Zinnoury , 2013. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: Elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2014-05-25 20:18+0000\n" "Last-Translator: Eliovir \n" "Language-Team: French \n" @@ -245,37 +245,37 @@ msgstr "Images" msgid "Videos" msgstr "Vidéos" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Monter" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Home" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "OK" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Annuler" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "État : désactivé" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -310,15 +310,15 @@ msgstr "Retour" msgid "Next" msgstr "Suivant" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Titre du Popup" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Corps du texte du Popup" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -379,21 +379,21 @@ msgstr "Mois du calendrier" msgid "calendar year" msgstr "Année du calendrier" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "État : activé" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "État : désactivé" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "État" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "À cocher" @@ -443,7 +443,7 @@ msgstr "élément de palette de choix de couleur" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -455,23 +455,23 @@ msgstr "élement de choix de date" msgid "diskselector item" msgstr "élément de choix de disque" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Couper" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Copier" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Coller" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Sélectionner" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Entrée" @@ -515,20 +515,20 @@ msgstr "barre de progression" msgid "Radio" msgstr "Radio" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "État : sélectionné" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "État : désélectionné" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Élément de contrôle de segment" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "curseur" @@ -557,22 +557,22 @@ msgstr "bouton fléché de décrémentation" msgid "spinner text" msgstr "bouton fléché" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Sélectionné" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Séparateur" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Possède un menu" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Désélectionné" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Élément de barre d'outils" diff --git a/po/gl.po b/po/gl.po index 3ef2282a91..da1df63d5a 100644 --- a/po/gl.po +++ b/po/gl.po @@ -2,12 +2,12 @@ # This file is put in the public domain. # Aníbal Garrido , 2012. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2014-05-24 08:39+0000\n" "Last-Translator: Kaptan \n" "Language-Team: Galician \n" @@ -238,37 +238,37 @@ msgstr "Imaxes" msgid "Videos" msgstr "Vídeos" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Arriba" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Cartafol persoal" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "Aceptar" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Cancelar" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Estado: Desactivado" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -303,15 +303,15 @@ msgstr "Atrás" msgid "Next" msgstr "Seguinte" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Título da emerxente" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Corpo de texto emerxente" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -372,21 +372,21 @@ msgstr "mes do calendario" msgid "calendar year" msgstr "ano do calendario" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Estado: Conectado" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Estado: Desconectado" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Estado" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Comprobar" @@ -436,7 +436,7 @@ msgstr "Paleta de selección de cor" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -448,23 +448,23 @@ msgstr "selector de día" msgid "diskselector item" msgstr "Selector de disco" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Cortar" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Copiar" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Pegar" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Seleccionar" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Entrada" @@ -508,20 +508,20 @@ msgstr "barra de progreso" msgid "Radio" msgstr "Radio" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Estado: Seleccionado" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Estado: Sen seleccionar" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Segmento de control" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "Barra de desprazamento" @@ -550,23 +550,23 @@ msgstr "botón de disminución" msgid "spinner text" msgstr "botón de spinner" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Seleccionado" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Separador" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Ten menú" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Non seleccionado" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Elemento da barra de ferramentas" diff --git a/po/hu.po b/po/hu.po index bde809fc70..adcd4a1649 100644 --- a/po/hu.po +++ b/po/hu.po @@ -3,12 +3,12 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary 1.8.2\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2014-01-29 15:27+0100\n" "Last-Translator: rezso \n" "Language-Team: General\n" @@ -240,37 +240,37 @@ msgstr "Képek" msgid "Videos" msgstr "Videók" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Fel" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Kezdőlap" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "OK" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Mégsem" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Állapot: letiltva" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -305,15 +305,15 @@ msgstr "Vissza" msgid "Next" msgstr "Következő" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Popup címsora" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Popup szövege" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -374,21 +374,21 @@ msgstr "naptár hónapja" msgid "calendar year" msgstr "naptár éve" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Állapot: be" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Állapot: ki" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Állapot" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Ellenőrzés" @@ -438,7 +438,7 @@ msgstr "" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -450,23 +450,23 @@ msgstr "" msgid "diskselector item" msgstr "" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Kivágás" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Másolás" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Beillesztés" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Kiválaszt" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Bejegyzés" @@ -510,20 +510,20 @@ msgstr "folyamatjelző" msgid "Radio" msgstr "Rádió" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Állapot: kijelölve" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Állapot: nincs kijelölve" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "csúszka" @@ -551,22 +551,22 @@ msgstr "" msgid "spinner text" msgstr "" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Kiválasztva" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Elválasztó" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Nincs kijelölve" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Eszköztár elem" diff --git a/po/it.po b/po/it.po index 207003c220..f861007734 100644 --- a/po/it.po +++ b/po/it.po @@ -3,12 +3,12 @@ # This file is put in the public domain. # Massimo Maiurana , 2013 # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: Elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2018-04-01 19:01+0200\n" "Last-Translator: Massimo Maiurana \n" "Language-Team: General\n" @@ -238,37 +238,37 @@ msgstr "Immagini" msgid "Videos" msgstr "Video" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Su" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Home" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "Cerca" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "OK" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Annulla" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Stato: disabilitato" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "Lista per bottone (hoversel)" @@ -302,15 +302,15 @@ msgstr "Indietro" msgid "Next" msgstr "Avanti" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Titolo popup" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Testo corpo popup" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "Allarme" @@ -371,21 +371,21 @@ msgstr "mese del calendario" msgid "calendar year" msgstr "anno del calendario" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Stato: attivo" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Stato: inattivo" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Stato" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Controllo" @@ -435,7 +435,7 @@ msgstr "oggetto palette selezione colore" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -447,23 +447,23 @@ msgstr "oggetto selettore giorno" msgid "diskselector item" msgstr "selettore disco" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Taglia" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Copia" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Incolla" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Seleziona" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Voce" @@ -507,20 +507,20 @@ msgstr "barra avanzamento" msgid "Radio" msgstr "Opzione" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Stato: selezionato" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Stato: non selezionato" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Oggetto controllo segmento" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "cursore" @@ -548,23 +548,23 @@ msgstr "bottone diminuzione spinner" msgid "spinner text" msgstr "testo spinner" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Selezionato" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Separatore" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Include menù" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Non selezionato" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Oggetto della barra strumenti" diff --git a/po/ja.po b/po/ja.po index 2bc55ffc0d..87e3e040b3 100644 --- a/po/ja.po +++ b/po/ja.po @@ -2,12 +2,12 @@ # Copyright (C) 2012 Enlightenment development team # This file is put in the public domain. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: Efl\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2012-06-24 17:10+0900\n" "Last-Translator: Daichi Fukui\n" "Language-Team: Enlightenment Team\n" @@ -238,37 +238,37 @@ msgstr "Pictures" msgid "Videos" msgstr "Videos" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -302,15 +302,15 @@ msgstr "" msgid "Next" msgstr "" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -371,21 +371,21 @@ msgstr "" msgid "calendar year" msgstr "" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "" @@ -435,7 +435,7 @@ msgstr "" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 #, fuzzy msgid "default:LTR" msgstr "default:LTR" @@ -448,23 +448,23 @@ msgstr "" msgid "diskselector item" msgstr "" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "" @@ -508,20 +508,20 @@ msgstr "" msgid "Radio" msgstr "" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "" @@ -549,22 +549,22 @@ msgstr "" msgid "spinner text" msgstr "" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "" diff --git a/po/ko.po b/po/ko.po index 0146bac6a7..027a3c5665 100644 --- a/po/ko.po +++ b/po/ko.po @@ -5,12 +5,12 @@ # Daniel Juyung Seo , 2011-2013 # Seong-ho Cho , 2012-2013 # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: Efl\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2014-11-10 01:01+0900\n" "Last-Translator: Daniel Juyung Seo \n" "Language-Team: Enlightenment Team\n" @@ -242,37 +242,37 @@ msgstr "사진" msgid "Videos" msgstr "영상" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -306,15 +306,15 @@ msgstr "" msgid "Next" msgstr "" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -375,21 +375,21 @@ msgstr "" msgid "calendar year" msgstr "" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "" @@ -439,7 +439,7 @@ msgstr "" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 #, fuzzy msgid "default:LTR" msgstr "default:LTR" @@ -452,23 +452,23 @@ msgstr "" msgid "diskselector item" msgstr "" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "" @@ -512,20 +512,20 @@ msgstr "" msgid "Radio" msgstr "" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "" @@ -553,22 +553,22 @@ msgstr "" msgid "spinner text" msgstr "" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "" diff --git a/po/lt.po b/po/lt.po index 676baf9d97..7eb730f400 100644 --- a/po/lt.po +++ b/po/lt.po @@ -3,12 +3,12 @@ # This file is distributed under the same license as the enlightenment package. # FIRST AUTHOR , 2010. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: enlightenment\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2014-02-21 22:38+0000\n" "Last-Translator: Mantas Kriaučiūnas \n" "Language-Team: Lithuanian \n" @@ -239,37 +239,37 @@ msgstr "Paveikslėliai" msgid "Videos" msgstr "Video" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "Gerai" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Atsisakyti" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -303,15 +303,15 @@ msgstr "Atgal" msgid "Next" msgstr "" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -372,21 +372,21 @@ msgstr "" msgid "calendar year" msgstr "" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Būsena" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "" @@ -436,7 +436,7 @@ msgstr "" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -448,23 +448,23 @@ msgstr "" msgid "diskselector item" msgstr "" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Iškirpti" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopijuoti" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Įdėti" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Pasirinkti" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "" @@ -508,20 +508,20 @@ msgstr "" msgid "Radio" msgstr "" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "šliaužiklis" @@ -549,22 +549,22 @@ msgstr "" msgid "spinner text" msgstr "" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Skirtukas" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Turi meniu" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Nepasirinkta(s)" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "" diff --git a/po/nl.po b/po/nl.po index e0b283aaf4..75e00ad89f 100644 --- a/po/nl.po +++ b/po/nl.po @@ -3,12 +3,12 @@ # This file is put in the public domain. # Fabian Nowak , 2011. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary 0.7.0.57309\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2011-06-19 16:41+0100\n" "Last-Translator: Heimen Stoffels \n" "Language-Team: Dutch \n" @@ -242,37 +242,37 @@ msgstr "" msgid "Videos" msgstr "" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Omhoog" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Persoonlijke map" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "OK" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Annuleren" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -306,15 +306,15 @@ msgstr "" msgid "Next" msgstr "" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -375,21 +375,21 @@ msgstr "" msgid "calendar year" msgstr "" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "" @@ -439,7 +439,7 @@ msgstr "" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -451,23 +451,23 @@ msgstr "" msgid "diskselector item" msgstr "" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Knippen" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopiëren" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Plakken" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Selecteren" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "" @@ -511,21 +511,21 @@ msgstr "" msgid "Radio" msgstr "" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 #, fuzzy msgid "State: Unselected" msgstr "Selecteren" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "" @@ -553,24 +553,24 @@ msgstr "" msgid "spinner text" msgstr "" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 #, fuzzy msgid "Selected" msgstr "Selecteren" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 #, fuzzy msgid "Unselected" msgstr "Selecteren" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "" diff --git a/po/pl.po b/po/pl.po index 3f8384899a..1cacce7e14 100644 --- a/po/pl.po +++ b/po/pl.po @@ -3,12 +3,12 @@ # This file is put in the public domain. # Konrad Makowski , 2013 # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2013-11-23 14:48+0100\n" "Last-Translator: Konrad Makowski \n" "Language-Team: General\n" @@ -241,37 +241,37 @@ msgstr "Obrazy" msgid "Videos" msgstr "Wideo" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Do góry" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Początek" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "OK" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Anuluj" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Statuj: wyłączony" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -306,15 +306,15 @@ msgstr "Cofnij" msgid "Next" msgstr "Następny" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Tytuł okienka" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Treść główna okienka" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -375,21 +375,21 @@ msgstr "kalendarz z miesiącami" msgid "calendar year" msgstr "kalendarz roczny" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Stan: włączony" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Stan: wyłączony" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Stan" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Sprawdzony" @@ -439,7 +439,7 @@ msgstr "paleta wyboru kolorów" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -451,23 +451,23 @@ msgstr "wybór dni" msgid "diskselector item" msgstr "wybór dysków" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Wytnij" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopiuj" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Wklej" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Wybór" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Pozycja" @@ -511,20 +511,20 @@ msgstr "pasek postępu" msgid "Radio" msgstr "" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Stan: wybrany" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Stan: nie wybrany" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Kontrola Segmentami" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "slajder" @@ -553,22 +553,22 @@ msgstr "przycisk zmniejszający typu spinner" msgid "spinner text" msgstr "spinner" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Wybrany" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Separator" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Posiada menu" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Nie wybrany" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Pasek narzędzi" diff --git a/po/pt.po b/po/pt.po index 3cacb45927..57711831a9 100644 --- a/po/pt.po +++ b/po/pt.po @@ -3,12 +3,12 @@ # This file is public domain. # Sérgio Marques , 2010-2014 # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: Elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2013-11-05 14:11-0000\n" "Last-Translator: Sérgio Marques \n" "Language-Team: General\n" @@ -239,37 +239,37 @@ msgstr "Imagens" msgid "Videos" msgstr "Vídeos" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Para cima" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Pasta pessoal" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "Aceitar" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Cancelar" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Estado: inativo" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -304,15 +304,15 @@ msgstr "Recuar" msgid "Next" msgstr "Avançar" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Título do alerta" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Texto do alerta" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -373,21 +373,21 @@ msgstr "mês do calendário" msgid "calendar year" msgstr "ano do calendário" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Estado: ligado" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Estado: desligado" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Estado" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Seleção" @@ -437,7 +437,7 @@ msgstr "item do seletor de cor" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -449,23 +449,23 @@ msgstr "item do seletor de dia" msgid "diskselector item" msgstr "item do seletor de disco" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Cortar" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Copiar" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Colar" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Selecionar" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Entrada" @@ -509,20 +509,20 @@ msgstr "barra de progresso" msgid "Radio" msgstr "Opção" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Estado: selecionado" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Estado: não selecionado" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Item do controlo de segmento" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "barra deslizante" @@ -551,23 +551,23 @@ msgstr "botão de diminuição do spinner" msgid "spinner text" msgstr "spinner" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Selecionado" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Separador" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Tem menu" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Não selecionado" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Item da barra de ferramentas" diff --git a/po/ru.po b/po/ru.po index 2ffd124c7f..e2de39c7f1 100644 --- a/po/ru.po +++ b/po/ru.po @@ -4,12 +4,12 @@ # Danny Moshnakov , 2012. # Igor Murzov , 2015. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary 1.11\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2015-02-07 15:16+0300\n" "Last-Translator: Игорь Мурзов \n" "Language-Team: ru \n" @@ -240,37 +240,37 @@ msgstr "Изображения" msgid "Videos" msgstr "Видео" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Вверх" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Дом" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "Поиск" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "ОК" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Отмена" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Состояние: Отключено" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -305,15 +305,15 @@ msgstr "Назад" msgid "Next" msgstr "Вперёд" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Заголовок всплывающего окна" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Текст всплывающего окна" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -374,21 +374,21 @@ msgstr "месяц календаря" msgid "calendar year" msgstr "год календаря" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Состояния: Включено" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Состояние: Выключено" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Состояние" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Флажок" @@ -438,7 +438,7 @@ msgstr "элемент выбора цвета палитры" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -450,23 +450,23 @@ msgstr "элемент выбора дня" msgid "diskselector item" msgstr "элемент диска выбора" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Вырезать" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Копировать" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Вставить" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Выбрать" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Запись" @@ -510,20 +510,20 @@ msgstr "индикатор выполнения" msgid "Radio" msgstr "Радио флажок" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Состояние: Выбрано" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Состояние: Невыбрано" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Элемент сегментного элемента управления" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "бегунок" @@ -552,23 +552,23 @@ msgstr "кнопка уменьшения счётчика" msgid "spinner text" msgstr "счётчик" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Выбрано" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Разделитель" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "С меню" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Невыбрано" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Элемент панели инструментов" diff --git a/po/sl.po b/po/sl.po index 997d0f3ab1..cd379dcaf0 100644 --- a/po/sl.po +++ b/po/sl.po @@ -3,12 +3,12 @@ # This file is put in the public domain. # r1to , 2011. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: Efl\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2016-09-21 17:00+0200\n" "Last-Translator: Renato Rener \n" "Language-Team: Enlightenment Team\n" @@ -238,37 +238,37 @@ msgstr "Slike" msgid "Videos" msgstr "Videi" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Gor" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Dom" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "Poišči" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "V redu" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Prekliči" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Stanje: onemogočeno" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -303,15 +303,15 @@ msgstr "Nazaj" msgid "Next" msgstr "Naslednje" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Naslov pojavnika" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Besedilo telesa pojavnika" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -372,21 +372,21 @@ msgstr "mesečni koledar" msgid "calendar year" msgstr "letni koledar" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Stanje: Vključeno" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Stanje: Izključeno" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Stanje" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Preveri" @@ -436,7 +436,7 @@ msgstr "izbirnik s paleto barve" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -448,23 +448,23 @@ msgstr "izbirnik dneva" msgid "diskselector item" msgstr "izbirnik diska" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Izreži" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopiraj" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Prilepi" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Izberi" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Vnos" @@ -508,20 +508,20 @@ msgstr "vrstica poteka" msgid "Radio" msgstr "Radio" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Stanje: Izbrano" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Stanje: Neizbrano" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Nadzornik segmenta" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "drsnik" @@ -549,23 +549,23 @@ msgstr "gumb za zniževanje vrtilnika" msgid "spinner text" msgstr "besedilo vrtilnika" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Izbrano" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Ločilnik" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Ima meni" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Neizbrano" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Predmet orodne vrstice" diff --git a/po/sr.po b/po/sr.po index 079ded283c..3f9e78f084 100644 --- a/po/sr.po +++ b/po/sr.po @@ -4,12 +4,12 @@ # FIRST AUTHOR , 2013. # Саша Петровић , 2013, 2015. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: а\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2015-01-31 14:06+0100\n" "Last-Translator: Саша Петровић \n" "Language-Team: српски \n" @@ -242,37 +242,37 @@ msgstr "Слике" msgid "Videos" msgstr "Видео снимци" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Горе" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Лична фасцикла" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "Тражи" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "У реду" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Откажи" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Стање: онемогућено" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -307,15 +307,15 @@ msgstr "Назад" msgid "Next" msgstr "Следеће" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Искачући наслов" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Тело искачућег текста" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -376,21 +376,21 @@ msgstr "месец календара" msgid "calendar year" msgstr "година календара" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Стање : укључен" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Стање: искључен" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Стање" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Провера" @@ -440,7 +440,7 @@ msgstr "ставка избирача палете боја" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -452,23 +452,23 @@ msgstr "ставка одабирач дана" msgid "diskselector item" msgstr "ставка одабира диска" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Исеци" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Умножи" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Прилепи" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Изаберите" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Улаз" @@ -512,20 +512,20 @@ msgstr "трака напретка" msgid "Radio" msgstr "Искључујуће дугме" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Стање: означено" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Стање: неозначено" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Ставка провере дела" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "клизач" @@ -554,23 +554,23 @@ msgstr "стрелица избирача смањења" msgid "spinner text" msgstr "избирач са стрелицама" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Изабрано" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Одвајач" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Има изборник" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Неозначено" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Ставка траке алата" diff --git a/po/tr.po b/po/tr.po index a0cc346027..362df2c208 100644 --- a/po/tr.po +++ b/po/tr.po @@ -3,12 +3,12 @@ # This file is distributed under the same license as the enlightenment package. # FIRST AUTHOR , 2010. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: enlightenment\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2014-04-18 13:35+0000\n" "Last-Translator: Ali E.İMREK \n" "Language-Team: Turkish \n" @@ -239,37 +239,37 @@ msgstr "Resimler" msgid "Videos" msgstr "Videolar" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Yukarı" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Ev" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "Tamam" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "İptal" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Durum: Kapalı" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -304,15 +304,15 @@ msgstr "Geri" msgid "Next" msgstr "Sonraki" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Pencere başlığı" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Pencere gövde metni" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -373,21 +373,21 @@ msgstr "takvim ayı" msgid "calendar year" msgstr "takvim yılı" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Durum: Açık" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Durum: Kapalı" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Durum" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Kontrol et" @@ -437,7 +437,7 @@ msgstr "renk seçici paleti öğesi" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -449,23 +449,23 @@ msgstr "gün seçici ögesi" msgid "diskselector item" msgstr "disk seçici öğesi" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Kes" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Kopyala" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Yapıştır" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Seç" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Girdi" @@ -509,20 +509,20 @@ msgstr "ilerleme çubuğu" msgid "Radio" msgstr "Radyo" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Durum: Seçili" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Bölge: Seçilmedi" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Bölüm Kontrol Öğesi" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "kaydırıcı" @@ -551,23 +551,23 @@ msgstr "değiştirici azaltma düğmesi" msgid "spinner text" msgstr "değiştirici" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Seçili" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Ayraç" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "menü" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Seçili değil" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Araç Çubuğu Öğesi" diff --git a/po/vi.po b/po/vi.po index a741f5d663..8660a5ac09 100644 --- a/po/vi.po +++ b/po/vi.po @@ -3,12 +3,12 @@ # This file is put in the public domain. # Thiep Ha , 2015. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2015-09-29 18:06+0900\n" "Last-Translator: Thiep Ha \n" "Language-Team: General\n" @@ -240,37 +240,37 @@ msgstr "Hình Ảnh" msgid "Videos" msgstr "Video" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "Trên" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "Trang Chủ" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "Tìm Kiếm" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "Đồng Ý" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "Hủy" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "Trạng Thái: Không Khả Dụng" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -305,15 +305,15 @@ msgstr "Quay Lại" msgid "Next" msgstr "Tiếp" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "Tiêu Đề Hộp Thoại" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "Văn Bản Thân Hộp Thoại" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -374,21 +374,21 @@ msgstr "Lịch Tháng" msgid "calendar year" msgstr "Lịch Năm" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "Trạng Thái: Bật" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "Trạng Thái: Tắt" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "Trạng Thái" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "Chọn" @@ -438,7 +438,7 @@ msgstr "Mục Của Bảng Chọn Màu" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -450,23 +450,23 @@ msgstr "Mục Của Bảng Chọn Ngày" msgid "diskselector item" msgstr "Mục Của Bộ Chọn Đĩa" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "Cắt" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "Sao Chép" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "Dán" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "Chọn" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "Bộ Nhập" @@ -510,20 +510,20 @@ msgstr "Thanh Trạng Thái" msgid "Radio" msgstr "Đài" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "Trạng Thái: Đã Chọn" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 msgid "State: Unselected" msgstr "Trạng Thái: Chưa Chọn" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "Mục Điều Khiển Đoạn" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "Thanh Trượt" @@ -551,23 +551,23 @@ msgstr "Nút Giảm Bộ Xoay" msgid "spinner text" msgstr "Văn Bản Bộ Xoay" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "Đã Chọn" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "Bộ Tách" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "Có Bảng Chọn" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "Không Chọn" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "Mục Của Thanh Công Cụ" diff --git a/po/zh_CN.po b/po/zh_CN.po index f18f93f2c0..a7c568a692 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -4,12 +4,12 @@ # This file is distributed under the same license as the Efl package. # Aron Xu , 2012. # -#: src/lib/elementary/elm_config.c:4306 +#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: elementary\n" "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2018-12-06 14:49+0000\n" +"POT-Creation-Date: 2019-04-15 12:03+0100\n" "PO-Revision-Date: 2012-12-22 03:55+0800\n" "Last-Translator: Aron Xu \n" "Language-Team: Chinese (simplified)\n" @@ -240,37 +240,37 @@ msgstr "图片" msgid "Videos" msgstr "视频" -#: src/lib/elementary/elc_fileselector.c:1799 +#: src/lib/elementary/elc_fileselector.c:1705 msgid "Up" msgstr "向上" -#: src/lib/elementary/elc_fileselector.c:1813 +#: src/lib/elementary/elc_fileselector.c:1719 msgid "Home" msgstr "主目录" -#: src/lib/elementary/elc_fileselector.c:1832 +#: src/lib/elementary/elc_fileselector.c:1738 msgid "Search" msgstr "" -#: src/lib/elementary/elc_fileselector.c:2104 +#: src/lib/elementary/elc_fileselector.c:2012 msgid "OK" msgstr "确定" -#: src/lib/elementary/elc_fileselector.c:2114 -#: src/lib/elementary/elm_entry.c:1739 src/lib/elementary/elm_entry.c:1764 +#: src/lib/elementary/elc_fileselector.c:2022 +#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 msgid "Cancel" msgstr "取消" -#: src/lib/elementary/elc_hoversel.c:438 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:188 src/lib/elementary/elm_gengrid.c:1523 -#: src/lib/elementary/elm_genlist.c:1764 src/lib/elementary/elm_list.c:2185 +#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 +#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 +#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 #: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2291 +#: src/lib/elementary/elm_segment_control.c:525 +#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 msgid "State: Disabled" msgstr "状态:已禁用" -#: src/lib/elementary/elc_hoversel.c:651 +#: src/lib/elementary/elc_hoversel.c:652 msgid "Hoversel" msgstr "" @@ -304,15 +304,15 @@ msgstr "" msgid "Next" msgstr "" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:992 +#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 msgid "Popup Title" msgstr "" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1068 +#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 msgid "Popup Body Text" msgstr "" -#: src/lib/elementary/elc_popup.c:1842 +#: src/lib/elementary/elc_popup.c:1836 msgid "Alert" msgstr "" @@ -378,21 +378,21 @@ msgstr "日历月" msgid "calendar year" msgstr "日历条目" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:201 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 #: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 msgid "State: On" msgstr "状态:开启" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:213 +#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 #: src/lib/elementary/efl_ui_radio.c:204 msgid "State: Off" msgstr "状态:关闭" -#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 msgid "State" msgstr "状态" -#: src/lib/elementary/efl_ui_check.c:349 +#: src/lib/elementary/efl_ui_check.c:348 msgid "Check" msgstr "检查" @@ -443,7 +443,7 @@ msgstr "色彩选择器项目" #. but if this is a right-to-left language like arabic, Farsi, #. Hebrew, etc. then change this string to be "default:RTL" #. -#: src/lib/elementary/elm_config.c:4329 +#: src/lib/elementary/elm_config.c:4158 msgid "default:LTR" msgstr "default:LTR" @@ -456,23 +456,23 @@ msgstr "磁盘选择器项目" msgid "diskselector item" msgstr "磁盘选择器项目" -#: src/lib/elementary/elm_entry.c:1729 +#: src/lib/elementary/elm_entry.c:1749 msgid "Cut" msgstr "粘贴" -#: src/lib/elementary/elm_entry.c:1732 +#: src/lib/elementary/elm_entry.c:1752 msgid "Copy" msgstr "复制" -#: src/lib/elementary/elm_entry.c:1736 src/lib/elementary/elm_entry.c:1758 +#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 msgid "Paste" msgstr "粘贴" -#: src/lib/elementary/elm_entry.c:1751 +#: src/lib/elementary/elm_entry.c:1771 msgid "Select" msgstr "选择" -#: src/lib/elementary/elm_entry.c:3910 +#: src/lib/elementary/elm_entry.c:3937 msgid "Entry" msgstr "条目" @@ -516,21 +516,21 @@ msgstr "进度条" msgid "Radio" msgstr "无线电" -#: src/lib/elementary/elm_segment_control.c:531 -#: src/lib/elementary/elm_toolbar.c:2293 +#: src/lib/elementary/elm_segment_control.c:528 +#: src/lib/elementary/elm_toolbar.c:2296 msgid "State: Selected" msgstr "状态:已选择" -#: src/lib/elementary/elm_segment_control.c:533 +#: src/lib/elementary/elm_segment_control.c:530 #, fuzzy msgid "State: Unselected" msgstr "状态:已选择" -#: src/lib/elementary/elm_segment_control.c:547 +#: src/lib/elementary/elm_segment_control.c:544 msgid "Segment Control Item" msgstr "" -#: src/lib/elementary/efl_ui_slider.c:681 +#: src/lib/elementary/efl_ui_slider.c:704 msgid "slider" msgstr "滑块" @@ -558,23 +558,23 @@ msgstr "" msgid "spinner text" msgstr "" -#: src/lib/elementary/elm_toolbar.c:1750 src/lib/elementary/elm_toolbar.c:2352 +#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 msgid "Selected" msgstr "已选择" -#: src/lib/elementary/elm_toolbar.c:2289 +#: src/lib/elementary/elm_toolbar.c:2292 msgid "Separator" msgstr "分隔符" -#: src/lib/elementary/elm_toolbar.c:2295 +#: src/lib/elementary/elm_toolbar.c:2298 msgid "Has menu" msgstr "有菜单" -#: src/lib/elementary/elm_toolbar.c:2347 +#: src/lib/elementary/elm_toolbar.c:2350 msgid "Unselected" msgstr "未选择" -#: src/lib/elementary/elm_toolbar.c:2364 +#: src/lib/elementary/elm_toolbar.c:2367 msgid "Toolbar Item" msgstr "工具栏项目" From 332d6368cdf03b2e8b7b93ecaaa665d39b1c4294 Mon Sep 17 00:00:00 2001 From: Lauro Moura Date: Mon, 15 Apr 2019 14:28:25 +0200 Subject: [PATCH 07/80] csharp: Make concrete classes internal. Summary: They don't need to be public anymore. After merging other changes we can try to actually remove them. Fixes T7801 Reviewers: segfaultxavi, vitor.sousa, felipealmeida Reviewed By: segfaultxavi, vitor.sousa Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7801 Differential Revision: https://phab.enlightenment.org/D8601 --- src/bin/eolian_mono/eolian/mono/klass.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/eolian_mono/eolian/mono/klass.hh b/src/bin/eolian_mono/eolian/mono/klass.hh index 4664446dbf..236cc69759 100644 --- a/src/bin/eolian_mono/eolian/mono/klass.hh +++ b/src/bin/eolian_mono/eolian/mono/klass.hh @@ -206,7 +206,7 @@ struct klass if(!as_generator ( documentation - << "sealed public class " << concrete_name << " : " << "\n" + << "sealed internal class " << concrete_name << " : " << "\n" << (klass_full_concrete_or_interface_name % ",") << "\n" << (inherit_classes.size() > 0 ? ", " : "" ) << interface_name << "\n" << scope_tab << *(", " << name_helpers::klass_full_concrete_or_interface_name) << "\n" From 7a552024995861e44c301ea8bd7751895e4f8ceb Mon Sep 17 00:00:00 2001 From: Xavi Artigas Date: Mon, 15 Apr 2019 14:58:23 +0200 Subject: [PATCH 08/80] mono-docs: No need no blacklist *Concrete classes anymore --- doc/docfx/filterConfig.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/doc/docfx/filterConfig.yml b/doc/docfx/filterConfig.yml index ed7f549ee7..d6ddf9d5b4 100644 --- a/doc/docfx/filterConfig.yml +++ b/doc/docfx/filterConfig.yml @@ -3,8 +3,6 @@ apiRules: uidRegex: ^.*NativeInherit$ - exclude: uidRegex: ^.*NativeStruct$ -- exclude: - uidRegex: ^.*Concrete$ - include: uidRegex: ^Efl - include: From d775b58a630d6d0fd2ac2176df91bc1142a5276f Mon Sep 17 00:00:00 2001 From: Lauro Moura Date: Mon, 15 Apr 2019 14:09:49 -0300 Subject: [PATCH 09/80] csharp: Fix free_cb calling under dotnet. Summary: dotnet's GC seems to be more agressive, showing some issues that usually do not appear when running under Mono's. This commit uses for free_cb's the same scheme we already use for regular Eo refs, using a GC handle to keep the cleaning callback alive. Reviewers: vitor.sousa, felipealmeida, woohyun Reviewed By: vitor.sousa Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8593 --- .../eolian/mono/function_pointer.hh | 2 +- src/bin/eolian_mono/eolian/mono/klass.hh | 6 +-- src/bindings/mono/efl_mono/efl_all.cs | 21 ++++++++++ src/bindings/mono/eina_mono/eina_accessor.cs | 2 +- src/bindings/mono/eina_mono/eina_array.cs | 2 +- src/bindings/mono/eina_mono/eina_binbuf.cs | 2 +- src/bindings/mono/eina_mono/eina_hash.cs | 2 +- src/bindings/mono/eina_mono/eina_inarray.cs | 2 +- src/bindings/mono/eina_mono/eina_iterator.cs | 2 +- src/bindings/mono/eina_mono/eina_strbuf.cs | 2 +- src/bindings/mono/eina_mono/eina_value.cs | 2 +- .../mono/eldbus_mono/eldbus_connection.cs | 2 +- .../mono/eldbus_mono/eldbus_message.cs | 2 +- .../mono/eldbus_mono/eldbus_object.cs | 2 +- src/bindings/mono/eldbus_mono/eldbus_proxy.cs | 2 +- src/bindings/mono/eo_mono/iwrapper.cs | 39 ++++++++++++------- 16 files changed, 61 insertions(+), 31 deletions(-) diff --git a/src/bin/eolian_mono/eolian/mono/function_pointer.hh b/src/bin/eolian_mono/eolian/mono/function_pointer.hh index e243ca744c..f724d8029e 100644 --- a/src/bin/eolian_mono/eolian/mono/function_pointer.hh +++ b/src/bin/eolian_mono/eolian/mono/function_pointer.hh @@ -84,7 +84,7 @@ struct function_pointer { << scope_tab << scope_tab << scope_tab << "}\n" << scope_tab << scope_tab << scope_tab << "else\n" << scope_tab << scope_tab << scope_tab << "{\n" - << scope_tab << scope_tab << scope_tab << scope_tab << "Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(this._cb_free_cb, this._cb_data);\n" + << scope_tab << scope_tab << scope_tab << scope_tab << "Efl.Eo.Globals.ThreadSafeFreeCbExec(this._cb_free_cb, this._cb_data);\n" << scope_tab << scope_tab << scope_tab << "}\n" << scope_tab << scope_tab << scope_tab << "this._cb_free_cb = null;\n" << scope_tab << scope_tab << scope_tab << "this._cb_data = IntPtr.Zero;\n" diff --git a/src/bin/eolian_mono/eolian/mono/klass.hh b/src/bin/eolian_mono/eolian/mono/klass.hh index 236cc69759..329a1c297f 100644 --- a/src/bin/eolian_mono/eolian/mono/klass.hh +++ b/src/bin/eolian_mono/eolian/mono/klass.hh @@ -628,12 +628,12 @@ struct klass << scope_tab << scope_tab << scope_tab << "else\n" << scope_tab << scope_tab << scope_tab << "{\n" - << scope_tab << scope_tab << scope_tab << scope_tab << "Monitor.Enter(Efl.Eo.Config.InitLock);\n" - << scope_tab << scope_tab << scope_tab << scope_tab << "if (Efl.Eo.Config.Initialized)\n" + << scope_tab << scope_tab << scope_tab << scope_tab << "Monitor.Enter(Efl.All.InitLock);\n" + << scope_tab << scope_tab << scope_tab << scope_tab << "if (Efl.All.MainLoopInitialized)\n" << scope_tab << scope_tab << scope_tab << scope_tab << "{\n" << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);\n" << scope_tab << scope_tab << scope_tab << scope_tab << "}\n\n" - << scope_tab << scope_tab << scope_tab << scope_tab << "Monitor.Exit(Efl.Eo.Config.InitLock);\n" + << scope_tab << scope_tab << scope_tab << scope_tab << "Monitor.Exit(Efl.All.InitLock);\n" << scope_tab << scope_tab << scope_tab << "}\n" << scope_tab << scope_tab << "}\n" << scope_tab << "}\n\n" diff --git a/src/bindings/mono/efl_mono/efl_all.cs b/src/bindings/mono/efl_mono/efl_all.cs index 70b9825b9d..9a49730093 100644 --- a/src/bindings/mono/efl_mono/efl_all.cs +++ b/src/bindings/mono/efl_mono/efl_all.cs @@ -43,6 +43,13 @@ public static class All { private static bool InitializedUi = false; + public static bool MainLoopInitialized { + get; + private set; + } + + public static readonly object InitLock = new object(); + public static void Init(Efl.Csharp.Components components = Efl.Csharp.Components.Basic) { Eina.Config.Init(); @@ -56,24 +63,38 @@ public static class All Efl.Ui.Config.Init(); InitializedUi = true; } + Monitor.Enter(InitLock); + MainLoopInitialized = true; + Monitor.Exit(InitLock); } /// Shutdowns all EFL subsystems. public static void Shutdown() { // Try to cleanup everything before actually shutting down. + Eina.Log.Debug("Calling GC before shutdown"); System.GC.Collect(); System.GC.WaitForPendingFinalizers(); + Monitor.Enter(InitLock); + MainLoopInitialized = false; + Monitor.Exit(InitLock); + if (InitializedUi) { + Eina.Log.Debug("Shutting down Elementary"); Efl.Ui.Config.Shutdown(); } + Eina.Log.Debug("Shutting down Eldbus"); eldbus.Config.Shutdown(); + Eina.Log.Debug("Shutting down Evas"); evas_shutdown(); + Eina.Log.Debug("Shutting down Ecore"); ecore_shutdown(); + Eina.Log.Debug("Shutting down Eo"); Efl.Eo.Config.Shutdown(); + Eina.Log.Debug("Shutting down Eina"); Eina.Config.Shutdown(); } } diff --git a/src/bindings/mono/eina_mono/eina_accessor.cs b/src/bindings/mono/eina_mono/eina_accessor.cs index d14a2039d5..bafbbd84fe 100644 --- a/src/bindings/mono/eina_mono/eina_accessor.cs +++ b/src/bindings/mono/eina_mono/eina_accessor.cs @@ -78,7 +78,7 @@ public class Accessor : IEnumerable, IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eina_accessor_free, Handle); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eina_accessor_free, Handle); } Handle = IntPtr.Zero; } diff --git a/src/bindings/mono/eina_mono/eina_array.cs b/src/bindings/mono/eina_mono/eina_array.cs index afa73e9775..e3bd852e2b 100644 --- a/src/bindings/mono/eina_mono/eina_array.cs +++ b/src/bindings/mono/eina_mono/eina_array.cs @@ -155,7 +155,7 @@ public class Array : IEnumerable, IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eina_array_free, h); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eina_array_free, h); } } } diff --git a/src/bindings/mono/eina_mono/eina_binbuf.cs b/src/bindings/mono/eina_mono/eina_binbuf.cs index 2ae04ec1bd..e5dc817085 100644 --- a/src/bindings/mono/eina_mono/eina_binbuf.cs +++ b/src/bindings/mono/eina_mono/eina_binbuf.cs @@ -109,7 +109,7 @@ public class Binbuf : IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eina_binbuf_free, Handle); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eina_binbuf_free, Handle); } } } diff --git a/src/bindings/mono/eina_mono/eina_hash.cs b/src/bindings/mono/eina_mono/eina_hash.cs index d74c96970b..8b3c1e7db5 100644 --- a/src/bindings/mono/eina_mono/eina_hash.cs +++ b/src/bindings/mono/eina_mono/eina_hash.cs @@ -193,7 +193,7 @@ public class Hash : IEnumerable>, IDi } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eina_hash_free, h); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eina_hash_free, h); } } } diff --git a/src/bindings/mono/eina_mono/eina_inarray.cs b/src/bindings/mono/eina_mono/eina_inarray.cs index 8fbd89191c..c7f3151ac1 100644 --- a/src/bindings/mono/eina_mono/eina_inarray.cs +++ b/src/bindings/mono/eina_mono/eina_inarray.cs @@ -147,7 +147,7 @@ public class Inarray : IEnumerable, IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eina_inarray_free, h); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eina_inarray_free, h); } } } diff --git a/src/bindings/mono/eina_mono/eina_iterator.cs b/src/bindings/mono/eina_mono/eina_iterator.cs index 75ca1b2785..05b5408606 100644 --- a/src/bindings/mono/eina_mono/eina_iterator.cs +++ b/src/bindings/mono/eina_mono/eina_iterator.cs @@ -79,7 +79,7 @@ public class Iterator : IEnumerable, IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eina_iterator_free, h); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eina_iterator_free, h); } } } diff --git a/src/bindings/mono/eina_mono/eina_strbuf.cs b/src/bindings/mono/eina_mono/eina_strbuf.cs index 927a21da08..a538de0fd2 100644 --- a/src/bindings/mono/eina_mono/eina_strbuf.cs +++ b/src/bindings/mono/eina_mono/eina_strbuf.cs @@ -99,7 +99,7 @@ public class Strbuf : IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eina_strbuf_free, Handle); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eina_strbuf_free, Handle); } Handle = IntPtr.Zero; diff --git a/src/bindings/mono/eina_mono/eina_value.cs b/src/bindings/mono/eina_mono/eina_value.cs index 3c9cb53ced..627c7cb343 100644 --- a/src/bindings/mono/eina_mono/eina_value.cs +++ b/src/bindings/mono/eina_mono/eina_value.cs @@ -1411,7 +1411,7 @@ public class Value : IDisposable, IComparable, IEquatable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eina_value_free, this.Handle); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eina_value_free, this.Handle); } } diff --git a/src/bindings/mono/eldbus_mono/eldbus_connection.cs b/src/bindings/mono/eldbus_mono/eldbus_connection.cs index ea8a45f7a1..f88f0ac598 100644 --- a/src/bindings/mono/eldbus_mono/eldbus_connection.cs +++ b/src/bindings/mono/eldbus_mono/eldbus_connection.cs @@ -167,7 +167,7 @@ public class Connection : IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eldbus_connection_unref, h); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eldbus_connection_unref, h); } } } diff --git a/src/bindings/mono/eldbus_mono/eldbus_message.cs b/src/bindings/mono/eldbus_mono/eldbus_message.cs index eec9167d18..559c2f10b9 100644 --- a/src/bindings/mono/eldbus_mono/eldbus_message.cs +++ b/src/bindings/mono/eldbus_mono/eldbus_message.cs @@ -236,7 +236,7 @@ public class Message : IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eldbus_message_unref, h); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eldbus_message_unref, h); } } } diff --git a/src/bindings/mono/eldbus_mono/eldbus_object.cs b/src/bindings/mono/eldbus_mono/eldbus_object.cs index 136e8407ac..682fda6565 100644 --- a/src/bindings/mono/eldbus_mono/eldbus_object.cs +++ b/src/bindings/mono/eldbus_mono/eldbus_object.cs @@ -158,7 +158,7 @@ public class Object : System.IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eldbus_object_unref, h); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eldbus_object_unref, h); } } } diff --git a/src/bindings/mono/eldbus_mono/eldbus_proxy.cs b/src/bindings/mono/eldbus_mono/eldbus_proxy.cs index c8ac4d265a..f5eec40d43 100644 --- a/src/bindings/mono/eldbus_mono/eldbus_proxy.cs +++ b/src/bindings/mono/eldbus_mono/eldbus_proxy.cs @@ -117,7 +117,7 @@ public class Proxy : IDisposable } else { - Efl.Eo.Globals.efl_mono_thread_safe_free_cb_exec(eldbus_proxy_unref, h); + Efl.Eo.Globals.ThreadSafeFreeCbExec(eldbus_proxy_unref, h); } } } diff --git a/src/bindings/mono/eo_mono/iwrapper.cs b/src/bindings/mono/eo_mono/iwrapper.cs index 4f4181d244..503b71ad28 100644 --- a/src/bindings/mono/eo_mono/iwrapper.cs +++ b/src/bindings/mono/eo_mono/iwrapper.cs @@ -77,7 +77,7 @@ public class Globals efl_mono_thread_safe_efl_unref(IntPtr eo); [DllImport(efl.Libs.CustomExports)] public static extern void - efl_mono_thread_safe_free_cb_exec(EinaFreeCb free_cb, IntPtr cb_data); + efl_mono_thread_safe_free_cb_exec(IntPtr free_cb, IntPtr cb_data); [DllImport(efl.Libs.Eo)] public static extern IntPtr efl_class_name_get(IntPtr eo); @@ -653,6 +653,7 @@ public class Globals return ret; } + private static Efl.FreeGCHandleCb FreeGCHandleCallbackDelegate = new Efl.FreeGCHandleCb(FreeGCHandleCallback); public static void FreeGCHandleCallback(IntPtr gcHandlePtr) { try @@ -667,6 +668,7 @@ public class Globals } } + private static Efl.RemoveEventsCb RemoveEventsCallbackDelegate = new Efl.RemoveEventsCb(RemoveEventsCallback); public static void RemoveEventsCallback(IntPtr obj, IntPtr gcHandlePtr) { try @@ -696,7 +698,27 @@ public class Globals public static void SetNativeDisposeCallbacks() { - efl_mono_gchandle_callbacks_set(FreeGCHandleCallback, RemoveEventsCallback); + efl_mono_gchandle_callbacks_set(FreeGCHandleCallbackDelegate, RemoveEventsCallbackDelegate); + } + + public static void ThreadSafeFreeCbExec(EinaFreeCb cbFreeCb, IntPtr cbData) + { + EinaFreeCb cb = (IntPtr gcHandlePtr) => { + cbFreeCb(cbData); + GCHandle gcHandle = GCHandle.FromIntPtr(gcHandlePtr); + gcHandle.Free(); + }; + + Monitor.Enter(Efl.All.InitLock); + if (Efl.All.MainLoopInitialized) + { + IntPtr cbPtr = Marshal.GetFunctionPointerForDelegate(cb); + var handle = GCHandle.Alloc(cb); + var handlePtr = GCHandle.ToIntPtr(handle); + + efl_mono_thread_safe_free_cb_exec(cbPtr, handlePtr); + } + Monitor.Exit(Efl.All.InitLock); } } // Globals @@ -704,27 +726,14 @@ public class Globals public static class Config { - public static bool Initialized { - get; - private set; - } - - public static readonly object InitLock = new object(); - public static void Init() { Globals.efl_object_init(); - Monitor.Enter(InitLock); - Initialized = true; - Monitor.Exit(InitLock); Globals.SetNativeDisposeCallbacks(); } public static void Shutdown() { - Monitor.Enter(InitLock); - Initialized = false; - Monitor.Exit(InitLock); Globals.efl_object_shutdown(); } } From b6529a65c6879afab39e8e2af098fbedd8971ee8 Mon Sep 17 00:00:00 2001 From: Lauro Moura Date: Mon, 15 Apr 2019 15:29:08 -0300 Subject: [PATCH 10/80] csharp: Rename MarshalTest to MarshalEo Summary: To better reflect its intent Reviewers: segfaultxavi, vitor.sousa, felipealmeida Reviewed By: vitor.sousa Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8607 --- .../eolian/mono/marshall_annotation.hh | 4 ++-- src/bindings/mono/eo_mono/iwrapper.cs | 22 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/bin/eolian_mono/eolian/mono/marshall_annotation.hh b/src/bin/eolian_mono/eolian/mono/marshall_annotation.hh index 4159b6a952..296b59c04c 100644 --- a/src/bin/eolian_mono/eolian/mono/marshall_annotation.hh +++ b/src/bin/eolian_mono/eolian/mono/marshall_annotation.hh @@ -151,8 +151,8 @@ struct marshall_annotation_visitor_generate name = "Efl.Eo.MarshalEflClass"; else { - auto own = klass_name.base_qualifier & qualifier_info::is_own ? "OwnTag" : "NonOwnTag"; - name = "Efl.Eo.MarshalTest<" + name + ", Efl.Eo." + own + ">"; + std::string own = klass_name.base_qualifier & qualifier_info::is_own ? "OwnTag" : "NonOwnTag"; + name = "Efl.Eo.MarshalEo"; } return as_generator( diff --git a/src/bindings/mono/eo_mono/iwrapper.cs b/src/bindings/mono/eo_mono/iwrapper.cs index 503b71ad28..a410a091bb 100644 --- a/src/bindings/mono/eo_mono/iwrapper.cs +++ b/src/bindings/mono/eo_mono/iwrapper.cs @@ -971,37 +971,37 @@ public class NonOwnTag : IOwnershipTag { } -public class MarshalTest : ICustomMarshaler +public class MarshalEo : ICustomMarshaler where U : IOwnershipTag { public static ICustomMarshaler GetInstance(string cookie) { - Eina.Log.Debug("MarshalTest.GetInstace cookie " + cookie); - return new MarshalTest(); + Eina.Log.Debug("MarshalEo.GetInstace cookie " + cookie); + return new MarshalEo(); } public void CleanUpManagedData(object ManagedObj) { - //Eina.Log.Warning("MarshalTest.CleanUpManagedData not implemented"); + //Eina.Log.Warning("MarshalEo.CleanUpManagedData not implemented"); //throw new NotImplementedException(); } public void CleanUpNativeData(IntPtr pNativeData) { - //Eina.Log.Warning("MarshalTest.CleanUpNativeData not implemented"); + //Eina.Log.Warning("MarshalEo.CleanUpNativeData not implemented"); //throw new NotImplementedException(); } public int GetNativeDataSize() { - Eina.Log.Debug("MarshalTest.GetNativeDataSize"); + Eina.Log.Debug("MarshalEo.GetNativeDataSize"); return 0; //return 8; } public IntPtr MarshalManagedToNative(object ManagedObj) { - Eina.Log.Debug("MarshalTest.MarshallManagedToNative"); + Eina.Log.Debug("MarshalEo.MarshallManagedToNative"); if (ManagedObj == null) { @@ -1028,7 +1028,7 @@ public class MarshalEflClass : ICustomMarshaler { public static ICustomMarshaler GetInstance(string cookie) { - Eina.Log.Debug("MarshalTest.GetInstance cookie " + cookie); + Eina.Log.Debug("MarshalEflClass.GetInstance cookie " + cookie); return new MarshalEflClass(); } @@ -1042,13 +1042,13 @@ public class MarshalEflClass : ICustomMarshaler public int GetNativeDataSize() { - Eina.Log.Debug("MarshalTest.GetNativeDataSize"); + Eina.Log.Debug("MarshalEflClass.GetNativeDataSize"); return 0; } public IntPtr MarshalManagedToNative(object ManagedObj) { - Eina.Log.Debug("MarshalTest.MarshallManagedToNative"); + Eina.Log.Debug("MarshalEflClass.MarshallManagedToNative"); if (ManagedObj == null) { return IntPtr.Zero; @@ -1060,7 +1060,7 @@ public class MarshalEflClass : ICustomMarshaler public object MarshalNativeToManaged(IntPtr pNativeData) { - Eina.Log.Debug("MarshalTest.MarshalNativeToManaged"); + Eina.Log.Debug("MarshalEflClass.MarshalNativeToManaged"); if (pNativeData == IntPtr.Zero) { return null; From 1dd25a9238c7fe65037740821f9d2b7641bc74fd Mon Sep 17 00:00:00 2001 From: Lauro Moura Date: Mon, 15 Apr 2019 15:45:40 -0300 Subject: [PATCH 11/80] csharp: Remove unused variable `methods` warning. Summary: Only generate it if there was at least one method registered. Reviewers: vitor.sousa, felipealmeida Reviewed By: vitor.sousa Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8608 --- src/bin/eolian_mono/eolian/mono/klass.hh | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/bin/eolian_mono/eolian/mono/klass.hh b/src/bin/eolian_mono/eolian/mono/klass.hh index 329a1c297f..fd4c629ffd 100644 --- a/src/bin/eolian_mono/eolian/mono/klass.hh +++ b/src/bin/eolian_mono/eolian/mono/klass.hh @@ -362,6 +362,7 @@ struct klass context); auto native_inherit_name = name_helpers::klass_native_inherit_name(cls); auto inherit_name = name_helpers::klass_inherit_name(cls); + auto implementable_methods = helpers::get_all_implementable_methods(cls); std::string base_name; if(!root) { @@ -377,14 +378,25 @@ struct klass << scope_tab << "public override System.Collections.Generic.List GetEoOps(System.Type type)\n" << scope_tab << "{\n" << scope_tab << scope_tab << "var descs = new System.Collections.Generic.List();\n" - << scope_tab << scope_tab << "var methods = Efl.Eo.Globals.GetUserMethods(type);\n" ) .generate(sink, attributes::unused, inative_cxt)) return false; // Native wrapper registration + // We write them first to a temporary function as the implementable function list may contain + // only non-registrable methods like class functions, leading to unused `methods` variable. + std::string tmp_registration; if(!as_generator(*(function_registration(cls))) - .generate(sink, helpers::get_all_implementable_methods(cls), inative_cxt)) return false; + .generate(std::back_inserter(tmp_registration), implementable_methods, inative_cxt)) + return false; + + if (tmp_registration.find("methods") != std::string::npos) + if (!as_generator( + scope_tab << scope_tab << "var methods = Efl.Eo.Globals.GetUserMethods(type);\n" + << tmp_registration + ).generate(sink, attributes::unused, inative_cxt)) + return false; + if(!root) if(!as_generator(scope_tab << scope_tab << "descs.AddRange(base.GetEoOps(type));\n").generate(sink, attributes::unused, inative_cxt)) @@ -415,7 +427,7 @@ struct klass // Native method definitions if(!as_generator(*(native_function_definition(cls))) - .generate(sink, helpers::get_all_implementable_methods(cls), inative_cxt)) return false; + .generate(sink, implementable_methods, inative_cxt)) return false; if(!as_generator("}\n").generate(sink, attributes::unused, inative_cxt)) return false; } From 9e29b69c2a0c7a0ee1141b2a322f4a1e301625aa Mon Sep 17 00:00:00 2001 From: Lauro Moura Date: Mon, 15 Apr 2019 15:58:30 -0300 Subject: [PATCH 12/80] csharp: Remove warning about clashing GetType() methods Summary: This changes the naming scheme to replace `GetType`/`SetType` methods with `GetType`/`SetType`. Like `GetGestureType`. Avoids cs compiler complaining of clashing with `System.Object.GetType`. Fixes T7727 Reviewers: segfaultxavi, felipealmeida, vitor.sousa Reviewed By: vitor.sousa Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7727 Differential Revision: https://phab.enlightenment.org/D8609 --- .../eolian_mono/eolian/mono/documentation.hh | 10 +++++--- .../eolian/mono/function_definition.hh | 4 +-- .../eolian_mono/eolian/mono/name_helpers.hh | 25 ++++++++++++++++--- 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/src/bin/eolian_mono/eolian/mono/documentation.hh b/src/bin/eolian_mono/eolian/mono/documentation.hh index 1cea16e9e8..9646fd314f 100644 --- a/src/bin/eolian_mono/eolian/mono/documentation.hh +++ b/src/bin/eolian_mono/eolian/mono/documentation.hh @@ -64,6 +64,10 @@ struct documentation_generator ::Eolian_Function_Type ftype = ::eolian_function_type_get(function); const char* eo_name = ::eolian_function_name_get(function); std::string name = object_ref_conversion(klass); + + // Klass is needed to check the property naming rulles + attributes::klass_def klass_d((const ::Eolian_Class *)klass, eolian_object_unit_get(klass)); + switch(ftype) { case ::EOLIAN_METHOD: @@ -75,17 +79,17 @@ struct documentation_generator break; case ::EOLIAN_PROP_SET: name += ".Set"; - name += name_helpers::property_managed_name(eo_name); + name += name_helpers::property_managed_name(klass_d, eo_name); break; case ::EOLIAN_PROP_GET: name += ".Get"; - name += name_helpers::property_managed_name(eo_name); + name += name_helpers::property_managed_name(klass_d, eo_name); break; case ::EOLIAN_PROPERTY: { int getter_params = property_num_parameters(function, ::EOLIAN_PROP_GET); int setter_params = property_num_parameters(function, ::EOLIAN_PROP_SET); - std::string short_name = name_helpers::property_managed_name(eo_name); + std::string short_name = name_helpers::property_managed_name(klass_d, eo_name); bool blacklisted = blacklist::is_property_blacklisted(name + "." + short_name); // EO properties with keys, with more than one value, or blacklisted, are not // converted into C# properties. diff --git a/src/bin/eolian_mono/eolian/mono/function_definition.hh b/src/bin/eolian_mono/eolian/mono/function_definition.hh index 3abf82fe11..23025480c0 100644 --- a/src/bin/eolian_mono/eolian/mono/function_definition.hh +++ b/src/bin/eolian_mono/eolian/mono/function_definition.hh @@ -267,12 +267,12 @@ struct property_wrapper_definition_generator return false; if (property.getter.is_engaged()) - if (!as_generator(scope_tab << scope_tab << "get " << (interface ? ";" : "{ return Get" + managed_name + "(); }") << "\n" + if (!as_generator(scope_tab << scope_tab << "get " << (interface ? ";" : "{ return " + name_helpers::managed_method_name(*property.getter) + "(); }") << "\n" ).generate(sink, attributes::unused, context)) return false; if (property.setter.is_engaged()) - if (!as_generator(scope_tab << scope_tab << "set " << (interface ? ";" : "{ Set" + managed_name + "(" + dir_mod + "value); }") << "\n" + if (!as_generator(scope_tab << scope_tab << "set " << (interface ? ";" : "{ " + name_helpers::managed_method_name(*property.setter) + "(" + dir_mod + "value); }") << "\n" ).generate(sink, attributes::unused, context)) return false; diff --git a/src/bin/eolian_mono/eolian/mono/name_helpers.hh b/src/bin/eolian_mono/eolian/mono/name_helpers.hh index 2ff2b47e1d..6e913556a2 100644 --- a/src/bin/eolian_mono/eolian/mono/name_helpers.hh +++ b/src/bin/eolian_mono/eolian/mono/name_helpers.hh @@ -38,6 +38,10 @@ inline bool is_equal(std::string const& lhs, std::string const& rhs) } } +// Forward declarations +template +inline std::string klass_concrete_or_interface_name(T const& klass); + inline std::string identity(std::string const& str) { return str; @@ -184,6 +188,12 @@ inline std::string managed_method_name(std::string const& klass, std::string con if (candidate == klass) candidate = "Do" + candidate; + // Avoid clashing with System.Object.GetType + if (candidate == "GetType" || candidate == "SetType") + { + candidate.insert(3, klass); + } + return candidate; } @@ -252,17 +262,26 @@ inline std::string to_field_name(std::string const& in) return utils::capitalize(in); } -inline std::string property_managed_name(const std::string name) + + +template +inline std::string property_managed_name(T const& klass, std::string const& name) { auto names = utils::split(name, '_'); // No need to escape keyword here as it will be capitalized and already // namespaced inside the owner class. - return utils::to_pascal_case(names); + auto managed_name = utils::to_pascal_case(names); + auto managed_klass_name = klass_concrete_or_interface_name(klass); + + if (managed_name == "Type") + managed_name = managed_klass_name + managed_name; + + return managed_name; } inline std::string property_managed_name(attributes::property_def const& property) { - return property_managed_name(property.name); + return property_managed_name(property.klass, property.name); } inline std::string managed_part_name(attributes::part_def const& part) From cacbd9e58d52c9dce1a0e7248b58f69cfdb4515b Mon Sep 17 00:00:00 2001 From: Lauro Moura Date: Mon, 15 Apr 2019 19:16:43 -0300 Subject: [PATCH 13/80] cxx: Fix eldbus meta include name Summary: It should not conflict with Eldbus_Model header Fixes T7805 Reviewers: vtorri Reviewed By: vtorri Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7805 Differential Revision: https://phab.enlightenment.org/D8611 --- src/Makefile_Cxx.am | 6 +++--- src/bindings/cxx/eldbus_cxx/Eldbus_Model.hh | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Makefile_Cxx.am b/src/Makefile_Cxx.am index 7d38d643dc..a3cc88c1d8 100644 --- a/src/Makefile_Cxx.am +++ b/src/Makefile_Cxx.am @@ -103,7 +103,7 @@ nodist_installed_eocxxheaders_DATA = $(eo_eolian_cxx_hh) $(eo_eolian_cxx_impl_hh nodist_installed_eflcxxmainheaders_DATA = $(efl_eolian_cxx_hh) $(efl_eolian_cxx_impl_hh) lib/efl/Efl.eo.hh nodist_installed_elementarycxxmainheaders_DATA = $(elementary_eolian_cxx_hh) $(elementary_eolian_cxx_impl_hh) \ lib/elementary/Elementary.eo.hh -nodist_installed_eldbuscxxmainheaders_DATA = $(eldbus_eolian_cxx_hh) $(eldbus_eolian_cxx_impl_hh) lib/eldbus/Eldbus_Model.eo.hh +nodist_installed_eldbuscxxmainheaders_DATA = $(eldbus_eolian_cxx_hh) $(eldbus_eolian_cxx_impl_hh) lib/eldbus/Eldbus.eo.hh CLEANFILES += $(eo_eolian_cxx_hh) $(eo_eolian_cxx_impl_hh) @@ -144,12 +144,12 @@ CLEANFILES += $(evas_canvas_eolian_cxx_hh) $(evas_canvas_eolian_cxx_impl_hh) \ lib/evas/Evas.eo.hh -lib/eldbus/Eldbus_Model.eo.hh: $(eldbus_eolian_files) $(_EOLIAN_CXX_DEP) +lib/eldbus/Eldbus.eo.hh: $(eldbus_eolian_files) $(_EOLIAN_CXX_DEP) $(AM_V_EOLCXX) \ $(MKDIR_P) $(dir $@); \ $(EOLIAN_CXX) $(EOLIAN_FLAGS) -m -o $@ $(filter %.eo, $^) -CLEANFILES += $(eldbus_eolian_cxx_hh) $(eldbus_eolian_cxx_impl_hh) lib/eldbus/Eldbus_Model.eo.hh +CLEANFILES += $(eldbus_eolian_cxx_hh) $(eldbus_eolian_cxx_impl_hh) lib/eldbus/Eldbus.eo.hh ### Eet C++ diff --git a/src/bindings/cxx/eldbus_cxx/Eldbus_Model.hh b/src/bindings/cxx/eldbus_cxx/Eldbus_Model.hh index f2aa9e1a2c..7d8bb27892 100644 --- a/src/bindings/cxx/eldbus_cxx/Eldbus_Model.hh +++ b/src/bindings/cxx/eldbus_cxx/Eldbus_Model.hh @@ -5,7 +5,7 @@ #ifdef EFL_BETA_API_SUPPORT -#include +#include #endif #endif From 82b005875d9640ade71b54a3b3c43a3266f4c355 Mon Sep 17 00:00:00 2001 From: Xavi Artigas Date: Tue, 16 Apr 2019 11:06:23 +0200 Subject: [PATCH 14/80] docs: Typo --- src/lib/elementary/efl_ui_win.eo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo index 3d86408942..33a4be6510 100644 --- a/src/lib/elementary/efl_ui_win.eo +++ b/src/lib/elementary/efl_ui_win.eo @@ -160,7 +160,7 @@ class Efl.Ui.Win extends Efl.Ui.Widget implements Efl.Canvas.Scene, Efl.Access.W get { } values { - type: Efl.Ui.Win_Indicator_Mode; [[The mype, one of @Efl.Ui.Win_Indicator_Mode.]] + type: Efl.Ui.Win_Indicator_Mode; [[The type, one of @Efl.Ui.Win_Indicator_Mode.]] } } @property keyboard_mode @beta { From d31adef9fe10de3e989f29e911661208890176c8 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 16 Apr 2019 08:55:11 -0400 Subject: [PATCH 15/80] efl_ui_image: fix warning about calling smooth_scale_set on non-image Summary: this is triggered during object construction when no image exists Reviewers: devilhorns Reviewed By: devilhorns Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8617 --- src/lib/elementary/efl_ui_image.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elementary/efl_ui_image.c b/src/lib/elementary/efl_ui_image.c index a1bbe2f239..92a2ce29fb 100644 --- a/src/lib/elementary/efl_ui_image.c +++ b/src/lib/elementary/efl_ui_image.c @@ -534,7 +534,7 @@ EOLIAN static void _efl_ui_image_efl_gfx_image_smooth_scale_set(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd, Eina_Bool smooth) { sd->smooth = smooth; - if (!sd->edje) evas_object_image_smooth_scale_set(sd->img, smooth); + if (sd->img && (!sd->edje)) evas_object_image_smooth_scale_set(sd->img, smooth); } EOLIAN static Eina_Bool From 6559f64d2806773775f2823288db382214c00d55 Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Tue, 16 Apr 2019 17:59:10 +0100 Subject: [PATCH 16/80] evil: remove tmp and home dir get Summary: eina implement them for all OSes Test Plan: compilation Reviewers: raster, cedric, zmike Reviewed By: raster Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8621 --- src/lib/evil/evil_util.c | 13 ---------- src/lib/evil/evil_util.h | 53 ---------------------------------------- 2 files changed, 66 deletions(-) diff --git a/src/lib/evil/evil_util.c b/src/lib/evil/evil_util.c index e47475371a..7add78f888 100644 --- a/src/lib/evil/evil_util.c +++ b/src/lib/evil/evil_util.c @@ -168,19 +168,6 @@ _evil_last_error_display(const char *fct) fprintf(stderr, "[Evil] [%s] ERROR: %s\n", fct, evil_last_error_get()); } - -const char * -evil_tmpdir_get(void) -{ - return NULL; -} - -const char * -evil_homedir_get(void) -{ - return NULL; -} - int evil_path_is_absolute(const char *path) { diff --git a/src/lib/evil/evil_util.h b/src/lib/evil/evil_util.h index e1fdf26387..5709371f18 100644 --- a/src/lib/evil/evil_util.h +++ b/src/lib/evil/evil_util.h @@ -63,59 +63,6 @@ EAPI const char *evil_format_message(long err); EAPI const char *evil_last_error_get(void); -/** - * @brief Return a dir to store temporary files. - * - * @return The directory to store temporary files. - * - * Return a directory to store temporary files. The function gets - * the value of the following environment variables, and in that order: - * - TMP - * - TEMP - * - USERPROFILE - * - WINDIR - * and returns its value if it exists. If none exists, the function - * returns "C:\". - * - * Conformity: Non applicable. - * - * Supported OS: Windows 95, Windows 98, Windows Me, Windows NT, Windows 2000, - * Windows XP. - - * @deprecated - * This function is deprecated and returns @c NULL. - * Use eina_environment_tmp_get() instead. - * - * @ingroup Evil - */ -EAPI const char *evil_tmpdir_get(void); - -/** - * @brief Return a dir to store personal files. - * - * @return The directory to store personal files. - * - * Return a directory to store personal files. The function gets - * the value of the following environment variables, and in that order: - * - HOME - * - USERPROFILE - * - WINDIR - * and returns its value if it exists. If none exists, the function - * returns "C:\". - * - * Conformity: Non applicable. - * - * Supported OS: Windows 95, Windows 98, Windows Me, Windows NT, Windows 2000, - * Windows XP. - - * @deprecated - * This function is deprecated and returns @c NULL. - * Use eina_environment_home_get() instead. - * - * @ingroup Evil - */ -EAPI const char *evil_homedir_get(void); - /** * @brief check if the given path is absolute. * From cf029754eb0463aeda6473bdc2959aabec542ca5 Mon Sep 17 00:00:00 2001 From: Jaehyun Cho Date: Wed, 17 Apr 2019 10:41:32 +0900 Subject: [PATCH 17/80] Revert "Revert "efl_ui_pager: implement unpack_at function"" This reverts commit a10e1bc597f00865514f30d84268963dcbf3f599. To restore 913a5bff66dd7a58753ccae1474657ec33350e43 which implements features during feature freeze period, the revert commit is reverted. --- src/lib/elementary/efl_ui_pager.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/lib/elementary/efl_ui_pager.c b/src/lib/elementary/efl_ui_pager.c index bf81d1ac91..520398941c 100644 --- a/src/lib/elementary/efl_ui_pager.c +++ b/src/lib/elementary/efl_ui_pager.c @@ -853,12 +853,19 @@ _efl_ui_pager_efl_pack_unpack(Eo *obj, } EOLIAN static Efl_Gfx_Entity * -_efl_ui_pager_efl_pack_linear_pack_unpack_at(Eo *obj EINA_UNUSED, - Efl_Ui_Pager_Data *pd EINA_UNUSED, - int index EINA_UNUSED) +_efl_ui_pager_efl_pack_linear_pack_unpack_at(Eo *obj, + Efl_Ui_Pager_Data *pd, + int index) { - ERR("Soon to be implemented"); - return NULL; + if (!EINA_DBL_EQ(pd->curr.pos, 0.0)) return NULL; + + if ((index >= pd->cnt) || (index < 0)) return NULL; + + Efl_Gfx_Entity *subobj = eina_list_nth(pd->content_list, index); + + _unpack(obj, pd, subobj, index); + + return subobj; } From b5c078bebbdc29126fcf6ea5f279912f2077829c Mon Sep 17 00:00:00 2001 From: Jaehyun Cho Date: Wed, 17 Apr 2019 10:41:38 +0900 Subject: [PATCH 18/80] Revert "Revert "efl_ui_pager: implement unpack_all/clear function"" This reverts commit b28f1e034b7ecbe7966b0d2b9687d8e22245837c. To restore 74c48f029632d2260816b4cb3de6dbb40a29f040 which implements features during feature freeze period, the revert commit is reverted. --- src/lib/elementary/efl_page_indicator.c | 13 ++++- src/lib/elementary/efl_page_indicator_icon.c | 20 +++++++- src/lib/elementary/efl_page_transition.c | 11 ++++ .../elementary/efl_page_transition_scroll.c | 20 ++++++++ src/lib/elementary/efl_ui_pager.c | 51 ++++++++++++++++--- src/lib/elementary/elm_priv.h | 2 + 6 files changed, 109 insertions(+), 8 deletions(-) diff --git a/src/lib/elementary/efl_page_indicator.c b/src/lib/elementary/efl_page_indicator.c index 57cd2bf9f9..6b0be267b2 100644 --- a/src/lib/elementary/efl_page_indicator.c +++ b/src/lib/elementary/efl_page_indicator.c @@ -42,6 +42,14 @@ _efl_page_indicator_unpack(Eo *obj EINA_UNUSED, pd->curr_idx--; } +EOLIAN static void +_efl_page_indicator_unpack_all(Eo *obj EINA_UNUSED, + Efl_Page_Indicator_Data *pd) +{ + pd->cnt = 0; + pd->curr_idx = -1; +} + EOLIAN static void _efl_page_indicator_bind(Eo *obj EINA_UNUSED, Efl_Page_Indicator_Data *pd, @@ -72,6 +80,7 @@ EOAPI EFL_VOID_FUNC_BODYV(efl_page_indicator_pack, EFL_FUNC_CALL(index), int index) EOAPI EFL_VOID_FUNC_BODYV(efl_page_indicator_unpack, EFL_FUNC_CALL(index), int index) +EOAPI EFL_VOID_FUNC_BODY(efl_page_indicator_unpack_all) #define EFL_PAGE_INDICATOR_EXTRA_OPS \ EFL_OBJECT_OP_FUNC(efl_page_indicator_update, \ @@ -79,6 +88,8 @@ EOAPI EFL_VOID_FUNC_BODYV(efl_page_indicator_unpack, EFL_OBJECT_OP_FUNC(efl_page_indicator_pack, \ _efl_page_indicator_pack), \ EFL_OBJECT_OP_FUNC(efl_page_indicator_unpack, \ - _efl_page_indicator_unpack) + _efl_page_indicator_unpack), \ + EFL_OBJECT_OP_FUNC(efl_page_indicator_unpack_all, \ + _efl_page_indicator_unpack_all) #include "efl_page_indicator.eo.c" diff --git a/src/lib/elementary/efl_page_indicator_icon.c b/src/lib/elementary/efl_page_indicator_icon.c index 3c9c54e75e..55326cfdd6 100644 --- a/src/lib/elementary/efl_page_indicator_icon.c +++ b/src/lib/elementary/efl_page_indicator_icon.c @@ -109,6 +109,22 @@ _efl_page_indicator_icon_unpack(Eo *obj, } } +EOLIAN static void +_efl_page_indicator_icon_unpack_all(Eo *obj, + Efl_Page_Indicator_Icon_Data *pd) +{ + Eo *item; + + EINA_LIST_FREE(pd->items, item) + { + efl_del(item); + } + + pd->curr = NULL; + + efl_page_indicator_unpack_all(efl_super(obj, MY_CLASS)); +} + EOLIAN static void _efl_page_indicator_icon_efl_page_indicator_bind(Eo *obj, Efl_Page_Indicator_Icon_Data *pd, @@ -168,6 +184,8 @@ _efl_page_indicator_icon_efl_page_indicator_bind(Eo *obj, EFL_OBJECT_OP_FUNC(efl_page_indicator_pack, \ _efl_page_indicator_icon_pack), \ EFL_OBJECT_OP_FUNC(efl_page_indicator_unpack, \ - _efl_page_indicator_icon_unpack) + _efl_page_indicator_icon_unpack), \ + EFL_OBJECT_OP_FUNC(efl_page_indicator_unpack_all, \ + _efl_page_indicator_icon_unpack_all) #include "efl_page_indicator_icon.eo.c" diff --git a/src/lib/elementary/efl_page_transition.c b/src/lib/elementary/efl_page_transition.c index 3740a6996d..f6d73a2c10 100644 --- a/src/lib/elementary/efl_page_transition.c +++ b/src/lib/elementary/efl_page_transition.c @@ -71,6 +71,14 @@ _efl_page_transition_pack(Eo *obj EINA_UNUSED, } +EOLIAN static void +_efl_page_transition_unpack_all(Eo *obj EINA_UNUSED, + Efl_Page_Transition_Data *pd EINA_UNUSED, + int index EINA_UNUSED) +{ + +} + EOLIAN static void _efl_page_transition_curr_page_change(Eo *obj EINA_UNUSED, Efl_Page_Transition_Data *pd EINA_UNUSED, @@ -94,6 +102,7 @@ EOAPI EFL_VOID_FUNC_BODYV(efl_page_transition_update, EFL_FUNC_CALL(move), double move) EOAPI EFL_VOID_FUNC_BODYV(efl_page_transition_pack, EFL_FUNC_CALL(index), int index) +EOAPI EFL_VOID_FUNC_BODY(efl_page_transition_unpack_all) EOAPI EFL_VOID_FUNC_BODYV(efl_page_transition_curr_page_change, EFL_FUNC_CALL(diff), int diff) EOAPI EFL_VOID_FUNC_BODYV(efl_page_transition_page_size_set, @@ -109,6 +118,8 @@ EOAPI EFL_FUNC_BODYV(efl_page_transition_loop_set, Eina_Bool, 0, _efl_page_transition_update), \ EFL_OBJECT_OP_FUNC(efl_page_transition_pack, \ _efl_page_transition_pack), \ + EFL_OBJECT_OP_FUNC(efl_page_transition_unpack_all, \ + _efl_page_transition_unpack_all), \ EFL_OBJECT_OP_FUNC(efl_page_transition_curr_page_change, \ _efl_page_transition_curr_page_change), \ EFL_OBJECT_OP_FUNC(efl_page_transition_page_size_set, \ diff --git a/src/lib/elementary/efl_page_transition_scroll.c b/src/lib/elementary/efl_page_transition_scroll.c index 5c5cb9aa11..ac3c6dab1d 100644 --- a/src/lib/elementary/efl_page_transition_scroll.c +++ b/src/lib/elementary/efl_page_transition_scroll.c @@ -412,6 +412,24 @@ _efl_page_transition_scroll_pack(Eo *obj, _efl_page_transition_scroll_update(obj, pd, 0.0); } +EOLIAN static void +_efl_page_transition_scroll_unpack_all(Eo *obj EINA_UNUSED, + Efl_Page_Transition_Scroll_Data *pd) +{ + Eina_List *list; + Page_Info *pi; + + EINA_LIST_FOREACH(pd->page_infos, list, pi) + { + efl_pack_unpack(pi->obj, pi->content); + + pi->content_num = -1; + pi->content = NULL; + pi->visible = EINA_FALSE; + } + return EINA_TRUE; +} + EOLIAN static void _efl_page_transition_scroll_curr_page_change(Eo *obj EINA_UNUSED, Efl_Page_Transition_Scroll_Data *pd, @@ -656,6 +674,8 @@ _efl_page_transition_scroll_efl_object_invalidate(Eo *obj, _efl_page_transition_scroll_update), \ EFL_OBJECT_OP_FUNC(efl_page_transition_pack, \ _efl_page_transition_scroll_pack), \ + EFL_OBJECT_OP_FUNC(efl_page_transition_unpack_all, \ + _efl_page_transition_scroll_unpack_all), \ EFL_OBJECT_OP_FUNC(efl_page_transition_curr_page_change, \ _efl_page_transition_scroll_curr_page_change), \ EFL_OBJECT_OP_FUNC(efl_page_transition_page_size_set, \ diff --git a/src/lib/elementary/efl_ui_pager.c b/src/lib/elementary/efl_ui_pager.c index 520398941c..0ce1488d8c 100644 --- a/src/lib/elementary/efl_ui_pager.c +++ b/src/lib/elementary/efl_ui_pager.c @@ -784,20 +784,59 @@ _efl_ui_pager_loop_mode_get(const Eo *obj EINA_UNUSED, return pd->loop; } +static void +_unpack_all(Efl_Ui_Pager_Data *pd, + Eina_Bool clear) +{ + Eo *subobj; + + pd->cnt = 0; + pd->curr.page = -1; + pd->curr.pos = 0.0; + + if (pd->transition) + { + efl_page_transition_unpack_all(pd->transition); + } + else + { + subobj = eina_list_nth(pd->content_list, pd->curr.page); + efl_pack_unpack(pd->page_box, subobj); + } + + if (clear) + { + EINA_LIST_FREE(pd->content_list, subobj) + evas_object_del(subobj); + } + else + { + EINA_LIST_FREE(pd->content_list, subobj) + efl_canvas_object_clipper_set(subobj, NULL); + } + + if (pd->indicator) + { + efl_page_indicator_unpack_all(pd->indicator); + } +} + EOLIAN static Eina_Bool _efl_ui_pager_efl_pack_pack_clear(Eo *obj EINA_UNUSED, - Efl_Ui_Pager_Data *pd EINA_UNUSED) + Efl_Ui_Pager_Data *pd) { - ERR("Soon to be implemented"); - return EINA_FALSE; + _unpack_all(pd, EINA_TRUE); + + return EINA_TRUE; } EOLIAN static Eina_Bool _efl_ui_pager_efl_pack_unpack_all(Eo *obj EINA_UNUSED, - Efl_Ui_Pager_Data *pd EINA_UNUSED) + Efl_Ui_Pager_Data *pd) { - ERR("Soon to be implemented"); - return EINA_FALSE; + _unpack_all(pd, EINA_FALSE); + + return EINA_TRUE; } static void diff --git a/src/lib/elementary/elm_priv.h b/src/lib/elementary/elm_priv.h index fa262e2646..478497468d 100644 --- a/src/lib/elementary/elm_priv.h +++ b/src/lib/elementary/elm_priv.h @@ -875,12 +875,14 @@ EOAPI void efl_page_transition_page_size_set(Eo *obj, Eina_Size2D sz); EOAPI void efl_page_transition_padding_size_set(Eo *obj, int padding); EOAPI void efl_page_transition_update(Eo *obj, double pos); EOAPI void efl_page_transition_pack(Eo *obj, int index); +EOAPI void efl_page_transition_unpack_all(Eo *obj); EOAPI void efl_page_transition_curr_page_change(Eo *obj, int diff); EOAPI Eina_Bool efl_page_transition_loop_set(Eo *obj, Efl_Ui_Pager_Loop loop); EOAPI void efl_page_indicator_update(Eo *obj, double pos); EOAPI void efl_page_indicator_pack(Eo *obj, int index); EOAPI void efl_page_indicator_unpack(Eo *obj, int index); +EOAPI void efl_page_indicator_unpack_all(Eo *obj); Eina_Bool _elm_config_accel_preference_parse(const char *pref, Eina_Stringshare **accel, int *gl_depth, int *gl_stencil, int *gl_msaa); From 561764b97213698297646dc61753381388219aaa Mon Sep 17 00:00:00 2001 From: Jaehyun Cho Date: Wed, 17 Apr 2019 10:41:43 +0900 Subject: [PATCH 19/80] Revert "Revert "test/efl_ui_pager_scroll: fix demo"" This reverts commit 5742caa6016bf0ea852059546ded493c2d52b1a7. To restore 30bd541bf264d369e2a96d27fa3ff5139c360e26 which implements features during feature freeze period, the revert commit is reverted. --- src/bin/elementary/test_ui_pager_scroll.c | 72 ++++++++++++++++++----- 1 file changed, 57 insertions(+), 15 deletions(-) diff --git a/src/bin/elementary/test_ui_pager_scroll.c b/src/bin/elementary/test_ui_pager_scroll.c index 30a4306f63..8df58c6570 100644 --- a/src/bin/elementary/test_ui_pager_scroll.c +++ b/src/bin/elementary/test_ui_pager_scroll.c @@ -36,7 +36,8 @@ typedef enum _Pack_Type { PACK_BEFORE, PACK_AFTER, PACK_AT, - UNPACK_AT + UNPACK_AT, + CLEAR } Pack_Type; typedef struct _Params { @@ -240,7 +241,7 @@ static void pack_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED) Eo *page = NULL, *curr_page; int index, cnt; - if (param->type != UNPACK_AT) { + if ((param->type != UNPACK_AT) && (param->type != CLEAR)) { index = efl_content_count(pager); switch (index % 3) { @@ -282,10 +283,12 @@ static void pack_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED) break; case UNPACK_AT: index = efl_ui_range_value_get(param->unpack_sp); - page = efl_pack_content_get(pager, index); - efl_pack_unpack(pager, page); + page = efl_pack_unpack_at(pager, index); efl_del(page); break; + case CLEAR: + efl_pack_clear(pager); + break; } cnt = efl_content_count(pager); @@ -353,13 +356,11 @@ static void next_block_check_cb(void *data, const Efl_Event *ev) efl_ui_pager_scroll_block_set(pager, prev, next); } -static void loop_check_cb(void *data, const Efl_Event *ev) +static void loop_radio_cb(void *data, const Efl_Event *ev) { Eo *pager = data; int state = efl_ui_nstate_value_get(ev->object); - //FIXME use other widget (i.e. radio) than check - // since loop might not be enabled according to the number of items efl_ui_pager_loop_mode_set(pager, state); } @@ -701,6 +702,24 @@ static void pack_cb(void *data, efl_pack_end(box, in_box2); efl_pack_end(in_box2, btn); efl_pack_end(in_box2, sp2); + + // Clear + pack_param = calloc(1, sizeof(Pack_Params)); + if (!pack_param) return; + + pack_param->pager = pager; + pack_param->pack_sp = sp1; + pack_param->unpack_sp = sp2; + pack_param->unpack_btn = btn; + pack_param->type = CLEAR; + + efl_add(EFL_UI_BUTTON_CLASS, box, + efl_text_set(efl_added, "Clear"), + efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED, + pack_btn_cb, pack_param), + efl_event_callback_add(efl_added, EFL_EVENT_DEL, + pack_btn_del_cb, pack_param), + efl_pack_end(box, efl_added)); } static void current_page_cb(void *data, @@ -798,7 +817,8 @@ static void loop_cb(void *data EINA_UNUSED, Params *params = (Params *)data; Evas_Object *navi = params->navi; Eo *pager = params->pager; - Eo *btn, *box; + Eo *btn, *box, *rd; + Efl_Ui_Pager_Loop loop; btn = efl_add(EFL_UI_BUTTON_CLASS, navi, efl_text_set(efl_added, "Back"), @@ -810,13 +830,35 @@ static void loop_cb(void *data EINA_UNUSED, elm_naviframe_item_push(navi, "Loop", btn, NULL, efl_added, NULL)); - efl_add(EFL_UI_CHECK_CLASS, box, - efl_ui_widget_style_set(efl_added, "toggle"), - efl_text_set(efl_added, "Loop"), - efl_ui_nstate_value_set(efl_added, efl_ui_pager_loop_mode_get(pager)), - efl_event_callback_add(efl_added, EFL_UI_CHECK_EVENT_CHANGED, - loop_check_cb, pager), - efl_pack_end(box, efl_added)); + rd = efl_add(EFL_UI_RADIO_CLASS, box, + efl_ui_radio_state_value_set(efl_added, EFL_UI_PAGER_LOOP_DISABLED), + efl_text_set(efl_added, "Disabled"), + efl_gfx_hint_weight_set(efl_added, 1, 0), + efl_event_callback_add(efl_added, EFL_UI_RADIO_EVENT_CHANGED, + loop_radio_cb, pager), + efl_pack(box, efl_added)); + + rd = efl_add(EFL_UI_RADIO_CLASS, box, + efl_ui_radio_state_value_set(efl_added, EFL_UI_PAGER_LOOP_ENABLED), + efl_ui_radio_group_add(efl_added, rd), + efl_text_set(efl_added, "Enabled"), + efl_gfx_hint_weight_set(efl_added, 1, 0), + efl_event_callback_add(efl_added, EFL_UI_RADIO_EVENT_CHANGED, + loop_radio_cb, pager), + efl_pack(box, efl_added)); + + loop = efl_ui_pager_loop_mode_get(pager); + + efl_ui_nstate_value_set(rd, loop); + + if (loop == EFL_UI_PAGER_LOOP_DISABLED) + { + Eina_Bool ret = efl_ui_pager_loop_mode_set(pager, EFL_UI_PAGER_LOOP_ENABLED); + if (!ret) + elm_object_disabled_set(rd, EINA_TRUE); + else + efl_ui_pager_loop_mode_set(pager, EFL_UI_PAGER_LOOP_DISABLED); + } } static void indicator_cb(void *data EINA_UNUSED, From 326b1e440a62ec9466c7c884944891caedaf5245 Mon Sep 17 00:00:00 2001 From: Jaehyun Cho Date: Wed, 17 Apr 2019 10:41:50 +0900 Subject: [PATCH 20/80] Revert "Revert "test/efl_ui_pager: fix demo"" This reverts commit f652bf932837846c5911c26992196213780394df. To restore d3bb1a7342b2725c585d90557926e0c433058e50 which implements features during feature freeze period, the revert commit is reverted. --- src/bin/elementary/test_ui_pager.c | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/src/bin/elementary/test_ui_pager.c b/src/bin/elementary/test_ui_pager.c index 78fb1b598e..32bc1d775a 100644 --- a/src/bin/elementary/test_ui_pager.c +++ b/src/bin/elementary/test_ui_pager.c @@ -36,7 +36,8 @@ typedef enum _Pack_Type { PACK_BEFORE, PACK_AFTER, PACK_AT, - UNPACK_AT + UNPACK_AT, + CLEAR } Pack_Type; typedef struct _Params { @@ -218,7 +219,7 @@ static void pack_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED) Eo *page = NULL, *curr_page; int index, cnt; - if (param->type != UNPACK_AT) { + if ((param->type != UNPACK_AT) && (param->type != CLEAR)) { index = efl_content_count(pager); switch (index % 3) { @@ -260,10 +261,12 @@ static void pack_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED) break; case UNPACK_AT: index = efl_ui_range_value_get(param->unpack_sp); - page = efl_pack_content_get(pager, index); - efl_pack_unpack(pager, page); + page = efl_pack_unpack_at(pager, index); efl_del(page); break; + case CLEAR: + efl_pack_clear(pager); + break; } cnt = efl_content_count(pager); @@ -587,6 +590,25 @@ static void pack_cb(void *data, efl_pack_end(box, in_box2); efl_pack_end(in_box2, btn); efl_pack_end(in_box2, sp2); + + // Clear + pack_param = calloc(1, sizeof(Pack_Params)); + if (!pack_param) return; + + pack_param->pager = pager; + pack_param->pack_sp = sp1; + pack_param->unpack_sp = sp2; + pack_param->unpack_btn = btn; + pack_param->type = CLEAR; + + efl_add(EFL_UI_BUTTON_CLASS, box, + efl_text_set(efl_added, "Clear"), + efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED, + pack_btn_cb, pack_param), + efl_event_callback_add(efl_added, EFL_EVENT_DEL, + pack_btn_del_cb, pack_param), + efl_pack_end(box, efl_added)); + } static void current_page_cb(void *data, From 74d1a0ec0874f905a47b0d40301c4d6d5c7baeac Mon Sep 17 00:00:00 2001 From: Jaehyun Cho Date: Wed, 17 Apr 2019 10:41:55 +0900 Subject: [PATCH 21/80] Revert "Revert "elm - fix harmless warning for clean build"" This reverts commit d2eebb6f5faebc76a1a13494fd0721e8d63af410. To restore e3d2a0cf1235beceb3b403e42d2dafed4b4e90e5 which implements features during feature freeze period, the revert commit is reverted. --- src/lib/elementary/efl_page_transition_scroll.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elementary/efl_page_transition_scroll.c b/src/lib/elementary/efl_page_transition_scroll.c index ac3c6dab1d..3908710cc6 100644 --- a/src/lib/elementary/efl_page_transition_scroll.c +++ b/src/lib/elementary/efl_page_transition_scroll.c @@ -427,7 +427,7 @@ _efl_page_transition_scroll_unpack_all(Eo *obj EINA_UNUSED, pi->content = NULL; pi->visible = EINA_FALSE; } - return EINA_TRUE; + return; } EOLIAN static void From 382520fda450f22f0256b3a57a9b90c4d49e7cca Mon Sep 17 00:00:00 2001 From: Jaehyun Cho Date: Wed, 17 Apr 2019 15:00:58 +0900 Subject: [PATCH 22/80] efl_ui_pager: fix to delete component objects when pager is deleted Pager creates Efl.Canvas.Rectangle objects when pager is constructed. Since the parent of these component objects is evas, these component objects are not deleted automatically when pager is deleted. These component objects cause event block after pager is deleted. (e.g. click event is blocked) To resolve this issue, these component objects are deleted manually when pager is deleted. --- src/lib/elementary/efl_ui_pager.c | 13 +++++++++++++ src/lib/elementary/efl_ui_pager.eo | 1 + 2 files changed, 14 insertions(+) diff --git a/src/lib/elementary/efl_ui_pager.c b/src/lib/elementary/efl_ui_pager.c index 0ce1488d8c..a37d0fd8f6 100644 --- a/src/lib/elementary/efl_ui_pager.c +++ b/src/lib/elementary/efl_ui_pager.c @@ -379,6 +379,19 @@ _efl_ui_pager_efl_object_constructor(Eo *obj, return obj; } +EOLIAN static void +_efl_ui_pager_efl_object_invalidate(Eo *obj, + Efl_Ui_Pager_Data *pd) +{ + efl_invalidate(efl_super(obj, MY_CLASS)); + + /* Since the parent of foreclip and backclip is evas, foreclip and backclip + * are not deleted automatically when pager is deleted. + * Therefore, foreclip and backclip are deleted manually here. */ + efl_del(pd->foreclip); + efl_del(pd->backclip); +} + EOLIAN static int _efl_ui_pager_efl_container_content_count(Eo *obj EINA_UNUSED, Efl_Ui_Pager_Data *pd) diff --git a/src/lib/elementary/efl_ui_pager.eo b/src/lib/elementary/efl_ui_pager.eo index 5a3a974adf..646be5accd 100644 --- a/src/lib/elementary/efl_ui_pager.eo +++ b/src/lib/elementary/efl_ui_pager.eo @@ -90,6 +90,7 @@ class @beta Efl.Ui.Pager extends Efl.Ui.Layout_Base implements Efl.Pack_Linear } implements { Efl.Object.constructor; + Efl.Object.invalidate; Efl.Container.content_count; Efl.Pack.pack_clear; //TODO Efl.Pack.unpack_all; //TODO From f85bb6bc9a45b6e1114fee8bf40d1bb49ee4040f Mon Sep 17 00:00:00 2001 From: Taehyub Kim Date: Wed, 17 Apr 2019 16:59:24 +0900 Subject: [PATCH 23/80] elm_notify: fix theme apply logic for new return value Summary: fix theme apply logic for new return value Test Plan: 1. run elementary_test for elm_notify and elm_popup Reviewers: Jaehyun_Cho, woohyun Reviewed By: Jaehyun_Cho Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8628 --- src/lib/elementary/elm_notify.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/elm_notify.c b/src/lib/elementary/elm_notify.c index 8a98c32f9b..df9899722d 100644 --- a/src/lib/elementary/elm_notify.c +++ b/src/lib/elementary/elm_notify.c @@ -143,12 +143,16 @@ EOLIAN static Eina_Error _elm_notify_efl_ui_widget_theme_apply(Eo *obj, Elm_Notify_Data *sd) { Eina_Error int_ret = EFL_UI_THEME_APPLY_ERROR_GENERIC; + Eina_Error notify_theme_ret = EFL_UI_THEME_APPLY_ERROR_GENERIC; int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)); if (int_ret == EFL_UI_THEME_APPLY_ERROR_GENERIC) return int_ret; _mirrored_set(obj, efl_ui_mirrored_get(obj)); - int_ret &= _notify_theme_apply(obj); + notify_theme_ret = _notify_theme_apply(obj); + if (notify_theme_ret == EFL_UI_THEME_APPLY_ERROR_GENERIC) + return notify_theme_ret; + if (sd->block_events) _block_events_theme_apply(obj); edje_object_scale_set @@ -156,7 +160,11 @@ _elm_notify_efl_ui_widget_theme_apply(Eo *obj, Elm_Notify_Data *sd) _sizing_eval(obj); - return int_ret; + if ((int_ret == EFL_UI_THEME_APPLY_ERROR_DEFAULT) || + (notify_theme_ret == EFL_UI_THEME_APPLY_ERROR_DEFAULT)) + return EFL_UI_THEME_APPLY_ERROR_DEFAULT; + + return EFL_UI_THEME_APPLY_ERROR_NONE; } /* Legacy compat. Note that notify has no text parts in the default theme... */ From 058535528259a6992ba37404d70df41aa92a5330 Mon Sep 17 00:00:00 2001 From: Yeongjong Lee Date: Fri, 12 Apr 2019 07:03:28 +0000 Subject: [PATCH 24/80] efl.pack_linear: Clarify behavior and docs Some APIs accept both positive and negative indices when accessing items. This patch changes the documentation for the lower limit from `-(count - 1)` to `-count` to allow accessing the very first item. For example (content_count = 5): | |first item| | | |last item| |positive index| 0 | 1| 2| 3| 4 | |negative index| -5 |-4|-3|-2| -1 | If negative indices are limited to be >= -4 the first item cannot be accessed using negative indices. Also, range limit of `pack_at` is removed for usability. Reviewed-by: Marcel Hollerbach Reviewed-by: YeongJong Lee Differential Revision: https://phab.enlightenment.org/D8433 --- src/lib/efl/interfaces/efl_pack_linear.eo | 62 ++++++++++++++++------- 1 file changed, 44 insertions(+), 18 deletions(-) diff --git a/src/lib/efl/interfaces/efl_pack_linear.eo b/src/lib/efl/interfaces/efl_pack_linear.eo index 423c6cbb6c..b82cee842f 100644 --- a/src/lib/efl/interfaces/efl_pack_linear.eo +++ b/src/lib/efl/interfaces/efl_pack_linear.eo @@ -13,12 +13,12 @@ interface @beta Efl.Pack_Linear extends Efl.Pack container without deleting it. ]] params { - @in subobj: Efl.Gfx.Entity; [[Item to pack.]] + @in subobj: Efl.Gfx.Entity; [[Item to pack at the beginning.]] } - return: bool; [[$false if $subobj could not be packed]] + return: bool; [[$false if $subobj could not be packed.]] } pack_end { - [[Append object at the end of this container. + [[Append item at the end of this container. This is the same as @.pack_at($subobj, -1). @@ -29,7 +29,7 @@ interface @beta Efl.Pack_Linear extends Efl.Pack params { @in subobj: Efl.Gfx.Entity; [[Item to pack at the end.]] } - return: bool; [[$false if $subobj could not be packed]] + return: bool; [[$false if $subobj could not be packed.]] } pack_before { [[Prepend item before other sub object. @@ -60,46 +60,72 @@ interface @beta Efl.Pack_Linear extends Efl.Pack could not be packed.]] } pack_at { - [[Inserts $subobj at the specified $index. + [[Inserts $subobj BEFORE the item at position $index. - Valid range: -$count to +$count. -1 refers to the last element. - Out of range indices will trigger an append. + $index ranges from -$count to $count-1, where positive numbers go + from first item (0) to last item ($count-1), and negative numbers go + from last item (-1) to first item (-$count). Where $count is + the number of items currently in the container. + + If $index is less than -$count, it will trigger @.pack_begin($subobj) + whereas $index greater than $count-1 will trigger @.pack_end($subobj). When this container is deleted, it will request deletion of the given $subobj. Use @Efl.Pack.unpack to remove $subobj from this container without deleting it. ]] params { - @in subobj: Efl.Gfx.Entity; [[Item to pack at given index.]] - @in index: int; [[A position.]] + @in subobj: Efl.Gfx.Entity; [[Item to pack.]] + @in index: int; [[Index of item to insert BEFORE. + Valid range is -$count to ($count-1). + ]] } return: bool; [[$false if $subobj could not be packed.]] } pack_content_get { - [[Content at a given index in this container. + [[Content at a given $index in this container. - Index -1 refers to the last item. The valid range is -(count - 1) to - (count - 1). + $index ranges from -$count to $count-1, where positive numbers go + from first item (0) to last item ($count-1), and negative numbers go + from last item (-1) to first item (-$count). Where $count is + the number of items currently in the container. + + If $index is less than -$count, it will return the first item + whereas $index greater than $count-1 will return the last item. ]] params { - index: int; [[Index number]] + @in index: int; [[Index of the item to retrieve. + Valid range is -$count to ($count-1). + ]] } return: Efl.Gfx.Entity; [[The object contained at the given $index.]] } pack_index_get { [[Get the index of a child in this container.]] params { - subobj: const(Efl.Gfx.Entity); [[An object contained in this pack.]] + @in subobj: const(Efl.Gfx.Entity); [[An object contained in this pack.]] } - return: int(-1); [[-1 in case of failure, or the index of this item.]] + return: int(-1); [[-1 in case $subobj is not a child of this object, + or the index of this item in the range 0 to ($count-1). + ]] } pack_unpack_at { - [[Pop out item at specified $index. + [[Pop out (remove) the item at the specified $index. - Equivalent to unpack(content_at($index)). + $index ranges from -$count to $count-1, where positive numbers go + from first item (0) to last item ($count-1), and negative numbers go + from last item (-1) to first item (-$count). Where $count is + the number of items currently in the container. + + If $index is less than -$count, it will remove the first item + whereas $index greater than $count-1 will remove the last item. + + Equivalent to @Efl.Pack.unpack(@.pack_content_get($index)). ]] params { - index: int; [[Index number]] + @in index: int; [[Index of item to remove. + Valid range is -$count to ($count-1). + ]] } return: Efl.Gfx.Entity; [[The child item if it could be removed.]] } From d5445918ec9fd5f6399ed7c4649df9ac72c2be85 Mon Sep 17 00:00:00 2001 From: Yeongjong Lee Date: Fri, 12 Apr 2019 10:18:04 +0000 Subject: [PATCH 25/80] ui.box: remove leagcy evas_box from Efl.Ui.Box Remove legacy stuff from Efl.Ui.Box. This expect to improve performance by removing internal function call related evas_box. Reviewed-by: Xavi Artigas Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D8417 --- src/lib/elementary/efl_ui_box.c | 504 +++++++++--------------- src/lib/elementary/efl_ui_box.eo | 2 + src/lib/elementary/efl_ui_box_flow.c | 28 +- src/lib/elementary/efl_ui_box_layout.c | 13 +- src/lib/elementary/efl_ui_box_private.h | 20 +- src/lib/elementary/efl_ui_box_stack.c | 14 +- src/tests/elementary/efl_ui_test_box.c | 152 ++++++- 7 files changed, 362 insertions(+), 371 deletions(-) diff --git a/src/lib/elementary/efl_ui_box.c b/src/lib/elementary/efl_ui_box.c index eec5a645d8..5e33ed8602 100644 --- a/src/lib/elementary/efl_ui_box.c +++ b/src/lib/elementary/efl_ui_box.c @@ -7,86 +7,94 @@ * - removed transition stuff (TODO: add back - needs clean API first) */ -static const char SIG_CHILD_ADDED[] = "child,added"; -static const char SIG_CHILD_REMOVED[] = "child,removed"; -static const Evas_Smart_Cb_Description _smart_callbacks[] = { - {SIG_CHILD_ADDED, ""}, - {SIG_CHILD_REMOVED, ""}, - {NULL, NULL} -}; +#define EFL_UI_BOX_DATA_GET(o, sd) \ + Efl_Ui_Box_Data *sd = efl_data_scope_get(o, EFL_UI_BOX_CLASS) + +void _efl_ui_box_custom_layout(Efl_Ui_Box *ui_box, Efl_Ui_Box_Data *pd); static void -_child_added_cb_proxy(void *data, const Efl_Event *event) +_on_child_size_changed(void *data, const Efl_Event *event EINA_UNUSED) { - Evas_Object *box = data; - Evas_Object_Box_Option *opt = event->info; - - efl_event_callback_legacy_call(box, EFL_CONTAINER_EVENT_CONTENT_ADDED, opt->obj); + Eo *box = data; + efl_pack_layout_request(box); } static void -_child_removed_cb_proxy(void *data, const Efl_Event *event) +_on_child_del(void *data, const Efl_Event *event) { - Evas_Object *box = data; - Evas_Object *child = event->info; + Eo *box = data; + EFL_UI_BOX_DATA_GET(box, sd); - efl_event_callback_legacy_call(box, EFL_CONTAINER_EVENT_CONTENT_REMOVED, child); + sd->children = eina_list_remove(sd->children, event->object); + + efl_pack_layout_request(box); } static void -_sizing_eval(Evas_Object *obj, Efl_Ui_Box_Data *sd) +_on_child_hints_changed(void *data, const Efl_Event *event EINA_UNUSED) { - Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1; - Evas_Coord w, h; + Eo *box = data; + efl_pack_layout_request(box); +} - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); +EFL_CALLBACKS_ARRAY_DEFINE(efl_ui_box_callbacks, + { EFL_GFX_ENTITY_EVENT_SIZE_CHANGED, _on_child_size_changed }, + { EFL_GFX_ENTITY_EVENT_HINTS_CHANGED, _on_child_hints_changed }, + { EFL_EVENT_DEL, _on_child_del } +); - if (!efl_alive_get(obj)) return; - if (sd->delete_me) - return; +static inline Eina_Bool +_efl_ui_box_child_register(Eo *obj, Efl_Ui_Box_Data *pd, Efl_Gfx_Entity *subobj) +{ + if (!subobj || (efl_canvas_object_render_parent_get(subobj) == obj)) + return EINA_FALSE; - evas_object_size_hint_combined_min_get(wd->resize_obj, &minw, &minh); - evas_object_size_hint_max_get(wd->resize_obj, &maxw, &maxh); - evas_object_size_hint_min_set(obj, minw, minh); - evas_object_size_hint_max_set(obj, maxw, maxh); + if (!efl_ui_widget_sub_object_add(obj, subobj)) + return EINA_FALSE; - evas_object_geometry_get(obj, NULL, NULL, &w, &h); - if (w < minw) w = minw; - if (h < minh) h = minh; - if ((maxw >= 0) && (w > maxw)) w = maxw; - if ((maxh >= 0) && (h > maxh)) h = maxh; - evas_object_resize(obj, w, h); + efl_key_data_set(subobj, "_elm_leaveme", obj); + efl_canvas_group_member_add(obj, subobj); + efl_canvas_object_clipper_set(subobj, pd->clipper); + efl_pack_layout_request(obj); + + efl_event_callback_array_add(subobj, efl_ui_box_callbacks(), obj); + efl_event_callback_call(obj, EFL_CONTAINER_EVENT_CONTENT_ADDED, subobj); + + return EINA_TRUE; +} + +static inline Eina_Bool +_efl_ui_box_child_unregister(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED, Efl_Gfx_Entity *subobj) +{ + if (!subobj || !_elm_widget_sub_object_redirect_to_top(obj, subobj)) + return EINA_FALSE; + + efl_canvas_group_member_remove(obj, subobj); + efl_canvas_object_clipper_set(subobj, NULL); + efl_key_data_set(subobj, "_elm_leaveme", NULL); + efl_pack_layout_request(obj); + + efl_event_callback_array_del(subobj, efl_ui_box_callbacks(), obj); + efl_event_callback_call(obj, EFL_CONTAINER_EVENT_CONTENT_REMOVED, subobj); + + return EINA_TRUE; } static void -_on_size_hints_changed(void *data, Evas *e EINA_UNUSED, - Evas_Object *resizeobj, void *event_info EINA_UNUSED) +_efl_ui_box_size_hints_changed_cb(void *data EINA_UNUSED, const Efl_Event *ev) { - Efl_Ui_Box *obj = data; - Efl_Ui_Box_Data *pd = efl_data_scope_get(obj, EFL_UI_BOX_CLASS); - - if (obj == resizeobj) - efl_pack_layout_request(obj); - else - _sizing_eval(data, pd); -} - -static void -_evas_box_custom_layout(Evas_Object *evas_box EINA_UNUSED, - Evas_Object_Box_Data *bd EINA_UNUSED, void *data) -{ - Efl_Ui_Box *obj = data; - - efl_pack_layout_update(obj); + efl_pack_layout_request(ev->object); } EOLIAN static void _efl_ui_box_homogeneous_set(Eo *obj, Efl_Ui_Box_Data *pd, Eina_Bool homogeneous) { - if (pd->homogeneous == !!homogeneous) + homogeneous = !!homogeneous; + + if (pd->homogeneous == homogeneous) return; - pd->homogeneous = !!homogeneous; + pd->homogeneous = homogeneous; efl_pack_layout_request(obj); } @@ -97,74 +105,55 @@ _efl_ui_box_homogeneous_get(const Eo *obj EINA_UNUSED, Efl_Ui_Box_Data *pd) } EOLIAN static void -_efl_ui_box_efl_pack_layout_layout_update(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED) +_efl_ui_box_efl_pack_layout_layout_update(Eo *obj, Efl_Ui_Box_Data *pd) { - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - Evas_Object_Box_Data *bd; - - bd = evas_object_smart_data_get(wd->resize_obj); - _efl_ui_box_custom_layout(obj, bd); - efl_event_callback_legacy_call(obj, EFL_PACK_EVENT_LAYOUT_UPDATED, NULL); + _efl_ui_box_custom_layout(obj, pd); } EOLIAN static void -_efl_ui_box_efl_canvas_group_group_calculate(Eo *obj, Efl_Ui_Box_Data *pd) +_efl_ui_box_efl_canvas_group_group_calculate(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSED) { - if (pd->recalc) return; - - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - evas_object_smart_need_recalculate_set(wd->resize_obj, EINA_TRUE); - pd->recalc = EINA_TRUE; - evas_object_smart_calculate(wd->resize_obj); - pd->recalc = EINA_FALSE; + efl_pack_layout_update(obj); } EOLIAN static void -_efl_ui_box_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSED) +_efl_ui_box_efl_gfx_entity_size_set(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSED, Eina_Size2D sz) { - Evas *e = evas_object_evas_get(obj); + efl_gfx_entity_size_set(efl_super(obj, MY_CLASS), sz); + efl_canvas_group_change(obj); +} - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - elm_widget_resize_object_set(obj, evas_object_box_add(e)); - evas_object_box_layout_set(wd->resize_obj, _evas_box_custom_layout, obj, NULL); +EOLIAN static void +_efl_ui_box_efl_gfx_entity_position_set(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSED, Eina_Position2D pos) +{ + efl_gfx_entity_position_set(efl_super(obj, MY_CLASS), pos); + efl_canvas_group_change(obj); +} - evas_object_event_callback_add(wd->resize_obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_size_hints_changed, obj); - evas_object_event_callback_add(obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_size_hints_changed, obj); +EOLIAN static void +_efl_ui_box_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Box_Data *pd) +{ + pd->clipper = efl_add(EFL_CANVAS_RECTANGLE_CLASS, obj); + evas_object_static_clip_set(pd->clipper, EINA_TRUE); + efl_gfx_entity_geometry_set(pd->clipper, EINA_RECT(-49999, -49999, 99999, 99999)); + efl_canvas_group_member_add(obj, pd->clipper); + efl_ui_widget_sub_object_add(obj, pd->clipper); efl_canvas_group_add(efl_super(obj, MY_CLASS)); elm_widget_sub_object_parent_add(obj); - efl_event_callback_add(wd->resize_obj, EVAS_BOX_EVENT_CHILD_ADDED, _child_added_cb_proxy, obj); - efl_event_callback_add(wd->resize_obj, EVAS_BOX_EVENT_CHILD_REMOVED, _child_removed_cb_proxy, obj); - - elm_widget_can_focus_set(obj, EINA_FALSE); + efl_ui_widget_focus_allow_set(obj, EINA_FALSE); elm_widget_highlight_ignore_set(obj, EINA_TRUE); + + efl_event_callback_add(obj, EFL_GFX_ENTITY_EVENT_HINTS_CHANGED, + _efl_ui_box_size_hints_changed_cb, NULL); } EOLIAN static void -_efl_ui_box_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Box_Data *sd) +_efl_ui_box_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSED) { - Eina_List *l; - Evas_Object *child; - - sd->delete_me = EINA_TRUE; - - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - evas_object_event_callback_del_full - (wd->resize_obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, - _on_size_hints_changed, obj); - - /* let's make our box object the *last* to be processed, since it - * may (smart) parent other sub objects here */ - EINA_LIST_FOREACH (wd->subobjs, l, child) - { - if (child == wd->resize_obj) - { - wd->subobjs = - eina_list_demote_list(wd->subobjs, l); - break; - } - } + efl_event_callback_del(obj, EFL_GFX_ENTITY_EVENT_HINTS_CHANGED, + _efl_ui_box_size_hints_changed_cb, NULL); efl_canvas_group_del(efl_super(obj, MY_CLASS)); } @@ -174,10 +163,10 @@ _efl_ui_box_efl_object_constructor(Eo *obj, Efl_Ui_Box_Data *pd) { obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); efl_access_object_access_type_set(obj, EFL_ACCESS_TYPE_SKIPPED); efl_access_object_role_set(obj, EFL_ACCESS_ROLE_FILLER); + pd->dir = EFL_UI_DIR_VERTICAL; pd->align.h = 0.5; pd->align.v = 0.5; @@ -187,48 +176,34 @@ _efl_ui_box_efl_object_constructor(Eo *obj, Efl_Ui_Box_Data *pd) /* CLEAN API BELOW */ EOLIAN static int -_efl_ui_box_efl_container_content_count(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED) +_efl_ui_box_efl_container_content_count(Eo *obj EINA_UNUSED, Efl_Ui_Box_Data *pd) { - Evas_Object_Box_Data *bd; - - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, 0); - - bd = evas_object_smart_data_get(wd->resize_obj); - return bd ? eina_list_count(bd->children) : 0; + return eina_list_count(pd->children); } EOLIAN static Eina_Bool _efl_ui_box_efl_pack_pack_clear(Eo *obj, Efl_Ui_Box_Data *pd) { - Eina_Bool ret; + Eo *child; + EINA_LIST_FREE(pd->children, child) + { + efl_event_callback_array_del(child, efl_ui_box_callbacks(), obj); + efl_del(child); + } - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); + efl_pack_layout_request(obj); - ret = evas_object_box_remove_all(wd->resize_obj, EINA_TRUE); - _sizing_eval(obj, pd); - - return ret; + return EINA_TRUE; } EOLIAN static Eina_Bool _efl_ui_box_efl_pack_unpack_all(Eo *obj, Efl_Ui_Box_Data *pd) { - Evas_Object_Box_Data *bd; - Evas_Object_Box_Option *opt; - Eina_List *l; - Eina_Bool ret; + Eo *child; + Eina_Bool ret = EINA_TRUE; - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); - - /* set this to block _sizing_eval() calls */ - pd->delete_me = EINA_TRUE; - bd = evas_object_smart_data_get(wd->resize_obj); - EINA_LIST_FOREACH(bd->children, l, opt) - _elm_widget_sub_object_redirect_to_top(obj, opt->obj); - pd->delete_me = EINA_FALSE; - - ret = evas_object_box_remove_all(wd->resize_obj, EINA_FALSE); - _sizing_eval(obj, pd); + EINA_LIST_FREE(pd->children, child) + ret &= _efl_ui_box_child_unregister(obj, pd, child); return ret; } @@ -236,16 +211,12 @@ _efl_ui_box_efl_pack_unpack_all(Eo *obj, Efl_Ui_Box_Data *pd) EOLIAN static Eina_Bool _efl_ui_box_efl_pack_unpack(Eo *obj, Efl_Ui_Box_Data *pd, Efl_Gfx_Entity *subobj) { - Eina_Bool ret = EINA_FALSE; - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); + if (!_efl_ui_box_child_unregister(obj, pd, subobj)) + return EINA_FALSE; - if (evas_object_box_remove(wd->resize_obj, subobj)) - { - ret = _elm_widget_sub_object_redirect_to_top(obj, subobj); - _sizing_eval(obj, pd); - } + pd->children = eina_list_remove(pd->children, subobj); - return ret; + return EINA_TRUE; } EOLIAN static Eina_Bool @@ -255,133 +226,91 @@ _efl_ui_box_efl_pack_pack(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED, Efl_Gfx_Enti } EOLIAN static Eina_Bool -_efl_ui_box_efl_pack_linear_pack_end(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED, Efl_Gfx_Entity *subobj) +_efl_ui_box_efl_pack_linear_pack_end(Eo *obj, Efl_Ui_Box_Data *pd, Efl_Gfx_Entity *subobj) { - Eina_Bool ret; - - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); - - ret = elm_widget_sub_object_add(obj, subobj); - ret &= (evas_object_box_append(wd->resize_obj, subobj) != NULL); - - return ret; -} - -EOLIAN static Eina_Bool -_efl_ui_box_efl_pack_linear_pack_begin(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSED, Efl_Gfx_Entity *subobj) -{ - Eina_Bool ret; - - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); - - ret = elm_widget_sub_object_add(obj, subobj); - ret &= (evas_object_box_prepend(wd->resize_obj, subobj) != NULL); - - return ret; -} - -EOLIAN static Eina_Bool -_efl_ui_box_efl_pack_linear_pack_before(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSED, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing) -{ - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); - - if (!elm_widget_sub_object_add(obj, subobj)) + if (!_efl_ui_box_child_register(obj, pd, subobj)) return EINA_FALSE; - if (!evas_object_box_insert_before(wd->resize_obj, subobj, existing)) - { - elm_widget_sub_object_del(obj, subobj); - return EINA_FALSE; - } + pd->children = eina_list_append(pd->children, subobj); return EINA_TRUE; } EOLIAN static Eina_Bool -_efl_ui_box_efl_pack_linear_pack_after(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSED, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing) +_efl_ui_box_efl_pack_linear_pack_begin(Eo *obj, Efl_Ui_Box_Data *pd, Efl_Gfx_Entity *subobj) { - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); - - if (!elm_widget_sub_object_add(obj, subobj)) + if (!_efl_ui_box_child_register(obj, pd, subobj)) return EINA_FALSE; - if (!evas_object_box_insert_after(wd->resize_obj, subobj, existing)) - { - elm_widget_sub_object_del(obj, subobj); - return EINA_FALSE; - } + pd->children = eina_list_prepend(pd->children, subobj); return EINA_TRUE; } EOLIAN static Eina_Bool -_efl_ui_box_efl_pack_linear_pack_at(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED, - Efl_Gfx_Entity *subobj, int index) +_efl_ui_box_efl_pack_linear_pack_before(Eo *obj, Efl_Ui_Box_Data *pd, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing) { - if (!index) + if (!_efl_ui_box_child_register(obj, pd, subobj)) + return EINA_FALSE; + + pd->children = eina_list_prepend_relative(pd->children, subobj, existing); + + return EINA_TRUE; +} + +EOLIAN static Eina_Bool +_efl_ui_box_efl_pack_linear_pack_after(Eo *obj, Efl_Ui_Box_Data *pd, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing) +{ + if (!_efl_ui_box_child_register(obj, pd, subobj)) + return EINA_FALSE; + + pd->children = eina_list_append_relative(pd->children, subobj, existing); + + return EINA_TRUE; +} + +EOLIAN static Eina_Bool +_efl_ui_box_efl_pack_linear_pack_at(Eo *obj, Efl_Ui_Box_Data *pd, Efl_Gfx_Entity *subobj, int index) +{ + int count = eina_list_count(pd->children); + + if (index < -count) return efl_pack_begin(obj, subobj); - else if (index == -1) + + if (index >= count) return efl_pack_end(obj, subobj); - else - { - Evas_Object_Box_Data *bd; - int cnt; - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); + if (index < 0) + index += count; - bd = evas_object_smart_data_get(wd->resize_obj); - cnt = eina_list_count(bd ? bd->children : NULL); - if (!cnt) - index = 0; - else - { - index %= cnt; - if (index < 0) index += cnt; - } - return (evas_object_box_insert_at(wd->resize_obj, subobj, index) != NULL); - } -} + if (!_efl_ui_box_child_register(obj, pd, subobj)) + return EINA_FALSE; -static inline Efl_Gfx_Entity * -_box_item(Evas_Object_Box_Option *opt) -{ - return opt ? opt->obj : NULL; + pd->children = eina_list_prepend_relative_list(pd->children, subobj, + eina_list_nth_list(pd->children, index)); + + return EINA_TRUE; } EOLIAN static Efl_Gfx_Entity * -_efl_ui_box_efl_pack_linear_pack_content_get(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED, - int index) +_efl_ui_box_efl_pack_linear_pack_content_get(Eo *obj EINA_UNUSED, Efl_Ui_Box_Data *pd, int index) { - Evas_Object_Box_Data *bd; - int cnt; + int count = eina_list_count(pd->children); - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); - bd = evas_object_smart_data_get(wd->resize_obj); - if (!bd || !bd->children) return NULL; + if (index <= -count) + return eina_list_data_get(pd->children); - if (!index) - return _box_item(eina_list_data_get(bd->children)); - else if (index == -1) - return _box_item(eina_list_last_data_get(bd->children)); + if (index >= count) + return eina_list_last_data_get(pd->children); - cnt = eina_list_count(bd->children); - if (!cnt) return NULL; + if (index < 0) + index += count; - if (index >= (cnt - 1)) - return _box_item(eina_list_last_data_get(bd->children)); - else if (index <= (-cnt)) - return _box_item(eina_list_data_get(bd->children)); - - // this should loop only once - while (index < 0) - index += cnt; - - return _box_item(eina_list_nth(bd->children, index)); + return eina_list_nth(pd->children, index); } EOLIAN static Efl_Gfx_Entity * -_efl_ui_box_efl_pack_linear_pack_unpack_at(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED, - int index) +_efl_ui_box_efl_pack_linear_pack_unpack_at(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED, int index) { Efl_Gfx_Entity *content; @@ -395,90 +324,28 @@ _efl_ui_box_efl_pack_linear_pack_unpack_at(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNU } EOLIAN static int -_efl_ui_box_efl_pack_linear_pack_index_get(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED, - const Efl_Gfx_Entity *subobj) +_efl_ui_box_efl_pack_linear_pack_index_get(Eo *obj EINA_UNUSED, Efl_Ui_Box_Data *pd, const Efl_Gfx_Entity *subobj) { - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, -1); - Evas_Object_Box_Data *bd; - Evas_Object_Box_Option *opt; - Eina_List *l; - int k = 0; - - if (evas_object_smart_parent_get(subobj) != wd->resize_obj) - goto end; - - bd = evas_object_smart_data_get(wd->resize_obj); - EINA_LIST_FOREACH(bd->children, l, opt) - { - if (opt->obj == subobj) - return k; - k++; - } - -end: - ERR("object %p (%s) is not a child of %p (%s)", - subobj, efl_class_name_get(subobj), obj, efl_class_name_get(obj)); - return -1; + return eina_list_data_idx(pd->children, (Efl_Gfx_Entity *)subobj); } EOLIAN static void _efl_ui_box_efl_pack_layout_layout_request(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED) { - evas_object_smart_need_recalculate_set(obj, EINA_TRUE); -} - -static Eina_Bool -_box_item_iterator_next(Box_Item_Iterator *it, void **data) -{ - Efl_Gfx_Entity *sub; - - if (!eina_iterator_next(it->real_iterator, (void **) &sub)) - return EINA_FALSE; - - if (data) *data = sub; - return EINA_TRUE; -} - -static Eo * -_box_item_iterator_get_container(Box_Item_Iterator *it) -{ - return it->object; -} - -static void -_box_item_iterator_free(Box_Item_Iterator *it) -{ - eina_iterator_free(it->real_iterator); - eina_list_free(it->list); - free(it); + efl_canvas_group_need_recalculate_set(obj, EINA_TRUE); } EOLIAN static Eina_Iterator * -_efl_ui_box_efl_container_content_iterate(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED) +_efl_ui_box_efl_container_content_iterate(Eo *obj EINA_UNUSED, Efl_Ui_Box_Data *pd) { - Box_Item_Iterator *it; - - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); - - it = calloc(1, sizeof(*it)); - if (!it) return NULL; - - EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); - - it->list = evas_object_box_children_get(wd->resize_obj); - it->real_iterator = eina_list_iterator_new(it->list); - it->iterator.version = EINA_ITERATOR_VERSION; - it->iterator.next = FUNC_ITERATOR_NEXT(_box_item_iterator_next); - it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_box_item_iterator_get_container); - it->iterator.free = FUNC_ITERATOR_FREE(_box_item_iterator_free); - it->object = obj; - - return &it->iterator; + return eina_list_iterator_new(pd->children); } EOLIAN static void _efl_ui_box_efl_ui_direction_direction_set(Eo *obj, Efl_Ui_Box_Data *pd, Efl_Ui_Dir dir) { + if (pd->dir == dir) return; + switch (dir) { case EFL_UI_DIR_RTL: @@ -510,28 +377,24 @@ _efl_ui_box_efl_ui_direction_direction_get(const Eo *obj EINA_UNUSED, Efl_Ui_Box EOLIAN static void _efl_ui_box_efl_pack_pack_padding_set(Eo *obj, Efl_Ui_Box_Data *pd, double h, double v, Eina_Bool scalable) { - - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - + scalable = !!scalable; if (h < 0) h = 0; if (v < 0) v = 0; + + if (EINA_DBL_EQ(pd->pad.h, h) && EINA_DBL_EQ(pd->pad.v, v) && + (pd->pad.scalable == scalable)) + return; + pd->pad.h = h; pd->pad.v = v; - pd->pad.scalable = !!scalable; - if (pd->pad.scalable) - { - double scale = elm_object_scale_get(obj); - evas_object_box_padding_set(wd->resize_obj, h * scale, v * scale); - } - else - evas_object_box_padding_set(wd->resize_obj, h, v); + pd->pad.scalable = scalable; + + efl_pack_layout_request(obj); } EOLIAN static void -_efl_ui_box_efl_pack_pack_padding_get(const Eo *obj, Efl_Ui_Box_Data *pd, double *h, double *v, Eina_Bool *scalable) +_efl_ui_box_efl_pack_pack_padding_get(const Eo *obj EINA_UNUSED, Efl_Ui_Box_Data *pd, double *h, double *v, Eina_Bool *scalable) { - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - if (scalable) *scalable = pd->pad.scalable; if (h) *h = pd->pad.h; if (v) *v = pd->pad.v; @@ -540,16 +403,17 @@ _efl_ui_box_efl_pack_pack_padding_get(const Eo *obj, Efl_Ui_Box_Data *pd, double EOLIAN static void _efl_ui_box_efl_pack_pack_align_set(Eo *obj, Efl_Ui_Box_Data *pd, double h, double v) { - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - if (h < 0) h = -1; + else if (h > 1) h = 1; if (v < 0) v = -1; - if (h > 1) h = 1; - if (v > 1) v = 1; + else if (v > 1) v = 1; + + if (EINA_DBL_EQ(pd->align.h, h) && EINA_DBL_EQ(pd->align.v, v)) + return; + pd->align.h = h; pd->align.v = v; - evas_object_box_align_set(wd->resize_obj, h, v); efl_pack_layout_request(obj); } diff --git a/src/lib/elementary/efl_ui_box.eo b/src/lib/elementary/efl_ui_box.eo index 6ec2da277f..5e5950cd63 100644 --- a/src/lib/elementary/efl_ui_box.eo +++ b/src/lib/elementary/efl_ui_box.eo @@ -30,6 +30,8 @@ class @beta Efl.Ui.Box extends Efl.Ui.Widget implements Efl.Pack_Linear, Efl.Pac implements { Efl.Object.constructor; Efl.Canvas.Group.group_calculate; + Efl.Gfx.Entity.position { set; } + Efl.Gfx.Entity.size { set; } Efl.Container.content_iterate; Efl.Container.content_count; Efl.Ui.Direction.direction { get; set; } diff --git a/src/lib/elementary/efl_ui_box_flow.c b/src/lib/elementary/efl_ui_box_flow.c index 38bcb7d626..2600acffd9 100644 --- a/src/lib/elementary/efl_ui_box_flow.c +++ b/src/lib/elementary/efl_ui_box_flow.c @@ -63,18 +63,14 @@ _row_weight_sort_cb(const void *l1, const void *l2) EOLIAN static void _efl_ui_box_flow_efl_pack_layout_layout_update(Eo *obj, Efl_Ui_Box_Flow_Data *pd EINA_UNUSED) { - Evas_Object_Box_Data *bd; - - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - bd = efl_data_scope_get(wd->resize_obj, EVAS_BOX_CLASS); - Efl_Ui_Box_Data *bcd = efl_data_scope_get(obj, EFL_UI_BOX_CLASS); - Evas_Object_Box_Option *opt; + Efl_Ui_Box_Data *bd = efl_data_scope_get(obj, EFL_UI_BOX_CLASS); + Eo *child; Eina_List *li; Eina_Inlist *inlist = NULL; Item_Calc *items, *item; Row_Calc *rows, *row; Efl_Ui_Container_Item_Hints *hints, *hint; - Eina_Bool axis = !efl_ui_dir_is_horizontal(bcd->dir, EINA_FALSE); + Eina_Bool axis = !efl_ui_dir_is_horizontal(bd->dir, EINA_FALSE); Eina_Bool c_axis = !axis; int want[2] = { 0, 0 }; int rc = 0, count, i = 0, id, item_last = 0; @@ -84,7 +80,7 @@ _efl_ui_box_flow_efl_pack_layout_layout_update(Eo *obj, Efl_Ui_Box_Flow_Data *pd count = eina_list_count(bd->children); if (!count) { - efl_gfx_hint_size_min_set(obj, EINA_SIZE2D(0, 0)); + efl_gfx_hint_size_restricted_min_set(obj, EINA_SIZE2D(0, 0)); return; } @@ -99,20 +95,20 @@ _efl_ui_box_flow_efl_pack_layout_layout_update(Eo *obj, Efl_Ui_Box_Flow_Data *pd #endif // scan all items, get their properties, calculate total weight & min size - EINA_LIST_FOREACH(bd->children, li, opt) + EINA_LIST_FOREACH(bd->children, li, child) { item = &items[i++]; - item->obj = opt->obj; + item->obj = child; hints = item->hints; _efl_ui_container_layout_item_init(item->obj, hints); - if ((bcd->homogeneous && !axis) || box_calc[0].fill) + if ((bd->homogeneous && !axis) || box_calc[0].fill) hints[0].weight = 1; else if (hints[0].weight < 0) hints[0].weight = 0; - if ((bcd->homogeneous && axis) || box_calc[1].fill) + if ((bd->homogeneous && axis) || box_calc[1].fill) hints[1].weight = 1; else if (hints[1].weight < 0) hints[1].weight = 0; @@ -120,7 +116,7 @@ _efl_ui_box_flow_efl_pack_layout_layout_update(Eo *obj, Efl_Ui_Box_Flow_Data *pd if (want[axis] < hints[axis].space) want[axis] = hints[axis].space; - if (bcd->homogeneous) + if (bd->homogeneous) continue; if (i == 1) @@ -150,7 +146,7 @@ _efl_ui_box_flow_efl_pack_layout_layout_update(Eo *obj, Efl_Ui_Box_Flow_Data *pd } // initialize homogeneous properties - if (bcd->homogeneous) + if (bd->homogeneous) { min_sum = 0; for (i = 0; i < count; i++) @@ -198,7 +194,7 @@ _efl_ui_box_flow_efl_pack_layout_layout_update(Eo *obj, Efl_Ui_Box_Flow_Data *pd cross_min_sum += row->cross_space; cross_weight_sum += row->cross_weight; - if (bcd->homogeneous) + if (bd->homogeneous) continue; if (row->weight_sum > 0) @@ -323,7 +319,7 @@ _efl_ui_box_flow_efl_pack_layout_layout_update(Eo *obj, Efl_Ui_Box_Flow_Data *pd row = item->row; - if (bcd->homogeneous) + if (bd->homogeneous) hints[axis].space = row->hgsize; hints[c_axis].space = row->cross_space; sw = hints[0].space - (hints[0].margin[0] + hints[0].margin[1]); diff --git a/src/lib/elementary/efl_ui_box_layout.c b/src/lib/elementary/efl_ui_box_layout.c index 4cc00e0c48..7240cd012c 100644 --- a/src/lib/elementary/efl_ui_box_layout.c +++ b/src/lib/elementary/efl_ui_box_layout.c @@ -28,10 +28,9 @@ _weight_sort_cb(const void *l1, const void *l2) } void -_efl_ui_box_custom_layout(Efl_Ui_Box *ui_box, Evas_Object_Box_Data *bd) +_efl_ui_box_custom_layout(Efl_Ui_Box *ui_box, Efl_Ui_Box_Data *pd) { - Efl_Ui_Box_Data *pd = efl_data_scope_get(ui_box, EFL_UI_BOX_CLASS); - Evas_Object_Box_Option *opt; + Eo *child; Eina_List *li; Eina_Inlist *inlist = NULL; Item_Calc *items, *item; @@ -44,7 +43,7 @@ _efl_ui_box_custom_layout(Efl_Ui_Box *ui_box, Evas_Object_Box_Data *bd) Efl_Ui_Container_Layout_Calc box_calc[2]; /* 0 is x-axis, 1 is y-axis */ - count = eina_list_count(bd->children); + count = eina_list_count(pd->children); if (!count) { efl_gfx_hint_size_restricted_min_set(ui_box, EINA_SIZE2D(0, 0)); @@ -59,10 +58,10 @@ _efl_ui_box_custom_layout(Efl_Ui_Box *ui_box, Evas_Object_Box_Data *bd) #endif // scan all items, get their properties, calculate total weight & min size - EINA_LIST_FOREACH(bd->children, li, opt) + EINA_LIST_FOREACH(pd->children, li, child) { item = &items[i++]; - item->obj = opt->obj; + item->obj = child; hints = item->hints; _efl_ui_container_layout_item_init(item->obj, hints); @@ -200,4 +199,6 @@ _efl_ui_box_custom_layout(Efl_Ui_Box *ui_box, Evas_Object_Box_Data *bd) (box_calc[1].pad * (count - 1)); efl_gfx_hint_size_restricted_min_set(ui_box, EINA_SIZE2D(want[0], want[1])); + + efl_event_callback_call(ui_box, EFL_PACK_EVENT_LAYOUT_UPDATED, NULL); } diff --git a/src/lib/elementary/efl_ui_box_private.h b/src/lib/elementary/efl_ui_box_private.h index 86a51398d2..5921eaf783 100644 --- a/src/lib/elementary/efl_ui_box_private.h +++ b/src/lib/elementary/efl_ui_box_private.h @@ -10,21 +10,13 @@ #include #include "elm_priv.h" -// FIXME: stop using Evas.Box -#include <../evas/canvas/evas_box_eo.h> - -// FIXME: stop using evas box -void _efl_ui_box_custom_layout(Efl_Ui_Box *box, Evas_Object_Box_Data *priv); - typedef struct _Efl_Ui_Box_Data Efl_Ui_Box_Data; -typedef struct _Box_Item_Iterator Box_Item_Iterator; struct _Efl_Ui_Box_Data { Efl_Ui_Dir dir; - Eina_Bool homogeneous : 1; - Eina_Bool delete_me : 1; - Eina_Bool recalc : 1; + Eo *clipper; + Eina_List *children; struct { double h, v; @@ -34,14 +26,8 @@ struct _Efl_Ui_Box_Data struct { double h, v; } align; -}; -struct _Box_Item_Iterator -{ - Eina_Iterator iterator; - Eina_List *list; - Eina_Iterator *real_iterator; - Efl_Ui_Box *object; + Eina_Bool homogeneous : 1; }; #endif diff --git a/src/lib/elementary/efl_ui_box_stack.c b/src/lib/elementary/efl_ui_box_stack.c index 69e72ea586..212368b4c0 100644 --- a/src/lib/elementary/efl_ui_box_stack.c +++ b/src/lib/elementary/efl_ui_box_stack.c @@ -16,8 +16,8 @@ struct _Item_Calc EOLIAN static void _efl_ui_box_stack_efl_pack_layout_layout_update(Eo *obj, void *_pd EINA_UNUSED) { - Evas_Object_Box_Option *opt; - Evas_Object_Box_Data *bd; + Efl_Ui_Box_Data *bd = efl_data_scope_get(obj, EFL_UI_BOX_CLASS); + Eo *child; Efl_Ui_Container_Layout_Calc box_calc[2]; Efl_Ui_Container_Item_Hints *hints; Item_Calc *items, *item; @@ -26,10 +26,6 @@ _efl_ui_box_stack_efl_pack_layout_layout_update(Eo *obj, void *_pd EINA_UNUSED) Evas_Object *old_child = NULL; int i = 0, count; - EINA_SAFETY_ON_FALSE_RETURN(efl_isa(obj, EFL_UI_BOX_CLASS)); - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - bd = efl_data_scope_get(wd->resize_obj, EVAS_BOX_CLASS); - count = eina_list_count(bd->children); if (!count) { @@ -44,13 +40,13 @@ _efl_ui_box_stack_efl_pack_layout_layout_update(Eo *obj, void *_pd EINA_UNUSED) memset(items, 0, count * sizeof(*items)); #endif - EINA_LIST_FOREACH(bd->children, l, opt) + EINA_LIST_FOREACH(bd->children, l, child) { item = &items[i++]; - item->obj = opt->obj; + item->obj = child; hints = item->hints; - _efl_ui_container_layout_item_init(opt->obj, hints); + _efl_ui_container_layout_item_init(child, hints); if (want.w < hints[0].space) want.w = hints[0].space; diff --git a/src/tests/elementary/efl_ui_test_box.c b/src/tests/elementary/efl_ui_test_box.c index b1792c96a4..ca9b0c134e 100644 --- a/src/tests/elementary/efl_ui_test_box.c +++ b/src/tests/elementary/efl_ui_test_box.c @@ -224,9 +224,7 @@ layout_setup() { win = win_add(); - layout = efl_add(EFL_UI_BOX_CLASS, win, - efl_pack_align_set(efl_added, 0.8, 0.2), - efl_ui_direction_set(efl_added, EFL_UI_DIR_VERTICAL)); + layout = efl_add(EFL_UI_BOX_CLASS, win); } static void @@ -254,6 +252,9 @@ EFL_START_TEST (efl_ui_box_layout_update) { int i, max_index = (sizeof(hints) / sizeof(Hint)); + efl_pack_align_set(layout, 0.8, 0.2); + efl_ui_direction_set(layout, EFL_UI_DIR_VERTICAL); + Eo *btn = efl_add(EFL_UI_BUTTON_CLASS, layout, efl_pack_end(layout, efl_added)); @@ -270,6 +271,9 @@ EFL_START_TEST (efl_ui_box_layout_update_pack) int i, max_index2, max_index3; Eo *btn, *btn2, *btn3; + efl_pack_align_set(layout, 0.8, 0.2); + efl_ui_direction_set(layout, EFL_UI_DIR_VERTICAL); + max_index2 = ((sizeof(hints2) / sizeof(Hint)) / 2); max_index3 = ((sizeof(hints3) / sizeof(Hint)) / 3); @@ -364,6 +368,8 @@ EFL_START_TEST (efl_ui_box_size) Eo *btn, *btn2, *btn3; Eina_Size2D min, user_min; + efl_ui_direction_set(layout, EFL_UI_DIR_VERTICAL); + btn = efl_add(EFL_UI_BUTTON_CLASS, layout, efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(100, 100)), efl_pack_end(layout, efl_added)); @@ -407,6 +413,144 @@ EFL_START_TEST (efl_ui_box_size) } EFL_END_TEST +EFL_START_TEST (efl_ui_box_pack_unpack) +{ +#define BTN_NUM 6 + Eo *o, *btn[BTN_NUM]; + Eina_Iterator *itr; + int i; + + for (i = 0; i < BTN_NUM; i++) + btn[i] = efl_add(EFL_UI_BUTTON_CLASS, layout); + + //pack test + ck_assert(efl_pack(layout, btn[1])); + ck_assert_ptr_eq(efl_pack_content_get(layout, 0), btn[1]); + ck_assert_int_eq(efl_pack_index_get(layout, btn[1]), 0); + ck_assert(!efl_pack_end(layout, btn[1])); + ck_assert(!efl_pack(layout, NULL)); + ck_assert(efl_pack_after(layout, btn[3], btn[1])); + ck_assert_ptr_eq(efl_pack_content_get(layout, 1), btn[3]); + ck_assert_int_eq(efl_pack_index_get(layout, btn[3]), 1); + ck_assert(efl_pack_after(layout, btn[5], NULL)); + ck_assert_ptr_eq(efl_pack_content_get(layout, 2), btn[5]); + ck_assert_int_eq(efl_pack_index_get(layout, btn[5]), 2); + ck_assert_ptr_eq(efl_pack_content_get(layout, -1), btn[5]); + ck_assert_int_eq(efl_pack_index_get(layout, btn[5]), 2); + ck_assert(!efl_pack_after(layout, btn[5], NULL)); + ck_assert(!efl_pack_after(layout, NULL, btn[5])); + ck_assert(efl_pack_before(layout, btn[4], btn[5])); + ck_assert(efl_pack_begin(layout, btn[0])); + ck_assert_ptr_eq(efl_pack_content_get(layout, 0), btn[0]); + ck_assert_int_eq(efl_pack_index_get(layout, btn[0]), 0); + ck_assert(efl_pack_at(layout, btn[2], 2)); + ck_assert_ptr_eq(efl_pack_content_get(layout, 2), btn[2]); + ck_assert_int_eq(efl_pack_index_get(layout, btn[2]), 2); + + ck_assert_int_eq(efl_content_count(layout), BTN_NUM); + + i = 0; + itr = efl_content_iterate(layout); + EINA_ITERATOR_FOREACH(itr, o) + { + ck_assert_ptr_eq(o, btn[i++]); + } + eina_iterator_free(itr); + + /* btn array index : 0 1 2 3 4 5 + * children index : 0 1 2 3 4 5 + * negative index : -6 -5 -4 -3 -2 -1 + */ + //negative index test + for (i = -1; i >= -BTN_NUM; i--) + { + o = efl_pack_content_get(layout, i); + ck_assert_ptr_eq(o, btn[BTN_NUM + i]); + ck_assert_int_eq(efl_pack_index_get(layout, o), BTN_NUM + i); + } + + //unpack test + ck_assert_ptr_eq(efl_pack_unpack_at(layout, 2), btn[2]); + ck_assert(!efl_pack_unpack(layout, btn[2])); + efl_pack_at(layout, btn[2], 2); + ck_assert(efl_pack_unpack(layout, efl_pack_content_get(layout, 2))); + ck_assert(!efl_pack_unpack(layout, btn[2])); + + efl_pack_at(layout, btn[2], 2); + ck_assert_ptr_eq(efl_pack_unpack_at(layout, efl_pack_index_get(layout, btn[2])), btn[2]); + + ck_assert(!efl_pack_unpack(layout, NULL)); + ck_assert_int_eq(efl_content_count(layout), BTN_NUM - 1); + + efl_pack_unpack_all(layout); + ck_assert_int_eq(efl_content_count(layout), 0); + ck_assert(!efl_invalidated_get(btn[0])); + + for (i = 0; i < BTN_NUM; i++) + efl_pack_end(layout, btn[i]); + + efl_pack_clear(layout); + ck_assert_int_eq(efl_content_count(layout), 0); + ck_assert(efl_invalidated_get(btn[0])); +#undef BTN_NUM +} +EFL_END_TEST + +EFL_START_TEST (efl_ui_box_properties) +{ + double h, v; + Eina_Bool b; + + //align test + efl_pack_align_get(layout, &h, &v); + ck_assert(EINA_DBL_EQ(h, 0.5)); + ck_assert(EINA_DBL_EQ(v, 0.5)); + + efl_pack_align_set(layout, 0.3, 0.8234); + efl_pack_align_get(layout, &h, &v); + ck_assert(EINA_DBL_EQ(h, 0.3)); + ck_assert(EINA_DBL_EQ(v, 0.8234)); + + efl_pack_align_set(layout, -0.23, 123); + efl_pack_align_get(layout, &h, &v); + ck_assert(EINA_DBL_EQ(h, -1)); + ck_assert(EINA_DBL_EQ(v, 1)); + + //padding test + efl_pack_padding_get(layout, &h, &v, &b); + ck_assert(EINA_DBL_EQ(h, 0.0)); + ck_assert(EINA_DBL_EQ(v, 0.0)); + ck_assert_int_eq(b, 0); + + efl_pack_padding_set(layout, 0.3, 0.8234, 1); + efl_pack_padding_get(layout, &h, &v, &b); + ck_assert(EINA_DBL_EQ(h, 0.3)); + ck_assert(EINA_DBL_EQ(v, 0.8234)); + ck_assert_int_eq(b, 1); + + efl_pack_padding_set(layout, -1.23, 123, 45); + efl_pack_padding_get(layout, &h, &v, &b); + ck_assert(EINA_DBL_EQ(h, 0)); + ck_assert(EINA_DBL_EQ(v, 123)); + ck_assert_int_eq(b, 1); + + //direction test + ck_assert_int_eq(efl_ui_direction_get(layout), EFL_UI_DIR_VERTICAL); + + efl_ui_direction_set(layout, EFL_UI_DIR_DEFAULT); + ck_assert_int_eq(efl_ui_direction_get(layout), EFL_UI_DIR_VERTICAL); + + efl_ui_direction_set(layout, EFL_UI_DIR_HORIZONTAL); + ck_assert_int_eq(efl_ui_direction_get(layout), EFL_UI_DIR_HORIZONTAL); + + //homogeneous test + ck_assert_int_eq(efl_ui_box_homogeneous_get(layout), 0); + + efl_ui_box_homogeneous_set(layout, 123); + ck_assert_int_eq(efl_ui_box_homogeneous_get(layout), 1); +} +EFL_END_TEST + void efl_ui_test_box(TCase *tc) { tcase_add_checked_fixture(tc, layout_setup, layout_teardown); @@ -414,4 +558,6 @@ void efl_ui_test_box(TCase *tc) tcase_add_test(tc, efl_ui_box_layout_update); tcase_add_test(tc, efl_ui_box_layout_update_pack); tcase_add_test(tc, efl_ui_box_size); + tcase_add_test(tc, efl_ui_box_pack_unpack); + tcase_add_test(tc, efl_ui_box_properties); } From adc51e882c5e57d5b38c58541d6e9f57a181c4be Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Sun, 31 Mar 2019 18:12:48 +0200 Subject: [PATCH 26/80] efl_ui_widget: we should ensure that every subobject is a gfx entity we are calling visible_set on them later on, this will drop errors, additionally this safes us from checking this in the widget-container code. Reviewed-by: Xavi Artigas Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D8520 --- src/lib/elementary/efl_ui_widget.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/elementary/efl_ui_widget.c b/src/lib/elementary/efl_ui_widget.c index 99da93aa3b..6ab2d8a026 100644 --- a/src/lib/elementary/efl_ui_widget.c +++ b/src/lib/elementary/efl_ui_widget.c @@ -1486,6 +1486,7 @@ _efl_ui_widget_widget_sub_object_add(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Ob Efl_Ui_Widget *parent; if (!sobj) return EINA_FALSE; + EINA_SAFETY_ON_FALSE_RETURN_VAL(efl_isa(sobj, EFL_GFX_ENTITY_INTERFACE), EINA_FALSE); EINA_SAFETY_ON_TRUE_RETURN_VAL(obj == sobj, EINA_FALSE); //first make sure that we unregister the sobj from the parent From b0549bb8cccead28182ed89dd63598e547032075 Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Mon, 1 Apr 2019 14:45:19 +0200 Subject: [PATCH 27/80] efl_ui_box: print more errors, when a element is added two times, we should print an error. Same for removing a child that is not part of this container. Reviewed-by: Xavi Artigas Differential Revision: https://phab.enlightenment.org/D8522 --- src/lib/elementary/efl_ui_box.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/efl_ui_box.c b/src/lib/elementary/efl_ui_box.c index 5e33ed8602..dbe9991cd8 100644 --- a/src/lib/elementary/efl_ui_box.c +++ b/src/lib/elementary/efl_ui_box.c @@ -47,7 +47,10 @@ static inline Eina_Bool _efl_ui_box_child_register(Eo *obj, Efl_Ui_Box_Data *pd, Efl_Gfx_Entity *subobj) { if (!subobj || (efl_canvas_object_render_parent_get(subobj) == obj)) - return EINA_FALSE; + { + ERR("subobj %p %s is already added to this", subobj, efl_class_name_get(subobj) ); + return EINA_FALSE; + } if (!efl_ui_widget_sub_object_add(obj, subobj)) return EINA_FALSE; @@ -66,6 +69,11 @@ _efl_ui_box_child_register(Eo *obj, Efl_Ui_Box_Data *pd, Efl_Gfx_Entity *subobj) static inline Eina_Bool _efl_ui_box_child_unregister(Eo *obj, Efl_Ui_Box_Data *pd EINA_UNUSED, Efl_Gfx_Entity *subobj) { + if (efl_canvas_object_render_parent_get(subobj) != obj) + { + ERR("subobj %p %s is not part of this widget", subobj, efl_class_name_get(subobj) ); + return EINA_FALSE; + } if (!subobj || !_elm_widget_sub_object_redirect_to_top(obj, subobj)) return EINA_FALSE; From 6440e509a0e94c14aa9e18740cdb09466280b17e Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Fri, 29 Mar 2019 08:14:05 +0100 Subject: [PATCH 28/80] elm: here comes a new testsuite We have two elementary test suite, what is more obvious than just adding a third one! This testsuite aims for establishing a standard behaviour for the interfaces we have added in efl now. This first part here brings a few testcases for Efl.Pack which are currently only passing for Efl.Ui.Box. More widgets will be added afterwards. The testcases themself are not defined after what worked or did not work, but rather what made sence (in my opinion ^_^). ref T7767 Reviewed-by: Mike Blumenkrantz Differential Revision: https://phab.enlightenment.org/D8518 --- src/tests/elementary/meson.build | 1 + .../elementary/spec/efl_test_container.c | 56 +++ src/tests/elementary/spec/efl_test_pack.c | 348 +++++++++++++++ .../elementary/spec/efl_test_pack_linear.c | 396 ++++++++++++++++++ src/tests/elementary/spec/efl_ui_spec_suite.c | 66 +++ src/tests/elementary/spec/efl_ui_spec_suite.h | 26 ++ src/tests/elementary/spec/generator.py | 66 +++ src/tests/elementary/spec/meson.build | 32 ++ 8 files changed, 991 insertions(+) create mode 100644 src/tests/elementary/spec/efl_test_container.c create mode 100644 src/tests/elementary/spec/efl_test_pack.c create mode 100644 src/tests/elementary/spec/efl_test_pack_linear.c create mode 100644 src/tests/elementary/spec/efl_ui_spec_suite.c create mode 100644 src/tests/elementary/spec/efl_ui_spec_suite.h create mode 100755 src/tests/elementary/spec/generator.py create mode 100644 src/tests/elementary/spec/meson.build diff --git a/src/tests/elementary/meson.build b/src/tests/elementary/meson.build index 51120beca8..edea9537dc 100644 --- a/src/tests/elementary/meson.build +++ b/src/tests/elementary/meson.build @@ -167,3 +167,4 @@ test('efl-ui-suite', efl_ui_suite, install_data(files(['testdiff.diff', 'testfile-windows.txt', 'testfile-withblanks.txt', 'testfile.txt']), install_dir : join_paths(dir_data, 'elementary') ) +subdir('spec') diff --git a/src/tests/elementary/spec/efl_test_container.c b/src/tests/elementary/spec/efl_test_container.c new file mode 100644 index 0000000000..ecef9b1740 --- /dev/null +++ b/src/tests/elementary/spec/efl_test_container.c @@ -0,0 +1,56 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#include +#include "efl_ui_spec_suite.h" +#include "suite_helpers.h" + +void +efl_test_container_content_equal(Efl_Ui_Widget **wid, unsigned int len) +{ + Efl_Ui_Widget *c; + Eina_Iterator *iter; + unsigned int i; + Eina_List *tmp = NULL; + + ck_assert_int_eq(efl_content_count(widget), len); + iter = efl_content_iterate(widget); + EINA_ITERATOR_FOREACH(iter, c) + { + ck_assert_ptr_eq(eina_list_data_find(tmp, c), NULL); + tmp = eina_list_append(tmp, c); + } + eina_iterator_free(iter); + for (i = 0; i < len; ++i) + { + ck_assert_ptr_ne(eina_list_data_find(tmp, wid[i]), NULL); + tmp = eina_list_remove(tmp, wid[i]); + } + ck_assert_int_eq(eina_list_count(tmp), 0); +} + +typedef struct { + Eina_Bool *flag; + void *expected_event_data; +} Efl_Container_Event_Content; + +static void +_evt_called(void *data, const Efl_Event *ev) +{ + Efl_Container_Event_Content *content = data; + + *content->flag = EINA_TRUE; + ck_assert_ptr_eq(content->expected_event_data, ev->info); + efl_event_callback_del(ev->object, ev->desc, _evt_called, data); + free(data); +} + +void +efl_test_container_expect_evt_content_added(Efl_Ui_Widget *widget, const Efl_Event_Description *ev, Eina_Bool *flag, void *event_data) +{ + Efl_Container_Event_Content *c = calloc(1, sizeof(Efl_Container_Event_Content)); + c->flag = flag; + c->expected_event_data = event_data; + efl_event_callback_add(widget, ev, _evt_called, c); +} diff --git a/src/tests/elementary/spec/efl_test_pack.c b/src/tests/elementary/spec/efl_test_pack.c new file mode 100644 index 0000000000..626e3e9b5b --- /dev/null +++ b/src/tests/elementary/spec/efl_test_pack.c @@ -0,0 +1,348 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#include +#include "efl_ui_spec_suite.h" +#include "suite_helpers.h" + +/* + In general: + - If a subobject is deleted the box simply forgets about it. Never return this element again container. +*/ + +EFL_START_TEST(base2) +{ + ck_assert(win); + ck_assert(widget); +} +EFL_END_TEST + +static void +_setup_std_pack(Efl_Ui_Widget *wid[3]) +{ + unsigned int i; + + for (i = 0; i < 3; ++i) + { + wid[i] = efl_add(WIDGET_CLASS, widget); + ck_assert_int_eq(efl_pack(widget, wid[i]), EINA_TRUE); + efl_gfx_entity_visible_set(widget, EINA_TRUE); + } +} + +/* + pack_clear function: + - each element must be deleted after the call + - the container must have 0 contents after the call + - the call must return true even if the container is empty +*/ + +EFL_START_TEST(pack_clear1) +{ + Efl_Ui_Widget *wid[3]; + unsigned int i; + + _setup_std_pack(wid); + + for (i = 0; i < sizeof(wid)/sizeof(Efl_Ui_Widget*); ++i) + { + efl_wref_add(wid[i], &wid[i]); + } + + ck_assert_int_eq(efl_pack_clear(widget), EINA_TRUE); + + for (i = 0; i < sizeof(wid)/sizeof(Efl_Ui_Widget*); ++i) + { + ck_assert_ptr_eq(wid[i], NULL); + } + + efl_test_container_content_equal(NULL, 0); +} +EFL_END_TEST + +EFL_START_TEST(pack_clear2) +{ + Efl_Ui_Widget *wid[3]; + + _setup_std_pack(wid); + + ck_assert_int_eq(efl_pack_clear(widget), EINA_TRUE); + ck_assert_int_eq(efl_pack_clear(widget), EINA_TRUE); + ck_assert_int_eq(efl_pack_clear(widget), EINA_TRUE); + ck_assert_int_eq(efl_pack_clear(widget), EINA_TRUE); + ck_assert_int_eq(efl_pack_clear(widget), EINA_TRUE); +} +EFL_END_TEST + +/* + unpack_all function: + - each element must have exactly one reference after the call + - the container must have 0 contents after the call + - the call must return true even if the container is empty +*/ + +EFL_START_TEST(unpack_all1) +{ + Efl_Ui_Widget *wid[3]; + unsigned int i; + + _setup_std_pack(wid); + + ck_assert_int_eq(efl_pack_unpack_all(widget), EINA_TRUE); + + for (i = 0; i < sizeof(wid)/sizeof(Efl_Ui_Widget*); ++i) + { + ck_assert_int_eq(efl_ref_count(wid[i]), 1); + } + efl_test_container_content_equal(NULL, 0); +} +EFL_END_TEST + +EFL_START_TEST(unpack_all2) +{ + Efl_Ui_Widget *wid[3]; + unsigned int i; + + _setup_std_pack(wid); + + ck_assert_int_eq(efl_pack_unpack_all(widget), EINA_TRUE); + ck_assert_int_eq(efl_pack_clear(widget), EINA_TRUE); + + for (i = 0; i < sizeof(wid)/sizeof(Efl_Ui_Widget*); ++i) + { + ck_assert_int_eq(efl_ref_count(wid[i]), 1); + } + efl_test_container_content_equal(NULL, 0); +} +EFL_END_TEST + +/* + unpack function: + - the element must have exactly one reference after the call + - the container must have one content less after the call + - the widget parent must be different from the parent + - unpacking something invalid can return EINA_FALSE but must not print an error +*/ + +EFL_START_TEST(unpack1) +{ + Efl_Ui_Widget *wid[3]; + _setup_std_pack(wid); + + ck_assert_int_eq(efl_pack_unpack(widget, wid[2]), EINA_TRUE); + ck_assert_ptr_ne(efl_ui_widget_parent_get(wid[2]), widget); + ck_assert_int_eq(efl_ref_count(wid[2]), 1); + efl_test_container_content_equal(wid, 2); +} +EFL_END_TEST + +EFL_START_TEST(unpack2) +{ + Efl_Ui_Widget *wid[3]; + _setup_std_pack(wid); + + ck_assert_int_eq(efl_pack_unpack(widget, wid[0]), EINA_TRUE); + ck_assert_int_eq(efl_pack(widget, wid[0]), EINA_TRUE); + ck_assert_int_eq(efl_pack_unpack(widget, wid[0]), EINA_TRUE); + ck_assert_int_eq(efl_pack(widget, wid[0]), EINA_TRUE); + + efl_test_container_content_equal(wid, 3); +} +EFL_END_TEST + +EFL_START_TEST(unpack3) +{ + Efl_Ui_Widget *wid[3], *invalid; + _setup_std_pack(wid); + + invalid = efl_add(WIDGET_CLASS, win); + ck_assert_int_eq(efl_pack_unpack(widget, wid[2]), EINA_TRUE); + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack_unpack(widget, wid[2]), EINA_FALSE); + EXPECT_ERROR_END; + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack_unpack(widget, wid[2]), EINA_FALSE); + EXPECT_ERROR_END; + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack_unpack(widget, (Eo*)0x111), EINA_FALSE); + EXPECT_ERROR_END; + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack_unpack(widget, invalid), EINA_FALSE); + EXPECT_ERROR_END; + efl_test_container_content_equal(wid, 2); +} +EFL_END_TEST + +/* + pack function: + - element must be added to the content of the container + - elements widget_parent must be the container + - double adding a widdget must error + - adding something invalid must error +*/ + +EFL_START_TEST(pack1) +{ + Efl_Ui_Widget *wid[3]; + unsigned int i; + + _setup_std_pack(wid); + + for (i = 0; i < sizeof(wid)/sizeof(Efl_Ui_Widget*); ++i) + { + ck_assert_int_eq(efl_ref_count(wid[i]), 1); + ck_assert_ptr_eq(efl_ui_widget_parent_get(wid[i]), widget); + } + + efl_test_container_content_equal(wid, 3); +} +EFL_END_TEST + +EFL_START_TEST(pack2) +{ + Efl_Ui_Widget *wid[3]; + _setup_std_pack(wid); + + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack(widget, wid[0]), EINA_FALSE); + EXPECT_ERROR_END; + efl_test_container_content_equal(wid, 3); +} +EFL_END_TEST + +EFL_START_TEST(pack3) +{ + Efl_Ui_Widget *wid[3]; + _setup_std_pack(wid); + + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack(widget, (Eo*)0x111F), EINA_FALSE); + EXPECT_ERROR_END; + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack(widget, widget), EINA_FALSE); + EXPECT_ERROR_END; + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack(widget, NULL), EINA_FALSE); + EXPECT_ERROR_END; + efl_test_container_content_equal(wid, 3); +} +EFL_END_TEST + +EFL_START_TEST(pack_align) +{ +#define TUPLE_CHECK(H,V,rh,rv) \ + do { \ + double v, h; \ + efl_pack_align_set(widget, H, V); \ + efl_pack_align_get(widget, &h, &v); \ + ck_assert(v == rv); \ + ck_assert(h == rh); \ + } while(0); + + TUPLE_CHECK( 1.0, 1.0, 1.0, 1.0); + TUPLE_CHECK( 0.0, 0.0, 0.0, 0.0); + TUPLE_CHECK(- 1.0, - 1.0, -1.0, -1.0); + TUPLE_CHECK(-42.0, -42.0, -1.0, -1.0); + TUPLE_CHECK( 42.0, 42.0, 1.0, 1.0); + TUPLE_CHECK(-42.0, 42.0, -1.0, 1.0); + TUPLE_CHECK( 42.0, -42.0, 1.0, -1.0); +#undef TUPLE_CHECK +} +EFL_END_TEST + +EFL_START_TEST(pack_padding) +{ +#define TUPLE_CHECK(H, V, rh, rv, S, rs) \ + do { \ + double v, h; \ + Eina_Bool r; \ + efl_pack_padding_set(widget, H, V, S); \ + efl_pack_padding_get(widget, &h, &v, &r); \ + ck_assert(v == rv); \ + ck_assert(h == rh); \ + ck_assert_int_eq(r, S); \ + } while(0); + + TUPLE_CHECK( 0.0, 0.0, 0.0, 0.0, EINA_TRUE, EINA_TRUE); + TUPLE_CHECK( -1.0, -123.0, 0.0, 0.0, EINA_FALSE, EINA_FALSE); + TUPLE_CHECK( -1.0, 123.0, 0.0, 123.0, EINA_FALSE, EINA_FALSE); +#undef TUPLE_CHECK +} +EFL_END_TEST + +EFL_START_TEST(evt_content_added) +{ + Eina_Bool called = EINA_TRUE; + Efl_Ui_Widget *wid = efl_add(WIDGET_CLASS, win); + efl_test_container_expect_evt_content_added(widget, EFL_CONTAINER_EVENT_CONTENT_ADDED, &called, wid); + efl_pack(widget, wid); + ck_assert_int_eq(called, EINA_TRUE); +} +EFL_END_TEST + +EFL_START_TEST(evt_content_removed) +{ + Eina_Bool called = EINA_TRUE; + Efl_Ui_Widget *wid[3]; + + _setup_std_pack(wid); + + efl_test_container_expect_evt_content_added(widget, EFL_CONTAINER_EVENT_CONTENT_REMOVED, &called, wid[1]); + efl_pack_unpack(widget, wid[1]); + ck_assert_int_eq(called, EINA_TRUE); +} +EFL_END_TEST + +EFL_START_TEST(child_killed) +{ + Efl_Ui_Widget *wid[3]; + _setup_std_pack(wid); + + efl_wref_add(wid[0], &wid[0]); + efl_del(wid[0]); + efl_test_container_content_equal(&wid[1], 2); + ck_assert_ptr_eq(wid[0], NULL); +} +EFL_END_TEST + +EFL_START_TEST(container_killed) +{ + Efl_Ui_Widget *wid[3]; + unsigned int i = 0; + + _setup_std_pack(wid); + + for (i = 0; i < sizeof(wid)/sizeof(Efl_Ui_Widget*); ++i) + { + efl_wref_add(wid[i], &wid[i]); + } + efl_del(widget); + for (i = 0; i < sizeof(wid)/sizeof(Efl_Ui_Widget*); ++i) + { + ck_assert_ptr_eq(wid[i], NULL); + } +} +EFL_END_TEST + +void +efl_pack_behavior_test(TCase *tc) +{ + tcase_add_test(tc, base2); + tcase_add_test(tc, pack_clear1); + tcase_add_test(tc, pack_clear2); + tcase_add_test(tc, unpack_all1); + tcase_add_test(tc, unpack_all2); + tcase_add_test(tc, unpack1); + tcase_add_test(tc, unpack2); + tcase_add_test(tc, unpack3); + tcase_add_test(tc, pack1); + tcase_add_test(tc, pack2); + tcase_add_test(tc, pack3); + tcase_add_test(tc, pack_align); + tcase_add_test(tc, pack_padding); + tcase_add_test(tc, evt_content_added); + tcase_add_test(tc, evt_content_removed); + tcase_add_test(tc, child_killed); + tcase_add_test(tc, container_killed); +} diff --git a/src/tests/elementary/spec/efl_test_pack_linear.c b/src/tests/elementary/spec/efl_test_pack_linear.c new file mode 100644 index 0000000000..cf85f9192b --- /dev/null +++ b/src/tests/elementary/spec/efl_test_pack_linear.c @@ -0,0 +1,396 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#include +#include "efl_ui_spec_suite.h" +#include "suite_helpers.h" +#include + +static void +_fill_array(Efl_Ui_Widget *wid[3]) +{ + for (int i = 0; i < 3; ++i) + { + wid[i] = efl_add(WIDGET_CLASS, win); + } +} + +static void +_ordering_equals(Efl_Ui_Widget **wid, unsigned int len) +{ + for (unsigned int i = 0; i < len; ++i) + { + ck_assert_ptr_eq(efl_pack_content_get(widget, i), wid[i]); + } + efl_test_container_content_equal(wid, len); +} + +EFL_START_TEST(pack_begin1) +{ + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + + _fill_array(wid); + + for (int i = 2; i >= 0; i--) + { + efl_pack_begin(widget, wid[i]); + ck_assert_ptr_eq(efl_ui_widget_parent_get(wid[i]), widget); + } + _ordering_equals(wid, 3); + efl_pack_begin(widget, inv); + ck_assert_ptr_eq(efl_pack_content_get(widget, 0), inv); + Efl_Ui_Widget *wid2[] = {inv, wid[0], wid[1], wid[2]}; + _ordering_equals(wid2, 4); +} +EFL_END_TEST + +EFL_START_TEST(pack_begin2) +{ + Efl_Ui_Widget *wid[3]; + + _fill_array(wid); + + for (int i = 2; i >= 0; i--) + { + efl_pack_begin(widget, wid[i]); + ck_assert_ptr_eq(efl_ui_widget_parent_get(wid[i]), widget); + } + + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack_begin(widget, wid[0]), EINA_FALSE); + EXPECT_ERROR_END; + _ordering_equals(wid, 3); +} +EFL_END_TEST + +EFL_START_TEST(pack_end1) +{ + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + + _fill_array(wid); + + for (int i = 0; i < 3; i++) + { + efl_pack_end(widget, wid[i]); + ck_assert_ptr_eq(efl_ui_widget_parent_get(wid[i]), widget); + } + + _ordering_equals(wid, 3); + efl_pack_end(widget, inv); + ck_assert_ptr_eq(efl_pack_content_get(widget, 3), inv); + Efl_Ui_Widget *wid2[] = {wid[0], wid[1], wid[2], inv}; + _ordering_equals(wid2, 4); +} +EFL_END_TEST + +EFL_START_TEST(pack_end2) +{ + Efl_Ui_Widget *wid[3]; + + _fill_array(wid); + + for (int i = 0; i < 3; i++) + { + efl_pack_end(widget, wid[i]); + ck_assert_ptr_eq(efl_ui_widget_parent_get(wid[i]), widget); + } + + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack_end(widget, wid[0]), EINA_FALSE); + EXPECT_ERROR_END; + _ordering_equals(wid, 3); +} +EFL_END_TEST + +EFL_START_TEST(pack_before1) +{ + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + + _fill_array(wid); + + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + + ck_assert_int_eq(efl_pack_before(widget, inv, wid[0]), EINA_TRUE); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv), widget); + Efl_Ui_Widget *wid2[] = {inv, wid[0], wid[1], wid[2]}; + _ordering_equals(wid2, 4); + efl_pack_unpack(widget, inv); + + ck_assert_int_eq(efl_pack_before(widget, inv, wid[2]), EINA_TRUE); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv), widget); + Efl_Ui_Widget *wid3[] = {wid[0], wid[1], inv, wid[2]}; + _ordering_equals(wid3, 4); +} +EFL_END_TEST + +EFL_START_TEST(pack_before2) +{ + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + + _fill_array(wid); + + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + + ck_assert_int_eq(efl_pack_before(widget, inv, wid[0]), EINA_TRUE); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv), widget); + Efl_Ui_Widget *wid2[] = {inv, wid[0], wid[1], wid[2]}; + _ordering_equals(wid2, 4); + + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack_before(widget, inv, wid[2]), EINA_FALSE); + EXPECT_ERROR_END; +} +EFL_END_TEST + +EFL_START_TEST(pack_after1) +{ + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + + _fill_array(wid); + + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + + ck_assert_int_eq(efl_pack_after(widget, inv, wid[0]), EINA_TRUE); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv), widget); + Efl_Ui_Widget *wid2[] = {wid[0], inv, wid[1], wid[2]}; + _ordering_equals(wid2, 4); + efl_pack_unpack(widget, inv); + + ck_assert_int_eq(efl_pack_after(widget, inv, wid[2]), EINA_TRUE); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv), widget); + Efl_Ui_Widget *wid3[] = {wid[0], wid[1], wid[2], inv}; + _ordering_equals(wid3, 4); +} +EFL_END_TEST + +EFL_START_TEST(pack_after2) +{ + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + + _fill_array(wid); + + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + + ck_assert_int_eq(efl_pack_after(widget, inv, wid[0]), EINA_TRUE); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv), widget); + Efl_Ui_Widget *wid2[] = {wid[0], inv, wid[1], wid[2]}; + _ordering_equals(wid2, 4); + + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack_after(widget, inv, wid[2]), EINA_FALSE); + EXPECT_ERROR_END; +} +EFL_END_TEST + +EFL_START_TEST(pack_at1) +{ + for (int x = -3; x < 3; ++x) + { + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + unsigned int i; + + _fill_array(wid); + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + + efl_pack_at(widget, inv, x); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv), widget); + + for (i = 0; i < 4; ++i) + { + Efl_Ui_Widget *w = efl_pack_content_get(widget, i); + unsigned int place_to_expect_inv = (3 + x) % 3; + if (i == place_to_expect_inv) + ck_assert_ptr_eq(w, inv); + else if (i < place_to_expect_inv) + ck_assert_ptr_eq(w, wid[i]); + else if (i > place_to_expect_inv) + ck_assert_ptr_eq(w, wid[i - 1]); + } + efl_pack_clear(widget); + } +} +EFL_END_TEST + +EFL_START_TEST(pack_at2) +{ + for (int x = -3; x < 3; ++x) + { + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + unsigned int i; + + _fill_array(wid); + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + + ck_assert_int_eq(efl_pack_at(widget, inv, x), EINA_TRUE); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv), widget); + + EXPECT_ERROR_START; + ck_assert_int_eq(efl_pack_at(widget, inv, x - 1), EINA_FALSE); + EXPECT_ERROR_END; + + for (i = 0; i < 4; ++i) + { + Efl_Ui_Widget *w = efl_pack_content_get(widget, i); + unsigned int place_to_expect_inv = (3 + x) % 3; + if (i == place_to_expect_inv) + ck_assert_ptr_eq(w, inv); + else if (i < place_to_expect_inv) + ck_assert_ptr_eq(w, wid[i]); + else if (i > place_to_expect_inv) + ck_assert_ptr_eq(w, wid[i - 1]); + } + efl_pack_clear(widget); + } +} +EFL_END_TEST + + +EFL_START_TEST(pack_at3) +{ + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + Efl_Ui_Widget *inv2 = efl_add(WIDGET_CLASS, win); + + _fill_array(wid); + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + + ck_assert_int_eq(efl_pack_at(widget, inv,-100000), EINA_TRUE); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv), widget); + ck_assert_int_eq(efl_pack_at(widget, inv2, 100000), EINA_TRUE); + ck_assert_ptr_eq(efl_ui_widget_parent_get(inv2), widget); + Efl_Ui_Widget *wid2[] = {inv, wid[0], wid[1], wid[2], inv2}; + _ordering_equals(wid2, 5); +} +EFL_END_TEST + +EFL_START_TEST(pack_content_get1) +{ + Efl_Ui_Widget *wid[3]; + + _fill_array(wid); + + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + + for (int i = -100000; i <= 100000; i++) + { + if (i < -3) + ck_assert_ptr_eq(efl_pack_content_get(widget, i), efl_pack_content_get(widget, 0)); + else if (i >= -3 && i < 3) + ck_assert_ptr_eq(efl_pack_content_get(widget, i), wid[(i + 3) % 3]); + else + ck_assert_ptr_eq(efl_pack_content_get(widget, i), efl_pack_content_get(widget, 2)); + } +} +EFL_END_TEST + +EFL_START_TEST(pack_index_get1) +{ + Efl_Ui_Widget *wid[3]; + Efl_Ui_Widget *inv = efl_add(WIDGET_CLASS, win); + + _fill_array(wid); + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + for (int i = 0; i < 3; i++) + ck_assert_int_eq(efl_pack_index_get(widget, wid[i]), i); + + ck_assert_int_eq(efl_pack_index_get(widget, (void*)0xAFFE), -1); + ck_assert_int_eq(efl_pack_index_get(widget, inv), -1); +} +EFL_END_TEST + +EFL_START_TEST(pack_unpack_at1) +{ + Efl_Ui_Widget *wid[3]; + + _fill_array(wid); + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + for (int i = 0; i < 3; i++) + ck_assert_int_eq(efl_pack_index_get(widget, wid[i]), i); + + ck_assert_ptr_eq(efl_pack_unpack_at(widget, 1), wid[1]); + Efl_Ui_Widget *wid1[] = {wid[0], wid[2]}; + _ordering_equals(wid1, 2); + ck_assert_ptr_eq(efl_pack_unpack_at(widget, 1), wid[2]); + Efl_Ui_Widget *wid2[] = {wid[0]}; + _ordering_equals(wid2, 1); + ck_assert_ptr_eq(efl_pack_unpack_at(widget, 0), wid[0]); + Efl_Ui_Widget *wid3[] = {}; + _ordering_equals(wid3, 0); +} +EFL_END_TEST + + +EFL_START_TEST(pack_unpack_at2) +{ + Efl_Ui_Widget *wid[3]; + + _fill_array(wid); + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + for (int i = 0; i < 3; i++) + ck_assert_int_eq(efl_pack_index_get(widget, wid[i]), i); + + ck_assert_ptr_eq(efl_pack_unpack_at(widget, 1), wid[1]); + efl_del(widget); + ck_assert_int_eq(efl_ref_count(wid[1]), 1); + ck_assert_int_eq(efl_ref_count(widget), 0); +} +EFL_END_TEST + +EFL_START_TEST(pack_unpack_at3) +{ + for (int x = -3; x < 3; ++x) + { + Efl_Ui_Widget *wid[3]; + + _fill_array(wid); + for (int i = 0; i < 3; i++) + efl_pack_end(widget, wid[i]); + ck_assert_ptr_eq(efl_pack_unpack_at(widget, x), wid[(3+x)%3]); + ck_assert_int_eq(efl_content_count(widget), 2); + ck_assert_ptr_ne(efl_ui_widget_parent_get(wid[(3+x)%3]), widget); + efl_pack_unpack_all(widget); + } +} +EFL_END_TEST + +void +efl_pack_linear_behavior_test(TCase *tc) +{ + tcase_add_test(tc, pack_begin1); + tcase_add_test(tc, pack_begin2); + tcase_add_test(tc, pack_end1); + tcase_add_test(tc, pack_end2); + tcase_add_test(tc, pack_before1); + tcase_add_test(tc, pack_before2); + tcase_add_test(tc, pack_after1); + tcase_add_test(tc, pack_after2); + tcase_add_test(tc, pack_at1); + tcase_add_test(tc, pack_at2); + tcase_add_test(tc, pack_at3); + tcase_add_test(tc, pack_content_get1); + tcase_add_test(tc, pack_index_get1); + tcase_add_test(tc, pack_unpack_at1); + tcase_add_test(tc, pack_unpack_at2); + tcase_add_test(tc, pack_unpack_at3); + efl_pack_behavior_test(tc); +} diff --git a/src/tests/elementary/spec/efl_ui_spec_suite.c b/src/tests/elementary/spec/efl_ui_spec_suite.c new file mode 100644 index 0000000000..1b84cf540e --- /dev/null +++ b/src/tests/elementary/spec/efl_ui_spec_suite.c @@ -0,0 +1,66 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#include +#include "efl_ui_spec_suite.h" +#include "suite_helpers.h" +#include "eo_internal.h" + +Evas_Object *win = NULL; +Evas_Object *widget = NULL; + +EFL_CLASS_SIMPLE_CLASS(efl_ui_widget, "efl_ui_widget", EFL_UI_WIDGET_CLASS); + +static int tree_abort; +static int tree_abort_level; + +static void +_shutdown(void) +{ + eina_log_abort_on_critical_set(tree_abort); + eina_log_abort_on_critical_level_set(tree_abort_level); +} + +static void +_setup(void) +{ + tree_abort = eina_log_abort_on_critical_get(); + tree_abort_level = eina_log_abort_on_critical_level_get(); + eina_log_abort_on_critical_level_set(2); + eina_log_abort_on_critical_set(1); +} + +static void +_setup_window_and_widget(const Efl_Class *klass) +{ + ck_assert(!win); + ck_assert(!widget); + + win = win_add(); + widget = efl_add(klass, win); + efl_content_set(win, widget); + + ck_assert(win); + ck_assert(widget); +} + +#include "efl_ui_spec_suite_gen.x" +int +main(int argc, char **argv) +{ + int failed_count; + +#define LIST_DECL +#include "efl_ui_spec_suite_gen.x" + + if (!_efl_test_option_disp(argc, argv, etc)) + return 0; + + failed_count = suite_setup(EINA_FALSE); + + failed_count += _efl_suite_build_and_run(argc - 1, (const char **)argv + 1, + "Efl_Ui_Spec", etc, SUITE_INIT_FN(elm2), SUITE_SHUTDOWN_FN(elm)); + + return (failed_count == 0) ? 0 : 255; +} diff --git a/src/tests/elementary/spec/efl_ui_spec_suite.h b/src/tests/elementary/spec/efl_ui_spec_suite.h new file mode 100644 index 0000000000..c8e008fa60 --- /dev/null +++ b/src/tests/elementary/spec/efl_ui_spec_suite.h @@ -0,0 +1,26 @@ +#ifndef EFL_UI_SUITE_H +#define EFL_UI_SUITE_H + +#include + +#define EFL_NOLEGACY_API_SUPPORT +#include +#include "../efl_check.h" + +extern Evas_Object *win; +extern Evas_Object *widget; + +void efl_pack_behavior_test(TCase *tc); +void efl_pack_linear_behavior_test(TCase *tc); + + +void efl_test_container_content_equal(Efl_Ui_Widget **wid, unsigned int len); +void efl_test_container_expect_evt_content_added(Efl_Ui_Widget *widget, const Efl_Event_Description *ev, Eina_Bool *flag, void *event_data); + +Evas_Object * win_add(); + +const Efl_Class* efl_ui_widget_realized_class_get(void); + +#define WIDGET_CLASS efl_ui_widget_realized_class_get() + +#endif diff --git a/src/tests/elementary/spec/generator.py b/src/tests/elementary/spec/generator.py new file mode 100755 index 0000000000..3554b31b56 --- /dev/null +++ b/src/tests/elementary/spec/generator.py @@ -0,0 +1,66 @@ +#!/usr/bin/python + +tests = [ + ["Efl.Pack_Linear" , "Efl.Ui.Box"], +] + +fixture_gen_template = """ +static void +_{}_fixture(void) +{{ + _setup_window_and_widget({}); +}} +""" + +tcase_gen_template = """ +static void +{}(TCase *tc) +{{ + tcase_add_checked_fixture(tc, _{}_fixture, NULL); + tcase_add_checked_fixture(tc, _setup, _shutdown); + {}(tc); +}} + +""" + +file_gen_template = """ +#ifdef LIST_DECL + {} +#else + {} +#endif +""" + +import sys + +list_of_tcases = "static const Efl_Test_Case etc[] = {\n" +list_entry = " {{ \"{}-{}\", {}}},\n" +generated_api = "" + +def interface_to_api(interface_name): + return interface_name+"_behavior_test" + +def to_func_name(class_name): + return class_name.replace('.','_').lower() + +def to_class_getter(class_name): + return class_name.replace('.','_').upper()+'_CLASS' + +widgets = [] + +for test in tests: + interface_test = to_func_name(test[0]) + for widget_class in test[1:]: + combo_name = "_{}_{}".format(to_func_name(interface_test), to_func_name(widget_class)); + list_of_tcases += list_entry.format(interface_test, to_func_name(widget_class), combo_name) + generated_api += tcase_gen_template.format(combo_name, to_func_name(widget_class), interface_to_api(interface_test)) + if widget_class not in widgets: + widgets += [widget_class] + +for widget in widgets: + generated_api = fixture_gen_template.format(to_func_name(widget), to_class_getter(widget)) + generated_api + +list_of_tcases += " { NULL, NULL }\n};" + +output = open(sys.argv[1], "w") +output.write(file_gen_template.format(list_of_tcases, generated_api)) diff --git a/src/tests/elementary/spec/meson.build b/src/tests/elementary/spec/meson.build new file mode 100644 index 0000000000..495d864bda --- /dev/null +++ b/src/tests/elementary/spec/meson.build @@ -0,0 +1,32 @@ +efl_ui_suite_behavior_src = [ + join_paths('..','suite_helpers.c'), + join_paths('..','suite_helpers.h'), + join_paths('..','elm_test_init.c'), + 'efl_ui_spec_suite.c', + 'efl_test_pack.c', + 'efl_test_pack_linear.c', + 'efl_test_container.c', +] + +test_generator = find_program('generator.py') + +generated_test_parts = custom_target('generate_test_suite', + output: 'efl_ui_spec_suite_gen.x', + command: [test_generator, '@OUTPUT@'], +) + +efl_ui_behavior_suite = executable('efl_ui_spec_suite', + efl_ui_suite_behavior_src + [generated_test_parts], + dependencies: [check, eina, elementary, elementary_deps], + include_directories : [config_dir] + [elementary_config_dir] + [include_directories('../')], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"', + '-DELM_IMAGE_DATA_DIR="'+join_paths(meson.source_root(), 'data', 'elementary')+'"', + '-DELM_TEST_DATA_DIR="'+join_paths(meson.build_root(), 'data', 'elementary')+'"', + ] +) + +test('efl_ui_spec-suite', efl_ui_behavior_suite, + env : test_env +) From 48778f3cfb5e2b4a66e134b785756ff302697128 Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Thu, 4 Apr 2019 13:24:59 +0200 Subject: [PATCH 29/80] efl_ui_table: hardening of pack_at function _pack_at is used to add new subobjects to the table. When a object is already part of this table, then we should not add it again. Additional, when there is already a gi structure, but the parent is something else, then we should NOT just reuse this struct, otherwise we might use a struct reference that we do not own. The struct could be owned by another table widget. The test must be adjusted, before we did not error on adding a widget twice. Now we do (just like in box). Hence we should not do that in test. Reviewed-by: YeongJong Lee Differential Revision: https://phab.enlightenment.org/D8554 --- src/lib/elementary/efl_ui_table.c | 29 ++++++++++++------------ src/tests/elementary/efl_ui_test_table.c | 5 ++-- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/lib/elementary/efl_ui_table.c b/src/lib/elementary/efl_ui_table.c index 50fd0be834..136e2f2473 100644 --- a/src/lib/elementary/efl_ui_table.c +++ b/src/lib/elementary/efl_ui_table.c @@ -306,6 +306,18 @@ _pack_at(Eo *obj, Efl_Ui_Table_Data *pd, Efl_Gfx_Entity *subobj, ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); + gi = efl_key_data_get(subobj, TABLE_ITEM_KEY); + + if (gi && efl_ui_widget_parent_get(subobj) == obj) + { + ERR("subobj %p %s is already added to this", subobj, efl_class_name_get(subobj) ); + return EINA_FALSE; + } + else if (gi && efl_ui_widget_parent_get(subobj) != obj) + { + gi = NULL; + } + if (col < 0) col = 0; if (row < 0) row = 0; @@ -327,22 +339,10 @@ _pack_at(Eo *obj, Efl_Ui_Table_Data *pd, Efl_Gfx_Entity *subobj, col, row, colspan, rowspan, pd->req_cols, pd->req_rows); } - if (obj == elm_widget_parent_widget_get(subobj)) - { - gi = efl_key_data_get(subobj, TABLE_ITEM_KEY); - if (gi) - { - gi->col = col; - gi->row = row; - gi->col_span = colspan; - gi->row_span = rowspan; - gi->linear = EINA_FALSE; - } - else ERR("object is a child but internal data was not found!"); - } - if (!gi) { + if (!elm_widget_sub_object_add(obj, subobj)) + return EINA_FALSE; gi = calloc(1, sizeof(*gi)); if (!gi) return EINA_FALSE; gi->col = col; @@ -356,7 +356,6 @@ _pack_at(Eo *obj, Efl_Ui_Table_Data *pd, Efl_Gfx_Entity *subobj, eina_inlist_append(EINA_INLIST_GET(pd->items), EINA_INLIST_GET(gi)); efl_key_data_set(subobj, TABLE_ITEM_KEY, gi); - elm_widget_sub_object_add(obj, subobj); efl_event_callback_legacy_call(obj, EFL_CONTAINER_EVENT_CONTENT_ADDED, subobj); efl_event_callback_array_add(subobj, subobj_callbacks(), obj); } diff --git a/src/tests/elementary/efl_ui_test_table.c b/src/tests/elementary/efl_ui_test_table.c index ac96db58e9..f299fdd9bc 100644 --- a/src/tests/elementary/efl_ui_test_table.c +++ b/src/tests/elementary/efl_ui_test_table.c @@ -341,11 +341,12 @@ EFL_START_TEST (efl_ui_table_layout_update_matrix) { for (j = 0; j < 3; j++) { - btn[3 * i + j] = efl_add(EFL_UI_BUTTON_CLASS, layout, - efl_pack_table(layout, efl_added, i, j, 1, 1)); + btn[3 * i + j] = efl_add(EFL_UI_BUTTON_CLASS, layout); if ((i == 2) && (j == 1)) efl_pack_table(layout, btn[3 * i + j], i, j, 1, 2); + else + efl_pack_table(layout, btn[3 * i + j], i, j, 1, 1); } } for (i = 0; i < max_index; i++) From f7baa89ca9e99eea3f41898ee0089a48875883ed Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Thu, 4 Apr 2019 13:30:08 +0200 Subject: [PATCH 30/80] efl_ui_table: correctly delete all items when clearing / unpacking otherwise we do not clear the internals, and fail to get the count to 0. Reviewed-by: YeongJong Lee Differential Revision: https://phab.enlightenment.org/D8555 --- src/lib/elementary/efl_ui_table.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/efl_ui_table.c b/src/lib/elementary/efl_ui_table.c index 136e2f2473..2dabef1e64 100644 --- a/src/lib/elementary/efl_ui_table.c +++ b/src/lib/elementary/efl_ui_table.c @@ -488,20 +488,28 @@ _efl_ui_table_efl_pack_unpack(Eo *obj, Efl_Ui_Table_Data *pd, Efl_Gfx_Entity *su } EOLIAN static Eina_Bool -_efl_ui_table_efl_pack_pack_clear(Eo *obj, Efl_Ui_Table_Data *pd EINA_UNUSED) +_efl_ui_table_efl_pack_pack_clear(Eo *obj, Efl_Ui_Table_Data *pd) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); + while (pd->items) + _item_remove(obj, pd, pd->items->object); + evas_object_table_clear(wd->resize_obj, EINA_TRUE); + return EINA_TRUE; } EOLIAN static Eina_Bool -_efl_ui_table_efl_pack_unpack_all(Eo *obj, Efl_Ui_Table_Data *pd EINA_UNUSED) +_efl_ui_table_efl_pack_unpack_all(Eo *obj, Efl_Ui_Table_Data *pd) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); + while (pd->items) + _item_remove(obj, pd, pd->items->object); + evas_object_table_clear(wd->resize_obj, EINA_FALSE); + return EINA_TRUE; } From 37a5d6c0d1ade4e4e52e7c96ef9a87cec4781ccc Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Thu, 4 Apr 2019 13:46:53 +0200 Subject: [PATCH 31/80] efl_ui_table: remove callbacks when item is removed everything else is wrong. Reviewed-by: YeongJong Lee Differential Revision: https://phab.enlightenment.org/D8556 --- src/lib/elementary/efl_ui_table.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/elementary/efl_ui_table.c b/src/lib/elementary/efl_ui_table.c index 2dabef1e64..f88a793cdb 100644 --- a/src/lib/elementary/efl_ui_table.c +++ b/src/lib/elementary/efl_ui_table.c @@ -468,6 +468,7 @@ end: eina_inlist_remove(EINA_INLIST_GET(pd->items), EINA_INLIST_GET(gi)); pd->count--; efl_key_data_set(subobj, TABLE_ITEM_KEY, NULL); + efl_event_callback_array_del(subobj, subobj_callbacks(), obj); free(gi); } From 6a00de11f73f7e8c524d99ec0905d64b28cdad44 Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Thu, 4 Apr 2019 13:30:40 +0200 Subject: [PATCH 32/80] behavior-tests: add Efl.Ui.Table there are no tests for Efl.Pack_Table for now, so here comes unification for Efl.Pack tests. Differential Revision: https://phab.enlightenment.org/D8557 --- src/tests/elementary/spec/generator.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tests/elementary/spec/generator.py b/src/tests/elementary/spec/generator.py index 3554b31b56..47749fac07 100755 --- a/src/tests/elementary/spec/generator.py +++ b/src/tests/elementary/spec/generator.py @@ -2,6 +2,7 @@ tests = [ ["Efl.Pack_Linear" , "Efl.Ui.Box"], + ["Efl.Pack" , "Efl.Ui.Table"], ] fixture_gen_template = """ From 1ce20e6a99ffb4689204f3d5c3710fd3f5e063c6 Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Wed, 17 Apr 2019 10:45:07 -0400 Subject: [PATCH 33/80] efl-net.pc.in : honor datarootdir Reviewers: raster, zmike Reviewed By: raster Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8632 --- pc/efl-net.pc.in | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pc/efl-net.pc.in b/pc/efl-net.pc.in index b68328c213..176d8cf470 100644 --- a/pc/efl-net.pc.in +++ b/pc/efl-net.pc.in @@ -2,6 +2,8 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ +datarootdir=@datarootdir@ +datadir=@datadir@ eoincludedir=@datadir@/eolian/include eolian_flags=-I${pc_sysrootdir}${eoincludedir}/ecore-con-@VMAJ@ -I${pc_sysrootdir}${eoincludedir}/ecore-@VMAJ@ -I${pc_sysrootdir}${eoincludedir}/efl-@VMAJ@ -I${pc_sysrootdir}${eoincludedir}/eo-@VMAJ@ -I${pc_sysrootdir}${eoincludedir}/eet-@VMAJ@ -I${pc_sysrootdir}${eoincludedir}/emile-@VMAJ@ -I${pc_sysrootdir}${eoincludedir}/eina-@VMAJ@ From 57befed87ab7d8046195266b8a4ea3945ed5e137 Mon Sep 17 00:00:00 2001 From: Boris Faure Date: Wed, 17 Apr 2019 11:18:56 -0400 Subject: [PATCH 34/80] autotools: remove all usage of evas_image_loader_tgv_(cflags|libs) Summary: these are empty variables which are apparently causing build errors for some users in certain cases Finishes work from c2ae61ed0dd367bd589eb73c4bfe2f68dac92d23 ( https://phab.enlightenment.org/D7876 ) Reviewers: zmike Reviewed By: zmike Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8623 --- src/Makefile_Evas.am | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 22b36669af..95d8022a2c 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -2248,15 +2248,14 @@ modules_evas_image_savers_tgv_module_la_CPPFLAGS = \ -I$(top_srcdir)/src/static_libs/rg_etc \ -I$(top_srcdir)/src/lib/evas/ \ -DEFL_BUILD \ -@EVAS_CFLAGS@ \ -@evas_image_saver_tgv_cflags@ +@EVAS_CFLAGS@ + if ! ENABLE_LIBLZ4 modules_evas_image_savers_tgv_module_la_CPPFLAGS += \ -I$(top_srcdir)/src/static_libs/lz4 endif modules_evas_image_savers_tgv_module_la_LIBADD = \ -@USE_EVAS_LIBS@ \ -@evas_image_saver_tgv_libs@ +@USE_EVAS_LIBS@ modules_evas_image_savers_tgv_module_la_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ modules_evas_image_savers_tgv_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ modules_evas_image_savers_tgv_module_la_LIBTOOLFLAGS = --tag=disable-static From f75675cb62589274211485c8e525eb0f548b8f7e Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Wed, 17 Apr 2019 12:35:06 -0400 Subject: [PATCH 35/80] eio: remove unecessary printf from tests. Summary: Depends on D8539 Reviewers: zmike, bu5hm4n Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8542 --- src/tests/eio/eio_test_file.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/tests/eio/eio_test_file.c b/src/tests/eio/eio_test_file.c index 5028215306..d7b84eaefb 100644 --- a/src/tests/eio/eio_test_file.c +++ b/src/tests/eio/eio_test_file.c @@ -41,11 +41,10 @@ _delete_filter_cb(void *data EINA_UNUSED, Eio_File *handler EINA_UNUSED, } static void -_main_cb(void *data, Eio_File *handler EINA_UNUSED, const char *file) +_main_cb(void *data, Eio_File *handler EINA_UNUSED, const char *file EINA_UNUSED) { int *number_of_listed_files = (int *)data; - fprintf(stderr, "Processing file:%s\n", file); (*number_of_listed_files)++; } @@ -63,11 +62,10 @@ _direct_filter_cb(void *data EINA_UNUSED, Eio_File *handler EINA_UNUSED, } static void -_direct_main_cb(void *data, Eio_File *handler EINA_UNUSED, const Eina_File_Direct_Info *info) +_direct_main_cb(void *data, Eio_File *handler EINA_UNUSED, const Eina_File_Direct_Info *info EINA_UNUSED) { int *number_of_listed_files = (int *)data; - fprintf(stderr, "Processing file:%s\n", info->path); (*number_of_listed_files)++; } From a30caf333eda83bb83a8083c34ca4dccfabf6b10 Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Wed, 17 Apr 2019 15:30:34 +0100 Subject: [PATCH 36/80] eina_vpath: port to Windows Test Plan: test example Reviewers: raster, cedric, zmike Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8633 --- src/lib/eina/eina_vpath.c | 1 + src/lib/eina/eina_vpath.h | 4 ++-- src/lib/eina/eina_vpath_xdg.c | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/lib/eina/eina_vpath.c b/src/lib/eina/eina_vpath.c index 207bb8aad0..25fa9018c4 100644 --- a/src/lib/eina/eina_vpath.c +++ b/src/lib/eina/eina_vpath.c @@ -214,6 +214,7 @@ _fetch_user_homedir(char **str, const char *name, const char *error) #else ERR("User fetching is disabled on this system\nThe string was: %s", error); return EINA_FALSE; + (void) name; #endif } diff --git a/src/lib/eina/eina_vpath.h b/src/lib/eina/eina_vpath.h index d06cb431c3..77c1e35afe 100644 --- a/src/lib/eina/eina_vpath.h +++ b/src/lib/eina/eina_vpath.h @@ -36,7 +36,7 @@ * (:app.tmp:)/some-temp-file/path/file.txt * * (:usr.desktop:)/file-in-users-desktop-directory.txt - * (:usr.documents:)/letter-to-gradma.doc + * (:usr.documents:)/letter-to-grandma.doc * (:usr.downloads:)/file-downloaded-here.zip * (:usr.music:)/fave-song.mp3 * (:usr.pictures:)/a-photo.,jpg @@ -44,7 +44,7 @@ * (:usr.templates:)/some-template-document.txt * (:usr.videos:)/some-video-file.mp4 * (:usr.data:)/file-in-user-data-dir - * (:usr.config:)/file-in-user-conifg-dir + * (:usr.config:)/file-in-user-config-dir * (:usr.cache:)/file-in-user-cache-dir * (:usr.run:)/file-in-xdg-runtime-dir * (:usr.tmp:)/some-temp-file/path/file.txt diff --git a/src/lib/eina/eina_vpath_xdg.c b/src/lib/eina/eina_vpath_xdg.c index e6db4c219e..9d1c3208fa 100644 --- a/src/lib/eina/eina_vpath_xdg.c +++ b/src/lib/eina/eina_vpath_xdg.c @@ -21,6 +21,37 @@ eina_xdg_env_init(void) memset(&user, 0, sizeof(Eina_Vpath_Interface_User)); +#ifdef _WIN32 + +# define ENV_SET(_env, _dir, _meta) \ + char _meta [PATH_MAX + 128]; \ + char *_meta##env = _env; \ + char *_meta##dir = _dir; \ + if (_meta##env) \ + strcpy(_meta, getenv(_meta##env)); \ + else \ + strcpy(_meta, home); \ + if (_meta##dir) \ + strcat(_meta, _meta##dir); \ + s = _meta; \ + (&user)->_meta = s; + + ENV_SET(NULL, "\\Desktop", desktop); + ENV_SET(NULL, "\\Documents", documents); + ENV_SET(NULL, "\\Downloads", downloads); + ENV_SET(NULL, "\\Music", music); + ENV_SET(NULL, "\\Pictures", pictures); + ENV_SET("CommonProgramFiles", NULL, pub); + ENV_SET("APPDATA", "\\Microsoft\\Windows\\Templates", templates); + ENV_SET(NULL, "\\Videos", videos); + ENV_SET("LOCALAPPDATA", NULL, data); + ENV_SET("LOCALAPPDATA", "\\Temp", tmp); + ENV_SET("APPDATA", NULL, config); + ENV_SET("LOCALAPPDATA", NULL, cache); + ENV_SET("APPDATA", NULL, run); + +#else /* _WIN32 */ + # if defined(HAVE_GETUID) && defined(HAVE_GETEUID) # define ENV_HOME_SET(_env, _dir, _meta) \ char _meta [PATH_MAX + 128]; \ @@ -80,5 +111,7 @@ eina_xdg_env_init(void) else user.run = s; +#endif /* _WIN32 */ + eina_vpath_interface_user_set(&user); } From f81dfbfe644b8ff6c8c08516ee2ee671d83f2f44 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Wed, 17 Apr 2019 16:39:52 +0100 Subject: [PATCH 37/80] eina vpath - clear up vpath to handle env vars that are too big as fatal --- src/lib/eina/eina_vpath_xdg.c | 70 ++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/src/lib/eina/eina_vpath_xdg.c b/src/lib/eina/eina_vpath_xdg.c index 9d1c3208fa..094f5d23e6 100644 --- a/src/lib/eina/eina_vpath_xdg.c +++ b/src/lib/eina/eina_vpath_xdg.c @@ -13,62 +13,65 @@ void eina_xdg_env_init(void) { - char *s; - char home[PATH_MAX]; + char home[PATH_MAX], *s; Eina_Vpath_Interface_User user; eina_vpath_resolve_snprintf(home, sizeof(home), "(:home:)/"); - memset(&user, 0, sizeof(Eina_Vpath_Interface_User)); +#define FATAL_SNPRINTF(_buf, _err, _fmt, ...) \ + do { \ + if ((size_t)snprintf(_buf, sizeof(_buf), _fmt, ## __VA_ARGS__) >= (sizeof(_buf) - 1)) { \ + fprintf(stderr, _err"\n", _buf); \ + abort(); \ + } \ + } while (0) + #ifdef _WIN32 - # define ENV_SET(_env, _dir, _meta) \ - char _meta [PATH_MAX + 128]; \ - char *_meta##env = _env; \ - char *_meta##dir = _dir; \ - if (_meta##env) \ - strcpy(_meta, getenv(_meta##env)); \ - else \ - strcpy(_meta, home); \ - if (_meta##dir) \ - strcat(_meta, _meta##dir); \ - s = _meta; \ - (&user)->_meta = s; + char _meta[PATH_MAX + 128]; \ + if (_env) { \ + s = getenv(_env); \ + if (!s) s = home; \ + } else s = home; \ + if (_dir) FATAL_SNPRINTF(_meta, "vpath string '%s' truncated - fatal", "%s\\%s", s, _dir); \ + else FATAL_SNPRINTF(_meta, "vpath string '%s' truncated - fatal", "%s\\", s); \ + (&user)->_meta = _meta; - ENV_SET(NULL, "\\Desktop", desktop); - ENV_SET(NULL, "\\Documents", documents); - ENV_SET(NULL, "\\Downloads", downloads); - ENV_SET(NULL, "\\Music", music); - ENV_SET(NULL, "\\Pictures", pictures); + ENV_SET(NULL, "Desktop", desktop); + ENV_SET(NULL, "Documents", documents); + ENV_SET(NULL, "Downloads", downloads); + ENV_SET(NULL, "Music", music); + ENV_SET(NULL, "Pictures", pictures); ENV_SET("CommonProgramFiles", NULL, pub); - ENV_SET("APPDATA", "\\Microsoft\\Windows\\Templates", templates); - ENV_SET(NULL, "\\Videos", videos); + ENV_SET("APPDATA", "Microsoft\\Windows\\Templates", templates); + ENV_SET(NULL, "Videos", videos); ENV_SET("LOCALAPPDATA", NULL, data); - ENV_SET("LOCALAPPDATA", "\\Temp", tmp); + ENV_SET("LOCALAPPDATA", "Temp", tmp); ENV_SET("APPDATA", NULL, config); ENV_SET("LOCALAPPDATA", NULL, cache); - ENV_SET("APPDATA", NULL, run); - + if (!(s = getenv("APPDATA"))) + user.run = NULL; + else + user.run = s; #else /* _WIN32 */ - # if defined(HAVE_GETUID) && defined(HAVE_GETEUID) # define ENV_HOME_SET(_env, _dir, _meta) \ char _meta [PATH_MAX + 128]; \ if ((getuid() != geteuid()) || (!(s = getenv(_env)))) { \ - snprintf(_meta, sizeof(_meta), "%s/"_dir, home); \ + FATAL_SNPRINTF(_meta, "vpath string '%s' truncated - fatal", "%s/"_dir, home); \ s = _meta; \ } \ (&user)->_meta = s; -#else +# else # define ENV_HOME_SET(_env, _dir, _meta) \ char _meta [PATH_MAX + 128]; \ if (!(s = getenv(_env))) { \ - snprintf(_meta, sizeof(_meta), "%s/"_dir, home); \ + FATAL_SNPRINTF(_meta, "vpath string '%s' truncated - fatal", "%s/"_dir, home); \ s = _meta; \ } \ (&user)->_meta = s; -#endif +# endif // $XDG_DESKTOP_DIR="$HOME/Desktop" ENV_HOME_SET("XDG_DESKTOP_DIR", "Desktop", desktop); // $XDG_DOCUMENTS_DIR="$HOME/Documents" @@ -102,15 +105,14 @@ eina_xdg_env_init(void) // $HOME/.cache should be used. ENV_HOME_SET("XDG_CACHE_HOME", ".cache", cache); -#if defined(HAVE_GETUID) && defined(HAVE_GETEUID) +# if defined(HAVE_GETUID) && defined(HAVE_GETEUID) if ((getuid() != geteuid()) || (!(s = getenv("XDG_RUNTIME_DIR")))) -#else +# else if (!(s = getenv("XDG_RUNTIME_DIR"))) -#endif +# endif user.run = NULL; else user.run = s; - #endif /* _WIN32 */ eina_vpath_interface_user_set(&user); From 59526ba58d3d05050b4c22a50b2dedac405ae752 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 17 Apr 2019 15:45:35 -0400 Subject: [PATCH 38/80] build: use only BUILD_ECORE_IMF_XIM as a define Summary: meson and autotools were a bit out of sync with this, resulting in unexpected behavior Reviewers: billiob Reviewed By: billiob Subscribers: billiob, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8641 --- configure.ac | 2 +- src/lib/ecore_imf/ecore_imf_module.c | 2 +- src/lib/ecore_x/ecore_x.c | 4 ++-- src/modules/ecore_imf/meson.build | 3 --- src/tests/ecore/ecore_test_ecore_imf.c | 2 +- 5 files changed, 5 insertions(+), 8 deletions(-) diff --git a/configure.ac b/configure.ac index 69b8fdf48a..c7be1c5b3d 100644 --- a/configure.ac +++ b/configure.ac @@ -4479,7 +4479,7 @@ if test "x${want_xim}" = "xyes" && test "x${want_ecore_imf_xim}" = "xyes" ; then [X11 XOpenIM], [ have_ecore_imf_xim=yes - AC_DEFINE([ENABLE_XIM], [1], [Enable X Input Method]) + AC_DEFINE([BUILD_ECORE_IMF_XIM], [1], [Enable X Input Method]) ]) fi diff --git a/src/lib/ecore_imf/ecore_imf_module.c b/src/lib/ecore_imf/ecore_imf_module.c index 0c6cee360d..391778f43b 100644 --- a/src/lib/ecore_imf/ecore_imf_module.c +++ b/src/lib/ecore_imf/ecore_imf_module.c @@ -97,7 +97,7 @@ ecore_imf_module_init(void) if ((!env) && (getenv("WAYLAND_DISPLAY")) && (!getenv("DISPLAY"))) env = "wayland"; #endif -#ifdef ENABLE_XIM +#ifdef BUILD_ECORE_IMF_XIM if ((!env) && (!getenv("WAYLAND_DISPLAY")) && (getenv("DISPLAY"))) env = "xim"; #endif diff --git a/src/lib/ecore_x/ecore_x.c b/src/lib/ecore_x/ecore_x.c index ae357df542..f3d8caeb20 100644 --- a/src/lib/ecore_x/ecore_x.c +++ b/src/lib/ecore_x/ecore_x.c @@ -1223,12 +1223,12 @@ _ecore_x_fd_handler(void *data, XEvent ev; XNextEvent(d, &ev); -#ifdef ENABLE_XIM +#ifdef BUILD_ECORE_IMF_XIM /* Filter event for XIM */ if (XFilterEvent(&ev, ev.xkey.window)) continue; -#endif /* ifdef ENABLE_XIM */ +#endif /* ifdef BUILD_ECORE_IMF_XIM */ if ((ev.type >= 0) && (ev.type < _ecore_x_event_handlers_num)) { if (_ecore_x_event_handlers[AnyXEvent]) diff --git a/src/modules/ecore_imf/meson.build b/src/modules/ecore_imf/meson.build index 97f021adff..b8a495a280 100644 --- a/src/modules/ecore_imf/meson.build +++ b/src/modules/ecore_imf/meson.build @@ -15,9 +15,6 @@ foreach mod_name : mods mod_src = [] mod_deps = [] - if loader_disabler.contains('xim') == false - config_h.set('ENABLE_'+mod_name.to_upper(), '1') - endif if loader_disabler.contains(mod_name) == false mod_install_dir = join_paths(dir_package_modules, mod_name, version_name) subdir(mod_name) diff --git a/src/tests/ecore/ecore_test_ecore_imf.c b/src/tests/ecore/ecore_test_ecore_imf.c index 9851c77fa1..67571c40f5 100644 --- a/src/tests/ecore/ecore_test_ecore_imf.c +++ b/src/tests/ecore/ecore_test_ecore_imf.c @@ -14,7 +14,7 @@ EFL_START_TEST(ecore_test_ecore_imf_init) EFL_END_TEST static const char *built_modules[] = { -#ifdef ENABLE_XIM +#ifdef BUILD_ECORE_IMF_XIM "xim", #endif #ifdef BUILD_ECORE_IMF_IBUS From f7608b1e90bb28fb384dd6ba50546fad09e866a2 Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Wed, 17 Apr 2019 15:45:50 -0400 Subject: [PATCH 39/80] ecore_win32: remove explicit define of WM_CLIPBOARDUPDATE Summary: since ewpi is used, a newer mingw-w64 is used, which defines WM_CLIPBOARDUPDATE Test Plan: compilation Reviewers: raster, zmike, cedric Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8643 --- src/lib/ecore_win32/ecore_win32.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/lib/ecore_win32/ecore_win32.c b/src/lib/ecore_win32/ecore_win32.c index f217b22475..58c9449027 100644 --- a/src/lib/ecore_win32/ecore_win32.c +++ b/src/lib/ecore_win32/ecore_win32.c @@ -25,12 +25,6 @@ * @cond LOCAL */ -/* FIXME: uncomment when mingw-w64 will be updated in win-builds */ - -/* #ifndef WM_CLIPBOARDUPDATE */ -# define WM_CLIPBOARDUPDATE 0x031D -/* #endif */ - /* OLE IID for Drag'n Drop */ #define INITGUID From 7404904a43992e008ef8f186216a9aba8006404c Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Wed, 17 Apr 2019 17:31:21 -0400 Subject: [PATCH 40/80] ecore_win32: use AddClipboardFormatListener and RemoveClipboardFormatListener explicitely instead of loading them from user32.dll Summary: current mingw-w64 declare these functions Test Plan: compilation Reviewers: zmike, raster, cedric Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8644 --- src/lib/ecore_win32/ecore_win32.c | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/src/lib/ecore_win32/ecore_win32.c b/src/lib/ecore_win32/ecore_win32.c index 58c9449027..1ee8b2fbdf 100644 --- a/src/lib/ecore_win32/ecore_win32.c +++ b/src/lib/ecore_win32/ecore_win32.c @@ -37,9 +37,6 @@ DEFINE_OLEGUID(IID_IUnknown, 0x00000000L, 0, 0); #define IDI_ICON 101 -typedef BOOL WINAPI (*efl_AddClipboardFormatListener)(_In_ HWND hwnd); -typedef BOOL WINAPI (*efl_RemoveClipboardFormatListener)(_In_ HWND hwnd); - static int _ecore_win32_init_count = 0; LRESULT CALLBACK @@ -199,31 +196,17 @@ _ecore_win32_window_procedure(HWND window, /* Window notifications */ case WM_CREATE: { - efl_AddClipboardFormatListener acfl; - INF("create window message"); - - acfl = (efl_AddClipboardFormatListener)GetProcAddress(GetModuleHandle("user32.dll"), - "AddClipboardFormatListener"); - if (acfl) - { - if (!acfl(window)) - INF("can not create clipboard format listener; no clipboard notification will be sent"); - } + if (!AddClipboardFormatListener(window)) + INF("can not create clipboard format listener; no clipboard notification will be sent"); _ecore_win32_event_handle_create_notify(data); return 0; } case WM_DESTROY: { - efl_RemoveClipboardFormatListener rcfl; - INF("destroy window message"); _ecore_win32_event_handle_destroy_notify(data); - - rcfl = (efl_RemoveClipboardFormatListener)GetProcAddress(GetModuleHandle("user32.dll"), - "RemoveClipboardFormatListener"); - if (rcfl) - rcfl(window); + RemoveClipboardFormatListener(window); return 0; } case WM_SHOWWINDOW: From cf70826b33a6840f884c090e911f501c758931a7 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 18 Apr 2019 09:59:58 +0900 Subject: [PATCH 41/80] tests: add api coverage for evas image Summary: verify that legacy apis function as expected when using legacy api to load and unload images Depends on D8618 Reviewers: Hermet Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8619 --- src/tests/evas/evas_test_image.c | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/tests/evas/evas_test_image.c b/src/tests/evas/evas_test_image.c index da6ad42365..259cff77d3 100644 --- a/src/tests/evas/evas_test_image.c +++ b/src/tests/evas/evas_test_image.c @@ -729,6 +729,40 @@ EFL_START_TEST(evas_object_image_cached_data_comparision) } EFL_END_TEST +EFL_START_TEST(evas_object_image_api) +{ + Evas *e = _setup_evas(); + Evas_Object *o; + void *pix; + int w, h; + + o = evas_object_image_filled_add(e); + /* test file load */ + evas_object_image_file_set(o, TESTS_IMG_DIR"/Light.jpg", NULL); + ck_assert(!!efl_file_get(o)); + pix = evas_object_image_data_get(o, EINA_FALSE); + ck_assert(!!pix); + evas_object_image_size_get(o, &w, &h); + ck_assert(w && h); + /* test file unload */ + evas_object_image_file_set(o, NULL, NULL); + ck_assert(!efl_file_get(o)); + pix = evas_object_image_data_get(o, EINA_FALSE); + ck_assert(!pix); + evas_object_image_size_get(o, &w, &h); + ck_assert(!w && !h); + /* test file load after unload */ + evas_object_image_file_set(o, TESTS_IMG_DIR"/Light.jpg", NULL); + ck_assert(!!efl_file_get(o)); + pix = evas_object_image_data_get(o, EINA_FALSE); + ck_assert(!!pix); + evas_object_image_size_get(o, &w, &h); + ck_assert(w && h); + + evas_free(e); +} +EFL_END_TEST + EFL_START_TEST(evas_object_image_defaults) { Evas *e = _setup_evas(); @@ -972,6 +1006,7 @@ EFL_END_TEST void evas_test_image_object(TCase *tc) { + tcase_add_test(tc, evas_object_image_api); tcase_add_test(tc, evas_object_image_defaults); tcase_add_test(tc, evas_object_image_loader); tcase_add_test(tc, evas_object_image_loader_orientation); From f10bd61c9ded30ce1a928964e81c8191e0a5aee2 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 18 Apr 2019 15:08:35 +0900 Subject: [PATCH 42/80] evas map: shut up annoying compile warnings. These variables must be logically initialized, but compiler couldn't catch it, prints warnings. --- src/lib/evas/common/evas_map_image_internal_high.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/common/evas_map_image_internal_high.c b/src/lib/evas/common/evas_map_image_internal_high.c index f842c7455d..b3945f94df 100644 --- a/src/lib/evas/common/evas_map_image_internal_high.c +++ b/src/lib/evas/common/evas_map_image_internal_high.c @@ -354,7 +354,8 @@ _map_triangle_draw_linear(RGBA_Image *src, RGBA_Image *dst, int dw = dst->cache_entry.w; int x1, x2, x, y, uu, vv, ar, ab, iru, irv, px, ay; float dx, u, v, iptr; - float _dcdx[4], _dcdya[4], _ca[4], c[4]; + float _dcdx[4], _dcdya[4], _ca[4]; + float c[4] = {0, 0, 0, 0}; DATA32 *buf, *tmp; DATA8 *mbuf; From 80ffed5d85638279340862ccff91c86f49b986af Mon Sep 17 00:00:00 2001 From: Ali Alzyod Date: Tue, 9 Apr 2019 15:17:13 +0000 Subject: [PATCH 43/80] Freeing Global Memory list on destructor Issue with global list item, used to same styles. (in destructor we do not remove styles from it, which will cause memory leak) Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D8578 --- src/lib/evas/canvas/evas_object_textblock.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c index 63eddd46a3..da73c03eb7 100644 --- a/src/lib/evas/canvas/evas_object_textblock.c +++ b/src/lib/evas/canvas/evas_object_textblock.c @@ -13571,6 +13571,7 @@ evas_object_textblock_free(Evas_Object *eo_obj) ts->objects = eina_list_remove(ts->objects, eo_obj); if (!ts->objects && (ts->delete_me || o->auto_styles)) { + _style_cache = eina_list_remove(_style_cache, ts); evas_textblock_style_free(ts); } free(use); From 41136db8e8adb02ce7f99c929e25b56cda2caf9e Mon Sep 17 00:00:00 2001 From: Yeongjong Lee Date: Fri, 12 Apr 2019 05:38:00 +0000 Subject: [PATCH 44/80] ui.widget: remove elm_widget_sub_object_parent_add from each of widgets since commit a1addad60e, To add myself as a sub object of parent object will be done in Efl.Ui.Widget constructor. Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D8280 --- src/lib/elementary/efl_ui_alert_popup.c | 2 -- src/lib/elementary/efl_ui_anchor_popup.c | 2 -- src/lib/elementary/efl_ui_bg.c | 1 - src/lib/elementary/efl_ui_box.c | 1 - src/lib/elementary/efl_ui_button.c | 1 - src/lib/elementary/efl_ui_calendar.c | 2 -- src/lib/elementary/efl_ui_clock.c | 1 - src/lib/elementary/efl_ui_datepicker.c | 2 -- src/lib/elementary/efl_ui_flip.c | 1 - src/lib/elementary/efl_ui_frame.c | 1 - src/lib/elementary/efl_ui_image.c | 1 - src/lib/elementary/efl_ui_image_zoomable.c | 2 -- src/lib/elementary/efl_ui_layout.c | 2 -- src/lib/elementary/efl_ui_list_view.c | 1 - src/lib/elementary/efl_ui_navigation_bar.c | 2 -- src/lib/elementary/efl_ui_navigation_layout.c | 2 -- src/lib/elementary/efl_ui_nstate.c | 1 - src/lib/elementary/efl_ui_pager.c | 2 -- src/lib/elementary/efl_ui_panel.c | 1 - src/lib/elementary/efl_ui_panes.c | 1 - src/lib/elementary/efl_ui_popup.c | 2 -- src/lib/elementary/efl_ui_progressbar.c | 1 - src/lib/elementary/efl_ui_relative_layout.c | 1 - src/lib/elementary/efl_ui_scroll_alert_popup.c | 2 -- src/lib/elementary/efl_ui_slider.c | 1 - src/lib/elementary/efl_ui_spin.c | 2 -- src/lib/elementary/efl_ui_spin_button.c | 1 - src/lib/elementary/efl_ui_tab_bar.c | 3 --- src/lib/elementary/efl_ui_tab_page.c | 3 --- src/lib/elementary/efl_ui_tab_pager.c | 1 - src/lib/elementary/efl_ui_table.c | 2 -- src/lib/elementary/efl_ui_tags.c | 1 - src/lib/elementary/efl_ui_text.c | 2 -- src/lib/elementary/efl_ui_text_alert_popup.c | 2 -- src/lib/elementary/efl_ui_textpath.c | 1 - src/lib/elementary/efl_ui_timepicker.c | 2 -- src/lib/elementary/efl_ui_video.c | 1 - src/lib/elementary/efl_ui_widget.c | 10 +++++++++- src/lib/elementary/elc_combobox.c | 1 - src/lib/elementary/elc_ctxpopup.c | 1 - src/lib/elementary/elc_fileselector.c | 1 - src/lib/elementary/elc_fileselector_button.c | 1 - src/lib/elementary/elc_fileselector_entry.c | 1 - src/lib/elementary/elc_hoversel.c | 1 - src/lib/elementary/elc_multibuttonentry.c | 1 - src/lib/elementary/elc_naviframe.c | 1 - src/lib/elementary/elc_player.c | 1 - src/lib/elementary/elc_popup.c | 1 - src/lib/elementary/elm_access.c | 1 - src/lib/elementary/elm_actionslider.c | 1 - src/lib/elementary/elm_box.c | 1 - src/lib/elementary/elm_bubble.c | 1 - src/lib/elementary/elm_calendar.c | 1 - src/lib/elementary/elm_clock.c | 1 - src/lib/elementary/elm_colorselector.c | 1 - src/lib/elementary/elm_conform.c | 1 - src/lib/elementary/elm_dayselector.c | 1 - src/lib/elementary/elm_diskselector.c | 2 -- src/lib/elementary/elm_entry.c | 1 - src/lib/elementary/elm_flipselector.c | 1 - src/lib/elementary/elm_gengrid.c | 1 - src/lib/elementary/elm_genlist.c | 1 - src/lib/elementary/elm_gesture_layer.c | 1 - src/lib/elementary/elm_glview.c | 2 -- src/lib/elementary/elm_grid.c | 2 -- src/lib/elementary/elm_hover.c | 1 - src/lib/elementary/elm_icon.c | 1 - src/lib/elementary/elm_index.c | 1 - src/lib/elementary/elm_inwin.c | 1 - src/lib/elementary/elm_label.c | 2 -- src/lib/elementary/elm_list.c | 1 - src/lib/elementary/elm_map.c | 2 -- src/lib/elementary/elm_mapbuf.c | 1 - src/lib/elementary/elm_menu.c | 1 - src/lib/elementary/elm_notify.c | 1 - src/lib/elementary/elm_panel.c | 1 - src/lib/elementary/elm_photo.c | 1 - src/lib/elementary/elm_plug.c | 1 - src/lib/elementary/elm_prefs.c | 1 - src/lib/elementary/elm_route.c | 1 - src/lib/elementary/elm_scroller.c | 1 - src/lib/elementary/elm_segment_control.c | 1 - src/lib/elementary/elm_separator.c | 1 - src/lib/elementary/elm_slideshow.c | 1 - src/lib/elementary/elm_spinner.c | 1 - src/lib/elementary/elm_table.c | 2 -- src/lib/elementary/elm_thumb.c | 1 - src/lib/elementary/elm_toolbar.c | 2 -- src/modules/elementary/web/none/elm_web_none.c | 1 - 89 files changed, 9 insertions(+), 116 deletions(-) diff --git a/src/lib/elementary/efl_ui_alert_popup.c b/src/lib/elementary/efl_ui_alert_popup.c index 1fe6f55a34..e7eac4a955 100644 --- a/src/lib/elementary/efl_ui_alert_popup.c +++ b/src/lib/elementary/efl_ui_alert_popup.c @@ -242,8 +242,6 @@ _efl_ui_alert_popup_efl_object_constructor(Eo *obj, obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - elm_widget_sub_object_parent_add(obj); - return obj; } diff --git a/src/lib/elementary/efl_ui_anchor_popup.c b/src/lib/elementary/efl_ui_anchor_popup.c index a02e6a8b2b..ec0573be4c 100644 --- a/src/lib/elementary/efl_ui_anchor_popup.c +++ b/src/lib/elementary/efl_ui_anchor_popup.c @@ -330,8 +330,6 @@ _efl_ui_anchor_popup_efl_object_constructor(Eo *obj, obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - elm_widget_sub_object_parent_add(obj); - pd->priority[0] = EFL_UI_POPUP_ALIGN_TOP; pd->priority[1] = EFL_UI_POPUP_ALIGN_LEFT; pd->priority[2] = EFL_UI_POPUP_ALIGN_RIGHT; diff --git a/src/lib/elementary/efl_ui_bg.c b/src/lib/elementary/efl_ui_bg.c index aea33a086a..88d5ef7eb1 100644 --- a/src/lib/elementary/efl_ui_bg.c +++ b/src/lib/elementary/efl_ui_bg.c @@ -29,7 +29,6 @@ _efl_ui_bg_efl_object_constructor(Eo *obj, Efl_Ui_Bg_Data *pd) elm_widget_theme_klass_set(obj, "bg"); obj = efl_constructor(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_FALSE); if (elm_widget_theme_object_set(obj, wd->resize_obj, diff --git a/src/lib/elementary/efl_ui_box.c b/src/lib/elementary/efl_ui_box.c index dbe9991cd8..ce3304132d 100644 --- a/src/lib/elementary/efl_ui_box.c +++ b/src/lib/elementary/efl_ui_box.c @@ -148,7 +148,6 @@ _efl_ui_box_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Box_Data *pd) efl_ui_widget_sub_object_add(obj, pd->clipper); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); efl_ui_widget_focus_allow_set(obj, EINA_FALSE); elm_widget_highlight_ignore_set(obj, EINA_TRUE); diff --git a/src/lib/elementary/efl_ui_button.c b/src/lib/elementary/efl_ui_button.c index 1bff2c930b..a3c1c4dbfc 100644 --- a/src/lib/elementary/efl_ui_button.c +++ b/src/lib/elementary/efl_ui_button.c @@ -218,7 +218,6 @@ _efl_ui_button_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Button_Data *_pd EINA_ if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "button"); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (elm_widget_is_legacy(obj)) { diff --git a/src/lib/elementary/efl_ui_calendar.c b/src/lib/elementary/efl_ui_calendar.c index a4df1829a8..eb3918d7ac 100644 --- a/src/lib/elementary/efl_ui_calendar.c +++ b/src/lib/elementary/efl_ui_calendar.c @@ -910,8 +910,6 @@ _efl_ui_calendar_constructor_internal(Eo *obj, Efl_Ui_Calendar_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); - elm_widget_sub_object_parent_add(obj); - priv->date_min.tm_year = 2; priv->date_min.tm_mon = 0; priv->date_min.tm_mday = 1; diff --git a/src/lib/elementary/efl_ui_clock.c b/src/lib/elementary/efl_ui_clock.c index 5c83d83774..e580d3cf06 100644 --- a/src/lib/elementary/efl_ui_clock.c +++ b/src/lib/elementary/efl_ui_clock.c @@ -855,7 +855,6 @@ _efl_ui_clock_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Clock_Data *priv) if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "uiclock"); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (elm_widget_theme_object_set(obj, wd->resize_obj, elm_widget_theme_klass_get(obj), diff --git a/src/lib/elementary/efl_ui_datepicker.c b/src/lib/elementary/efl_ui_datepicker.c index b7978b15c4..06a18780e3 100644 --- a/src/lib/elementary/efl_ui_datepicker.c +++ b/src/lib/elementary/efl_ui_datepicker.c @@ -255,8 +255,6 @@ _efl_ui_datepicker_efl_object_constructor(Eo *obj, Efl_Ui_Datepicker_Data *pd) _fields_init(obj); - elm_widget_sub_object_parent_add(obj); - elm_widget_can_focus_set(obj, EINA_TRUE); return obj; diff --git a/src/lib/elementary/efl_ui_flip.c b/src/lib/elementary/efl_ui_flip.c index 7f3da3c31a..71dc20e076 100644 --- a/src/lib/elementary/efl_ui_flip.c +++ b/src/lib/elementary/efl_ui_flip.c @@ -1812,7 +1812,6 @@ EOLIAN static void _efl_ui_flip_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Flip_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->clip = evas_object_rectangle_add(evas_object_evas_get(obj)); evas_object_static_clip_set(priv->clip, EINA_TRUE); diff --git a/src/lib/elementary/efl_ui_frame.c b/src/lib/elementary/efl_ui_frame.c index 649a532bea..664a542a46 100644 --- a/src/lib/elementary/efl_ui_frame.c +++ b/src/lib/elementary/efl_ui_frame.c @@ -113,7 +113,6 @@ _efl_ui_frame_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Frame_Data *_pd EINA_UN if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "frame"); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (elm_widget_is_legacy(obj)) { diff --git a/src/lib/elementary/efl_ui_image.c b/src/lib/elementary/efl_ui_image.c index 92a2ce29fb..166db8dc27 100644 --- a/src/lib/elementary/efl_ui_image.c +++ b/src/lib/elementary/efl_ui_image.c @@ -566,7 +566,6 @@ EOLIAN static void _efl_ui_image_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Image_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->hit_rect = evas_object_rectangle_add(evas_object_evas_get(obj)); evas_object_smart_member_add(priv->hit_rect, obj); diff --git a/src/lib/elementary/efl_ui_image_zoomable.c b/src/lib/elementary/efl_ui_image_zoomable.c index b7ff98a22c..0fe2bd864a 100644 --- a/src/lib/elementary/efl_ui_image_zoomable.c +++ b/src/lib/elementary/efl_ui_image_zoomable.c @@ -1833,8 +1833,6 @@ _efl_ui_image_zoomable_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Image_Zoomable Evas_Object *edje; Evas_Coord minw, minh; - elm_widget_sub_object_parent_add(obj); - edje = edje_object_add(evas_object_evas_get(obj)); elm_widget_resize_object_set(obj, edje); diff --git a/src/lib/elementary/efl_ui_layout.c b/src/lib/elementary/efl_ui_layout.c index 6677ccb01c..63f9491467 100644 --- a/src/lib/elementary/efl_ui_layout.c +++ b/src/lib/elementary/efl_ui_layout.c @@ -740,8 +740,6 @@ _efl_ui_layout_base_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Layout_Data *_pd { Evas_Object *edje; - elm_widget_sub_object_parent_add(obj); - /* has to be there *before* parent's smart_add() */ edje = edje_object_add(evas_object_evas_get(obj)); elm_widget_resize_object_set(obj, edje); diff --git a/src/lib/elementary/efl_ui_list_view.c b/src/lib/elementary/efl_ui_list_view.c index b0300db7c9..219d2aa151 100644 --- a/src/lib/elementary/efl_ui_list_view.c +++ b/src/lib/elementary/efl_ui_list_view.c @@ -588,7 +588,6 @@ _efl_ui_list_view_efl_canvas_group_group_add(Eo *obj, Efl_Ui_List_View_Data *pd) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_TRUE); diff --git a/src/lib/elementary/efl_ui_navigation_bar.c b/src/lib/elementary/efl_ui_navigation_bar.c index e8102ba2cf..d693a52838 100644 --- a/src/lib/elementary/efl_ui_navigation_bar.c +++ b/src/lib/elementary/efl_ui_navigation_bar.c @@ -39,8 +39,6 @@ _efl_ui_navigation_bar_efl_object_constructor(Eo *obj, Efl_Ui_Navigation_Bar_Dat obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - elm_widget_sub_object_parent_add(obj); - elm_widget_can_focus_set(obj, EINA_TRUE); if (elm_widget_theme_object_set(obj, wd->resize_obj, elm_widget_theme_klass_get(obj), diff --git a/src/lib/elementary/efl_ui_navigation_layout.c b/src/lib/elementary/efl_ui_navigation_layout.c index 0b5988450e..2f535e1a76 100644 --- a/src/lib/elementary/efl_ui_navigation_layout.c +++ b/src/lib/elementary/efl_ui_navigation_layout.c @@ -37,8 +37,6 @@ _efl_ui_navigation_layout_efl_object_constructor(Eo *obj, Efl_Ui_Navigation_Layo obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - elm_widget_sub_object_parent_add(obj); - elm_widget_can_focus_set(obj, EINA_TRUE); if (elm_widget_theme_object_set(obj, wd->resize_obj, elm_widget_theme_klass_get(obj), diff --git a/src/lib/elementary/efl_ui_nstate.c b/src/lib/elementary/efl_ui_nstate.c index a435c543e4..b44ea3b5d4 100644 --- a/src/lib/elementary/efl_ui_nstate.c +++ b/src/lib/elementary/efl_ui_nstate.c @@ -37,7 +37,6 @@ _efl_ui_nstate_efl_object_constructor(Eo *obj, Efl_Ui_Nstate_Data *pd) elm_widget_theme_klass_set(obj, "nstate"); obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - elm_widget_sub_object_parent_add(obj); pd->state = 0; // Default: 2 states diff --git a/src/lib/elementary/efl_ui_pager.c b/src/lib/elementary/efl_ui_pager.c index a37d0fd8f6..efa77f8314 100644 --- a/src/lib/elementary/efl_ui_pager.c +++ b/src/lib/elementary/efl_ui_pager.c @@ -336,8 +336,6 @@ _efl_ui_pager_efl_object_constructor(Eo *obj, elm_widget_theme_style_get(obj)) == EFL_UI_THEME_APPLY_ERROR_GENERIC) CRI("Failed to set layout!"); - elm_widget_sub_object_parent_add(obj); - pd->cnt = 0; pd->loop = EFL_UI_PAGER_LOOP_DISABLED; diff --git a/src/lib/elementary/efl_ui_panel.c b/src/lib/elementary/efl_ui_panel.c index 9e8e4c5027..84aa6f08d9 100644 --- a/src/lib/elementary/efl_ui_panel.c +++ b/src/lib/elementary/efl_ui_panel.c @@ -838,7 +838,6 @@ _efl_ui_panel_efl_object_constructor(Eo *obj, Efl_Ui_Panel_Data *_pd) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); obj = efl_constructor(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_TRUE); _pd->panel_edje = wd->resize_obj; diff --git a/src/lib/elementary/efl_ui_panes.c b/src/lib/elementary/efl_ui_panes.c index a221193803..d42b3ebb3b 100644 --- a/src/lib/elementary/efl_ui_panes.c +++ b/src/lib/elementary/efl_ui_panes.c @@ -408,7 +408,6 @@ _efl_ui_panes_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Panes_Data *_pd EINA_UN if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "panes"); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); group = _efl_ui_panes_theme_group_get(obj, sd); if (elm_widget_theme_object_set(obj, wd->resize_obj, diff --git a/src/lib/elementary/efl_ui_popup.c b/src/lib/elementary/efl_ui_popup.c index cc8772d8d2..47ef65b4a9 100644 --- a/src/lib/elementary/efl_ui_popup.c +++ b/src/lib/elementary/efl_ui_popup.c @@ -215,8 +215,6 @@ _efl_ui_popup_efl_object_constructor(Eo *obj, Efl_Ui_Popup_Data *pd) obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - elm_widget_sub_object_parent_add(obj); - elm_widget_can_focus_set(obj, EINA_TRUE); if (elm_widget_theme_object_set(obj, wd->resize_obj, elm_widget_theme_klass_get(obj), diff --git a/src/lib/elementary/efl_ui_progressbar.c b/src/lib/elementary/efl_ui_progressbar.c index 2d1ecfc230..c65d9bdcff 100644 --- a/src/lib/elementary/efl_ui_progressbar.c +++ b/src/lib/elementary/efl_ui_progressbar.c @@ -359,7 +359,6 @@ _efl_ui_progressbar_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Progressbar_Data if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "progressbar"); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->dir = EFL_UI_DIR_RIGHT; priv->val = MIN_RATIO_LVL; diff --git a/src/lib/elementary/efl_ui_relative_layout.c b/src/lib/elementary/efl_ui_relative_layout.c index c5651fa793..fa47d7591c 100644 --- a/src/lib/elementary/efl_ui_relative_layout.c +++ b/src/lib/elementary/efl_ui_relative_layout.c @@ -492,7 +492,6 @@ _efl_ui_relative_layout_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Relative_Layo { evas_object_event_callback_add(obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_size_hints_changed, NULL); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_highlight_ignore_set(obj, EINA_TRUE); } diff --git a/src/lib/elementary/efl_ui_scroll_alert_popup.c b/src/lib/elementary/efl_ui_scroll_alert_popup.c index 1d4295e183..54e28c5643 100644 --- a/src/lib/elementary/efl_ui_scroll_alert_popup.c +++ b/src/lib/elementary/efl_ui_scroll_alert_popup.c @@ -266,8 +266,6 @@ _efl_ui_scroll_alert_popup_efl_object_constructor(Eo *obj, obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - elm_widget_sub_object_parent_add(obj); - pd->scroller = elm_scroller_add(obj); elm_object_style_set(pd->scroller, "popup/no_inset_shadow"); elm_scroller_policy_set(pd->scroller, ELM_SCROLLER_POLICY_AUTO, diff --git a/src/lib/elementary/efl_ui_slider.c b/src/lib/elementary/efl_ui_slider.c index 23f4797419..6a5798d44b 100644 --- a/src/lib/elementary/efl_ui_slider.c +++ b/src/lib/elementary/efl_ui_slider.c @@ -655,7 +655,6 @@ _efl_ui_slider_efl_object_constructor(Eo *obj, Efl_Ui_Slider_Data *priv) if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "slider"); - elm_widget_sub_object_parent_add(obj); group = _efl_ui_slider_theme_group_get(obj, priv); if (elm_widget_theme_object_set(obj, wd->resize_obj, diff --git a/src/lib/elementary/efl_ui_spin.c b/src/lib/elementary/efl_ui_spin.c index 70cbfeea53..f446bab9f3 100644 --- a/src/lib/elementary/efl_ui_spin.c +++ b/src/lib/elementary/efl_ui_spin.c @@ -239,8 +239,6 @@ _efl_ui_spin_efl_object_constructor(Eo *obj, Efl_Ui_Spin_Data *sd) elm_widget_theme_klass_set(obj, "spin"); obj = efl_constructor(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); - sd->val_max = 100.0; sd->step = 1.0; sd->special_values = eina_array_new(sizeof(Efl_Ui_Spin_Special_Value)); diff --git a/src/lib/elementary/efl_ui_spin_button.c b/src/lib/elementary/efl_ui_spin_button.c index 0194921308..4941b41bde 100644 --- a/src/lib/elementary/efl_ui_spin_button.c +++ b/src/lib/elementary/efl_ui_spin_button.c @@ -830,7 +830,6 @@ _efl_ui_spin_button_efl_object_constructor(Eo *obj, Efl_Ui_Spin_Button_Data *sd) char *group; obj = efl_constructor(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_theme_klass_set(obj, "spin_button"); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); diff --git a/src/lib/elementary/efl_ui_tab_bar.c b/src/lib/elementary/efl_ui_tab_bar.c index e5fb3414df..0129121d7a 100644 --- a/src/lib/elementary/efl_ui_tab_bar.c +++ b/src/lib/elementary/efl_ui_tab_bar.c @@ -376,9 +376,6 @@ _efl_ui_tab_bar_efl_object_constructor(Eo *obj, Efl_Ui_Tab_Bar_Data *sd) elm_widget_theme_style_get(obj)) == EFL_UI_THEME_APPLY_ERROR_GENERIC) CRI("Failed to set layout!"); - - elm_widget_sub_object_parent_add(obj); - sd->dir = EFL_UI_DIR_HORIZONTAL; sd->bx = evas_object_box_add(evas_object_evas_get(obj)); evas_object_box_align_set(sd->bx, 0.5, 0.5); diff --git a/src/lib/elementary/efl_ui_tab_page.c b/src/lib/elementary/efl_ui_tab_page.c index 1f7fc2ff89..a0bd26ef70 100644 --- a/src/lib/elementary/efl_ui_tab_page.c +++ b/src/lib/elementary/efl_ui_tab_page.c @@ -55,9 +55,6 @@ _efl_ui_tab_page_efl_object_constructor(Eo *obj, Efl_Ui_Tab_Page_Data *sd) elm_widget_theme_style_get(obj)) == EFL_UI_THEME_APPLY_ERROR_GENERIC) CRI("Failed to set layout!"); - - elm_widget_sub_object_parent_add(obj); - efl_ui_widget_focus_allow_set(obj, EINA_TRUE); sd->content = NULL; diff --git a/src/lib/elementary/efl_ui_tab_pager.c b/src/lib/elementary/efl_ui_tab_pager.c index 4187f31174..2b43aa8939 100644 --- a/src/lib/elementary/efl_ui_tab_pager.c +++ b/src/lib/elementary/efl_ui_tab_pager.c @@ -99,7 +99,6 @@ _efl_ui_tab_pager_efl_object_constructor(Eo *obj, Efl_Ui_Tab_Pager_Data *sd) elm_widget_theme_klass_set(obj, "tab_pager"); obj = efl_constructor(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); efl_ui_widget_focus_allow_set(obj, EINA_TRUE); diff --git a/src/lib/elementary/efl_ui_table.c b/src/lib/elementary/efl_ui_table.c index f88a793cdb..7a11f2fb71 100644 --- a/src/lib/elementary/efl_ui_table.c +++ b/src/lib/elementary/efl_ui_table.c @@ -161,8 +161,6 @@ _efl_ui_table_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Table_Data *pd) Custom_Table_Data *custom; Evas_Object *table; - elm_widget_sub_object_parent_add(obj); - table = efl_add(CUSTOM_TABLE_CLASS, obj); custom = efl_data_scope_get(table, CUSTOM_TABLE_CLASS); custom->gd = pd; diff --git a/src/lib/elementary/efl_ui_tags.c b/src/lib/elementary/efl_ui_tags.c index 00748a7986..12b56c15c5 100644 --- a/src/lib/elementary/efl_ui_tags.c +++ b/src/lib/elementary/efl_ui_tags.c @@ -1009,7 +1009,6 @@ _efl_ui_tags_efl_object_constructor(Eo *obj, Efl_Ui_Tags_Data *sd) elm_widget_theme_klass_set(obj, "tags"); obj = efl_constructor(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (elm_widget_theme_object_set(obj, wd->resize_obj, elm_widget_theme_klass_get(obj), diff --git a/src/lib/elementary/efl_ui_text.c b/src/lib/elementary/efl_ui_text.c index cae523bcdd..ebb2dd539e 100644 --- a/src/lib/elementary/efl_ui_text.c +++ b/src/lib/elementary/efl_ui_text.c @@ -2126,8 +2126,6 @@ _efl_ui_text_efl_object_constructor(Eo *obj, Efl_Ui_Text_Data *sd) elm_widget_theme_klass_set(obj, "text"); obj = efl_constructor(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); - text_obj = efl_add(EFL_UI_INTERNAL_TEXT_INTERACTIVE_CLASS, obj); efl_event_callback_forwarder_add(text_obj, EFL_UI_TEXT_EVENT_CHANGED_USER, obj); efl_event_callback_forwarder_add(text_obj, EFL_UI_TEXT_EVENT_CHANGED, obj); diff --git a/src/lib/elementary/efl_ui_text_alert_popup.c b/src/lib/elementary/efl_ui_text_alert_popup.c index dd19e6a0d8..355b8c21f3 100644 --- a/src/lib/elementary/efl_ui_text_alert_popup.c +++ b/src/lib/elementary/efl_ui_text_alert_popup.c @@ -274,8 +274,6 @@ _efl_ui_text_alert_popup_efl_object_constructor(Eo *obj, obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME); - elm_widget_sub_object_parent_add(obj); - pd->scroller = elm_scroller_add(obj); elm_object_style_set(pd->scroller, "popup/no_inset_shadow"); elm_scroller_policy_set(pd->scroller, ELM_SCROLLER_POLICY_OFF, diff --git a/src/lib/elementary/efl_ui_textpath.c b/src/lib/elementary/efl_ui_textpath.c index b602f6c9d7..679a68a38a 100644 --- a/src/lib/elementary/efl_ui_textpath.c +++ b/src/lib/elementary/efl_ui_textpath.c @@ -584,7 +584,6 @@ _efl_ui_textpath_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Textpath_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->text_obj = edje_object_add(evas_object_evas_get(obj)); elm_widget_theme_object_set(obj, priv->text_obj, "textpath", "base", diff --git a/src/lib/elementary/efl_ui_timepicker.c b/src/lib/elementary/efl_ui_timepicker.c index a77238bafa..732f8aefdc 100644 --- a/src/lib/elementary/efl_ui_timepicker.c +++ b/src/lib/elementary/efl_ui_timepicker.c @@ -226,8 +226,6 @@ _efl_ui_timepicker_efl_object_constructor(Eo *obj, Efl_Ui_Timepicker_Data *pd EI _fields_init(obj); - elm_widget_sub_object_parent_add(obj); - elm_widget_can_focus_set(obj, EINA_TRUE); return obj; diff --git a/src/lib/elementary/efl_ui_video.c b/src/lib/elementary/efl_ui_video.c index dd0d6f11ae..75b6b155dc 100644 --- a/src/lib/elementary/efl_ui_video.c +++ b/src/lib/elementary/efl_ui_video.c @@ -242,7 +242,6 @@ _efl_ui_video_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Video_Data *priv) if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "video"); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_TRUE); priv->emotion = emotion_object_add(evas_object_evas_get(obj)); diff --git a/src/lib/elementary/efl_ui_widget.c b/src/lib/elementary/efl_ui_widget.c index 6ab2d8a026..872e32a744 100644 --- a/src/lib/elementary/efl_ui_widget.c +++ b/src/lib/elementary/efl_ui_widget.c @@ -5059,7 +5059,15 @@ _efl_ui_widget_efl_object_constructor(Eo *obj, Elm_Widget_Smart_Data *sd EINA_UN evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); if (!efl_isa(obj, EFL_UI_WIN_CLASS)) { - efl_ui_widget_sub_object_add(efl_parent_get(obj), obj); + Eo *parent = efl_parent_get(obj); + if (!efl_isa(parent, EFL_UI_WIDGET_CLASS)) + { + ERR("You passed a wrong parent parameter (%p %s). " + "Elementary widget's parent should be an elementary widget.", + parent, evas_object_type_get(parent)); + } + + efl_ui_widget_sub_object_add(parent, obj); } sd->on_create = EINA_FALSE; diff --git a/src/lib/elementary/elc_combobox.c b/src/lib/elementary/elc_combobox.c index 3c17d46061..71e581f18b 100644 --- a/src/lib/elementary/elc_combobox.c +++ b/src/lib/elementary/elc_combobox.c @@ -331,7 +331,6 @@ EOLIAN static void _elm_combobox_efl_canvas_group_group_add(Eo *obj, Elm_Combobox_Data *sd EINA_UNUSED) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); efl_ui_mirrored_automatic_set(obj, EINA_FALSE); diff --git a/src/lib/elementary/elc_ctxpopup.c b/src/lib/elementary/elc_ctxpopup.c index ac5a91905a..08817bac70 100644 --- a/src/lib/elementary/elc_ctxpopup.c +++ b/src/lib/elementary/elc_ctxpopup.c @@ -1033,7 +1033,6 @@ _elm_ctxpopup_efl_canvas_group_group_add(Eo *obj, Elm_Ctxpopup_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (!elm_layout_theme_set (obj, "ctxpopup", "base", elm_widget_style_get(obj))) diff --git a/src/lib/elementary/elc_fileselector.c b/src/lib/elementary/elc_fileselector.c index b718924429..6f52cf6e87 100644 --- a/src/lib/elementary/elc_fileselector.c +++ b/src/lib/elementary/elc_fileselector.c @@ -1677,7 +1677,6 @@ _elm_fileselector_efl_canvas_group_group_add(Eo *obj, Elm_Fileselector_Data *pri char buf[1024]; efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_FALSE); priv->expand = !!_elm_config->fileselector_expand_enable; diff --git a/src/lib/elementary/elc_fileselector_button.c b/src/lib/elementary/elc_fileselector_button.c index 8dfe7ab54f..1a644534f1 100644 --- a/src/lib/elementary/elc_fileselector_button.c +++ b/src/lib/elementary/elc_fileselector_button.c @@ -216,7 +216,6 @@ _elm_fileselector_button_efl_canvas_group_group_add(Eo *obj, Elm_Fileselector_Bu const char *path; efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->window_title = eina_stringshare_add(DEFAULT_WINDOW_TITLE); path = eina_environment_home_get(); diff --git a/src/lib/elementary/elc_fileselector_entry.c b/src/lib/elementary/elc_fileselector_entry.c index f06862e911..df9ac79d2c 100644 --- a/src/lib/elementary/elc_fileselector_entry.c +++ b/src/lib/elementary/elc_fileselector_entry.c @@ -222,7 +222,6 @@ EOLIAN static void _elm_fileselector_entry_efl_canvas_group_group_add(Eo *obj, Elm_Fileselector_Entry_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->button = elm_fileselector_button_add(obj); efl_ui_mirrored_automatic_set(priv->button, EINA_FALSE); diff --git a/src/lib/elementary/elc_hoversel.c b/src/lib/elementary/elc_hoversel.c index 3986b2a14f..a7b5685f21 100644 --- a/src/lib/elementary/elc_hoversel.c +++ b/src/lib/elementary/elc_hoversel.c @@ -638,7 +638,6 @@ EOLIAN static void _elm_hoversel_efl_canvas_group_group_add(Eo *obj, Elm_Hoversel_Data *pd) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); efl_event_callback_add(obj, EFL_UI_EVENT_CLICKED, _on_clicked, obj); diff --git a/src/lib/elementary/elc_multibuttonentry.c b/src/lib/elementary/elc_multibuttonentry.c index 0032ad02ff..452d7e0849 100644 --- a/src/lib/elementary/elc_multibuttonentry.c +++ b/src/lib/elementary/elc_multibuttonentry.c @@ -1562,7 +1562,6 @@ _elm_multibuttonentry_efl_canvas_group_group_add(Eo *obj, Elm_Multibuttonentry_D if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "multibuttonentry"); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (elm_widget_theme_object_set(obj, wd->resize_obj, elm_widget_theme_klass_get(obj), diff --git a/src/lib/elementary/elc_naviframe.c b/src/lib/elementary/elc_naviframe.c index 251b3eb44f..fa22902d90 100644 --- a/src/lib/elementary/elc_naviframe.c +++ b/src/lib/elementary/elc_naviframe.c @@ -1392,7 +1392,6 @@ _elm_naviframe_efl_canvas_group_group_add(Eo *obj, Elm_Naviframe_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->dummy_edje = wd->resize_obj; evas_object_smart_member_add(priv->dummy_edje, obj); diff --git a/src/lib/elementary/elc_player.c b/src/lib/elementary/elc_player.c index 8a386fc9c4..275599c30f 100644 --- a/src/lib/elementary/elc_player.c +++ b/src/lib/elementary/elc_player.c @@ -592,7 +592,6 @@ _elm_player_efl_canvas_group_group_add(Eo *obj, Elm_Player_Data *priv) char buf[256]; efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (!elm_layout_theme_set(obj, "player", "base", elm_widget_style_get(obj))) CRI("Failed to set layout!"); diff --git a/src/lib/elementary/elc_popup.c b/src/lib/elementary/elc_popup.c index a967661e61..7cdf1edf0e 100644 --- a/src/lib/elementary/elc_popup.c +++ b/src/lib/elementary/elc_popup.c @@ -1417,7 +1417,6 @@ _elm_popup_efl_canvas_group_group_add(Eo *obj, Elm_Popup_Data *priv) char style[1024]; efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); snprintf(style, sizeof(style), "popup/%s", elm_widget_style_get(obj)); diff --git a/src/lib/elementary/elm_access.c b/src/lib/elementary/elm_access.c index 33809795fc..9b33f4de40 100644 --- a/src/lib/elementary/elm_access.c +++ b/src/lib/elementary/elm_access.c @@ -48,7 +48,6 @@ EOLIAN static void _elm_access_efl_canvas_group_group_add(Eo *obj, void *_pd EINA_UNUSED) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); } static Eina_Bool diff --git a/src/lib/elementary/elm_actionslider.c b/src/lib/elementary/elm_actionslider.c index 07fc630811..d4e3ca129b 100644 --- a/src/lib/elementary/elm_actionslider.c +++ b/src/lib/elementary/elm_actionslider.c @@ -483,7 +483,6 @@ _elm_actionslider_efl_canvas_group_group_add(Eo *obj, Elm_Actionslider_Data *pri ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->enabled_position = ELM_ACTIONSLIDER_ALL; diff --git a/src/lib/elementary/elm_box.c b/src/lib/elementary/elm_box.c index bd6a00d26b..68e5996c78 100644 --- a/src/lib/elementary/elm_box.c +++ b/src/lib/elementary/elm_box.c @@ -323,7 +323,6 @@ _elm_box_efl_canvas_group_group_add(Eo *obj, Elm_Box_Data *_pd EINA_UNUSED) _on_size_hints_changed, obj); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); efl_event_callback_add (wd->resize_obj, ELM_BOX_EVENT_CHILD_ADDED, _child_added_cb_proxy, obj); diff --git a/src/lib/elementary/elm_bubble.c b/src/lib/elementary/elm_bubble.c index f6f4a97c6d..559ba53d55 100644 --- a/src/lib/elementary/elm_bubble.c +++ b/src/lib/elementary/elm_bubble.c @@ -147,7 +147,6 @@ _elm_bubble_efl_canvas_group_group_add(Eo *obj, Elm_Bubble_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->pos = ELM_BUBBLE_POS_TOP_LEFT; //default diff --git a/src/lib/elementary/elm_calendar.c b/src/lib/elementary/elm_calendar.c index b3c7838408..b249fd44fe 100644 --- a/src/lib/elementary/elm_calendar.c +++ b/src/lib/elementary/elm_calendar.c @@ -1337,7 +1337,6 @@ _elm_calendar_efl_canvas_group_group_add(Eo *obj, Elm_Calendar_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->first_interval = 0.85; priv->date_min.tm_year = 2; diff --git a/src/lib/elementary/elm_clock.c b/src/lib/elementary/elm_clock.c index 948ec7cb4b..9b6caa147a 100644 --- a/src/lib/elementary/elm_clock.c +++ b/src/lib/elementary/elm_clock.c @@ -722,7 +722,6 @@ _elm_clock_efl_canvas_group_group_add(Eo *obj, Elm_Clock_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->cur.ampm = -1; priv->cur.seconds = EINA_TRUE; diff --git a/src/lib/elementary/elm_colorselector.c b/src/lib/elementary/elm_colorselector.c index 9ac78ee517..831ff3be78 100644 --- a/src/lib/elementary/elm_colorselector.c +++ b/src/lib/elementary/elm_colorselector.c @@ -1954,7 +1954,6 @@ _elm_colorselector_efl_canvas_group_group_add(Eo *obj, Elm_Colorselector_Data *p ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (!elm_layout_theme_set (obj, "colorselector", "palette", elm_object_style_get(obj))) diff --git a/src/lib/elementary/elm_conform.c b/src/lib/elementary/elm_conform.c index a72c08eafc..55c6bc8488 100644 --- a/src/lib/elementary/elm_conform.c +++ b/src/lib/elementary/elm_conform.c @@ -927,7 +927,6 @@ EOLIAN static void _elm_conformant_efl_canvas_group_group_add(Eo *obj, Elm_Conformant_Data *_pd EINA_UNUSED) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_FALSE); if (!elm_layout_theme_set diff --git a/src/lib/elementary/elm_dayselector.c b/src/lib/elementary/elm_dayselector.c index 78536bb3fd..781ee0c868 100644 --- a/src/lib/elementary/elm_dayselector.c +++ b/src/lib/elementary/elm_dayselector.c @@ -445,7 +445,6 @@ EOLIAN static void _elm_dayselector_efl_canvas_group_group_add(Eo *obj, Elm_Dayselector_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (!elm_layout_theme_set(obj, "dayselector", "base", elm_widget_style_get(obj))) diff --git a/src/lib/elementary/elm_diskselector.c b/src/lib/elementary/elm_diskselector.c index b6c49ecc74..fd2494f00c 100644 --- a/src/lib/elementary/elm_diskselector.c +++ b/src/lib/elementary/elm_diskselector.c @@ -1221,8 +1221,6 @@ _elm_diskselector_efl_canvas_group_group_add(Eo *obj, Elm_Diskselector_Data *pri Evas *evas; Evas_Object *blank, *edje; - elm_widget_sub_object_parent_add(obj); - evas = evas_object_evas_get(obj); evas_event_freeze(evas); diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c index b229596c4a..7478a40fd8 100644 --- a/src/lib/elementary/elm_entry.c +++ b/src/lib/elementary/elm_entry.c @@ -3785,7 +3785,6 @@ _elm_entry_efl_canvas_group_group_add(Eo *obj, Elm_Entry_Data *priv) if (!elm_widget_theme_klass_get(obj)) elm_widget_theme_klass_set(obj, "entry"); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->entry_edje = wd->resize_obj; diff --git a/src/lib/elementary/elm_flipselector.c b/src/lib/elementary/elm_flipselector.c index 8085325c84..f9ba061f75 100644 --- a/src/lib/elementary/elm_flipselector.c +++ b/src/lib/elementary/elm_flipselector.c @@ -616,7 +616,6 @@ EOLIAN static void _elm_flipselector_efl_canvas_group_group_add(Eo *obj, Elm_Flipselector_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (!elm_layout_theme_set (obj, "flipselector", "base", elm_widget_style_get(obj))) diff --git a/src/lib/elementary/elm_gengrid.c b/src/lib/elementary/elm_gengrid.c index cefa035264..76e540a9db 100644 --- a/src/lib/elementary/elm_gengrid.c +++ b/src/lib/elementary/elm_gengrid.c @@ -4092,7 +4092,6 @@ _elm_gengrid_efl_canvas_group_group_add(Eo *obj, Elm_Gengrid_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->hit_rect = evas_object_rectangle_add(evas_object_evas_get(obj)); evas_object_smart_member_add(priv->hit_rect, obj); diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c index 0cdec229b9..0a893b72d0 100644 --- a/src/lib/elementary/elm_genlist.c +++ b/src/lib/elementary/elm_genlist.c @@ -5782,7 +5782,6 @@ _elm_genlist_efl_canvas_group_group_add(Eo *obj, Elm_Genlist_Data *priv) int i; efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->size_caches = eina_hash_pointer_new(_size_cache_free); priv->hit_rect = evas_object_rectangle_add(e); diff --git a/src/lib/elementary/elm_gesture_layer.c b/src/lib/elementary/elm_gesture_layer.c index 667a2716a0..de1fe793e3 100644 --- a/src/lib/elementary/elm_gesture_layer.c +++ b/src/lib/elementary/elm_gesture_layer.c @@ -3748,7 +3748,6 @@ EOLIAN static void _elm_gesture_layer_efl_canvas_group_group_add(Eo *obj, Elm_Gesture_Layer_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->line_min_length = _elm_config->glayer_line_min_length * elm_config_finger_size_get(); diff --git a/src/lib/elementary/elm_glview.c b/src/lib/elementary/elm_glview.c index 1210416253..51e3cb6da6 100644 --- a/src/lib/elementary/elm_glview.c +++ b/src/lib/elementary/elm_glview.c @@ -224,8 +224,6 @@ _elm_glview_efl_canvas_group_group_add(Eo *obj, Elm_Glview_Data *priv EINA_UNUSE { Evas_Object *img; - elm_widget_sub_object_parent_add(obj); - // Create image to render Evas_GL Surface img = evas_object_image_filled_add(evas_object_evas_get(obj)); elm_widget_resize_object_set(obj, img); diff --git a/src/lib/elementary/elm_grid.c b/src/lib/elementary/elm_grid.c index 40b636eb07..6548f21e16 100644 --- a/src/lib/elementary/elm_grid.c +++ b/src/lib/elementary/elm_grid.c @@ -59,8 +59,6 @@ _elm_grid_efl_canvas_group_group_add(Eo *obj, void *_pd EINA_UNUSED) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); Evas_Object *grid; - elm_widget_sub_object_parent_add(obj); - grid = evas_object_grid_add(evas_object_evas_get(obj)); elm_widget_resize_object_set(obj, grid); evas_object_grid_size_set(wd->resize_obj, 100, 100); diff --git a/src/lib/elementary/elm_hover.c b/src/lib/elementary/elm_hover.c index e5019fed78..271436f707 100644 --- a/src/lib/elementary/elm_hover.c +++ b/src/lib/elementary/elm_hover.c @@ -582,7 +582,6 @@ EOLIAN static void _elm_hover_efl_canvas_group_group_add(Eo *obj, Elm_Hover_Data *sd) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); ELM_HOVER_PARTS_FOREACH sd->subs[i].swallow = _content_aliases[i].alias; diff --git a/src/lib/elementary/elm_icon.c b/src/lib/elementary/elm_icon.c index 819f549e63..3011a4d252 100644 --- a/src/lib/elementary/elm_icon.c +++ b/src/lib/elementary/elm_icon.c @@ -493,7 +493,6 @@ EOLIAN static void _elm_icon_efl_canvas_group_group_add(Eo *obj, Elm_Icon_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->thumb.request = NULL; } diff --git a/src/lib/elementary/elm_index.c b/src/lib/elementary/elm_index.c index 49fa53192b..c046080a6e 100644 --- a/src/lib/elementary/elm_index.c +++ b/src/lib/elementary/elm_index.c @@ -1045,7 +1045,6 @@ _elm_index_efl_canvas_group_group_add(Eo *obj, Elm_Index_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (!elm_layout_theme_set (obj, "index", "base/vertical", elm_widget_style_get(obj))) diff --git a/src/lib/elementary/elm_inwin.c b/src/lib/elementary/elm_inwin.c index 54d2c4d775..e50128027e 100644 --- a/src/lib/elementary/elm_inwin.c +++ b/src/lib/elementary/elm_inwin.c @@ -46,7 +46,6 @@ EOLIAN static void _elm_inwin_efl_canvas_group_group_add(Eo *obj, Elm_Inwin_Data *pd EINA_UNUSED) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_FALSE); elm_widget_highlight_ignore_set(obj, EINA_TRUE); diff --git a/src/lib/elementary/elm_label.c b/src/lib/elementary/elm_label.c index 9e31e5a5b1..4468b72bd0 100644 --- a/src/lib/elementary/elm_label.c +++ b/src/lib/elementary/elm_label.c @@ -380,8 +380,6 @@ _elm_label_efl_canvas_group_group_add(Eo *obj, Elm_Label_Data *priv) efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); - priv->linewrap = ELM_WRAP_NONE; priv->wrap_w = -1; priv->slide_duration = 10; diff --git a/src/lib/elementary/elm_list.c b/src/lib/elementary/elm_list.c index 891e58536f..da40668a02 100644 --- a/src/lib/elementary/elm_list.c +++ b/src/lib/elementary/elm_list.c @@ -2352,7 +2352,6 @@ _elm_list_efl_canvas_group_group_add(Eo *obj, Elm_List_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_TRUE); diff --git a/src/lib/elementary/elm_map.c b/src/lib/elementary/elm_map.c index 2e14abf2b8..71deea0b58 100644 --- a/src/lib/elementary/elm_map.c +++ b/src/lib/elementary/elm_map.c @@ -4092,8 +4092,6 @@ _elm_map_efl_canvas_group_group_add(Eo *obj, Elm_Map_Data *priv) Elm_Map_Pan_Data *pan_data; Evas_Object *edje; - elm_widget_sub_object_parent_add(obj); - edje = edje_object_add(evas_object_evas_get(obj)); elm_widget_resize_object_set(obj, edje); diff --git a/src/lib/elementary/elm_mapbuf.c b/src/lib/elementary/elm_mapbuf.c index 46796c1d6e..5706743243 100644 --- a/src/lib/elementary/elm_mapbuf.c +++ b/src/lib/elementary/elm_mapbuf.c @@ -284,7 +284,6 @@ _elm_mapbuf_efl_canvas_group_group_add(Eo *obj, Elm_Mapbuf_Data *priv) elm_widget_resize_object_set(obj, rect); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); evas_object_static_clip_set(rect, EINA_TRUE); evas_object_pass_events_set(rect, EINA_TRUE); diff --git a/src/lib/elementary/elm_menu.c b/src/lib/elementary/elm_menu.c index df38939c1c..236d859399 100644 --- a/src/lib/elementary/elm_menu.c +++ b/src/lib/elementary/elm_menu.c @@ -690,7 +690,6 @@ EOLIAN static void _elm_menu_efl_canvas_group_group_add(Eo *obj, Elm_Menu_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_FALSE); diff --git a/src/lib/elementary/elm_notify.c b/src/lib/elementary/elm_notify.c index df9899722d..0f1bbd37f4 100644 --- a/src/lib/elementary/elm_notify.c +++ b/src/lib/elementary/elm_notify.c @@ -449,7 +449,6 @@ EOLIAN static void _elm_notify_efl_canvas_group_group_add(Eo *obj, Elm_Notify_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->allow_events = EINA_TRUE; diff --git a/src/lib/elementary/elm_panel.c b/src/lib/elementary/elm_panel.c index a0b4ccd47e..7d9e800149 100644 --- a/src/lib/elementary/elm_panel.c +++ b/src/lib/elementary/elm_panel.c @@ -830,7 +830,6 @@ _elm_panel_efl_canvas_group_group_add(Eo *obj, Elm_Panel_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_TRUE); priv->panel_edje = wd->resize_obj; diff --git a/src/lib/elementary/elm_photo.c b/src/lib/elementary/elm_photo.c index 1af5e2b872..92d9aed828 100644 --- a/src/lib/elementary/elm_photo.c +++ b/src/lib/elementary/elm_photo.c @@ -262,7 +262,6 @@ _elm_photo_efl_canvas_group_group_add(Eo *obj, Elm_Photo_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_FALSE); diff --git a/src/lib/elementary/elm_plug.c b/src/lib/elementary/elm_plug.c index f55c616ec7..4b1f005ff0 100644 --- a/src/lib/elementary/elm_plug.c +++ b/src/lib/elementary/elm_plug.c @@ -114,7 +114,6 @@ _elm_plug_efl_canvas_group_group_add(Eo *obj, void *sd EINA_UNUSED) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); ee = ecore_evas_ecore_evas_get(evas_object_evas_get(obj)); if (!ee) return; diff --git a/src/lib/elementary/elm_prefs.c b/src/lib/elementary/elm_prefs.c index edd2213b4a..a320563661 100644 --- a/src/lib/elementary/elm_prefs.c +++ b/src/lib/elementary/elm_prefs.c @@ -48,7 +48,6 @@ EOLIAN static void _elm_prefs_efl_canvas_group_group_add(Eo *obj, Elm_Prefs_Data *_pd EINA_UNUSED) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); } static void _item_free(Elm_Prefs_Item_Node *it); diff --git a/src/lib/elementary/elm_route.c b/src/lib/elementary/elm_route.c index 3b9d3ecee3..be51b20704 100644 --- a/src/lib/elementary/elm_route.c +++ b/src/lib/elementary/elm_route.c @@ -138,7 +138,6 @@ _elm_route_efl_canvas_group_group_add(Eo *obj, Elm_Route_Data *priv) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_FALSE); evas_object_event_callback_add diff --git a/src/lib/elementary/elm_scroller.c b/src/lib/elementary/elm_scroller.c index f70ec39adc..6a1e3291b7 100644 --- a/src/lib/elementary/elm_scroller.c +++ b/src/lib/elementary/elm_scroller.c @@ -778,7 +778,6 @@ _elm_scroller_efl_canvas_group_group_add(Eo *obj, Elm_Scroller_Data *priv) Evas_Coord minw, minh; efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_TRUE); if (!elm_layout_theme_set diff --git a/src/lib/elementary/elm_segment_control.c b/src/lib/elementary/elm_segment_control.c index 96d7558f8e..0a6a3d1a19 100644 --- a/src/lib/elementary/elm_segment_control.c +++ b/src/lib/elementary/elm_segment_control.c @@ -611,7 +611,6 @@ _elm_segment_control_efl_canvas_group_group_add(Eo *obj, Elm_Segment_Control_Dat { sd->obj = obj; efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (!elm_layout_theme_set (obj, "segment_control", "base", elm_widget_style_get(obj))) diff --git a/src/lib/elementary/elm_separator.c b/src/lib/elementary/elm_separator.c index 2c73da13b0..792a74294f 100644 --- a/src/lib/elementary/elm_separator.c +++ b/src/lib/elementary/elm_separator.c @@ -48,7 +48,6 @@ EOLIAN static void _elm_separator_efl_canvas_group_group_add(Eo *obj, Elm_Separator_Data *sd EINA_UNUSED) { efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); elm_widget_can_focus_set(obj, EINA_FALSE); if (!elm_layout_theme_set diff --git a/src/lib/elementary/elm_slideshow.c b/src/lib/elementary/elm_slideshow.c index 741be9eeb5..da8887413d 100644 --- a/src/lib/elementary/elm_slideshow.c +++ b/src/lib/elementary/elm_slideshow.c @@ -310,7 +310,6 @@ _elm_slideshow_efl_canvas_group_group_add(Eo *obj, Elm_Slideshow_Data *priv) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->count_item_pre_before = 2; priv->count_item_pre_after = 2; diff --git a/src/lib/elementary/elm_spinner.c b/src/lib/elementary/elm_spinner.c index 001dd3b152..3c35f0e2ce 100644 --- a/src/lib/elementary/elm_spinner.c +++ b/src/lib/elementary/elm_spinner.c @@ -1187,7 +1187,6 @@ _elm_spinner_efl_canvas_group_group_add(Eo *obj, Elm_Spinner_Data *priv) ELM_SPINNER_DATA_GET(obj, sd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); priv->val_max = 100.0; priv->step = 1.0; diff --git a/src/lib/elementary/elm_table.c b/src/lib/elementary/elm_table.c index 14a287f911..fa07e5912b 100644 --- a/src/lib/elementary/elm_table.c +++ b/src/lib/elementary/elm_table.c @@ -92,8 +92,6 @@ _elm_table_efl_canvas_group_group_add(Eo *obj, void *_pd EINA_UNUSED) { Evas_Object *table; - elm_widget_sub_object_parent_add(obj); - table = evas_object_table_add(evas_object_evas_get(obj)); elm_widget_resize_object_set(obj, table); diff --git a/src/lib/elementary/elm_thumb.c b/src/lib/elementary/elm_thumb.c index df6244e32e..67ac441d6f 100644 --- a/src/lib/elementary/elm_thumb.c +++ b/src/lib/elementary/elm_thumb.c @@ -532,7 +532,6 @@ _elm_thumb_efl_canvas_group_group_add(Eo *obj, Elm_Thumb_Data *_pd EINA_UNUSED) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); if (!elm_layout_theme_set(obj, "thumb", "base", elm_widget_style_get(obj))) CRI("Failed to set layout!"); diff --git a/src/lib/elementary/elm_toolbar.c b/src/lib/elementary/elm_toolbar.c index b64f4d91bb..0efcacb8c0 100644 --- a/src/lib/elementary/elm_toolbar.c +++ b/src/lib/elementary/elm_toolbar.c @@ -2740,8 +2740,6 @@ _elm_toolbar_efl_canvas_group_group_add(Eo *obj, Elm_Toolbar_Data *priv) { Evas_Object *edje; - elm_widget_sub_object_parent_add(obj); - edje = edje_object_add(evas_object_evas_get(obj)); elm_widget_resize_object_set(obj, edje); diff --git a/src/modules/elementary/web/none/elm_web_none.c b/src/modules/elementary/web/none/elm_web_none.c index d601460bda..88218462dc 100644 --- a/src/modules/elementary/web/none/elm_web_none.c +++ b/src/modules/elementary/web/none/elm_web_none.c @@ -59,7 +59,6 @@ _elm_web_none_efl_canvas_group_group_add(Eo *obj, Elm_Web_None_Data *_pd EINA_UN elm_widget_resize_object_set(obj, resize_obj); efl_canvas_group_add(efl_super(obj, MY_CLASS)); - elm_widget_sub_object_parent_add(obj); } EOLIAN static Evas_Object* From 92a4aea61fae9848e057f8aa197f3f50108f7185 Mon Sep 17 00:00:00 2001 From: Yeongjong Lee Date: Wed, 17 Apr 2019 08:15:15 +0000 Subject: [PATCH 45/80] efl/elm_scroller: apply color_set correctly hit_rect/event_rect should ignore color_set. Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D8629 --- src/lib/elementary/efl_ui_scroll_manager.c | 1 + src/lib/elementary/elm_scroller.c | 1 + 2 files changed, 2 insertions(+) diff --git a/src/lib/elementary/efl_ui_scroll_manager.c b/src/lib/elementary/efl_ui_scroll_manager.c index e58aa874fb..a6bf0cda22 100644 --- a/src/lib/elementary/efl_ui_scroll_manager.c +++ b/src/lib/elementary/efl_ui_scroll_manager.c @@ -2418,6 +2418,7 @@ _efl_ui_scroll_manager_efl_object_constructor(Eo *obj, Efl_Ui_Scroll_Manager_Dat sd->scrolling = EINA_FALSE; sd->event_rect = evas_object_rectangle_add(evas_object_evas_get(sd->parent)); + efl_key_data_set(sd->event_rect, "_elm_leaveme", obj); efl_canvas_group_member_add(sd->parent, sd->event_rect); efl_ui_widget_sub_object_add(sd->parent, sd->event_rect); diff --git a/src/lib/elementary/elm_scroller.c b/src/lib/elementary/elm_scroller.c index 6a1e3291b7..1eec6d866e 100644 --- a/src/lib/elementary/elm_scroller.c +++ b/src/lib/elementary/elm_scroller.c @@ -785,6 +785,7 @@ _elm_scroller_efl_canvas_group_group_add(Eo *obj, Elm_Scroller_Data *priv) CRI("Failed to set layout!"); priv->hit_rect = evas_object_rectangle_add(evas_object_evas_get(obj)); + evas_object_data_set(priv->hit_rect, "_elm_leaveme", obj); evas_object_smart_member_add(priv->hit_rect, obj); elm_widget_sub_object_add(obj, priv->hit_rect); From ee3ffd5a49d82bb136db09e3a8592d2a01a24eba Mon Sep 17 00:00:00 2001 From: Xavi Artigas Date: Wed, 17 Apr 2019 15:02:12 +0000 Subject: [PATCH 46/80] docs: Clarify Efl.Content behavior Now we need to make sure implementations actually follow this behavior. Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D8635 --- src/lib/efl/interfaces/efl_content.eo | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/lib/efl/interfaces/efl_content.eo b/src/lib/efl/interfaces/efl_content.eo index ed3e96b18c..d23ac388a4 100644 --- a/src/lib/efl/interfaces/efl_content.eo +++ b/src/lib/efl/interfaces/efl_content.eo @@ -1,6 +1,6 @@ interface Efl.Content { - [[Common interface for objects that have a (single) content. + [[Common interface for objects that have a single sub-object as content. This is used for the default content part of widgets, as well as for individual parts through @Efl.Part. @@ -9,17 +9,24 @@ interface Efl.Content ]] methods { @property content { - [[Swallowed sub-object contained in this object.]] + [[Sub-object currently set as this object's single content. + + If it is set multiple times, previous sub-objects are removed first. + Therefore, if an invalid $content is set the object will + become empty (it will have no sub-object). + ]] set { - return: bool; [[$true on success, $false otherwise]] + return: bool; [[$true if $content was successfully swallowed.]] } get {} values { - content: Efl.Gfx.Entity; [[The object to swallow.]] + content: Efl.Gfx.Entity; [[The sub-object.]] } } content_unset { - [[Unswallow the object in the current container and return it.]] + [[Remove the sub-object currently set as content of this object and return it. + This object becomes empty. + ]] return: Efl.Gfx.Entity; [[Unswallowed object]] } } From 11442eca6f9b1b0e9c29d7a970933e2e15aa47fa Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Thu, 18 Apr 2019 09:50:43 +0200 Subject: [PATCH 47/80] Revert "tests: add api coverage for evas image" This reverts commit cf70826b33a6840f884c090e911f501c758931a7. This test cannot work right now because the fix has not landed. --- src/tests/evas/evas_test_image.c | 35 -------------------------------- 1 file changed, 35 deletions(-) diff --git a/src/tests/evas/evas_test_image.c b/src/tests/evas/evas_test_image.c index 259cff77d3..da6ad42365 100644 --- a/src/tests/evas/evas_test_image.c +++ b/src/tests/evas/evas_test_image.c @@ -729,40 +729,6 @@ EFL_START_TEST(evas_object_image_cached_data_comparision) } EFL_END_TEST -EFL_START_TEST(evas_object_image_api) -{ - Evas *e = _setup_evas(); - Evas_Object *o; - void *pix; - int w, h; - - o = evas_object_image_filled_add(e); - /* test file load */ - evas_object_image_file_set(o, TESTS_IMG_DIR"/Light.jpg", NULL); - ck_assert(!!efl_file_get(o)); - pix = evas_object_image_data_get(o, EINA_FALSE); - ck_assert(!!pix); - evas_object_image_size_get(o, &w, &h); - ck_assert(w && h); - /* test file unload */ - evas_object_image_file_set(o, NULL, NULL); - ck_assert(!efl_file_get(o)); - pix = evas_object_image_data_get(o, EINA_FALSE); - ck_assert(!pix); - evas_object_image_size_get(o, &w, &h); - ck_assert(!w && !h); - /* test file load after unload */ - evas_object_image_file_set(o, TESTS_IMG_DIR"/Light.jpg", NULL); - ck_assert(!!efl_file_get(o)); - pix = evas_object_image_data_get(o, EINA_FALSE); - ck_assert(!!pix); - evas_object_image_size_get(o, &w, &h); - ck_assert(w && h); - - evas_free(e); -} -EFL_END_TEST - EFL_START_TEST(evas_object_image_defaults) { Evas *e = _setup_evas(); @@ -1006,7 +972,6 @@ EFL_END_TEST void evas_test_image_object(TCase *tc) { - tcase_add_test(tc, evas_object_image_api); tcase_add_test(tc, evas_object_image_defaults); tcase_add_test(tc, evas_object_image_loader); tcase_add_test(tc, evas_object_image_loader_orientation); From 77a9093af7329d19ca7d8e62e40ef05a7261ac9b Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 18 Apr 2019 18:51:16 +0900 Subject: [PATCH 48/80] evas common: small optimization. don't repeat computing every iteration. --- src/lib/evas/common/evas_convert_yuv.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lib/evas/common/evas_convert_yuv.c b/src/lib/evas/common/evas_convert_yuv.c index d199ec5aa5..ee753d1961 100644 --- a/src/lib/evas/common/evas_convert_yuv.c +++ b/src/lib/evas/common/evas_convert_yuv.c @@ -1622,9 +1622,10 @@ _evas_nv12torgb_raster(unsigned char **yuv, unsigned char *rgb, int w, int h) unsigned char *yp1, *yp2, *up, *vp; unsigned char *dp1; unsigned char *dp2; + int stride = sizeof(DATA32) * w; dp1 = rgb; - dp2 = dp1 + sizeof (int) * w; + dp2 = dp1 + stride; for (yy = 0; yy < h; yy++) { @@ -1646,8 +1647,8 @@ _evas_nv12torgb_raster(unsigned char **yuv, unsigned char *rgb, int w, int h) } /* jump one line */ - dp1 += sizeof (int) * w; - dp2 += sizeof (int) * w; + dp1 += stride; + dp2 += stride; } } From cb33853ee889f0d71525fda4bb3980585f71253f Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 18 Apr 2019 19:21:18 +0900 Subject: [PATCH 49/80] canvas map: remove the workaround code. Summary: the perspective could be handled in the gl backend, Here map coordinates don't need to get perspective ones but local coordinates instead as it does same to integer coordinates. I have no idea origin issues exactly, but this changed fx, fy values are working correctly in client side. Reviewers: devilhorns, #committers Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8563 --- src/lib/evas/canvas/evas_map.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/lib/evas/canvas/evas_map.c b/src/lib/evas/canvas/evas_map.c index e633ccd883..1f576fcf84 100644 --- a/src/lib/evas/canvas/evas_map.c +++ b/src/lib/evas/canvas/evas_map.c @@ -1381,12 +1381,8 @@ evas_object_map_update(Evas_Object *eo_obj, pt->x = (lround(p->x) + x) * FP1; pt->y = (lround(p->y) + y) * FP1; pt->z = (lround(p->z) ) * FP1; - /* FIXME: Adding the framespace is a workaround for a bug on the EGL - * wayland backend, which does not affect other ports. Remove this when - * it is correctly handled inside the GL rendering code, which handles - * maps with perspective set. */ - pt->fx = p->px + obj->layer->evas->framespace.x; - pt->fy = p->py + obj->layer->evas->framespace.y; + pt->fx = p->x + (float) x; + pt->fy = p->y + (float) y; pt->fz = p->z; if ((uvw == 0) || (imagew == 0)) pt->u = 0; else pt->u = ((lround(p->u) * imagew) / uvw) * FP1; From 70a7dfff461cf78e283824ab4fc77bcc59547c59 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Thu, 18 Apr 2019 11:33:10 +0100 Subject: [PATCH 50/80] eina vpath - fix windows warning as simply as possible the warning is wrong - so keep things simple --- src/lib/eina/eina_vpath_xdg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/eina/eina_vpath_xdg.c b/src/lib/eina/eina_vpath_xdg.c index 094f5d23e6..bd36042f5d 100644 --- a/src/lib/eina/eina_vpath_xdg.c +++ b/src/lib/eina/eina_vpath_xdg.c @@ -34,7 +34,7 @@ eina_xdg_env_init(void) s = getenv(_env); \ if (!s) s = home; \ } else s = home; \ - if (_dir) FATAL_SNPRINTF(_meta, "vpath string '%s' truncated - fatal", "%s\\%s", s, _dir); \ + if (_dir) FATAL_SNPRINTF(_meta, "vpath string '%s' truncated - fatal", "%s\\%s", s, (char *)_dir); \ else FATAL_SNPRINTF(_meta, "vpath string '%s' truncated - fatal", "%s\\", s); \ (&user)->_meta = _meta; From 9c66a4751ce350d9fa5fce1207b596d21884d859 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 18 Apr 2019 19:30:33 +0900 Subject: [PATCH 51/80] evas map: move to floating point coordinate system in high-quality drawing. evas map has used integer coodinate system since it's born, since object's transition is jiggled, not perfectly smooth. It's obvious because Positioning must be stepping with integer units without any subpixel rendering. Currently, this patch is a sort of preparatory to improve this, only valid for high-quality evas map (smooth + anti-aliasing) --- src/lib/evas/common/evas_map_image_internal_high.c | 4 ++-- src/modules/evas/engines/software_generic/evas_engine.c | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lib/evas/common/evas_map_image_internal_high.c b/src/lib/evas/common/evas_map_image_internal_high.c index b3945f94df..0fd3ce40a7 100644 --- a/src/lib/evas/common/evas_map_image_internal_high.c +++ b/src/lib/evas/common/evas_map_image_internal_high.c @@ -774,8 +774,8 @@ _evas_common_map_rgba_internal_high(RGBA_Image *src, RGBA_Image *dst, Check alpha transparency. */ for (int i = 0; i < 4; i++) { - x[i] = ((float) (p[i].x >> FP)) + 0.5; - y[i] = ((float) (p[i].y >> FP)) + 0.5; + x[i] = p[i].fx + 0.5; + y[i] = p[i].fy + 0.5; u[i] = (p[i].u >> FP); v[i] = (p[i].v >> FP); c[i] = p[i].col; diff --git a/src/modules/evas/engines/software_generic/evas_engine.c b/src/modules/evas/engines/software_generic/evas_engine.c index 7007f3a2fd..1b9aeed1c3 100644 --- a/src/modules/evas/engines/software_generic/evas_engine.c +++ b/src/modules/evas/engines/software_generic/evas_engine.c @@ -2494,7 +2494,8 @@ _draw_thread_map_draw(void *data) continue; } - if ((m->pts[0 + offset].x == m->pts[3 + offset].x) && + if (!(map->anti_alias && map->smooth) && //For sub-pixel rendering + (m->pts[0 + offset].x == m->pts[3 + offset].x) && (m->pts[1 + offset].x == m->pts[2 + offset].x) && (m->pts[0 + offset].y == m->pts[1 + offset].y) && (m->pts[3 + offset].y == m->pts[2 + offset].y) && From 3856e1a0026ff2c917b963051949a528db179d13 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 18 Apr 2019 20:08:16 +0900 Subject: [PATCH 52/80] evas gl: move to floating point coordinate system. Summary: GL engine has used integer coordinates system since it's born though OpenGL basically uses floating point vertex coordinates system. There were many dissatisfaction, complaints about this since object's transition is jiggled, not perfectly smooth. It's obvious because Positioning must be stepping with integer units without any subpixel rendering. Our gl engine currently supports msaa options and evas map allows to have double precivion coordinates system, our engine must do handle this over as well, to work together. If you don't like change, We could switch behaviors optionally (turn on, only when msaa is enabled) But I think it's pointless using integer coordinates system in GL thesedays. It just make code complex to maintain. There will be an additional patch coming for SW backend map behavior soon. Left: before patch Right: after patch {F3694624} Reviewers: #committers, raster Reviewed By: #committers, raster Subscribers: raster, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8552 --- .../evas/engines/gl_common/evas_gl_common.h | 7 +- .../evas/engines/gl_common/evas_gl_context.c | 75 +++++++++---------- .../evas/engines/gl_generic/evas_engine.c | 7 +- src/modules/evas/engines/gl_x11/evas_x_main.c | 1 + 4 files changed, 46 insertions(+), 44 deletions(-) diff --git a/src/modules/evas/engines/gl_common/evas_gl_common.h b/src/modules/evas/engines/gl_common/evas_gl_common.h index ab9a54948d..2c74423f26 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_common.h +++ b/src/modules/evas/engines/gl_common/evas_gl_common.h @@ -308,8 +308,6 @@ struct _Evas_Engine_GL_Context Eina_Bool size : 1; } change; - Eina_Bool havestuff : 1; - struct { struct { int x, y, w, h; @@ -335,7 +333,7 @@ struct _Evas_Engine_GL_Context } shader; struct { int num, alloc; - GLshort *vertex; + GLfloat *vertex; GLubyte *color; GLfloat *texuv; GLfloat *texuv2; @@ -380,6 +378,9 @@ struct _Evas_Engine_GL_Context GLuint preserve_bit; int gles_version; + + Eina_Bool havestuff : 1; + Eina_Bool msaa : 1; }; struct _Evas_GL_Texture_Pool diff --git a/src/modules/evas/engines/gl_common/evas_gl_context.c b/src/modules/evas/engines/gl_common/evas_gl_context.c index 2877007f42..c1f7d985b6 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_context.c +++ b/src/modules/evas/engines/gl_common/evas_gl_context.c @@ -1403,7 +1403,7 @@ array_alloc(Evas_Engine_GL_Context *gc, int n) gc->pipe[n].array.field = _pipebuf_resize(gc->pipe[n].array.field, \ gc->pipe[n].array.alloc * sizeof(type) * size) - RALOC(vertex, GLshort, VERTEX_CNT); + RALOC(vertex, GLfloat, VERTEX_CNT); RALOC(color, GLubyte, COLOR_CNT); RALOC(texuv, GLfloat, TEX_CNT); RALOC(texa, GLfloat, TEX_CNT); @@ -1778,14 +1778,21 @@ static int pipe_region_intersects(Evas_Engine_GL_Context *gc, int n, int x, int y, int w, int h) { - int rx, ry, rw, rh, ii, end; - const GLshort *v; - +#define SPANS_INTERSECT(x1, w1, x2, w2) \ +(!((((x2) + (w2)) <= (x1)) || ((x2) >= ((x1) + (w1))))) + +#define REGIONS_INTERSECT(x, y, w, h, xx, yy, ww, hh) \ +((SPANS_COMMON((x), (w), (xx), (ww))) && (SPANS_COMMON((y), (h), (yy), (hh)))) + + float rx, ry, rw, rh; + int ii, end; + const GLfloat *v; + rx = gc->pipe[n].region.x; ry = gc->pipe[n].region.y; rw = gc->pipe[n].region.w; rh = gc->pipe[n].region.h; - if (!RECTS_INTERSECT(x, y, w, h, rx, ry, rw, rh)) return 0; + if (!REGIONS_INTERSECT(x, y, w, h, rx, ry, rw, rh)) return 0; // a hack for now. map pipes use their whole bounding box for intersects // which at worst case reduces to old pipeline flushes, but cheaper than @@ -1803,7 +1810,7 @@ pipe_region_intersects(Evas_Engine_GL_Context *gc, int n, ry = v[ii + 1]; rw = v[ii + 3] - rx; rh = v[ii + 7] - ry; - if (RECTS_INTERSECT(x, y, w, h, rx, ry, rw, rh)) return 1; + if (REGIONS_INTERSECT(x, y, w, h, rx, ry, rw, rh)) return 1; } return 0; } @@ -2930,16 +2937,14 @@ evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc, (A_VAL(&(p[2].col)) < 0xff) || (A_VAL(&(p[3].col)) < 0xff)) blend = EINA_TRUE; - if ((p[0].z == p[1].z) && (p[1].z == p[2].z) && (p[2].z == p[3].z)) - flat = EINA_TRUE; + if (((p[0].z == p[1].z) && (p[1].z == p[2].z) && (p[2].z == p[3].z)) || + (p[0].foc <= 0)) + { + flat = EINA_TRUE; + } if (!clip) cx = cy = cw = ch = 0; - if (!flat) - { - if (p[0].foc <= 0) flat = EINA_TRUE; - } - switch (cspace) { case EVAS_COLORSPACE_YCBCR422P601_PL: @@ -3000,28 +3005,11 @@ evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc, w = w - x; h = h - y; - if (!flat) - { - // FUZZZZ! - x -= 3; - y -= 3; - w += 6; - h += 6; - } - if (clip) - { - if (flat) - { - int nx = x, ny = y, nw = w, nh = h; - - RECTS_CLIP_TO_RECT(nx, ny, nw, nh, cx, cy, cw, ch); - if ((nx == x) && (ny == y) && (nw == w) && (nh == h)) - { - clip = 0; cx = 0; cy = 0; cw = 0; ch = 0; - } - x = nx; y = ny; w = nw; h = nh; - } - } + // FUZZZZ! + x -= 3; + y -= 3; + w += 6; + h += 6; if (!flat) { @@ -3033,6 +3021,17 @@ evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc, gc->change.size = 1; _evas_gl_common_viewport_set(gc); } + else if (clip) + { + int nx = x, ny = y, nw = w, nh = h; + + RECTS_CLIP_TO_RECT(nx, ny, nw, nh, cx, cy, cw, ch); + if ((nx == x) && (ny == y) && (nw == w) && (nh == h)) + { + clip = 0; cx = 0; cy = 0; cw = 0; ch = 0; + } + x = nx; y = ny; w = nw; h = nh; + } pn = _evas_gl_common_context_push(SHD_MAP, gc, tex, mtex, @@ -3108,8 +3107,8 @@ evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc, if (flat) { PUSH_VERTEX(pn, - (p[points[i]].x >> FP), - (p[points[i]].y >> FP), + p[points[i]].fx, + p[points[i]].fy, 0); } else @@ -4106,7 +4105,7 @@ shader_array_flush(Evas_Engine_GL_Context *gc) } // use_vertex is always true - glVertexAttribPointer(SHAD_VERTEX, VERTEX_CNT, GL_SHORT, GL_FALSE, 0, vertex_ptr); + glVertexAttribPointer(SHAD_VERTEX, VERTEX_CNT, GL_FLOAT, GL_FALSE, 0, vertex_ptr); if (gc->pipe[i].array.use_color) { diff --git a/src/modules/evas/engines/gl_generic/evas_engine.c b/src/modules/evas/engines/gl_generic/evas_engine.c index 2659498611..60301d4283 100644 --- a/src/modules/evas/engines/gl_generic/evas_engine.c +++ b/src/modules/evas/engines/gl_generic/evas_engine.c @@ -1229,7 +1229,8 @@ eng_image_scale_hint_get(void *engine EINA_UNUSED, void *image) } static Eina_Bool -eng_image_map_draw(void *engine, void *data, void *context, void *surface, void *image, RGBA_Map *m, int smooth, int level, Eina_Bool do_async) +eng_image_map_draw(void *engine EINA_UNUSED, void *data, void *context, void *surface, void *image, + RGBA_Map *m, int smooth, int level, Eina_Bool do_async EINA_UNUSED) { Evas_Engine_GL_Context *gl_context; Evas_GL_Image *gim = image; @@ -1239,7 +1240,8 @@ eng_image_map_draw(void *engine, void *data, void *context, void *surface, void evas_gl_common_context_target_surface_set(gl_context, surface); gl_context->dc = context; - if ((m->pts[0].x == m->pts[3].x) && + if (!gl_context->msaa && + (m->pts[0].x == m->pts[3].x) && (m->pts[1].x == m->pts[2].x) && (m->pts[0].y == m->pts[1].y) && (m->pts[3].y == m->pts[2].y) && @@ -1259,7 +1261,6 @@ eng_image_map_draw(void *engine, void *data, void *context, void *surface, void (m->pts[3].col == 0xffffffff)) { int dx, dy, dw, dh; - dx = m->pts[0].x >> FP; dy = m->pts[0].y >> FP; dw = (m->pts[2].x >> FP) - dx; diff --git a/src/modules/evas/engines/gl_x11/evas_x_main.c b/src/modules/evas/engines/gl_x11/evas_x_main.c index 3996f510d0..3543d9390b 100644 --- a/src/modules/evas/engines/gl_x11/evas_x_main.c +++ b/src/modules/evas/engines/gl_x11/evas_x_main.c @@ -632,6 +632,7 @@ try_gles2: glXGetFBConfigAttrib(gw->disp, evis->config, GLX_FBCONFIG_ID, &gw->gl_context->glxcfg_rgb); glXGetFBConfigAttrib(gw->disp, evis2->config, GLX_FBCONFIG_ID, &gw->gl_context->glxcfg_rgba); #endif + gw->gl_context->msaa = (Eina_Bool) msaa_bits; eng_window_use(gw); glsym_evas_gl_common_context_resize(gw->gl_context, w, h, rot); gw->surf = 1; From 8e0c4d83edd49063fcd0f214168710e0991e9475 Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Mon, 1 Apr 2019 08:13:32 -0400 Subject: [PATCH 53/80] ecore-drm2: Make atomic property values support uint64_t Some Atomic property values are actually uint64_t, so fix the structure to reflect that. @fix --- src/lib/ecore_drm2/ecore_drm2_private.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore_drm2/ecore_drm2_private.h b/src/lib/ecore_drm2/ecore_drm2_private.h index 25aaac7d71..62b891fcd6 100644 --- a/src/lib/ecore_drm2/ecore_drm2_private.h +++ b/src/lib/ecore_drm2/ecore_drm2_private.h @@ -72,7 +72,8 @@ typedef struct _Ecore_Drm2_Atomic_Blob typedef struct _Ecore_Drm2_Atomic_Property { - uint32_t id, value; + uint32_t id; + uint64_t value; } Ecore_Drm2_Atomic_Property; typedef struct _Ecore_Drm2_Connector_State From d09664e20efeb59ededa4de3a9104bdd3b19dba5 Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Mon, 1 Apr 2019 08:40:14 -0400 Subject: [PATCH 54/80] ecore-drm2: Add background_color to crtc atomic properties This patch adds a new field to the crtc atomic state which will be used to support crtc background_color property, and also fills in that state during crtc atomic state fill. @feature --- src/lib/ecore_drm2/ecore_drm2_device.c | 6 +++++- src/lib/ecore_drm2/ecore_drm2_private.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore_drm2/ecore_drm2_device.c b/src/lib/ecore_drm2/ecore_drm2_device.c index b4ca722b22..46d0f94119 100644 --- a/src/lib/ecore_drm2/ecore_drm2_device.c +++ b/src/lib/ecore_drm2/ecore_drm2_device.c @@ -268,7 +268,11 @@ _drm2_atomic_state_crtc_fill(Ecore_Drm2_Crtc_State *cstate, int fd) cstate->active.value = oprops->prop_values[i]; DBG("\t\t\tValue: %d", cstate->active.value); } - + else if (!strcmp(prop->name, "BACKGROUND_COLOR")) + { + cstate->background.id = prop->prop_id; + cstate->background.value = oprops->prop_values[i]; + } cont: sym_drmModeFreeProperty(prop); } diff --git a/src/lib/ecore_drm2/ecore_drm2_private.h b/src/lib/ecore_drm2/ecore_drm2_private.h index 62b891fcd6..56c9fe8a99 100644 --- a/src/lib/ecore_drm2/ecore_drm2_private.h +++ b/src/lib/ecore_drm2/ecore_drm2_private.h @@ -91,6 +91,7 @@ typedef struct _Ecore_Drm2_Crtc_State uint32_t obj_id; int index; Ecore_Drm2_Atomic_Property active; + Ecore_Drm2_Atomic_Property background; Ecore_Drm2_Atomic_Blob mode; } Ecore_Drm2_Crtc_State; From edd78d18006e94d7fa9bd553bb49d2e4becddd6d Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Mon, 1 Apr 2019 08:41:38 -0400 Subject: [PATCH 55/80] ecore-drm2: Fill in crtc background color (if supported) during atomic commits Small patch to add the crtc background_color property (if supported) to any atomic tests/commits @feature --- src/lib/ecore_drm2/ecore_drm2_fb.c | 9 +++++++++ src/lib/ecore_drm2/ecore_drm2_outputs.c | 14 ++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/lib/ecore_drm2/ecore_drm2_fb.c b/src/lib/ecore_drm2/ecore_drm2_fb.c index e8f6c16762..aab47956fb 100644 --- a/src/lib/ecore_drm2/ecore_drm2_fb.c +++ b/src/lib/ecore_drm2/ecore_drm2_fb.c @@ -348,6 +348,15 @@ _fb_atomic_flip_test(Ecore_Drm2_Output *output) cstate->active.value); if (ret < 0) goto err; + if (cstate->background.id) + { + ret = + sym_drmModeAtomicAddProperty(req, cstate->obj_id, + cstate->background.id, + cstate->background.value); + if (ret < 0) goto err; + } + EINA_LIST_FOREACH(output->planes, l, plane) { pstate = plane->state; diff --git a/src/lib/ecore_drm2/ecore_drm2_outputs.c b/src/lib/ecore_drm2/ecore_drm2_outputs.c index 6734cacdff..7ad6ef8396 100644 --- a/src/lib/ecore_drm2/ecore_drm2_outputs.c +++ b/src/lib/ecore_drm2/ecore_drm2_outputs.c @@ -1303,6 +1303,20 @@ _output_mode_atomic_set(Ecore_Drm2_Output *output, Ecore_Drm2_Output_Mode *mode) goto err; } + if (cstate->background.id) + { + ret = + sym_drmModeAtomicAddProperty(req, cstate->obj_id, + cstate->background.id, + cstate->background.value); + if (ret < 0) + { + ERR("Could not add atomic property"); + ret = EINA_FALSE; + goto err; + } + } + ret = sym_drmModeAtomicCommit(output->fd, req, DRM_MODE_ATOMIC_ALLOW_MODESET, output); if (ret < 0) From 2aaca58de0889027239df45238c17f046685a9a3 Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Mon, 1 Apr 2019 10:28:40 -0400 Subject: [PATCH 56/80] ecore-drm2: Add API function to set crtc background color This patch adds a new API function we can be called in order to set the crtc background color of a given output. @feature --- src/lib/ecore_drm2/Ecore_Drm2.h | 17 +++++++++++++++++ src/lib/ecore_drm2/ecore_drm2_outputs.c | 18 ++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/src/lib/ecore_drm2/Ecore_Drm2.h b/src/lib/ecore_drm2/Ecore_Drm2.h index ecf4f4a2bd..6f074fc5ec 100644 --- a/src/lib/ecore_drm2/Ecore_Drm2.h +++ b/src/lib/ecore_drm2/Ecore_Drm2.h @@ -1179,6 +1179,23 @@ EAPI int ecore_drm2_device_fd_get(Ecore_Drm2_Device *device); */ EAPI Eina_Bool ecore_drm2_output_pending_get(Ecore_Drm2_Output *output); +/** + * Set the background color of an output's crtc + * + * @param output + * @param r + * @param g + * @param b + * @param a + * + * @return EINA_TRUE on success, EINA_FALSE otherwise + * + * @note This requires support from the video driver in order to function + * + * @since 1.23 + */ +EAPI Eina_Bool ecore_drm2_output_background_color_set(Ecore_Drm2_Output *output, int r, int g, int b, int a); + # endif #endif diff --git a/src/lib/ecore_drm2/ecore_drm2_outputs.c b/src/lib/ecore_drm2/ecore_drm2_outputs.c index 7ad6ef8396..a433d54358 100644 --- a/src/lib/ecore_drm2/ecore_drm2_outputs.c +++ b/src/lib/ecore_drm2/ecore_drm2_outputs.c @@ -1746,3 +1746,21 @@ ecore_drm2_output_relative_to_get(Ecore_Drm2_Output *output) EINA_SAFETY_ON_NULL_RETURN_VAL(output, NULL); return output->relative.to; } + +EAPI Eina_Bool +ecore_drm2_output_background_color_set(Ecore_Drm2_Output *output, int r, int g, int b, int a) +{ + Ecore_Drm2_Crtc_State *cstate; + + EINA_SAFETY_ON_NULL_RETURN_VAL(output, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(output->crtc_state, EINA_FALSE); + + cstate = output->crtc_state; + if (cstate->background.id) + { + cstate->background.value = (a << 48 | b << 32 | g << 16 | r); + return _fb_atomic_flip_test(output); + } + + return EINA_FALSE; +} From 5fe11b2dbfdb6c74d4bdad6b59b760f5278f554a Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Thu, 18 Apr 2019 09:07:17 -0400 Subject: [PATCH 57/80] ecore-drm2: Update printf format to match changed value type Commit 8e0c4d83edd changed the atomic property value type to be uint64_t so we need to update the printf's to reflect that --- src/lib/ecore_drm2/ecore_drm2_device.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/lib/ecore_drm2/ecore_drm2_device.c b/src/lib/ecore_drm2/ecore_drm2_device.c index 46d0f94119..c27deb8199 100644 --- a/src/lib/ecore_drm2/ecore_drm2_device.c +++ b/src/lib/ecore_drm2/ecore_drm2_device.c @@ -266,7 +266,7 @@ _drm2_atomic_state_crtc_fill(Ecore_Drm2_Crtc_State *cstate, int fd) { cstate->active.id = prop->prop_id; cstate->active.value = oprops->prop_values[i]; - DBG("\t\t\tValue: %d", cstate->active.value); + DBG("\t\t\tValue: %lu", cstate->active.value); } else if (!strcmp(prop->name, "BACKGROUND_COLOR")) { @@ -307,13 +307,13 @@ _drm2_atomic_state_conn_fill(Ecore_Drm2_Connector_State *cstate, int fd) { cstate->crtc.id = prop->prop_id; cstate->crtc.value = oprops->prop_values[i]; - DBG("\t\t\tValue: %d", cstate->crtc.value); + DBG("\t\t\tValue: %lu", cstate->crtc.value); } else if (!strcmp(prop->name, "DPMS")) { cstate->dpms.id = prop->prop_id; cstate->dpms.value = oprops->prop_values[i]; - DBG("\t\t\tValue: %d", cstate->dpms.value); + DBG("\t\t\tValue: %lu", cstate->dpms.value); } else if (!strcmp(prop->name, "EDID")) { @@ -348,13 +348,13 @@ _drm2_atomic_state_conn_fill(Ecore_Drm2_Connector_State *cstate, int fd) { cstate->aspect.id = prop->prop_id; cstate->aspect.value = oprops->prop_values[i]; - DBG("\t\t\tValue: %d", cstate->aspect.value); + DBG("\t\t\tValue: %lu", cstate->aspect.value); } else if (!strcmp(prop->name, "scaling mode")) { cstate->scaling.id = prop->prop_id; cstate->scaling.value = oprops->prop_values[i]; - DBG("\t\t\tValue: %d", cstate->scaling.value); + DBG("\t\t\tValue: %lu", cstate->scaling.value); } cont: @@ -392,13 +392,13 @@ _drm2_atomic_state_plane_fill(Ecore_Drm2_Plane_State *pstate, int fd) { pstate->cid.id = prop->prop_id; pstate->cid.value = oprops->prop_values[i]; - DBG("\t\t\tValue: %d", pstate->cid.value); + DBG("\t\t\tValue: %lu", pstate->cid.value); } else if (!strcmp(prop->name, "FB_ID")) { pstate->fid.id = prop->prop_id; pstate->fid.value = oprops->prop_values[i]; - DBG("\t\t\tValue: %d", pstate->fid.value); + DBG("\t\t\tValue: %lu", pstate->fid.value); } else if (!strcmp(prop->name, "CRTC_X")) { @@ -456,7 +456,7 @@ _drm2_atomic_state_plane_fill(Ecore_Drm2_Plane_State *pstate, int fd) DBG("\t\t\tCursor Plane"); break; default: - DBG("\t\t\tValue: %d", pstate->type.value); + DBG("\t\t\tValue: %lu", pstate->type.value); break; } } From b462d9bc11eefbfc7062db1cc19cb7ce4c573e5b Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Thu, 18 Apr 2019 09:10:49 -0400 Subject: [PATCH 58/80] ecore-drm2: Fix API function parameters for background color set Passing int as parameters here is too small for left shifting the colors so make these parameters uint64_t --- src/lib/ecore_drm2/Ecore_Drm2.h | 2 +- src/lib/ecore_drm2/ecore_drm2_outputs.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/ecore_drm2/Ecore_Drm2.h b/src/lib/ecore_drm2/Ecore_Drm2.h index 6f074fc5ec..843cfa6a2d 100644 --- a/src/lib/ecore_drm2/Ecore_Drm2.h +++ b/src/lib/ecore_drm2/Ecore_Drm2.h @@ -1194,7 +1194,7 @@ EAPI Eina_Bool ecore_drm2_output_pending_get(Ecore_Drm2_Output *output); * * @since 1.23 */ -EAPI Eina_Bool ecore_drm2_output_background_color_set(Ecore_Drm2_Output *output, int r, int g, int b, int a); +EAPI Eina_Bool ecore_drm2_output_background_color_set(Ecore_Drm2_Output *output, uint64_t r, uint64_t g, uint64_t b, uint64_t a); # endif diff --git a/src/lib/ecore_drm2/ecore_drm2_outputs.c b/src/lib/ecore_drm2/ecore_drm2_outputs.c index a433d54358..dfb2fa93d1 100644 --- a/src/lib/ecore_drm2/ecore_drm2_outputs.c +++ b/src/lib/ecore_drm2/ecore_drm2_outputs.c @@ -1748,7 +1748,7 @@ ecore_drm2_output_relative_to_get(Ecore_Drm2_Output *output) } EAPI Eina_Bool -ecore_drm2_output_background_color_set(Ecore_Drm2_Output *output, int r, int g, int b, int a) +ecore_drm2_output_background_color_set(Ecore_Drm2_Output *output, uint64_t r, uint64_t g, uint64_t b, uint64_t a) { Ecore_Drm2_Crtc_State *cstate; From 94a2c9cd155eb77b87ba204c0ddc4fe56990c5d3 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Thu, 18 Apr 2019 15:24:58 +0200 Subject: [PATCH 59/80] elm_image_legacy: remove bad "legacy" include This only contains some Efl_ structures and typedefs now, hidden behind a BETA_API define. It has no place in legacy. --- src/lib/elementary/elm_image_legacy.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib/elementary/elm_image_legacy.h b/src/lib/elementary/elm_image_legacy.h index d09060f969..f023de8316 100644 --- a/src/lib/elementary/elm_image_legacy.h +++ b/src/lib/elementary/elm_image_legacy.h @@ -553,5 +553,3 @@ EAPI Eina_Bool elm_image_aspect_fixed_get(const Evas_Object *obj); * @ingroup Elm_Image */ EAPI void elm_image_async_open_set(Evas_Object *obj, Eina_Bool async); - -#include "efl_ui_image.eo.legacy.h" From 6c63fbbdb460cb8863eb3158c54d15e1f7c88ea5 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Thu, 18 Apr 2019 15:27:50 +0200 Subject: [PATCH 60/80] efl_ui_slider: remove unused legacy header include This does not define anything useful. --- src/lib/elementary/elm_slider_legacy.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib/elementary/elm_slider_legacy.h b/src/lib/elementary/elm_slider_legacy.h index 99c5097297..aa32dec6b1 100644 --- a/src/lib/elementary/elm_slider_legacy.h +++ b/src/lib/elementary/elm_slider_legacy.h @@ -381,5 +381,3 @@ EAPI double elm_slider_step_get(const Evas_Object *obj); * @ingroup Elm_Slider */ EAPI void elm_slider_step_set(Evas_Object *obj, double step); - -#include "efl_ui_slider.eo.legacy.h" From 98ef86aa14e0bf8c06ae3b0b2e880f60f8e0520b Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Thu, 18 Apr 2019 15:28:59 +0200 Subject: [PATCH 61/80] elm_progressbar_legacy: remove unused include This does not define anything useful. --- src/lib/elementary/elm_progressbar_legacy.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib/elementary/elm_progressbar_legacy.h b/src/lib/elementary/elm_progressbar_legacy.h index 8eedf940e5..a6b67991be 100644 --- a/src/lib/elementary/elm_progressbar_legacy.h +++ b/src/lib/elementary/elm_progressbar_legacy.h @@ -284,5 +284,3 @@ EAPI void elm_progressbar_part_value_set(Evas_Object *obj, const char *part, dou * @ingroup Elm_Progressbar */ EAPI double elm_progressbar_part_value_get(const Evas_Object *obj, const char *part); - -#include "efl_ui_progressbar.eo.legacy.h" From 1cd30eec90965d8372a2d6658135788d27c036cd Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Thu, 18 Apr 2019 15:31:55 +0200 Subject: [PATCH 62/80] efl_ui_layout, elm_layout_legacy: add missing/remove unused include The efl_ui_layout.eo.h header was incorrectly not included in Elementary.h, which resulted in build failures after the legacy and otherwise unused efl_ui_layout.eo.legacy.h include was removed. --- src/lib/elementary/Elementary.h | 1 + src/lib/elementary/elm_layout_legacy.h | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib/elementary/Elementary.h b/src/lib/elementary/Elementary.h index 67688ea155..b7e0bd678e 100644 --- a/src/lib/elementary/Elementary.h +++ b/src/lib/elementary/Elementary.h @@ -291,6 +291,7 @@ typedef Eo Efl_Ui_Focus_Manager; # include # include # include +# include # include # include # include diff --git a/src/lib/elementary/elm_layout_legacy.h b/src/lib/elementary/elm_layout_legacy.h index 58dab5bcc9..55a23a69f3 100644 --- a/src/lib/elementary/elm_layout_legacy.h +++ b/src/lib/elementary/elm_layout_legacy.h @@ -711,5 +711,3 @@ EAPI const char *elm_layout_part_cursor_style_get(const Evas_Object *obj, const * @ingroup Elm_Layout */ EAPI Eina_Bool elm_layout_part_cursor_unset(Evas_Object *obj, const char *part_name); - -#include "efl_ui_layout.eo.legacy.h" From ed0c813417b98a7f14779597f8c0afcbdf0b89ab Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Thu, 18 Apr 2019 15:45:44 +0200 Subject: [PATCH 63/80] evas_legacy: remove unused generated legacy includes These define types never used in Evas_Legacy.h. --- src/lib/evas/Evas_Legacy.h | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h index da04d40c62..3e4ae59c25 100644 --- a/src/lib/evas/Evas_Legacy.h +++ b/src/lib/evas/Evas_Legacy.h @@ -3526,8 +3526,6 @@ EWAPI Eina_Bool _evas_object_intercept_call(Evas_Object *obj, Evas_Object_Interc */ EAPI Evas_Object *evas_object_rectangle_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; -#include "canvas/efl_canvas_rectangle.eo.legacy.h" - /** * @} */ @@ -4297,8 +4295,6 @@ EAPI void evas_vg_gradient_spread_set(Eo *obj, Efl_Gfx_Gradient_Spread s); */ EAPI Efl_Gfx_Gradient_Spread evas_vg_gradient_spread_get(Eo *obj); -#include "canvas/efl_canvas_vg_gradient.eo.legacy.h" - /** * Creates a new linear gradient object \. * @@ -4348,8 +4344,6 @@ EAPI void evas_vg_gradient_linear_end_set(Eo *obj, double x, double y); */ EAPI void evas_vg_gradient_linear_end_get(Eo *obj, double *x, double *y); -#include "canvas/efl_canvas_vg_gradient_linear.eo.legacy.h" - /** * Creates a new radial gradient object \. * @@ -4416,8 +4410,6 @@ EAPI void evas_vg_gradient_radial_focal_set(Eo *obj, double x, double y); */ EAPI void evas_vg_gradient_radial_focal_get(Eo *obj, double *x, double *y); -#include "canvas/efl_canvas_vg_gradient_radial.eo.legacy.h" - /** * @} */ @@ -8050,8 +8042,6 @@ EAPI void evas_object_map_enable_set(Evas_Object *obj, Eina_Bool enabled); */ EAPI Eina_Bool evas_object_map_enable_get(const Evas_Object *obj); -#include "canvas/efl_gfx_mapping.eo.legacy.h" - /** * @brief Apply an evas filter program on this text object. * @@ -8171,13 +8161,3 @@ EAPI void evas_object_freeze_events_set(Efl_Canvas_Object *obj, Eina_Bool freeze EAPI Eina_Bool evas_object_freeze_events_get(const Efl_Canvas_Object *obj); #include "canvas/efl_canvas_event_grabber_eo.legacy.h" - -#include "canvas/efl_canvas_animation_alpha.eo.legacy.h" -#include "canvas/efl_canvas_animation.eo.legacy.h" -#include "canvas/efl_canvas_animation_group.eo.legacy.h" -#include "canvas/efl_canvas_animation_group_parallel.eo.legacy.h" -#include "canvas/efl_canvas_animation_group_sequential.eo.legacy.h" -#include "canvas/efl_canvas_animation_player.eo.legacy.h" -#include "canvas/efl_canvas_animation_rotate.eo.legacy.h" -#include "canvas/efl_canvas_animation_scale.eo.legacy.h" -#include "canvas/efl_canvas_animation_translate.eo.legacy.h" From 8135b4698c6f99c7260c46b0e2199beac8723df1 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 18 Apr 2019 09:05:31 -0400 Subject: [PATCH 64/80] evas: implement Efl.File.unload for evas image classes this fixes unloading images using the evas_object_image_file_set legacy api ref D8616 Differential Revision: https://phab.enlightenment.org/D8618 --- src/lib/evas/canvas/efl_canvas_image.c | 22 ++++++++++++++++++++++ src/lib/evas/canvas/efl_canvas_image.eo | 1 + src/lib/evas/canvas/evas_image_eo.c | 1 + src/lib/evas/canvas/evas_image_legacy.c | 8 ++++++++ src/lib/evas/canvas/evas_image_private.h | 1 + src/lib/evas/canvas/evas_object_image.c | 2 ++ 6 files changed, 35 insertions(+) diff --git a/src/lib/evas/canvas/efl_canvas_image.c b/src/lib/evas/canvas/efl_canvas_image.c index 434c427bb0..9d4c6c4594 100644 --- a/src/lib/evas/canvas/efl_canvas_image.c +++ b/src/lib/evas/canvas/efl_canvas_image.c @@ -4,6 +4,21 @@ #define MY_CLASS EFL_CANVAS_IMAGE_CLASS #define MY_CLASS_NAME efl_class_name_get(MY_CLASS) +void +_evas_image_file_unload(Eo *eo_obj) +{ + Evas_Object_Protected_Data *obj; + Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS); + + if (!o->cur->f) return; + + obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); + evas_object_async_block(obj); + _evas_image_init_set(NULL, NULL, eo_obj, obj, o, NULL); + o->buffer_data_set = EINA_FALSE; + _evas_image_done_set(eo_obj, obj, o); + o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_NONE; +} Eina_Bool _evas_image_file_load(Eo *eo_obj) { @@ -48,6 +63,13 @@ _efl_canvas_image_efl_file_load(Eo *eo_obj, void *_pd EINA_UNUSED) return EFL_GFX_IMAGE_LOAD_ERROR_DOES_NOT_EXIST; } +EOLIAN static void +_efl_canvas_image_efl_file_unload(Eo *eo_obj, void *_pd EINA_UNUSED) +{ + efl_file_unload(efl_super(eo_obj, MY_CLASS)); + _evas_image_file_unload(eo_obj); +} + const Eina_File * _evas_image_mmap_get(const Eo *eo_obj) { diff --git a/src/lib/evas/canvas/efl_canvas_image.eo b/src/lib/evas/canvas/efl_canvas_image.eo index 2dbad42f60..428a1f900a 100644 --- a/src/lib/evas/canvas/efl_canvas_image.eo +++ b/src/lib/evas/canvas/efl_canvas_image.eo @@ -17,6 +17,7 @@ class @beta Efl.Canvas.Image extends Efl.Canvas.Image_Internal implements Efl.Gfx.Buffer.buffer_map; Efl.Gfx.Buffer.buffer_unmap; Efl.File.load; + Efl.File.unload; Efl.Gfx.Frame_Controller.animated { get; } Efl.Gfx.Frame_Controller.frame { get; set; } Efl.Gfx.Frame_Controller.frame_count { get; } diff --git a/src/lib/evas/canvas/evas_image_eo.c b/src/lib/evas/canvas/evas_image_eo.c index 6c67d08c27..2d4f39ff39 100644 --- a/src/lib/evas/canvas/evas_image_eo.c +++ b/src/lib/evas/canvas/evas_image_eo.c @@ -15,6 +15,7 @@ _evas_image_class_initializer(Efl_Class *klass) EFL_OPS_DEFINE(ops, EFL_OBJECT_OP_FUNC(efl_file_load, _evas_image_efl_file_load), + EFL_OBJECT_OP_FUNC(efl_file_unload, _evas_image_efl_file_unload), EVAS_IMAGE_EXTRA_OPS ); opsp = &ops; diff --git a/src/lib/evas/canvas/evas_image_legacy.c b/src/lib/evas/canvas/evas_image_legacy.c index fc8172719c..6d466be575 100644 --- a/src/lib/evas/canvas/evas_image_legacy.c +++ b/src/lib/evas/canvas/evas_image_legacy.c @@ -1304,4 +1304,12 @@ _evas_image_efl_file_load(Eo *obj, void *pd EINA_UNUSED) return EFL_GFX_IMAGE_LOAD_ERROR_DOES_NOT_EXIST; } +EOLIAN static void +_evas_image_efl_file_unload(Eo *obj, void *pd EINA_UNUSED) +{ + EVAS_IMAGE_API(obj); + efl_file_unload(efl_super(obj, EVAS_IMAGE_CLASS)); + _evas_image_file_unload(obj); +} + #include "canvas/evas_image_eo.c" diff --git a/src/lib/evas/canvas/evas_image_private.h b/src/lib/evas/canvas/evas_image_private.h index 79114b4f99..5a4f3771a2 100644 --- a/src/lib/evas/canvas/evas_image_private.h +++ b/src/lib/evas/canvas/evas_image_private.h @@ -162,6 +162,7 @@ void _evas_image_fill_set(Eo *eo_obj, Evas_Image_Data *o, int x, int y, int w, i /* Efl.File */ Eina_Bool _evas_image_file_load(Eo *eo_obj); +void _evas_image_file_unload(Eo *eo_obj); const Eina_File *_evas_image_mmap_get(const Eo *eo_obj); const char *_evas_image_key_get(const Eo *eo_obj); void _efl_canvas_image_load_error_set(Eo *eo_obj EINA_UNUSED, Eina_Error err); diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c index 5beeb4b0ce..1d9ede0de7 100644 --- a/src/lib/evas/canvas/evas_object_image.c +++ b/src/lib/evas/canvas/evas_object_image.c @@ -283,7 +283,9 @@ _evas_image_init_set(const Eina_File *f, const char *key, } ENFN->image_free(ENC, o->engine_data); } + o->engine_data = NULL; o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_NONE; + if (!lo) return; lo->emile.scale_down_by = o->load_opts->scale_down_by; lo->emile.dpi = o->load_opts->dpi; lo->emile.w = o->load_opts->w; From f381bf8f01763d9bd07f86cef90500f09205f759 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 16 Apr 2019 08:34:09 -0400 Subject: [PATCH 65/80] tests: add api coverage for evas image verify that legacy apis function as expected when using legacy api to load and unload images Reviewed-by: Hermet Park Differential Revision: https://phab.enlightenment.org/D8619 --- src/tests/evas/evas_test_image.c | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/tests/evas/evas_test_image.c b/src/tests/evas/evas_test_image.c index da6ad42365..259cff77d3 100644 --- a/src/tests/evas/evas_test_image.c +++ b/src/tests/evas/evas_test_image.c @@ -729,6 +729,40 @@ EFL_START_TEST(evas_object_image_cached_data_comparision) } EFL_END_TEST +EFL_START_TEST(evas_object_image_api) +{ + Evas *e = _setup_evas(); + Evas_Object *o; + void *pix; + int w, h; + + o = evas_object_image_filled_add(e); + /* test file load */ + evas_object_image_file_set(o, TESTS_IMG_DIR"/Light.jpg", NULL); + ck_assert(!!efl_file_get(o)); + pix = evas_object_image_data_get(o, EINA_FALSE); + ck_assert(!!pix); + evas_object_image_size_get(o, &w, &h); + ck_assert(w && h); + /* test file unload */ + evas_object_image_file_set(o, NULL, NULL); + ck_assert(!efl_file_get(o)); + pix = evas_object_image_data_get(o, EINA_FALSE); + ck_assert(!pix); + evas_object_image_size_get(o, &w, &h); + ck_assert(!w && !h); + /* test file load after unload */ + evas_object_image_file_set(o, TESTS_IMG_DIR"/Light.jpg", NULL); + ck_assert(!!efl_file_get(o)); + pix = evas_object_image_data_get(o, EINA_FALSE); + ck_assert(!!pix); + evas_object_image_size_get(o, &w, &h); + ck_assert(w && h); + + evas_free(e); +} +EFL_END_TEST + EFL_START_TEST(evas_object_image_defaults) { Evas *e = _setup_evas(); @@ -972,6 +1006,7 @@ EFL_END_TEST void evas_test_image_object(TCase *tc) { + tcase_add_test(tc, evas_object_image_api); tcase_add_test(tc, evas_object_image_defaults); tcase_add_test(tc, evas_object_image_loader); tcase_add_test(tc, evas_object_image_loader_orientation); From b4e85c954f2864d2648f2986fb389450f27d1e18 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Thu, 18 Apr 2019 17:08:47 +0200 Subject: [PATCH 66/80] elm_scroller_legacy: remove generated legacy include Instead replace with the type definitions in this place. It is not included from anywhere else, so it's fine. --- src/lib/elementary/elm_scroller_legacy.h | 40 +++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_scroller_legacy.h b/src/lib/elementary/elm_scroller_legacy.h index 6b40eff78f..b1ec21d223 100644 --- a/src/lib/elementary/elm_scroller_legacy.h +++ b/src/lib/elementary/elm_scroller_legacy.h @@ -1,4 +1,42 @@ -#include "elm_interface_scrollable.eo.legacy.h" +#ifndef _ELM_INTERFACE_SCROLLABLE_EO_TYPES +#define _ELM_INTERFACE_SCROLLABLE_EO_TYPES + +/** + * @brief Type that controls when scrollbars should appear. + * + * See also @ref elm_interface_scrollable_policy_set. + * + * @ingroup Elm_Scroller + */ +typedef enum +{ + ELM_SCROLLER_POLICY_AUTO = 0, /**< Show scrollbars as needed */ + ELM_SCROLLER_POLICY_ON, /**< Always show scrollbars */ + ELM_SCROLLER_POLICY_OFF, /**< Never show scrollbars */ + ELM_SCROLLER_POLICY_LAST /**< Sentinel value to indicate last enum field + * during iteration */ +} Elm_Scroller_Policy; + +/** + * @brief Type that controls how the content is scrolled. + * + * See also @ref elm_interface_scrollable_single_direction_set. + * + * @ingroup Elm_Scroller + */ +typedef enum +{ + ELM_SCROLLER_SINGLE_DIRECTION_NONE = 0, /**< Scroll every direction */ + ELM_SCROLLER_SINGLE_DIRECTION_SOFT, /**< Scroll single direction if the + * direction is certain */ + ELM_SCROLLER_SINGLE_DIRECTION_HARD, /**< Scroll only single direction */ + ELM_SCROLLER_SINGLE_DIRECTION_LAST /**< Sentinel value to indicate last enum + * field during iteration */ +} Elm_Scroller_Single_Direction; + + +#endif + #include "elm_scroller_eo.legacy.h" /** From c0acf619ae5db5c5d46c41718e0dc81c21c22f48 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Thu, 18 Apr 2019 17:50:42 +0200 Subject: [PATCH 67/80] meson: remove usage of eolian_gen .eo.legacy.h generation --- src/lib/elementary/meson.build | 15 ++------------- src/lib/evas/canvas/meson.build | 10 ---------- src/lib/evas/gesture/meson.build | 20 -------------------- src/lib/evas/meson.build | 10 ---------- 4 files changed, 2 insertions(+), 53 deletions(-) diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build index d4aad0fc0b..e9cfb45c3c 100644 --- a/src/lib/elementary/meson.build +++ b/src/lib/elementary/meson.build @@ -24,16 +24,15 @@ pub_eo_file_target = [] foreach eo_file : pub_legacy_eo_files pub_eo_file_target += custom_target('eolian_gen_' + eo_file, input : eo_file, - output : [eo_file + '.legacy.h',], + output : [eo_file + '.h'], depfile : eo_file + '.d', install : true, install_dir : dir_package_include, command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories, '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), - '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), - '-gchld', '@INPUT@']) + '-gchd', '@INPUT@']) endforeach @@ -190,16 +189,6 @@ foreach eo_file : pub_eo_files '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), '-gchd', '@INPUT@']) - pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file, - input : eo_file, - output : [eo_file + '.legacy.h'], - depfile : eo_file + '.legacy.d', - install : true, - install_dir : dir_package_include, - command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories, - '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'), - '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.d'), - '-gld', '@INPUT@']) endforeach diff --git a/src/lib/evas/canvas/meson.build b/src/lib/evas/canvas/meson.build index e0e6b3364a..3d1849b1a5 100644 --- a/src/lib/evas/canvas/meson.build +++ b/src/lib/evas/canvas/meson.build @@ -68,16 +68,6 @@ foreach eo_file : pub_eo_files '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), '-gchd', '@INPUT@']) - pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file, - input : eo_file, - output : [eo_file + '.legacy.h'], - depfile : eo_file + '.legacy.d', - install : true, - install_dir : join_paths(dir_package_include, 'canvas'), - command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories, - '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'), - '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.d'), - '-gld', '@INPUT@']) endforeach diff --git a/src/lib/evas/gesture/meson.build b/src/lib/evas/gesture/meson.build index 86927504ac..3765a0b67d 100644 --- a/src/lib/evas/gesture/meson.build +++ b/src/lib/evas/gesture/meson.build @@ -21,16 +21,6 @@ foreach eo_file : pub_eo_files '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), '-gchd', '@INPUT@']) - pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file, - input : eo_file, - output : [eo_file + '.legacy.h'], - depfile : eo_file + '.legacy.d', - install : true, - install_dir : join_paths(dir_package_include, 'gesture'), - command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories, - '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'), - '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.d'), - '-gld', '@INPUT@']) endforeach pub_evas_eo_files += files(pub_eo_files) @@ -52,16 +42,6 @@ foreach eo_file : pub_eo_files '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), '-gchd', '@INPUT@']) - pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file, - input : eo_file, - output : [eo_file + '.legacy.h'], - depfile : eo_file + '.legacy.d', - install : false, - install_dir : join_paths(dir_package_include, 'gesture'), - command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories, - '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'), - '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.d'), - '-gld', '@INPUT@']) endforeach pub_eo_types_files = [ diff --git a/src/lib/evas/meson.build b/src/lib/evas/meson.build index d338d586cc..b7238b6b44 100644 --- a/src/lib/evas/meson.build +++ b/src/lib/evas/meson.build @@ -35,16 +35,6 @@ foreach eo_file : pub_legacy_eo_files '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), '-gchd', '@INPUT@']) - pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file, - input : eo_file, - output : [eo_file + '.legacy.h'], - depfile : eo_file + '.legacy.d', - install : true, - install_dir : dir_package_include, - command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories, - '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'), - '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.d'), - '-gld', '@INPUT@']) endforeach pub_eo_files = [ From e81ecf09cdf37c96530d49490377f84410b619be Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Thu, 18 Apr 2019 17:55:06 +0200 Subject: [PATCH 68/80] autotools: remove usage of eolian_gen .eo.legacy.h generation --- src/Makefile_Edje.am | 1 - src/Makefile_Elementary.am | 8 ++------ src/Makefile_Eolian_Files_Helper.am | 8 +------- src/Makefile_Evas.am | 3 --- 4 files changed, 3 insertions(+), 17 deletions(-) diff --git a/src/Makefile_Edje.am b/src/Makefile_Edje.am index aa1cd787e0..827e7237f5 100644 --- a/src/Makefile_Edje.am +++ b/src/Makefile_Edje.am @@ -23,7 +23,6 @@ edje_eolian_priv_files = \ edje_eolian_c = $(edje_eolian_files:%.eo=%.eo.c) edje_eolian_h = $(edje_eolian_files:%.eo=%.eo.h) \ - $(edje_eolian_files:%.eo=%.eo.legacy.h) \ $(edje_eolian_type_files:%.eot=%.eot.h) edje_eolian_priv_c = $(edje_eolian_priv_files:%.eo=%.eo.c) diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index f0e2b638cf..9baaecc0ef 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -198,7 +198,6 @@ elm_eolian_type_files = \ elm_public_eolian_c = $(elm_public_eolian_files:%.eo=%.eo.c) elm_public_eolian_h = $(elm_public_eolian_files:%.eo=%.eo.h) \ - $(elm_public_eolian_files:%.eo=%.eo.legacy.h) \ $(elm_eolian_type_files:%.eot=%.eot.h) elm_private_eolian_c = $(elm_private_eolian_files:%.eo=%.eo.c) @@ -206,7 +205,6 @@ elm_private_eolian_h = $(elm_private_eolian_files:%.eo=%.eo.h) elm_legacy_eolian_c = $(elm_legacy_eolian_files:%.eo=%.eo.c) elm_legacy_eolian_eo_h = $(elm_legacy_eolian_files:%.eo=%.eo.h) -elm_legacy_eolian_legacy_h = $(elm_legacy_eolian_files:%.eo=%.eo.legacy.h) BUILT_SOURCES += \ $(elm_public_eolian_c) \ @@ -214,8 +212,7 @@ BUILT_SOURCES += \ $(elm_private_eolian_c) \ $(elm_private_eolian_h) \ $(elm_legacy_eolian_c) \ - $(elm_legacy_eolian_eo_h) \ - $(elm_legacy_eolian_legacy_h) + $(elm_legacy_eolian_eo_h) if INSTALL_EO_FILES elementaryeolianfilesdir = $(datadir)/eolian/include/elementary-@VMAJ@ @@ -773,8 +770,7 @@ includesunstable_HEADERS = \ includesunstabledir = $(includedir)/elementary-@VMAJ@ nodist_includesunstable_HEADERS = \ - $(elm_public_eolian_h) \ - $(elm_legacy_eolian_legacy_h) + $(elm_public_eolian_h) includesub_HEADERS = \ lib/elementary/elc_ctxpopup.h \ diff --git a/src/Makefile_Eolian_Files_Helper.am b/src/Makefile_Eolian_Files_Helper.am index 35bf1318cc..727e0ad229 100644 --- a/src/Makefile_Eolian_Files_Helper.am +++ b/src/Makefile_Eolian_Files_Helper.am @@ -3,14 +3,13 @@ AM_V_EOL = $(am__v_EOL_@AM_V@) am__v_EOL_ = $(am__v_EOL_@AM_DEFAULT_V@) am__v_EOL_0 = @echo " EOLIAN " $@; -SUFFIXES = .eo .eo.c .eo.h .eo.legacy.h .eot .eot.h +SUFFIXES = .eo .eo.c .eo.h .eot .eot.h #disable rules for subdir builds to avoid recursive dependencies ../%.eo.c: %.eo ${_EOLIAN_GEN_DEP} ../%.eo.h: %.eo ${_EOLIAN_GEN_DEP} ../%.eot.h: %.eot ${_EOLIAN_GEN_DEP} -../%.eo.legacy.h: %.eo ${_EOLIAN_GEN_DEP} %.eo.c: %.eo ${_EOLIAN_GEN_DEP} $(AM_V_EOL) \ @@ -26,8 +25,3 @@ SUFFIXES = .eo .eo.c .eo.h .eo.legacy.h .eot .eot.h $(AM_V_EOL) \ $(MKDIR_P) $(@D); \ $(EOLIAN_GEN) $(EOLIAN_FLAGS) $(EOLIAN_GEN_FLAGS) -gh -o h:$@ $< - -%.eo.legacy.h: %.eo ${_EOLIAN_GEN_DEP} - $(AM_V_EOL) \ - $(MKDIR_P) $(@D); \ - $(EOLIAN_GEN) $(EOLIAN_FLAGS) $(EOLIAN_GEN_FLAGS) -gl -o l:$@ $< diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 95d8022a2c..90ae47f6ad 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -85,12 +85,10 @@ evas_gesture_eolian_priv_h = $(evas_gesture_eolian_priv_files:%.eo=%.eo.h) evas_canvas_eolian_pub_c = $(evas_canvas_eolian_pub_files:%.eo=%.eo.c) evas_canvas_eolian_pub_h = $(evas_canvas_eolian_pub_files:%.eo=%.eo.h) \ - $(evas_canvas_eolian_pub_files:%.eo=%.eo.legacy.h) \ $(evas_canvas_eolian_type_files:%.eot=%.eot.h) evas_gesture_eolian_pub_c = $(evas_gesture_eolian_pub_files:%.eo=%.eo.c) evas_gesture_eolian_pub_h = $(evas_gesture_eolian_pub_files:%.eo=%.eo.h) \ - $(evas_gesture_eolian_pub_files:%.eo=%.eo.legacy.h) \ $(evas_gesture_eolian_type_files:%.eot=%.eot.h) evas_eolian_files = $(evas_canvas_eolian_pub_files) \ @@ -976,7 +974,6 @@ $(NULL) evas_gl_generic_eolian_c = $(evas_gl_generic_eolian_files:%.eo=%.eo.c) evas_gl_generic_eolian_h = $(evas_gl_generic_eolian_files:%.eo=%.eo.h) \ - $(evas_gl_generic_eolian_files:%.eo=%.eo.legacy.h) \ $(evas_gl_generic_eolian_type_files:%.eot=%.eot.h) BUILT_SOURCES += \ From 7807f7750f2d6c1c22d55211fad5d464b45426f3 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Thu, 18 Apr 2019 18:10:45 +0200 Subject: [PATCH 69/80] eolian_gen: remove support for legacy header file generation --- src/bin/eolian/docs.c | 48 +++++++++++++++++------------------- src/bin/eolian/docs.h | 3 +-- src/bin/eolian/headers.c | 6 ++--- src/bin/eolian/headers.h | 2 +- src/bin/eolian/main.c | 53 ++++++++++++++-------------------------- src/bin/eolian/types.c | 18 +++++++------- src/bin/eolian/types.h | 2 +- 7 files changed, 56 insertions(+), 76 deletions(-) diff --git a/src/bin/eolian/docs.c b/src/bin/eolian/docs.c index 39fa89a429..9893005b4d 100644 --- a/src/bin/eolian/docs.c +++ b/src/bin/eolian/docs.c @@ -19,8 +19,7 @@ _indent_line(Eina_Strbuf *buf, int ind) : DOC_LINE_LIMIT) static void -_generate_ref(const Eolian_State *state, const char *refn, Eina_Strbuf *wbuf, - Eina_Bool use_legacy) +_generate_ref(const Eolian_State *state, const char *refn, Eina_Strbuf *wbuf) { const Eolian_Object *decl = eolian_state_object_by_name_get(state, refn); if (decl) @@ -54,7 +53,7 @@ _generate_ref(const Eolian_State *state, const char *refn, Eina_Strbuf *wbuf, eina_stringshare_del(bname); goto noref; } - _generate_ref(state, bname, wbuf, use_legacy); + _generate_ref(state, bname, wbuf); eina_strbuf_append(wbuf, sfx); eina_stringshare_del(bname); return; @@ -122,7 +121,7 @@ noref: static int _append_section(const Eolian_State *state, const char *desc, int ind, int curl, - Eina_Strbuf *buf, Eina_Strbuf *wbuf, Eina_Bool use_legacy) + Eina_Strbuf *buf, Eina_Strbuf *wbuf) { Eina_Bool try_note = EINA_TRUE; while (*desc) @@ -173,7 +172,7 @@ _append_section(const Eolian_State *state, const char *desc, int ind, int curl, ++desc; if (*(desc - 1) == '.') --desc; Eina_Stringshare *refn = eina_stringshare_add_length(ref, desc - ref); - _generate_ref(state, refn, wbuf, use_legacy); + _generate_ref(state, refn, wbuf); eina_stringshare_del(refn); } else @@ -278,8 +277,7 @@ _append_group(Eina_Strbuf *buf, char *sgrp, int indent) static void _gen_doc_brief(const Eolian_State *state, const char *summary, const char *since, - const char *group, const char *el, int indent, Eina_Strbuf *buf, - Eina_Bool use_legacy) + const char *group, const char *el, int indent, Eina_Strbuf *buf) { int curl = 4 + indent; Eina_Strbuf *wbuf = eina_strbuf_new(); @@ -287,7 +285,7 @@ _gen_doc_brief(const Eolian_State *state, const char *summary, const char *since eina_strbuf_append(buf, "/**< "); else eina_strbuf_append(buf, "/** "); - curl = _append_section(state, summary, indent, curl, buf, wbuf, use_legacy); + curl = _append_section(state, summary, indent, curl, buf, wbuf); eina_strbuf_free(wbuf); curl = _append_extra(el, indent, curl, EINA_FALSE, buf); curl = _append_since(since, indent, curl, buf); @@ -310,8 +308,7 @@ _gen_doc_brief(const Eolian_State *state, const char *summary, const char *since static void _gen_doc_full(const Eolian_State *state, const char *summary, const char *description, const char *since, - const char *group, const char *el, int indent, Eina_Strbuf *buf, - Eina_Bool use_legacy) + const char *group, const char *el, int indent, Eina_Strbuf *buf) { int curl = 0; Eina_Strbuf *wbuf = eina_strbuf_new(); @@ -322,13 +319,13 @@ _gen_doc_full(const Eolian_State *state, const char *summary, curl += _indent_line(buf, indent); eina_strbuf_append(buf, " * @brief "); curl += sizeof(" * @brief ") - 1; - _append_section(state, summary, indent, curl, buf, wbuf, use_legacy); + _append_section(state, summary, indent, curl, buf, wbuf); eina_strbuf_append_char(buf, '\n'); _indent_line(buf, indent); eina_strbuf_append(buf, " *\n"); curl = _indent_line(buf, indent); eina_strbuf_append(buf, " * "); - _append_section(state, description, indent, curl + 3, buf, wbuf, use_legacy); + _append_section(state, description, indent, curl + 3, buf, wbuf); curl = _append_extra(el, indent, curl, EINA_TRUE, buf); curl = _append_since(since, indent, curl, buf); eina_strbuf_append_char(buf, '\n'); @@ -346,8 +343,7 @@ _gen_doc_full(const Eolian_State *state, const char *summary, static Eina_Strbuf * _gen_doc_buf(const Eolian_State *state, const Eolian_Documentation *doc, - const char *group, const char *el, int indent, - Eina_Bool use_legacy) + const char *group, const char *el, int indent) { if (!doc) return NULL; @@ -357,17 +353,17 @@ _gen_doc_buf(const Eolian_State *state, const Eolian_Documentation *doc, Eina_Strbuf *buf = eina_strbuf_new(); if (!desc) - _gen_doc_brief(state, sum, since, group, el, indent, buf, use_legacy); + _gen_doc_brief(state, sum, since, group, el, indent, buf); else - _gen_doc_full(state, sum, desc, since, group, el, indent, buf, use_legacy); + _gen_doc_full(state, sum, desc, since, group, el, indent, buf); return buf; } Eina_Strbuf * eo_gen_docs_full_gen(const Eolian_State *state, const Eolian_Documentation *doc, - const char *group, int indent, Eina_Bool use_legacy) + const char *group, int indent) { - return _gen_doc_buf(state, doc, group, NULL, indent, use_legacy); + return _gen_doc_buf(state, doc, group, NULL, indent); } Eina_Strbuf * @@ -403,7 +399,7 @@ eo_gen_docs_event_gen(const Eolian_State *state, const Eolian_Event *ev, return bufs; } - return _gen_doc_buf(state, doc, group, p, 0, EINA_FALSE); + return _gen_doc_buf(state, doc, group, p, 0); } Eina_Strbuf * @@ -517,7 +513,7 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, if (!desc && !par && !vpar && !rdoc && (ftype == EOLIAN_METHOD || !pdoc)) { _gen_doc_brief(state, sum ? sum : "No description supplied.", since, group, - NULL, indent, buf, EINA_FALSE); + NULL, indent, buf); return buf; } @@ -528,7 +524,7 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, eina_strbuf_append(buf, " * @brief "); curl += sizeof(" * @brief ") - 1; _append_section(state, sum ? sum : "No description supplied.", - indent, curl, buf, wbuf, EINA_FALSE); + indent, curl, buf, wbuf); eina_strbuf_append_char(buf, '\n'); if (desc || since || par || rdoc || pdoc) @@ -541,7 +537,7 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, { curl = _indent_line(buf, indent); eina_strbuf_append(buf, " * "); - _append_section(state, desc, indent, curl + 3, buf, wbuf, EINA_FALSE); + _append_section(state, desc, indent, curl + 3, buf, wbuf); eina_strbuf_append_char(buf, '\n'); if (par || rdoc || pdoc || since) { @@ -556,7 +552,7 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, curl = _indent_line(buf, indent); eina_strbuf_append(buf, " * "); _append_section(state, eolian_documentation_summary_get(pdoc), indent, - curl + 3, buf, wbuf, EINA_FALSE); + curl + 3, buf, wbuf); eina_strbuf_append_char(buf, '\n'); if (pdesc) { @@ -564,7 +560,7 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, eina_strbuf_append(buf, " *\n"); curl = _indent_line(buf, indent); eina_strbuf_append(buf, " * "); - _append_section(state, pdesc, indent, curl + 3, buf, wbuf, EINA_FALSE); + _append_section(state, pdesc, indent, curl + 3, buf, wbuf); eina_strbuf_append_char(buf, '\n'); } if (par || rdoc || since) @@ -619,7 +615,7 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, eina_strbuf_append_char(buf, ' '); curl += 1; _append_section(state, eolian_documentation_summary_get(adoc), - indent, curl, buf, wbuf, EINA_FALSE); + indent, curl, buf, wbuf); } eina_strbuf_append_char(buf, '\n'); @@ -652,7 +648,7 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, eina_strbuf_append(buf, " * @return "); curl += sizeof(" * @return ") - 1; _append_section(state, eolian_documentation_summary_get(rdoc), indent, - curl, buf, wbuf, EINA_FALSE); + curl, buf, wbuf); eina_strbuf_append_char(buf, '\n'); if (since) { diff --git a/src/bin/eolian/docs.h b/src/bin/eolian/docs.h index 91866ec012..3438f5d293 100644 --- a/src/bin/eolian/docs.h +++ b/src/bin/eolian/docs.h @@ -9,12 +9,11 @@ * @param[in] doc the documentation * @param[in] group the group to use (can be NULL) * @param[in] indent by how many spaces to indent the comment from second line - * @param[in] use_legacy whether to use legacy names * * @return A documentation comment * */ -Eina_Strbuf *eo_gen_docs_full_gen(const Eolian_State *state, const Eolian_Documentation *doc, const char *group, int indent, Eina_Bool use_legacy); +Eina_Strbuf *eo_gen_docs_full_gen(const Eolian_State *state, const Eolian_Documentation *doc, const char *group, int indent); /* * @brief Generate function documentation diff --git a/src/bin/eolian/headers.c b/src/bin/eolian/headers.c index cc3b0ee293..d35c604577 100644 --- a/src/bin/eolian/headers.c +++ b/src/bin/eolian/headers.c @@ -176,9 +176,9 @@ _gen_func(const Eolian_State *state, const Eolian_Function *fid, void eo_gen_header_gen(const Eolian_State *state, const Eolian_Class *cl, - Eina_Strbuf *buf, Eina_Bool legacy) + Eina_Strbuf *buf) { - if (!cl || legacy) + if (!cl) return; Eina_Iterator *itr; @@ -196,7 +196,7 @@ eo_gen_header_gen(const Eolian_State *state, const Eolian_Class *cl, if (doc) { Eina_Strbuf *cdoc = eo_gen_docs_full_gen(state, doc, - eolian_class_name_get(cl), 0, EINA_FALSE); + eolian_class_name_get(cl), 0); if (cdoc) { eina_strbuf_append(buf, eina_strbuf_string_get(cdoc)); diff --git a/src/bin/eolian/headers.h b/src/bin/eolian/headers.h index 94fd89b908..9e45fb917e 100644 --- a/src/bin/eolian/headers.h +++ b/src/bin/eolian/headers.h @@ -4,6 +4,6 @@ #include "main.h" void eo_gen_params(Eina_Iterator *itr, Eina_Strbuf *buf, Eina_Strbuf **flagbuf, int *nidx, Eolian_Function_Type ftype); -void eo_gen_header_gen(const Eolian_State *state, const Eolian_Class *cl, Eina_Strbuf *buf, Eina_Bool legacy); +void eo_gen_header_gen(const Eolian_State *state, const Eolian_Class *cl, Eina_Strbuf *buf); #endif diff --git a/src/bin/eolian/main.c b/src/bin/eolian/main.c index 06f32fd418..691881f160 100644 --- a/src/bin/eolian/main.c +++ b/src/bin/eolian/main.c @@ -11,17 +11,16 @@ int _eolian_gen_log_dom = -1; enum { GEN_H = 1 << 0, - GEN_H_LEGACY = 1 << 1, - GEN_H_STUB = 1 << 2, - GEN_C = 1 << 3, - GEN_C_IMPL = 1 << 4, - GEN_D = 1 << 5, - GEN_D_FULL = 1 << 6 + GEN_H_STUB = 1 << 1, + GEN_C = 1 << 2, + GEN_C_IMPL = 1 << 3, + GEN_D = 1 << 4, + GEN_D_FULL = 1 << 5 }; -static const char *_dexts[7] = +static const char *_dexts[6] = { - ".h", ".legacy.h", ".stub.h", ".c", ".c", ".d", ".d" + ".h", ".stub.h", ".c", ".c", ".d", ".d" }; static int @@ -48,7 +47,6 @@ _print_usage(const char *progn, FILE *outf) "\n" "Available types:\n" " h: C header file (.eo.h/.eot.h)\n" - " l: Legacy C header file (.eo.legacy.h/.eot.legacy.h)\n" " s: Stub C header file (.eo.stub.h/.eot.stub.h)\n" " c: C source file (.eo.c)\n" " i: Implementation file (.c, merged with existing)\n" @@ -86,10 +84,6 @@ _try_set_out(char t, char **outs, const char *val, int *what) pos = _get_bit_pos(GEN_H); *what |= GEN_H; break; - case 'l': - pos = _get_bit_pos(GEN_H_LEGACY); - *what |= GEN_H_LEGACY; - break; case 's': pos = _get_bit_pos(GEN_H_STUB); *what |= GEN_H_STUB; @@ -331,13 +325,13 @@ void eo_gen_class_names_get(const Eolian_Class *cl, char **cname, static Eina_Bool _write_header(const Eolian_State *eos, const Eolian_State *state, const char *ofname, - const char *ifname, Eina_Bool legacy) + const char *ifname) { - INF("generating header: %s (legacy: %d)", ofname, legacy); + INF("generating header: %s", ofname); Eina_Strbuf *buf = eina_strbuf_new(); eo_gen_types_header_gen(state, eolian_state_objects_by_file_get(eos, ifname), - buf, EINA_TRUE, legacy); + buf, EINA_TRUE); buf = _include_guard(ifname, "TYPES", buf); Eina_Strbuf *cltd = eo_gen_class_typedef_gen(eos, ifname); @@ -349,16 +343,13 @@ _write_header(const Eolian_State *eos, const Eolian_State *state, const char *of eina_strbuf_free(cltd); } - const Eolian_Class *cl = eolian_state_class_by_file_get(eos, ifname); - eo_gen_header_gen(state, cl, buf, legacy); - if (cl || !legacy) + eo_gen_header_gen(state, eolian_state_class_by_file_get(eos, ifname), buf); + + buf = _include_guard(_get_filename(ofname), NULL, buf); + if (_write_file(ofname, buf)) { - buf = _include_guard(_get_filename(ofname), NULL, buf); - if (_write_file(ofname, buf)) - { - eina_strbuf_free(buf); - return EINA_TRUE; - } + eina_strbuf_free(buf); + return EINA_TRUE; } eina_strbuf_free(buf); @@ -373,7 +364,7 @@ _write_stub_header(const Eolian_State *eos, const Eolian_State *state, const cha Eina_Strbuf *buf = eina_strbuf_new(); eo_gen_types_header_gen(state, eolian_state_objects_by_file_get(eos, ifname), - buf, EINA_FALSE, EINA_FALSE); + buf, EINA_FALSE); Eina_Strbuf *cltd = eo_gen_class_typedef_gen(eos, ifname); if (cltd) @@ -476,7 +467,6 @@ _write_deps(const Eolian_State *eos, const char *ofname, const char *ifname, eina_strbuf_append_char(dbuf, '\n'); _append_dep_line(buf, dbuf, outs, gen_what, GEN_H); - _append_dep_line(buf, dbuf, outs, gen_what, GEN_H_LEGACY); _append_dep_line(buf, dbuf, outs, gen_what, GEN_H_STUB); if (gen_what & GEN_D_FULL) @@ -498,7 +488,7 @@ main(int argc, char **argv) int pret = 1; char *outs[sizeof(_dexts) / sizeof(void *)] = { - NULL, NULL, NULL, NULL, NULL, NULL, NULL + NULL, NULL, NULL, NULL, NULL, NULL }; char *basen = NULL; Eina_List *includes = NULL; @@ -540,9 +530,6 @@ main(int argc, char **argv) case 'h': gen_what |= GEN_H; break; - case 'l': - gen_what |= GEN_H_LEGACY; - break; case 's': gen_what |= GEN_H_STUB; break; @@ -646,9 +633,7 @@ main(int argc, char **argv) Eina_Bool succ = EINA_TRUE; if (gen_what & GEN_H) - succ = _write_header(eos, eos, outs[_get_bit_pos(GEN_H)], eobn, EINA_FALSE); - if (succ && (gen_what & GEN_H_LEGACY)) - succ = _write_header(eos, eos, outs[_get_bit_pos(GEN_H_LEGACY)], eobn, EINA_TRUE); + succ = _write_header(eos, eos, outs[_get_bit_pos(GEN_H)], eobn); if (succ && (gen_what & GEN_H_STUB)) succ = _write_stub_header(eos, eos, outs[_get_bit_pos(GEN_H_STUB)], eobn); if (succ && (gen_what & GEN_C)) diff --git a/src/bin/eolian/types.c b/src/bin/eolian/types.c index c2a2ea654f..85e443e6d8 100644 --- a/src/bin/eolian/types.c +++ b/src/bin/eolian/types.c @@ -4,13 +4,13 @@ static Eina_Strbuf * _type_generate(const Eolian_State *state, const Eolian_Typedecl *tp, - Eina_Bool full, Eina_Bool legacy) + Eina_Bool full) { char *grp = strdup(eolian_typedecl_name_get(tp)); char *p = strrchr(grp, '.'); if (p) *p = '\0'; Eina_Strbuf *buf = eo_gen_docs_full_gen(state, eolian_typedecl_documentation_get(tp), - grp, 0, legacy); + grp, 0); free(grp); if (!buf) buf = eina_strbuf_new(); else eina_strbuf_append_char(buf, '\n'); @@ -54,7 +54,7 @@ _type_generate(const Eolian_State *state, const Eolian_Typedecl *tp, if (nl) { Eina_Strbuf *fbuf = eo_gen_docs_full_gen(state, fdoc, NULL, - strlen(nl), legacy); + strlen(nl)); if (fbuf) eina_strbuf_append_printf(buf, " %s", eina_strbuf_string_get(fbuf)); @@ -108,7 +108,7 @@ _type_generate(const Eolian_State *state, const Eolian_Typedecl *tp, if (nl) { Eina_Strbuf *fbuf = eo_gen_docs_full_gen(state, fdoc, NULL, - strlen(nl), legacy); + strlen(nl)); if (fbuf) eina_strbuf_append_printf(buf, " %s", eina_strbuf_string_get(fbuf)); @@ -166,13 +166,13 @@ _type_generate(const Eolian_State *state, const Eolian_Typedecl *tp, } static Eina_Strbuf * -_var_generate(const Eolian_State *state, const Eolian_Variable *vr, Eina_Bool legacy) +_var_generate(const Eolian_State *state, const Eolian_Variable *vr) { char *fn = strdup(eolian_variable_name_get(vr)); char *p = strrchr(fn, '.'); if (p) *p = '\0'; Eina_Strbuf *buf = eo_gen_docs_full_gen(state, eolian_variable_documentation_get(vr), - fn, 0, legacy); + fn, 0); if (p) { *p = '_'; @@ -216,7 +216,7 @@ _var_generate(const Eolian_State *state, const Eolian_Variable *vr, Eina_Bool le void eo_gen_types_header_gen(const Eolian_State *state, Eina_Iterator *itr, Eina_Strbuf *buf, - Eina_Bool full, Eina_Bool legacy) + Eina_Bool full) { const Eolian_Object *decl; EINA_ITERATOR_FOREACH(itr, decl) @@ -229,7 +229,7 @@ void eo_gen_types_header_gen(const Eolian_State *state, if (!vr || eolian_variable_is_extern(vr)) continue; - Eina_Strbuf *vbuf = _var_generate(state, vr, legacy); + Eina_Strbuf *vbuf = _var_generate(state, vr); if (vbuf) { eina_strbuf_append(buf, eina_strbuf_string_get(vbuf)); @@ -259,7 +259,7 @@ void eo_gen_types_header_gen(const Eolian_State *state, continue; } - Eina_Strbuf *tbuf = _type_generate(state, tp, full, legacy); + Eina_Strbuf *tbuf = _type_generate(state, tp, full); if (tbuf) { eina_strbuf_append(buf, eina_strbuf_string_get(tbuf)); diff --git a/src/bin/eolian/types.h b/src/bin/eolian/types.h index 2659b59085..5abd030a27 100644 --- a/src/bin/eolian/types.h +++ b/src/bin/eolian/types.h @@ -1,7 +1,7 @@ #ifndef EOLIAN_GEN_TYPES_H #define EOLIAN_GEN_TYPES_H -void eo_gen_types_header_gen(const Eolian_State *state, Eina_Iterator *itr, Eina_Strbuf *buf, Eina_Bool full, Eina_Bool legacy); +void eo_gen_types_header_gen(const Eolian_State *state, Eina_Iterator *itr, Eina_Strbuf *buf, Eina_Bool full); void eo_gen_types_source_gen(Eina_Iterator *itr, Eina_Strbuf *buf); Eina_Strbuf *eo_gen_class_typedef_gen(const Eolian_State *eos, const char *eof); From e65c49b4224d4c4d27f67bbc1c91e8d2bc8450e8 Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Thu, 18 Apr 2019 09:29:31 -0400 Subject: [PATCH 70/80] ecore_sdl: fix detection of sdl with meson build Summary: SDL 2.* pkconfig file is sdl2, not sdl Test Plan: meson configuration Reviewers: zmike, raster Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8647 --- src/lib/ecore_sdl/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/ecore_sdl/meson.build b/src/lib/ecore_sdl/meson.build index 01ef3981b9..b4685818c1 100644 --- a/src/lib/ecore_sdl/meson.build +++ b/src/lib/ecore_sdl/meson.build @@ -10,7 +10,7 @@ ecore_sdl_header_src = [ 'Ecore_Sdl_Keys.h' ] -ecore_sdl_deps += dependency('sdl') +ecore_sdl_deps += dependency('sdl2') ecore_sdl_lib = library('ecore_sdl', ecore_sdl_src, From ecce595b241763dd3029a1bc39f10f4f664b3c9a Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Thu, 18 Apr 2019 09:31:51 -0400 Subject: [PATCH 71/80] Windows: remove fnmatch and regex in Evil and use the ones in regex DLL installed by ewpi Test Plan: compilation with autotools and meson (at least as far as it can go) Reviewers: zmike, raster Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8646 --- configure.ac | 14 +- header_checks/meson.build | 19 +- src/Makefile_Evil.am | 32 +- src/lib/evil/evil_fnmatch.c | 231 --- src/lib/evil/evil_fnmatch_list_of_states.c | 77 - src/lib/evil/evil_fnmatch_private.h | 24 - src/lib/evil/fnmatch.h | 57 - src/lib/evil/meson.build | 15 +- src/lib/evil/regex/cclass.h | 31 - src/lib/evil/regex/cname.h | 102 -- src/lib/evil/regex/engine.c | 1019 ------------- src/lib/evil/regex/engine.ih | 35 - src/lib/evil/regex/meson.build | 10 - src/lib/evil/regex/regcomp.c | 1604 -------------------- src/lib/evil/regex/regcomp.ih | 51 - src/lib/evil/regex/regerror.c | 122 -- src/lib/evil/regex/regerror.ih | 12 - src/lib/evil/regex/regex.h | 78 - src/lib/evil/regex/regex2.h | 134 -- src/lib/evil/regex/regexec.c | 138 -- src/lib/evil/regex/regfree.c | 37 - src/lib/evil/regex/utils.h | 22 - src/tests/evil/evil_suite.c | 1 - src/tests/evil/evil_suite.h | 1 - 24 files changed, 37 insertions(+), 3829 deletions(-) delete mode 100644 src/lib/evil/evil_fnmatch.c delete mode 100644 src/lib/evil/evil_fnmatch_list_of_states.c delete mode 100644 src/lib/evil/evil_fnmatch_private.h delete mode 100644 src/lib/evil/fnmatch.h delete mode 100644 src/lib/evil/regex/cclass.h delete mode 100644 src/lib/evil/regex/cname.h delete mode 100644 src/lib/evil/regex/engine.c delete mode 100644 src/lib/evil/regex/engine.ih delete mode 100644 src/lib/evil/regex/meson.build delete mode 100644 src/lib/evil/regex/regcomp.c delete mode 100644 src/lib/evil/regex/regcomp.ih delete mode 100644 src/lib/evil/regex/regerror.c delete mode 100644 src/lib/evil/regex/regerror.ih delete mode 100644 src/lib/evil/regex/regex.h delete mode 100644 src/lib/evil/regex/regex2.h delete mode 100644 src/lib/evil/regex/regexec.c delete mode 100644 src/lib/evil/regex/regfree.c delete mode 100644 src/lib/evil/regex/utils.h diff --git a/configure.ac b/configure.ac index c7be1c5b3d..57ae1f51a5 100644 --- a/configure.ac +++ b/configure.ac @@ -810,10 +810,14 @@ EFL_SELECT_WINDOWS_VERSION ### Checks for libraries -EFL_ADD_LIBS([EVIL], [-lpsapi -lole32 -lws2_32 -lsecur32 -luuid]) +EFL_ADD_LIBS([EVIL], [-lpsapi -lole32 -lws2_32 -lsecur32 -luuid -lregex]) ### Checks for header files +AC_CHECK_HEADERS([regex.h fnmatch.h], + [], + [AC_MSG_ERROR([regex.h or fnmatch.h can not be found])]) + ### Checks for types ### Checks for structures @@ -839,6 +843,14 @@ AC_SUBST([EVIL_CXXFLAGS]) ### Checks for library functions +AC_SEARCH_LIBS([regcomp], [regex], + [], + [AC_MSG_ERROR([regcomp() can not be found in libregex])]) + +AC_SEARCH_LIBS([fnmatch], [regex], + [], + [AC_MSG_ERROR([fnmatch() can not be found in libregex])]) + EFL_LIB_END_OPTIONAL([Evil]) AC_SUBST([USE_EVIL_CFLAGS]) diff --git a/header_checks/meson.build b/header_checks/meson.build index 42d638fc6a..af5ef11149 100644 --- a/header_checks/meson.build +++ b/header_checks/meson.build @@ -189,12 +189,29 @@ if (cc.has_header('sys/mman.h')) config_h.set10('HAVE_MMAN_H', true) endif +regexp = [] +if sys_windows == true + regexp = cc.find_library('regex', + has_headers: ['regex.h', 'fnmatch.h'], + required: true) + if regexp.found() == false + error('regex can not be found') + endif +else + if cc.has_header_symbol('fnmatch.h', 'fnmatch') == false + error('fnmatch can not be found') + endif + if cc.has_header_symbol('regex.h', 'regcomp') == false + error('regcomp can not be found') + endif +endif + config_h.set('VMAJ', version_major) config_h.set('VMIN', version_minor) config_h.set('VMIC', version_micro) config_h.set('VREV', '0') -#jpeg detection ... life is a bit more complex there +#jpeg detection ... life is a bit more complex there jpeg = dependency('libjpeg', required: false) if jpeg.found() == false diff --git a/src/Makefile_Evil.am b/src/Makefile_Evil.am index 91dcc1c7f1..13613cda50 100644 --- a/src/Makefile_Evil.am +++ b/src/Makefile_Evil.am @@ -21,7 +21,6 @@ lib/evil/evil_string.h \ lib/evil/evil_time.h \ lib/evil/evil_unistd.h \ lib/evil/evil_util.h \ -lib/evil/fnmatch.h \ lib/evil/pwd.h evilmmanheadersdir = $(includedir)/evil-@VMAJ@/sys @@ -31,8 +30,6 @@ lib/evil/sys/mman.h lib_evil_libevil_la_SOURCES = \ lib/evil/evil_dlfcn.c \ lib/evil/evil_fcntl.c \ -lib/evil/evil_fnmatch.c \ -lib/evil/evil_fnmatch_list_of_states.c \ lib/evil/evil_langinfo.c \ lib/evil/evil_locale.c \ lib/evil/evil_main.c \ @@ -44,33 +41,14 @@ lib/evil/evil_string.c \ lib/evil/evil_time.c \ lib/evil/evil_unistd.c \ lib/evil/evil_util.c \ -lib/evil/evil_private.h \ -lib/evil/evil_fnmatch_private.h +lib/evil/evil_private.h lib_evil_libevil_la_CPPFLAGS = @EVIL_CPPFLAGS@ -DEFL_BUILD lib_evil_libevil_la_CFLAGS = @EVIL_CFLAGS@ @EVIL_CFLAGS_WRN@ -D__USE_MINGW_ANSI_STDIO lib_evil_libevil_la_LIBADD = @EVIL_LIBS@ lib_evil_libevil_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ -# regex - -dist_install_evilheaders_DATA += \ -lib/evil/regex/regex.h - -lib_evil_libevil_la_SOURCES += \ -lib/evil/regex/regcomp.c \ -lib/evil/regex/regerror.c \ -lib/evil/regex/regexec.c \ -lib/evil/regex/regfree.c \ -lib/evil/regex/cclass.h \ -lib/evil/regex/cname.h \ -lib/evil/regex/regex2.h \ -lib/evil/regex/utils.h - -lib_evil_libevil_la_CPPFLAGS += \ --I$(top_srcdir)/src/lib/evil \ --I$(top_srcdir)/src/lib/evil/regex \ --DPOSIX_MISTAKE +lib_evil_libevil_la_CPPFLAGS += -I$(top_srcdir)/src/lib/evil ### Unit tests @@ -103,9 +81,3 @@ tests_evil_evil_suite_DEPENDENCIES = @USE_EVIL_INTERNAL_LIBS@ endif endif - -EXTRA_DIST2 += \ -lib/evil/regex/regerror.ih \ -lib/evil/regex/engine.ih \ -lib/evil/regex/regcomp.ih \ -lib/evil/regex/engine.c diff --git a/src/lib/evil/evil_fnmatch.c b/src/lib/evil/evil_fnmatch.c deleted file mode 100644 index 0b4af7bfb0..0000000000 --- a/src/lib/evil/evil_fnmatch.c +++ /dev/null @@ -1,231 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif /* HAVE_CONFIG_H */ - -#include -#include - -#include "fnmatch.h" -#include "evil_fnmatch_private.h" - -enum fnmatch_status -{ - fnmatch_not_found = 0, - fnmatch_found = 1, - fnmatch_syntax_error = 2 -}; - -static -size_t -fnmatch_match_class_token(enum fnmatch_status *status, - const char *class_token, - char c) -{ - if (! *class_token) - { - *status = fnmatch_syntax_error; - return 0; - } - else if (class_token[1] == '-' && class_token[2] != ']') - { - if (class_token[0] <= c && c <= class_token[2]) - *status = fnmatch_found; - return 3; - } - else - { - if (c == *class_token) - *status = fnmatch_found; - return 1; - } -} - -static -size_t -fnmatch_complement_class(const char *class_token) -{ - switch (*class_token) - { - case 0: - return FNM_SYNTAXERR; - - case '!': - return 1; - - default: - return 0; - } -} - -static -size_t -fnmatch_match_class(const char *class, - char c) -{ - const size_t complement = fnmatch_complement_class(class + 1); - enum fnmatch_status status; - size_t pos; - - if (complement == FNM_SYNTAXERR) - return FNM_SYNTAXERR; - - status = fnmatch_not_found; - pos = 1 + complement; - - do - pos += fnmatch_match_class_token(&status, class + pos, c); - while (class[pos] && class[pos] != ']'); - - if (status == fnmatch_syntax_error || ! class[pos]) - return FNM_SYNTAXERR; - - if (status == fnmatch_found) - return complement ? 0 : pos + 1; - else - return complement ? pos + 1 : 0; -} - -static -size_t -fnmatch_chrcasecmp(char a, - char b) -{ - if ('A' <= a && a <= 'Z') - a += 'a' - 'A'; - if ('A' <= b && b <= 'Z') - b += 'a' - 'A'; - return a == b; -} - -static -size_t -fnmatch_match_token(const char *token, - char c, - e_bool leading, - int flags) -{ - if (*token == '\\' && !(flags & FNM_NOESCAPE)) - return token[1] ? (token[1] == c ? 2 : 0) : FNM_SYNTAXERR; - - if (c == '/' && (flags & FNM_PATHNAME)) - return *token == '/'; - - if (c == '.' && leading && (flags & FNM_PERIOD)) - return *token == '.'; - - switch (*token) - { - case '?': - return 1; - - case '[': - return fnmatch_match_class(token, c); - - default: - if (flags & FNM_CASEFOLD) - return fnmatch_chrcasecmp(*token, c); - return *token == c ? 1 : 0; - } -} - -static -void -fnmatch_init_states(struct list_of_states *states) -{ - states->size = 1; - states->states[0] = 0; - memset(states->has, 0, states->reserved * sizeof (*states->has)); - states->has[0] = 1; -} - -static -size_t -fnmatch_check_finals(const char *pattern, - const struct list_of_states *states) -{ - size_t i, j; - for (i = 0; i < states->size; ++i) - { - e_bool match = 1; - - for (j = states->states[i]; pattern[j]; ++j) - if (pattern[j] != '*') - { - match = 0; - break; - } - - if (match) - return 0; - } - return FNM_NOMATCH; -} - -int -fnmatch(const char *pattern, - const char *string, - int flags) -{ - struct list_of_states *states; - struct list_of_states *new_states; - e_bool leading = 1; - char *c; - size_t r; - - assert(pattern); - assert(string); - - states = fnmatch_list_of_states_alloc(2, strlen(pattern)); - new_states = states + 1; - - if (! states) - return FNM_NOMEM; - fnmatch_init_states(states); - - - for (c = (char *)string; *c && states->size; ++c) - { - size_t i; - fnmatch_list_of_states_clear(new_states); - - for (i = 0; i < states->size; ++i) - { - const size_t pos = states->states[i]; - - if (! pattern[pos]) - { - if (*c == '/' && (flags & FNM_LEADING_DIR)) - return 0; - continue; - } - else if (pattern[pos] == '*') - { - fnmatch_list_of_states_insert(states, pos + 1); - if ((*c != '/' || !(flags & FNM_PATHNAME)) && - (*c != '.' || !leading || !(flags & FNM_PERIOD))) - fnmatch_list_of_states_insert(new_states, pos); - } - else - { - const size_t m = fnmatch_match_token(pattern + pos, *c, - leading, flags); - - if (m == FNM_SYNTAXERR) - return FNM_SYNTAXERR; - else if (m) - fnmatch_list_of_states_insert(new_states, pos + m); - } - } - { - struct list_of_states *tmp = states; - - states = new_states; - new_states = tmp; - } - leading = *c == '/' && (flags & FNM_PATHNAME); - } - - r = fnmatch_check_finals(pattern, states); - fnmatch_list_of_states_free(states < new_states ? states : new_states, 2); - return (int)r; -} diff --git a/src/lib/evil/evil_fnmatch_list_of_states.c b/src/lib/evil/evil_fnmatch_list_of_states.c deleted file mode 100644 index c6cfb7fe81..0000000000 --- a/src/lib/evil/evil_fnmatch_list_of_states.c +++ /dev/null @@ -1,77 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif /* HAVE_CONFIG_H */ - -#include -#include -#include - -#include "evil_fnmatch_private.h" - -struct list_of_states* -fnmatch_list_of_states_alloc(size_t n, - size_t pattern_len) -{ - struct list_of_states *l; - - const size_t reserved = pattern_len + 1; - const size_t states_size = sizeof (*l->states) * reserved; - const size_t has_size = sizeof (*l->has) * reserved; - const size_t states_has_size = states_size + has_size; - const size_t struct_size = sizeof (*l) + states_has_size; - - unsigned char *states; - unsigned char *has; - size_t i; - - l = malloc(n * struct_size); - if (!l) - return 0; - - states = (unsigned char *) (l + n); - has = states + states_size; - - for (i = 0; i < n; ++i) - { - l[i].reserved = reserved; - l[i].states = (size_t *) states; - l[i].has = (e_bool *) has; - states += states_has_size; - has += states_has_size; - } - - return l; -} - -void -fnmatch_list_of_states_free(struct list_of_states *lists, - size_t n) -{ - assert(lists); - - (void) n; - free(lists); -} - -void -fnmatch_list_of_states_insert(struct list_of_states *list, - size_t state) -{ - assert(list); - assert(state < list->reserved); - - if (list->has[state]) - return; - - list->states[list->size++] = state; - list->has[state] = 1; -} - -void -fnmatch_list_of_states_clear(struct list_of_states *list) -{ - assert(list); - - list->size = 0; - memset(list->has, 0, list->reserved * sizeof (*list->has)); -} diff --git a/src/lib/evil/evil_fnmatch_private.h b/src/lib/evil/evil_fnmatch_private.h deleted file mode 100644 index f5ced5d68f..0000000000 --- a/src/lib/evil/evil_fnmatch_private.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef __EVIL_FNMATCH_PRIVATE_H__ -#define __EVIL_FNMATCH_PRIVATE_H__ - - -typedef int e_bool; - -struct list_of_states -{ - size_t reserved; - size_t size; - size_t *states; - e_bool *has; -}; - -struct list_of_states *fnmatch_list_of_states_alloc(size_t n, size_t pattern_len); - -void fnmatch_list_of_states_free(struct list_of_states *lists, size_t n); - -void fnmatch_list_of_states_insert(struct list_of_states *list, size_t state); - -void fnmatch_list_of_states_clear(struct list_of_states *list); - - -#endif /* __EVIL_FNMATCH_PRIVATE_H__ */ diff --git a/src/lib/evil/fnmatch.h b/src/lib/evil/fnmatch.h deleted file mode 100644 index 0464fa7ef6..0000000000 --- a/src/lib/evil/fnmatch.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef __EVIL_FNMATCH_H__ -#define __EVIL_FNMATCH_H__ - -#ifdef EAPI -# undef EAPI -#endif - -#ifdef _WIN32 -# ifdef EFL_BUILD -# ifdef DLL_EXPORT -# define EAPI __declspec(dllexport) -# else -# define EAPI -# endif -# else -# define EAPI __declspec(dllimport) -# endif -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* We #undef these before defining them because some losing systems - (HP-UX A.08.07 for example) define these in . */ -#undef FNM_PATHNAME -#undef FNM_NOESCAPE -#undef FNM_PERIOD - -/* Bits set in the FLAGS argument to `fnmatch'. */ -#define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */ -#define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */ -#define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */ - -#if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_GNU_SOURCE) -#define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */ -#define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */ -#define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */ -#endif - -/* Value returned by `fnmatch' if STRING does not match PATTERN. */ -#define FNM_NOMATCH 1 -#define FNM_SYNTAXERR 2 -#define FNM_NOMEM 3 - -/* Match STRING against the filename pattern PATTERN, - returning zero if it matches, FNM_NOMATCH if not. */ -EAPI int fnmatch(const char *__pattern, const char *__string, int __flags); - -#ifdef __cplusplus -} -#endif - -#undef EAPI -#define EAPI - -#endif /* __EVIL_FNMATCH_H__ */ diff --git a/src/lib/evil/meson.build b/src/lib/evil/meson.build index 482e733637..0402b373c7 100644 --- a/src/lib/evil/meson.build +++ b/src/lib/evil/meson.build @@ -18,17 +18,13 @@ if target_machine.system() == 'windows' 'evil_unistd.h', 'evil_util.h', 'dirent.h', - 'fnmatch.h', 'pwd.h', - 'regex/regex.h' ] evil_header_sys_src = [join_paths('sys','mman.h')] evil_src = [ 'evil_dlfcn.c', 'evil_fcntl.c', - 'evil_fnmatch.c', - 'evil_fnmatch_list_of_states.c', 'evil_langinfo.c', 'evil_locale.c', 'evil_main.c', @@ -41,11 +37,8 @@ if target_machine.system() == 'windows' 'evil_unistd.c', 'evil_util.c', 'evil_private.h', - 'evil_fnmatch_private.h', ] - subdir('regex') - psapi = cc.find_library('psapi') ole32 = cc.find_library('ole32') ws2_32 = cc.find_library('ws2_32') @@ -53,13 +46,13 @@ if target_machine.system() == 'windows' uuid = cc.find_library('uuid') evil_lib = library('evil', evil_src, - dependencies : [psapi, ole32, ws2_32, secur32, uuid], - include_directories : [config_dir, include_directories('regex')], + dependencies : [psapi, ole32, ws2_32, secur32, uuid, regexp], + include_directories : [config_dir], ) evil = declare_dependency( - include_directories: [config_dir, include_directories('regex'), include_directories('.')], - dependencies : [psapi, ole32, ws2_32, secur32, uuid], + include_directories: [include_directories('.')], + dependencies : [psapi, ole32, ws2_32, secur32, uuid, regexp], link_with: evil_lib, ) else diff --git a/src/lib/evil/regex/cclass.h b/src/lib/evil/regex/cclass.h deleted file mode 100644 index 0c293028e9..0000000000 --- a/src/lib/evil/regex/cclass.h +++ /dev/null @@ -1,31 +0,0 @@ -/* character-class table */ -static struct cclass { - char *name; - char *chars; - char *multis; -} cclasses[] = { - "alnum", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\ -0123456789", "", - "alpha", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", - "", - "blank", " \t", "", - "cntrl", "\007\b\t\n\v\f\r\1\2\3\4\5\6\16\17\20\21\22\23\24\ -\25\26\27\30\31\32\33\34\35\36\37\177", "", - "digit", "0123456789", "", - "graph", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\ -0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~", - "", - "lower", "abcdefghijklmnopqrstuvwxyz", - "", - "print", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\ -0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~ ", - "", - "punct", "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~", - "", - "space", "\t\n\v\f\r ", "", - "upper", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", - "", - "xdigit", "0123456789ABCDEFabcdef", - "", - NULL, 0, "" -}; diff --git a/src/lib/evil/regex/cname.h b/src/lib/evil/regex/cname.h deleted file mode 100644 index 02e86e912e..0000000000 --- a/src/lib/evil/regex/cname.h +++ /dev/null @@ -1,102 +0,0 @@ -/* character-name table */ -static struct cname { - char *name; - char code; -} cnames[] = { - "NUL", '\0', - "SOH", '\001', - "STX", '\002', - "ETX", '\003', - "EOT", '\004', - "ENQ", '\005', - "ACK", '\006', - "BEL", '\007', - "alert", '\007', - "BS", '\010', - "backspace", '\b', - "HT", '\011', - "tab", '\t', - "LF", '\012', - "newline", '\n', - "VT", '\013', - "vertical-tab", '\v', - "FF", '\014', - "form-feed", '\f', - "CR", '\015', - "carriage-return", '\r', - "SO", '\016', - "SI", '\017', - "DLE", '\020', - "DC1", '\021', - "DC2", '\022', - "DC3", '\023', - "DC4", '\024', - "NAK", '\025', - "SYN", '\026', - "ETB", '\027', - "CAN", '\030', - "EM", '\031', - "SUB", '\032', - "ESC", '\033', - "IS4", '\034', - "FS", '\034', - "IS3", '\035', - "GS", '\035', - "IS2", '\036', - "RS", '\036', - "IS1", '\037', - "US", '\037', - "space", ' ', - "exclamation-mark", '!', - "quotation-mark", '"', - "number-sign", '#', - "dollar-sign", '$', - "percent-sign", '%', - "ampersand", '&', - "apostrophe", '\'', - "left-parenthesis", '(', - "right-parenthesis", ')', - "asterisk", '*', - "plus-sign", '+', - "comma", ',', - "hyphen", '-', - "hyphen-minus", '-', - "period", '.', - "full-stop", '.', - "slash", '/', - "solidus", '/', - "zero", '0', - "one", '1', - "two", '2', - "three", '3', - "four", '4', - "five", '5', - "six", '6', - "seven", '7', - "eight", '8', - "nine", '9', - "colon", ':', - "semicolon", ';', - "less-than-sign", '<', - "equals-sign", '=', - "greater-than-sign", '>', - "question-mark", '?', - "commercial-at", '@', - "left-square-bracket", '[', - "backslash", '\\', - "reverse-solidus", '\\', - "right-square-bracket", ']', - "circumflex", '^', - "circumflex-accent", '^', - "underscore", '_', - "low-line", '_', - "grave-accent", '`', - "left-brace", '{', - "left-curly-bracket", '{', - "vertical-line", '|', - "right-brace", '}', - "right-curly-bracket", '}', - "tilde", '~', - "DEL", '\177', - NULL, 0, -}; diff --git a/src/lib/evil/regex/engine.c b/src/lib/evil/regex/engine.c deleted file mode 100644 index 919fe3f641..0000000000 --- a/src/lib/evil/regex/engine.c +++ /dev/null @@ -1,1019 +0,0 @@ -/* - * The matching engine and friends. This file is #included by regexec.c - * after suitable #defines of a variety of macros used herein, so that - * different state representations can be used without duplicating masses - * of code. - */ - -#ifdef SNAMES -#define matcher smatcher -#define fast sfast -#define slow sslow -#define dissect sdissect -#define backref sbackref -#define step sstep -#define print sprint -#define at sat -#define match smat -#endif -#ifdef LNAMES -#define matcher lmatcher -#define fast lfast -#define slow lslow -#define dissect ldissect -#define backref lbackref -#define step lstep -#define print lprint -#define at lat -#define match lmat -#endif - -/* another structure passed up and down to avoid zillions of parameters */ -struct match { - struct re_guts *g; - int eflags; - regmatch_t *pmatch; /* [nsub+1] (0 element unused) */ - char *offp; /* offsets work from here */ - char *beginp; /* start of string -- virtual NUL precedes */ - char *endp; /* end of string -- virtual NUL here */ - char *coldp; /* can be no match starting before here */ - char **lastpos; /* [nplus+1] */ - STATEVARS; - states st; /* current states */ - states fresh; /* states for a fresh start */ - states tmp; /* temporary */ - states empty; /* empty set of states */ -}; - -#include "engine.ih" - -#ifdef REDEBUG -#define SP(t, s, c) print(m, t, s, c, stdout) -#define AT(t, p1, p2, s1, s2) at(m, t, p1, p2, s1, s2) -#define NOTE(str) { if (m->eflags®_TRACE) printf("=%s\n", (str)); } -#else -#define SP(t, s, c) /* nothing */ -#define AT(t, p1, p2, s1, s2) /* nothing */ -#define NOTE(s) /* nothing */ -#endif - -/* - - matcher - the actual matching engine - == static int matcher(register struct re_guts *g, char *string, \ - == size_t nmatch, regmatch_t pmatch[], int eflags); - */ -static int /* 0 success, REG_NOMATCH failure */ -matcher(g, string, nmatch, pmatch, eflags) -register struct re_guts *g; -char *string; -size_t nmatch; -regmatch_t pmatch[]; -int eflags; -{ - register char *endp; - register int i; - struct match mv; - register struct match *m = &mv; - register char *dp; - const register sopno gf = g->firststate+1; /* +1 for OEND */ - const register sopno gl = g->laststate; - char *start; - char *stop; - - /* simplify the situation where possible */ - if (g->cflags®_NOSUB) - nmatch = 0; - if (eflags®_STARTEND) { - start = string + pmatch[0].rm_so; - stop = string + pmatch[0].rm_eo; - } else { - start = string; - stop = start + strlen(start); - } - if (stop < start) - return(REG_INVARG); - - /* prescreening; this does wonders for this rather slow code */ - if (g->must != NULL) { - for (dp = start; dp < stop; dp++) - if (*dp == g->must[0] && stop - dp >= g->mlen && - memcmp(dp, g->must, (size_t)g->mlen) == 0) - break; - if (dp == stop) /* we didn't find g->must */ - return(REG_NOMATCH); - } - - /* match struct setup */ - m->g = g; - m->eflags = eflags; - m->pmatch = NULL; - m->lastpos = NULL; - m->offp = string; - m->beginp = start; - m->endp = stop; - STATESETUP(m, 4); - SETUP(m->st); - SETUP(m->fresh); - SETUP(m->tmp); - SETUP(m->empty); - CLEAR(m->empty); - - /* this loop does only one repetition except for backrefs */ - for (;;) { - endp = fast(m, start, stop, gf, gl); - if (endp == NULL) { /* a miss */ - STATETEARDOWN(m); - return(REG_NOMATCH); - } - if (nmatch == 0 && !g->backrefs) - break; /* no further info needed */ - - /* where? */ - assert(m->coldp != NULL); - for (;;) { - NOTE("finding start"); - endp = slow(m, m->coldp, stop, gf, gl); - if (endp != NULL) - break; - assert(m->coldp < m->endp); - m->coldp++; - } - if (nmatch == 1 && !g->backrefs) - break; /* no further info needed */ - - /* oh my, he wants the subexpressions... */ - if (m->pmatch == NULL) - m->pmatch = (regmatch_t *)malloc((m->g->nsub + 1) * - sizeof(regmatch_t)); - if (m->pmatch == NULL) { - STATETEARDOWN(m); - return(REG_ESPACE); - } - for (i = 1; i <= m->g->nsub; i++) - m->pmatch[i].rm_so = m->pmatch[i].rm_eo = -1; - if (!g->backrefs && !(m->eflags®_BACKR)) { - NOTE("dissecting"); - dp = dissect(m, m->coldp, endp, gf, gl); - } else { - if (g->nplus > 0 && m->lastpos == NULL) - m->lastpos = (char **)malloc((g->nplus+1) * - sizeof(char *)); - if (g->nplus > 0 && m->lastpos == NULL) { - free(m->pmatch); - STATETEARDOWN(m); - return(REG_ESPACE); - } - NOTE("backref dissect"); - dp = backref(m, m->coldp, endp, gf, gl, (sopno)0); - } - if (dp != NULL) - break; - - /* uh-oh... we couldn't find a subexpression-level match */ - assert(g->backrefs); /* must be back references doing it */ - assert(g->nplus == 0 || m->lastpos != NULL); - for (;;) { - if (dp != NULL || endp <= m->coldp) - break; /* defeat */ - NOTE("backoff"); - endp = slow(m, m->coldp, endp-1, gf, gl); - if (endp == NULL) - break; /* defeat */ - /* try it on a shorter possibility */ -#ifndef NDEBUG - for (i = 1; i <= m->g->nsub; i++) { - assert(m->pmatch[i].rm_so == -1); - assert(m->pmatch[i].rm_eo == -1); - } -#endif - NOTE("backoff dissect"); - dp = backref(m, m->coldp, endp, gf, gl, (sopno)0); - } - assert(dp == NULL || dp == endp); - if (dp != NULL) /* found a shorter one */ - break; - - /* despite initial appearances, there is no match here */ - NOTE("false alarm"); - start = m->coldp + 1; /* recycle starting later */ - assert(start <= stop); - } - - /* fill in the details if requested */ - if (nmatch > 0) { - pmatch[0].rm_so = m->coldp - m->offp; - pmatch[0].rm_eo = endp - m->offp; - } - if (nmatch > 1) { - assert(m->pmatch != NULL); - for (i = 1; i < nmatch; i++) - if (i <= m->g->nsub) - pmatch[i] = m->pmatch[i]; - else { - pmatch[i].rm_so = -1; - pmatch[i].rm_eo = -1; - } - } - - if (m->pmatch != NULL) - free((char *)m->pmatch); - if (m->lastpos != NULL) - free((char *)m->lastpos); - STATETEARDOWN(m); - return(0); -} - -/* - - dissect - figure out what matched what, no back references - == static char *dissect(register struct match *m, char *start, \ - == char *stop, sopno startst, sopno stopst); - */ -static char * /* == stop (success) always */ -dissect(m, start, stop, startst, stopst) -register struct match *m; -char *start; -char *stop; -sopno startst; -sopno stopst; -{ - register int i; - register sopno ss; /* start sop of current subRE */ - register sopno es; /* end sop of current subRE */ - register char *sp; /* start of string matched by it */ - register char *stp; /* string matched by it cannot pass here */ - register char *rest; /* start of rest of string */ - register char *tail; /* string unmatched by rest of RE */ - register sopno ssub; /* start sop of subsubRE */ - register sopno esub; /* end sop of subsubRE */ - register char *ssp; /* start of string matched by subsubRE */ - register char *sep; /* end of string matched by subsubRE */ - register char *oldssp; /* previous ssp */ - register char *dp; - - AT("diss", start, stop, startst, stopst); - sp = start; - for (ss = startst; ss < stopst; ss = es) { - /* identify end of subRE */ - es = ss; - switch (OP(m->g->strip[es])) { - case OPLUS_: - case OQUEST_: - es += OPND(m->g->strip[es]); - break; - case OCH_: - while (OP(m->g->strip[es]) != O_CH) - es += OPND(m->g->strip[es]); - break; - } - es++; - - /* figure out what it matched */ - switch (OP(m->g->strip[ss])) { - case OEND: - assert(nope); - break; - case OCHAR: - sp++; - break; - case OBOL: - case OEOL: - case OBOW: - case OEOW: - break; - case OANY: - case OANYOF: - sp++; - break; - case OBACK_: - case O_BACK: - assert(nope); - break; - /* cases where length of match is hard to find */ - case OQUEST_: - stp = stop; - for (;;) { - /* how long could this one be? */ - rest = slow(m, sp, stp, ss, es); - assert(rest != NULL); /* it did match */ - /* could the rest match the rest? */ - tail = slow(m, rest, stop, es, stopst); - if (tail == stop) - break; /* yes! */ - /* no -- try a shorter match for this one */ - stp = rest - 1; - assert(stp >= sp); /* it did work */ - } - ssub = ss + 1; - esub = es - 1; - /* did innards match? */ - if (slow(m, sp, rest, ssub, esub) != NULL) { - dp = dissect(m, sp, rest, ssub, esub); - assert(dp == rest); - } else /* no */ - assert(sp == rest); - sp = rest; - break; - case OPLUS_: - stp = stop; - for (;;) { - /* how long could this one be? */ - rest = slow(m, sp, stp, ss, es); - assert(rest != NULL); /* it did match */ - /* could the rest match the rest? */ - tail = slow(m, rest, stop, es, stopst); - if (tail == stop) - break; /* yes! */ - /* no -- try a shorter match for this one */ - stp = rest - 1; - assert(stp >= sp); /* it did work */ - } - ssub = ss + 1; - esub = es - 1; - ssp = sp; - oldssp = ssp; - for (;;) { /* find last match of innards */ - sep = slow(m, ssp, rest, ssub, esub); - if (sep == NULL || sep == ssp) - break; /* failed or matched null */ - oldssp = ssp; /* on to next try */ - ssp = sep; - } - if (sep == NULL) { - /* last successful match */ - sep = ssp; - ssp = oldssp; - } - assert(sep == rest); /* must exhaust substring */ - assert(slow(m, ssp, sep, ssub, esub) == rest); - dp = dissect(m, ssp, sep, ssub, esub); - assert(dp == sep); - sp = rest; - break; - case OCH_: - stp = stop; - for (;;) { - /* how long could this one be? */ - rest = slow(m, sp, stp, ss, es); - assert(rest != NULL); /* it did match */ - /* could the rest match the rest? */ - tail = slow(m, rest, stop, es, stopst); - if (tail == stop) - break; /* yes! */ - /* no -- try a shorter match for this one */ - stp = rest - 1; - assert(stp >= sp); /* it did work */ - } - ssub = ss + 1; - esub = ss + OPND(m->g->strip[ss]) - 1; - assert(OP(m->g->strip[esub]) == OOR1); - for (;;) { /* find first matching branch */ - if (slow(m, sp, rest, ssub, esub) == rest) - break; /* it matched all of it */ - /* that one missed, try next one */ - assert(OP(m->g->strip[esub]) == OOR1); - esub++; - assert(OP(m->g->strip[esub]) == OOR2); - ssub = esub + 1; - esub += OPND(m->g->strip[esub]); - if (OP(m->g->strip[esub]) == OOR2) - esub--; - else - assert(OP(m->g->strip[esub]) == O_CH); - } - dp = dissect(m, sp, rest, ssub, esub); - assert(dp == rest); - sp = rest; - break; - case O_PLUS: - case O_QUEST: - case OOR1: - case OOR2: - case O_CH: - assert(nope); - break; - case OLPAREN: - i = OPND(m->g->strip[ss]); - assert(0 < i && i <= m->g->nsub); - m->pmatch[i].rm_so = sp - m->offp; - break; - case ORPAREN: - i = OPND(m->g->strip[ss]); - assert(0 < i && i <= m->g->nsub); - m->pmatch[i].rm_eo = sp - m->offp; - break; - default: /* uh oh */ - assert(nope); - break; - } - } - - assert(sp == stop); - return(sp); -} - -/* - - backref - figure out what matched what, figuring in back references - == static char *backref(register struct match *m, char *start, \ - == char *stop, sopno startst, sopno stopst, sopno lev); - */ -static char * /* == stop (success) or NULL (failure) */ -backref(m, start, stop, startst, stopst, lev) -register struct match *m; -char *start; -char *stop; -sopno startst; -sopno stopst; -sopno lev; /* PLUS nesting level */ -{ - register int i; - register sopno ss; /* start sop of current subRE */ - register char *sp; /* start of string matched by it */ - register sopno ssub; /* start sop of subsubRE */ - register sopno esub; /* end sop of subsubRE */ - register char *ssp; /* start of string matched by subsubRE */ - register char *dp; - register size_t len; - register int hard; - register sop s; - register regoff_t offsave; - register cset *cs; - - AT("back", start, stop, startst, stopst); - sp = start; - - /* get as far as we can with easy stuff */ - hard = 0; - for (ss = startst; !hard && ss < stopst; ss++) - switch (OP(s = m->g->strip[ss])) { - case OCHAR: - if (sp == stop || *sp++ != (char)OPND(s)) - return(NULL); - break; - case OANY: - if (sp == stop) - return(NULL); - sp++; - break; - case OANYOF: - cs = &m->g->sets[OPND(s)]; - if (sp == stop || !CHIN(cs, *sp++)) - return(NULL); - break; - case OBOL: - if ( (sp == m->beginp && !(m->eflags®_NOTBOL)) || - (sp < m->endp && *(sp-1) == '\n' && - (m->g->cflags®_NEWLINE)) ) - { /* yes */ } - else - return(NULL); - break; - case OEOL: - if ( (sp == m->endp && !(m->eflags®_NOTEOL)) || - (sp < m->endp && *sp == '\n' && - (m->g->cflags®_NEWLINE)) ) - { /* yes */ } - else - return(NULL); - break; - case OBOW: - if (( (sp == m->beginp && !(m->eflags®_NOTBOL)) || - (sp < m->endp && *(sp-1) == '\n' && - (m->g->cflags®_NEWLINE)) || - (sp > m->beginp && - !ISWORD(*(sp-1))) ) && - (sp < m->endp && ISWORD(*sp)) ) - { /* yes */ } - else - return(NULL); - break; - case OEOW: - if (( (sp == m->endp && !(m->eflags®_NOTEOL)) || - (sp < m->endp && *sp == '\n' && - (m->g->cflags®_NEWLINE)) || - (sp < m->endp && !ISWORD(*sp)) ) && - (sp > m->beginp && ISWORD(*(sp-1))) ) - { /* yes */ } - else - return(NULL); - break; - case O_QUEST: - break; - case OOR1: /* matches null but needs to skip */ - ss++; - s = m->g->strip[ss]; - do { - assert(OP(s) == OOR2); - ss += OPND(s); - } while (OP(s = m->g->strip[ss]) != O_CH); - /* note that the ss++ gets us past the O_CH */ - break; - default: /* have to make a choice */ - hard = 1; - break; - } - if (!hard) { /* that was it! */ - if (sp != stop) - return(NULL); - return(sp); - } - ss--; /* adjust for the for's final increment */ - - /* the hard stuff */ - AT("hard", sp, stop, ss, stopst); - s = m->g->strip[ss]; - switch (OP(s)) { - case OBACK_: /* the vilest depths */ - i = OPND(s); - assert(0 < i && i <= m->g->nsub); - if (m->pmatch[i].rm_eo == -1) - return(NULL); - assert(m->pmatch[i].rm_so != -1); - len = m->pmatch[i].rm_eo - m->pmatch[i].rm_so; - assert(stop - m->beginp >= len); - if (sp > stop - len) - return(NULL); /* not enough left to match */ - ssp = m->offp + m->pmatch[i].rm_so; - if (memcmp(sp, ssp, len) != 0) - return(NULL); - while (m->g->strip[ss] != SOP(O_BACK, i)) - ss++; - return(backref(m, sp+len, stop, ss+1, stopst, lev)); - break; - case OQUEST_: /* to null or not */ - dp = backref(m, sp, stop, ss+1, stopst, lev); - if (dp != NULL) - return(dp); /* not */ - return(backref(m, sp, stop, ss+OPND(s)+1, stopst, lev)); - break; - case OPLUS_: - assert(m->lastpos != NULL); - assert(lev+1 <= m->g->nplus); - m->lastpos[lev+1] = sp; - return(backref(m, sp, stop, ss+1, stopst, lev+1)); - break; - case O_PLUS: - if (sp == m->lastpos[lev]) /* last pass matched null */ - return(backref(m, sp, stop, ss+1, stopst, lev-1)); - /* try another pass */ - m->lastpos[lev] = sp; - dp = backref(m, sp, stop, ss-OPND(s)+1, stopst, lev); - if (dp == NULL) - return(backref(m, sp, stop, ss+1, stopst, lev-1)); - else - return(dp); - break; - case OCH_: /* find the right one, if any */ - ssub = ss + 1; - esub = ss + OPND(s) - 1; - assert(OP(m->g->strip[esub]) == OOR1); - for (;;) { /* find first matching branch */ - dp = backref(m, sp, stop, ssub, esub, lev); - if (dp != NULL) - return(dp); - /* that one missed, try next one */ - if (OP(m->g->strip[esub]) == O_CH) - return(NULL); /* there is none */ - esub++; - assert(OP(m->g->strip[esub]) == OOR2); - ssub = esub + 1; - esub += OPND(m->g->strip[esub]); - if (OP(m->g->strip[esub]) == OOR2) - esub--; - else - assert(OP(m->g->strip[esub]) == O_CH); - } - break; - case OLPAREN: /* must undo assignment if rest fails */ - i = OPND(s); - assert(0 < i && i <= m->g->nsub); - offsave = m->pmatch[i].rm_so; - m->pmatch[i].rm_so = sp - m->offp; - dp = backref(m, sp, stop, ss+1, stopst, lev); - if (dp != NULL) - return(dp); - m->pmatch[i].rm_so = offsave; - return(NULL); - break; - case ORPAREN: /* must undo assignment if rest fails */ - i = OPND(s); - assert(0 < i && i <= m->g->nsub); - offsave = m->pmatch[i].rm_eo; - m->pmatch[i].rm_eo = sp - m->offp; - dp = backref(m, sp, stop, ss+1, stopst, lev); - if (dp != NULL) - return(dp); - m->pmatch[i].rm_eo = offsave; - return(NULL); - break; - default: /* uh oh */ - assert(nope); - break; - } - - /* "can't happen" */ - assert(nope); - /* NOTREACHED */ - return((char *)NULL); /* dummy */ -} - -/* - - fast - step through the string at top speed - == static char *fast(register struct match *m, char *start, \ - == char *stop, sopno startst, sopno stopst); - */ -static char * /* where tentative match ended, or NULL */ -fast(m, start, stop, startst, stopst) -register struct match *m; -char *start; -char *stop; -sopno startst; -sopno stopst; -{ - register states st = m->st; - register states fresh = m->fresh; - register states tmp = m->tmp; - register char *p = start; - register int c = (start == m->beginp) ? OUT : *(start-1); - register int lastc; /* previous c */ - register int flagch; - register int i; - register char *coldp; /* last p after which no match was underway */ - - CLEAR(st); - SET1(st, startst); - st = step(m->g, startst, stopst, st, NOTHING, st); - ASSIGN(fresh, st); - SP("start", st, *p); - coldp = NULL; - for (;;) { - /* next character */ - lastc = c; - c = (p == m->endp) ? OUT : *p; - if (EQ(st, fresh)) - coldp = p; - - /* is there an EOL and/or BOL between lastc and c? */ - flagch = '\0'; - i = 0; - if ( (lastc == '\n' && m->g->cflags®_NEWLINE) || - (lastc == OUT && !(m->eflags®_NOTBOL)) ) { - flagch = BOL; - i = m->g->nbol; - } - if ( (c == '\n' && m->g->cflags®_NEWLINE) || - (c == OUT && !(m->eflags®_NOTEOL)) ) { - flagch = (flagch == BOL) ? BOLEOL : EOL; - i += m->g->neol; - } - if (i != 0) { - for (; i > 0; i--) - st = step(m->g, startst, stopst, st, flagch, st); - SP("boleol", st, c); - } - - /* how about a word boundary? */ - if ( (flagch == BOL || (lastc != OUT && !ISWORD(lastc))) && - (c != OUT && ISWORD(c)) ) { - flagch = BOW; - } - if ( (lastc != OUT && ISWORD(lastc)) && - (flagch == EOL || (c != OUT && !ISWORD(c))) ) { - flagch = EOW; - } - if (flagch == BOW || flagch == EOW) { - st = step(m->g, startst, stopst, st, flagch, st); - SP("boweow", st, c); - } - - /* are we done? */ - if (ISSET(st, stopst) || p == stop) - break; /* NOTE BREAK OUT */ - - /* no, we must deal with this character */ - ASSIGN(tmp, st); - ASSIGN(st, fresh); - assert(c != OUT); - st = step(m->g, startst, stopst, tmp, c, st); - SP("aft", st, c); - assert(EQ(step(m->g, startst, stopst, st, NOTHING, st), st)); - p++; - } - - assert(coldp != NULL); - m->coldp = coldp; - if (ISSET(st, stopst)) - return(p+1); - else - return(NULL); -} - -/* - - slow - step through the string more deliberately - == static char *slow(register struct match *m, char *start, \ - == char *stop, sopno startst, sopno stopst); - */ -static char * /* where it ended */ -slow(m, start, stop, startst, stopst) -register struct match *m; -char *start; -char *stop; -sopno startst; -sopno stopst; -{ - register states st = m->st; - register states empty = m->empty; - register states tmp = m->tmp; - register char *p = start; - register int c = (start == m->beginp) ? OUT : *(start-1); - register int lastc; /* previous c */ - register int flagch; - register int i; - register char *matchp; /* last p at which a match ended */ - - AT("slow", start, stop, startst, stopst); - CLEAR(st); - SET1(st, startst); - SP("sstart", st, *p); - st = step(m->g, startst, stopst, st, NOTHING, st); - matchp = NULL; - for (;;) { - /* next character */ - lastc = c; - c = (p == m->endp) ? OUT : *p; - - /* is there an EOL and/or BOL between lastc and c? */ - flagch = '\0'; - i = 0; - if ( (lastc == '\n' && m->g->cflags®_NEWLINE) || - (lastc == OUT && !(m->eflags®_NOTBOL)) ) { - flagch = BOL; - i = m->g->nbol; - } - if ( (c == '\n' && m->g->cflags®_NEWLINE) || - (c == OUT && !(m->eflags®_NOTEOL)) ) { - flagch = (flagch == BOL) ? BOLEOL : EOL; - i += m->g->neol; - } - if (i != 0) { - for (; i > 0; i--) - st = step(m->g, startst, stopst, st, flagch, st); - SP("sboleol", st, c); - } - - /* how about a word boundary? */ - if ( (flagch == BOL || (lastc != OUT && !ISWORD(lastc))) && - (c != OUT && ISWORD(c)) ) { - flagch = BOW; - } - if ( (lastc != OUT && ISWORD(lastc)) && - (flagch == EOL || (c != OUT && !ISWORD(c))) ) { - flagch = EOW; - } - if (flagch == BOW || flagch == EOW) { - st = step(m->g, startst, stopst, st, flagch, st); - SP("sboweow", st, c); - } - - /* are we done? */ - if (ISSET(st, stopst)) - matchp = p; - if (EQ(st, empty) || p == stop) - break; /* NOTE BREAK OUT */ - - /* no, we must deal with this character */ - ASSIGN(tmp, st); - ASSIGN(st, empty); - assert(c != OUT); - st = step(m->g, startst, stopst, tmp, c, st); - SP("saft", st, c); - assert(EQ(step(m->g, startst, stopst, st, NOTHING, st), st)); - p++; - } - - return(matchp); -} - - -/* - - step - map set of states reachable before char to set reachable after - == static states step(register struct re_guts *g, sopno start, sopno stop, \ - == register states bef, int ch, register states aft); - == #define BOL (OUT+1) - == #define EOL (BOL+1) - == #define BOLEOL (BOL+2) - == #define NOTHING (BOL+3) - == #define BOW (BOL+4) - == #define EOW (BOL+5) - == #define CODEMAX (BOL+5) // highest code used - == #define NONCHAR(c) ((c) > CHAR_MAX) - == #define NNONCHAR (CODEMAX-CHAR_MAX) - */ -static states -step(g, start, stop, bef, ch, aft) -register struct re_guts *g; -sopno start; /* start state within strip */ -sopno stop; /* state after stop state within strip */ -register states bef; /* states reachable before */ -int ch; /* character or NONCHAR code */ -register states aft; /* states already known reachable after */ -{ - register cset *cs; - register sop s; - register sopno pc; - register onestate here; /* note, macros know this name */ - register sopno look; - register long i; - - for (pc = start, INIT(here, pc); pc != stop; pc++, INC(here)) { - s = g->strip[pc]; - switch (OP(s)) { - case OEND: - assert(pc == stop-1); - break; - case OCHAR: - /* only characters can match */ - assert(!NONCHAR(ch) || ch != (char)OPND(s)); - if (ch == (char)OPND(s)) - FWD(aft, bef, 1); - break; - case OBOL: - if (ch == BOL || ch == BOLEOL) - FWD(aft, bef, 1); - break; - case OEOL: - if (ch == EOL || ch == BOLEOL) - FWD(aft, bef, 1); - break; - case OBOW: - if (ch == BOW) - FWD(aft, bef, 1); - break; - case OEOW: - if (ch == EOW) - FWD(aft, bef, 1); - break; - case OANY: - if (!NONCHAR(ch)) - FWD(aft, bef, 1); - break; - case OANYOF: - cs = &g->sets[OPND(s)]; - if (!NONCHAR(ch) && CHIN(cs, ch)) - FWD(aft, bef, 1); - break; - case OBACK_: /* ignored here */ - case O_BACK: - FWD(aft, aft, 1); - break; - case OPLUS_: /* forward, this is just an empty */ - FWD(aft, aft, 1); - break; - case O_PLUS: /* both forward and back */ - FWD(aft, aft, 1); - i = ISSETBACK(aft, OPND(s)); - BACK(aft, aft, OPND(s)); - if (!i && ISSETBACK(aft, OPND(s))) { - /* oho, must reconsider loop body */ - pc -= OPND(s) + 1; - INIT(here, pc); - } - break; - case OQUEST_: /* two branches, both forward */ - FWD(aft, aft, 1); - FWD(aft, aft, OPND(s)); - break; - case O_QUEST: /* just an empty */ - FWD(aft, aft, 1); - break; - case OLPAREN: /* not significant here */ - case ORPAREN: - FWD(aft, aft, 1); - break; - case OCH_: /* mark the first two branches */ - FWD(aft, aft, 1); - assert(OP(g->strip[pc+OPND(s)]) == OOR2); - FWD(aft, aft, OPND(s)); - break; - case OOR1: /* done a branch, find the O_CH */ - if (ISSTATEIN(aft, here)) { - for (look = 1; - OP(s = g->strip[pc+look]) != O_CH; - look += OPND(s)) - assert(OP(s) == OOR2); - FWD(aft, aft, look); - } - break; - case OOR2: /* propagate OCH_'s marking */ - FWD(aft, aft, 1); - if (OP(g->strip[pc+OPND(s)]) != O_CH) { - assert(OP(g->strip[pc+OPND(s)]) == OOR2); - FWD(aft, aft, OPND(s)); - } - break; - case O_CH: /* just empty */ - FWD(aft, aft, 1); - break; - default: /* ooooops... */ - assert(nope); - break; - } - } - - return(aft); -} - -#ifdef REDEBUG -/* - - print - print a set of states - == #ifdef REDEBUG - == static void print(struct match *m, char *caption, states st, \ - == int ch, FILE *d); - == #endif - */ -static void -print(m, caption, st, ch, d) -struct match *m; -char *caption; -states st; -int ch; -FILE *d; -{ - register struct re_guts *g = m->g; - register int i; - register int first = 1; - - if (!(m->eflags®_TRACE)) - return; - - fprintf(d, "%s", caption); - if (ch != '\0') - fprintf(d, " %s", pchar(ch)); - for (i = 0; i < g->nstates; i++) - if (ISSET(st, i)) { - fprintf(d, "%s%d", (first) ? "\t" : ", ", i); - first = 0; - } - fprintf(d, "\n"); -} - -/* - - at - print current situation - == #ifdef REDEBUG - == static void at(struct match *m, char *title, char *start, char *stop, \ - == sopno startst, sopno stopst); - == #endif - */ -static void -at(m, title, start, stop, startst, stopst) -struct match *m; -char *title; -char *start; -char *stop; -sopno startst; -sopno stopst; -{ - if (!(m->eflags®_TRACE)) - return; - - printf("%s %s-", title, pchar(*start)); - printf("%s ", pchar(*stop)); - printf("%ld-%ld\n", (long)startst, (long)stopst); -} - -#ifndef PCHARDONE -#define PCHARDONE /* never again */ -/* - - pchar - make a character printable - == #ifdef REDEBUG - == static char *pchar(int ch); - == #endif - * - * Is this identical to regchar() over in debug.c? Well, yes. But a - * duplicate here avoids having a debugging-capable regexec.o tied to - * a matching debug.o, and this is convenient. It all disappears in - * the non-debug compilation anyway, so it doesn't matter much. - */ -static char * /* -> representation */ -pchar(ch) -int ch; -{ - static char pbuf[10]; - - if (isprint(ch) || ch == ' ') - sprintf(pbuf, "%c", ch); - else - sprintf(pbuf, "\\%o", ch); - return(pbuf); -} -#endif -#endif - -#undef matcher -#undef fast -#undef slow -#undef dissect -#undef backref -#undef step -#undef print -#undef at -#undef match diff --git a/src/lib/evil/regex/engine.ih b/src/lib/evil/regex/engine.ih deleted file mode 100644 index 6b744d431c..0000000000 --- a/src/lib/evil/regex/engine.ih +++ /dev/null @@ -1,35 +0,0 @@ -/* ========= begin header generated by ../src/lib/evil/regex/mkh.sh ========= */ -#ifdef __cplusplus -extern "C" { -#endif - -/* === lib/evil/regex/engine.c === */ -static int matcher(register struct re_guts *g, char *string, size_t nmatch, regmatch_t pmatch[], int eflags); -static char *dissect(register struct match *m, char *start, char *stop, sopno startst, sopno stopst); -static char *backref(register struct match *m, char *start, char *stop, sopno startst, sopno stopst, sopno lev); -static char *fast(register struct match *m, char *start, char *stop, sopno startst, sopno stopst); -static char *slow(register struct match *m, char *start, char *stop, sopno startst, sopno stopst); -static states step(register struct re_guts *g, sopno start, sopno stop, register states bef, int ch, register states aft); -#define BOL (OUT+1) -#define EOL (BOL+1) -#define BOLEOL (BOL+2) -#define NOTHING (BOL+3) -#define BOW (BOL+4) -#define EOW (BOL+5) -#define CODEMAX (BOL+5) /* highest code used */ -#define NONCHAR(c) ((c) > CHAR_MAX) -#define NNONCHAR (CODEMAX-CHAR_MAX) -#ifdef REDEBUG -static void print(struct match *m, char *caption, states st, int ch, FILE *d); -#endif -#ifdef REDEBUG -static void at(struct match *m, char *title, char *start, char *stop, sopno startst, sopno stopst); -#endif -#ifdef REDEBUG -static char *pchar(int ch); -#endif - -#ifdef __cplusplus -} -#endif -/* ========= end header generated by ../src/lib/evil/regex/mkh.sh ========= */ diff --git a/src/lib/evil/regex/meson.build b/src/lib/evil/regex/meson.build deleted file mode 100644 index d04769b72d..0000000000 --- a/src/lib/evil/regex/meson.build +++ /dev/null @@ -1,10 +0,0 @@ -evil_src += files([ -'regcomp.c', -'regerror.c', -'regexec.c', -'regfree.c', -'cclass.h', -'cname.h', -'regex2.h', -'utils.h' -]) diff --git a/src/lib/evil/regex/regcomp.c b/src/lib/evil/regex/regcomp.c deleted file mode 100644 index c1b7850504..0000000000 --- a/src/lib/evil/regex/regcomp.c +++ /dev/null @@ -1,1604 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -#include "utils.h" -#include "regex2.h" - -#include "cclass.h" -#include "cname.h" - -/* - * parse structure, passed up and down to avoid global variables and - * other clumsinesses - */ -struct parse { - char *next; /* next character in RE */ - char *end; /* end of string (-> NUL normally) */ - int error; /* has an error been seen? */ - sop *strip; /* malloced strip */ - sopno ssize; /* malloced strip size (allocated) */ - sopno slen; /* malloced strip length (used) */ - int ncsalloc; /* number of csets allocated */ - struct re_guts *g; -# define NPAREN 10 /* we need to remember () 1-9 for back refs */ - sopno pbegin[NPAREN]; /* -> ( ([0] unused) */ - sopno pend[NPAREN]; /* -> ) ([0] unused) */ -}; - -#include "regcomp.ih" - -static char nuls[10]; /* place to point scanner in event of error */ - -/* - * macros for use with parse structure - * BEWARE: these know that the parse structure is named `p' !!! - */ -#define PEEK() (*p->next) -#define PEEK2() (*(p->next+1)) -#define MORE() (p->next < p->end) -#define MORE2() (p->next+1 < p->end) -#define SEE(c) (MORE() && PEEK() == (c)) -#define SEETWO(a, b) (MORE() && MORE2() && PEEK() == (a) && PEEK2() == (b)) -#define EAT(c) ((SEE(c)) ? (NEXT(), 1) : 0) -#define EATTWO(a, b) ((SEETWO(a, b)) ? (NEXT2(), 1) : 0) -#define NEXT() (p->next++) -#define NEXT2() (p->next += 2) -#define NEXTn(n) (p->next += (n)) -#define GETNEXT() (*p->next++) -#define SETERROR(e) seterr(p, (e)) -#define REQUIRE(co, e) ((co) || SETERROR(e)) -#define MUSTSEE(c, e) (REQUIRE(MORE() && PEEK() == (c), e)) -#define MUSTEAT(c, e) (REQUIRE(MORE() && GETNEXT() == (c), e)) -#define MUSTNOTSEE(c, e) (REQUIRE(!MORE() || PEEK() != (c), e)) -#define EMIT(op, sopnd) doemit(p, (sop)(op), (size_t)(sopnd)) -#define INSERT(op, pos) doinsert(p, (sop)(op), HERE()-(pos)+1, pos) -#define AHEAD(pos) dofwd(p, pos, HERE()-(pos)) -#define ASTERN(sop, pos) EMIT(sop, HERE()-pos) -#define HERE() (p->slen) -#define THERE() (p->slen - 1) -#define THERETHERE() (p->slen - 2) -#define DROP(n) (p->slen -= (n)) - -#ifndef NDEBUG -static int never = 0; /* for use in asserts; shuts lint up */ -#else -#define never 0 /* some s have bugs too */ -#endif - -/* - - regcomp - interface for parser and compilation - = extern int regcomp(regex_t *, const char *, int); - = #define REG_BASIC 0000 - = #define REG_EXTENDED 0001 - = #define REG_ICASE 0002 - = #define REG_NOSUB 0004 - = #define REG_NEWLINE 0010 - = #define REG_NOSPEC 0020 - = #define REG_PEND 0040 - = #define REG_DUMP 0200 - */ -EAPI int /* 0 success, otherwise REG_something */ -regcomp(preg, pattern, cflags) -regex_t *preg; -const char *pattern; -int cflags; -{ - struct parse pa; - register struct re_guts *g; - register struct parse *p = &pa; - register int i; - register size_t len; -#ifdef REDEBUG -# define GOODFLAGS(f) (f) -#else -# define GOODFLAGS(f) ((f)&~REG_DUMP) -#endif - - cflags = GOODFLAGS(cflags); - if ((cflags®_EXTENDED) && (cflags®_NOSPEC)) - return(REG_INVARG); - - if (cflags®_PEND) { - if (preg->re_endp < pattern) - return(REG_INVARG); - len = preg->re_endp - pattern; - } else - len = strlen((char *)pattern); - - /* do the mallocs early so failure handling is easy */ - g = (struct re_guts *)malloc(sizeof(struct re_guts) + - (NC-1)*sizeof(cat_t)); - if (g == NULL) - return(REG_ESPACE); - p->ssize = len/(size_t)2*(size_t)3 + (size_t)1; /* ugh */ - p->strip = (sop *)malloc(p->ssize * sizeof(sop)); - p->slen = 0; - if (p->strip == NULL) { - free((char *)g); - return(REG_ESPACE); - } - - /* set things up */ - p->g = g; - p->next = (char *)pattern; /* convenience; we do not modify it */ - p->end = p->next + len; - p->error = 0; - p->ncsalloc = 0; - for (i = 0; i < NPAREN; i++) { - p->pbegin[i] = 0; - p->pend[i] = 0; - } - g->csetsize = NC; - g->sets = NULL; - g->setbits = NULL; - g->ncsets = 0; - g->cflags = cflags; - g->iflags = 0; - g->nbol = 0; - g->neol = 0; - g->must = NULL; - g->mlen = 0; - g->nsub = 0; - g->ncategories = 1; /* category 0 is "everything else" */ - g->categories = &g->catspace[-(CHAR_MIN)]; - (void) memset((char *)g->catspace, 0, NC*sizeof(cat_t)); - g->backrefs = 0; - - /* do it */ - EMIT(OEND, 0); - g->firststate = THERE(); - if (cflags®_EXTENDED) - p_ere(p, OUT); - else if (cflags®_NOSPEC) - p_str(p); - else - p_bre(p, OUT, OUT); - EMIT(OEND, 0); - g->laststate = THERE(); - - /* tidy up loose ends and fill things in */ - categorize(p, g); - stripsnug(p, g); - findmust(p, g); - g->nplus = pluscount(p, g); - g->magic = MAGIC2; - preg->re_nsub = g->nsub; - preg->re_g = g; - preg->re_magic = MAGIC1; -#ifndef REDEBUG - /* not debugging, so can't rely on the assert() in regexec() */ - if (g->iflags&BAD) - SETERROR(REG_ASSERT); -#endif - - /* win or lose, we're done */ - if (p->error != 0) /* lose */ - regfree(preg); - return(p->error); -} - -/* - - p_ere - ERE parser top level, concatenation and alternation - == static void p_ere(register struct parse *p, int stop); - */ -static void -p_ere(p, stop) -register struct parse *p; -int stop; /* character this ERE should end at */ -{ - register char c; - register sopno prevback; - register sopno prevfwd; - register sopno conc; - register int first = 1; /* is this the first alternative? */ - - for (;;) { - /* do a bunch of concatenated expressions */ - conc = HERE(); - while (MORE() && (c = PEEK()) != '|' && c != stop) - p_ere_exp(p); - REQUIRE(HERE() != conc, REG_EMPTY); /* require nonempty */ - - if (!EAT('|')) - break; /* NOTE BREAK OUT */ - - if (first) { - INSERT(OCH_, conc); /* offset is wrong */ - prevfwd = conc; - prevback = conc; - first = 0; - } - ASTERN(OOR1, prevback); - prevback = THERE(); - AHEAD(prevfwd); /* fix previous offset */ - prevfwd = HERE(); - EMIT(OOR2, 0); /* offset is very wrong */ - } - - if (!first) { /* tail-end fixups */ - AHEAD(prevfwd); - ASTERN(O_CH, prevback); - } - - assert(!MORE() || SEE(stop)); -} - -/* - - p_ere_exp - parse one subERE, an atom possibly followed by a repetition op - == static void p_ere_exp(register struct parse *p); - */ -static void -p_ere_exp(p) -register struct parse *p; -{ - register char c; - register sopno pos; - register int count; - register int count2; - register sopno subno; - int wascaret = 0; - - assert(MORE()); /* caller should have ensured this */ - c = GETNEXT(); - - pos = HERE(); - switch (c) { - case '(': - REQUIRE(MORE(), REG_EPAREN); - p->g->nsub++; - subno = p->g->nsub; - if (subno < NPAREN) - p->pbegin[subno] = HERE(); - EMIT(OLPAREN, subno); - if (!SEE(')')) - p_ere(p, ')'); - if (subno < NPAREN) { - p->pend[subno] = HERE(); - assert(p->pend[subno] != 0); - } - EMIT(ORPAREN, subno); - MUSTEAT(')', REG_EPAREN); - break; -#ifndef POSIX_MISTAKE - case ')': /* happens only if no current unmatched ( */ - /* - * You may ask, why the ifndef? Because I didn't notice - * this until slightly too late for 1003.2, and none of the - * other 1003.2 regular-expression reviewers noticed it at - * all. So an unmatched ) is legal POSIX, at least until - * we can get it fixed. - */ - SETERROR(REG_EPAREN); - break; -#endif - case '^': - EMIT(OBOL, 0); - p->g->iflags |= USEBOL; - p->g->nbol++; - wascaret = 1; - break; - case '$': - EMIT(OEOL, 0); - p->g->iflags |= USEEOL; - p->g->neol++; - break; - case '|': - SETERROR(REG_EMPTY); - break; - case '*': - case '+': - case '?': - SETERROR(REG_BADRPT); - break; - case '.': - if (p->g->cflags®_NEWLINE) - nonnewline(p); - else - EMIT(OANY, 0); - break; - case '[': - p_bracket(p); - break; - case '\\': - REQUIRE(MORE(), REG_EESCAPE); - c = GETNEXT(); - ordinary(p, c); - break; - case '{': /* okay as ordinary except if digit follows */ - REQUIRE(!MORE() || !isdigit(PEEK()), REG_BADRPT); - /* FALLTHROUGH */ - default: - ordinary(p, c); - break; - } - - if (!MORE()) - return; - c = PEEK(); - /* we call { a repetition if followed by a digit */ - if (!( c == '*' || c == '+' || c == '?' || - (c == '{' && MORE2() && isdigit(PEEK2())) )) - return; /* no repetition, we're done */ - NEXT(); - - REQUIRE(!wascaret, REG_BADRPT); - switch (c) { - case '*': /* implemented as +? */ - /* this case does not require the (y|) trick, noKLUDGE */ - INSERT(OPLUS_, pos); - ASTERN(O_PLUS, pos); - INSERT(OQUEST_, pos); - ASTERN(O_QUEST, pos); - break; - case '+': - INSERT(OPLUS_, pos); - ASTERN(O_PLUS, pos); - break; - case '?': - /* KLUDGE: emit y? as (y|) until subtle bug gets fixed */ - INSERT(OCH_, pos); /* offset slightly wrong */ - ASTERN(OOR1, pos); /* this one's right */ - AHEAD(pos); /* fix the OCH_ */ - EMIT(OOR2, 0); /* offset very wrong... */ - AHEAD(THERE()); /* ...so fix it */ - ASTERN(O_CH, THERETHERE()); - break; - case '{': - count = p_count(p); - if (EAT(',')) { - if (isdigit(PEEK())) { - count2 = p_count(p); - REQUIRE(count <= count2, REG_BADBR); - } else /* single number with comma */ - count2 = INFINITY; - } else /* just a single number */ - count2 = count; - repeat(p, pos, count, count2); - if (!EAT('}')) { /* error heuristics */ - while (MORE() && PEEK() != '}') - NEXT(); - REQUIRE(MORE(), REG_EBRACE); - SETERROR(REG_BADBR); - } - break; - } - - if (!MORE()) - return; - c = PEEK(); - if (!( c == '*' || c == '+' || c == '?' || - (c == '{' && MORE2() && isdigit(PEEK2())) ) ) - return; - SETERROR(REG_BADRPT); -} - -/* - - p_str - string (no metacharacters) "parser" - == static void p_str(register struct parse *p); - */ -static void -p_str(p) -register struct parse *p; -{ - REQUIRE(MORE(), REG_EMPTY); - while (MORE()) - ordinary(p, GETNEXT()); -} - -/* - - p_bre - BRE parser top level, anchoring and concatenation - == static void p_bre(register struct parse *p, register int end1, \ - == register int end2); - * Giving end1 as OUT essentially eliminates the end1/end2 check. - * - * This implementation is a bit of a kludge, in that a trailing $ is first - * taken as an ordinary character and then revised to be an anchor. The - * only undesirable side effect is that '$' gets included as a character - * category in such cases. This is fairly harmless; not worth fixing. - * The amount of lookahead needed to avoid this kludge is excessive. - */ -static void -p_bre(p, end1, end2) -register struct parse *p; -register int end1; /* first terminating character */ -register int end2; /* second terminating character */ -{ - register sopno start = HERE(); - register int first = 1; /* first subexpression? */ - register int wasdollar = 0; - - if (EAT('^')) { - EMIT(OBOL, 0); - p->g->iflags |= USEBOL; - p->g->nbol++; - } - while (MORE() && !SEETWO(end1, end2)) { - wasdollar = p_simp_re(p, first); - first = 0; - } - if (wasdollar) { /* oops, that was a trailing anchor */ - DROP(1); - EMIT(OEOL, 0); - p->g->iflags |= USEEOL; - p->g->neol++; - } - - REQUIRE(HERE() != start, REG_EMPTY); /* require nonempty */ -} - -/* - - p_simp_re - parse a simple RE, an atom possibly followed by a repetition - == static int p_simp_re(register struct parse *p, int starordinary); - */ -static int /* was the simple RE an unbackslashed $? */ -p_simp_re(p, starordinary) -register struct parse *p; -int starordinary; /* is a leading * an ordinary character? */ -{ - register int c; - register int count; - register int count2; - register sopno pos; - register int i; - register sopno subno; -# define BACKSL (1<g->cflags®_NEWLINE) - nonnewline(p); - else - EMIT(OANY, 0); - break; - case '[': - p_bracket(p); - break; - case BACKSL|'{': - SETERROR(REG_BADRPT); - break; - case BACKSL|'(': - p->g->nsub++; - subno = p->g->nsub; - if (subno < NPAREN) - p->pbegin[subno] = HERE(); - EMIT(OLPAREN, subno); - /* the MORE here is an error heuristic */ - if (MORE() && !SEETWO('\\', ')')) - p_bre(p, '\\', ')'); - if (subno < NPAREN) { - p->pend[subno] = HERE(); - assert(p->pend[subno] != 0); - } - EMIT(ORPAREN, subno); - REQUIRE(EATTWO('\\', ')'), REG_EPAREN); - break; - case BACKSL|')': /* should not get here -- must be user */ - case BACKSL|'}': - SETERROR(REG_EPAREN); - break; - case BACKSL|'1': - case BACKSL|'2': - case BACKSL|'3': - case BACKSL|'4': - case BACKSL|'5': - case BACKSL|'6': - case BACKSL|'7': - case BACKSL|'8': - case BACKSL|'9': - i = (c&~BACKSL) - '0'; - assert(i < NPAREN); - if (p->pend[i] != 0) { - assert(i <= p->g->nsub); - EMIT(OBACK_, i); - assert(p->pbegin[i] != 0); - assert(OP(p->strip[p->pbegin[i]]) == OLPAREN); - assert(OP(p->strip[p->pend[i]]) == ORPAREN); - (void) dupl(p, p->pbegin[i]+1, p->pend[i]); - EMIT(O_BACK, i); - } else - SETERROR(REG_ESUBREG); - p->g->backrefs = 1; - break; - case '*': - REQUIRE(starordinary, REG_BADRPT); - /* FALLTHROUGH */ - default: - ordinary(p, (char)c); /* takes off BACKSL, if any */ - break; - } - - if (EAT('*')) { /* implemented as +? */ - /* this case does not require the (y|) trick, noKLUDGE */ - INSERT(OPLUS_, pos); - ASTERN(O_PLUS, pos); - INSERT(OQUEST_, pos); - ASTERN(O_QUEST, pos); - } else if (EATTWO('\\', '{')) { - count = p_count(p); - if (EAT(',')) { - if (MORE() && isdigit(PEEK())) { - count2 = p_count(p); - REQUIRE(count <= count2, REG_BADBR); - } else /* single number with comma */ - count2 = INFINITY; - } else /* just a single number */ - count2 = count; - repeat(p, pos, count, count2); - if (!EATTWO('\\', '}')) { /* error heuristics */ - while (MORE() && !SEETWO('\\', '}')) - NEXT(); - REQUIRE(MORE(), REG_EBRACE); - SETERROR(REG_BADBR); - } - } else if (c == (unsigned char)'$') /* $ (but not \$) ends it */ - return(1); - - return(0); -} - -/* - - p_count - parse a repetition count - == static int p_count(register struct parse *p); - */ -static int /* the value */ -p_count(p) -register struct parse *p; -{ - register int count = 0; - register int ndigits = 0; - - while (MORE() && isdigit(PEEK()) && count <= DUPMAX) { - count = count*10 + (GETNEXT() - '0'); - ndigits++; - } - - REQUIRE(ndigits > 0 && count <= DUPMAX, REG_BADBR); - return(count); -} - -/* - - p_bracket - parse a bracketed character list - == static void p_bracket(register struct parse *p); - * - * Note a significant property of this code: if the allocset() did SETERROR, - * no set operations are done. - */ -static void -p_bracket(p) -register struct parse *p; -{ - register cset *cs = allocset(p); - register int invert = 0; - - /* Dept of Truly Sickening Special-Case Kludges */ - if (p->next + 5 < p->end && strncmp(p->next, "[:<:]]", 6) == 0) { - EMIT(OBOW, 0); - NEXTn(6); - return; - } - if (p->next + 5 < p->end && strncmp(p->next, "[:>:]]", 6) == 0) { - EMIT(OEOW, 0); - NEXTn(6); - return; - } - - if (EAT('^')) - invert++; /* make note to invert set at end */ - if (EAT(']')) - CHadd(cs, ']'); - else if (EAT('-')) - CHadd(cs, '-'); - while (MORE() && PEEK() != ']' && !SEETWO('-', ']')) - p_b_term(p, cs); - if (EAT('-')) - CHadd(cs, '-'); - MUSTEAT(']', REG_EBRACK); - - if (p->error != 0) /* don't mess things up further */ - return; - - if (p->g->cflags®_ICASE) { - register int i; - register int ci; - - for (i = p->g->csetsize - 1; i >= 0; i--) - if (CHIN(cs, i) && isalpha(i)) { - ci = othercase(i); - if (ci != i) - CHadd(cs, ci); - } - if (cs->multis != NULL) - mccase(p, cs); - } - if (invert) { - register int i; - - for (i = p->g->csetsize - 1; i >= 0; i--) - if (CHIN(cs, i)) - CHsub(cs, i); - else - CHadd(cs, i); - if (p->g->cflags®_NEWLINE) - CHsub(cs, '\n'); - if (cs->multis != NULL) - mcinvert(p, cs); - } - - assert(cs->multis == NULL); /* xxx */ - - if (nch(p, cs) == 1) { /* optimize singleton sets */ - ordinary(p, firstch(p, cs)); - freeset(p, cs); - } else - EMIT(OANYOF, freezeset(p, cs)); -} - -/* - - p_b_term - parse one term of a bracketed character list - == static void p_b_term(register struct parse *p, register cset *cs); - */ -static void -p_b_term(p, cs) -register struct parse *p; -register cset *cs; -{ - register char c; - register char start, finish; - register int i; - - /* classify what we've got */ - switch ((MORE()) ? PEEK() : '\0') { - case '[': - c = (MORE2()) ? PEEK2() : '\0'; - break; - case '-': - SETERROR(REG_ERANGE); - return; /* NOTE RETURN */ - break; - default: - c = '\0'; - break; - } - - switch (c) { - case ':': /* character class */ - NEXT2(); - REQUIRE(MORE(), REG_EBRACK); - c = PEEK(); - REQUIRE(c != '-' && c != ']', REG_ECTYPE); - p_b_cclass(p, cs); - REQUIRE(MORE(), REG_EBRACK); - REQUIRE(EATTWO(':', ']'), REG_ECTYPE); - break; - case '=': /* equivalence class */ - NEXT2(); - REQUIRE(MORE(), REG_EBRACK); - c = PEEK(); - REQUIRE(c != '-' && c != ']', REG_ECOLLATE); - p_b_eclass(p, cs); - REQUIRE(MORE(), REG_EBRACK); - REQUIRE(EATTWO('=', ']'), REG_ECOLLATE); - break; - default: /* symbol, ordinary character, or range */ -/* xxx revision needed for multichar stuff */ - start = p_b_symbol(p); - if (SEE('-') && MORE2() && PEEK2() != ']') { - /* range */ - NEXT(); - if (EAT('-')) - finish = '-'; - else - finish = p_b_symbol(p); - } else - finish = start; -/* xxx what about signed chars here... */ - REQUIRE(start <= finish, REG_ERANGE); - for (i = start; i <= finish; i++) - CHadd(cs, i); - break; - } -} - -/* - - p_b_cclass - parse a character-class name and deal with it - == static void p_b_cclass(register struct parse *p, register cset *cs); - */ -static void -p_b_cclass(p, cs) -register struct parse *p; -register cset *cs; -{ - register char *sp = p->next; - register struct cclass *cp; - register size_t len; - register char *u; - register char c; - - while (MORE() && isalpha(PEEK())) - NEXT(); - len = p->next - sp; - for (cp = cclasses; cp->name != NULL; cp++) - if (strncmp(cp->name, sp, len) == 0 && cp->name[len] == '\0') - break; - if (cp->name == NULL) { - /* oops, didn't find it */ - SETERROR(REG_ECTYPE); - return; - } - - u = cp->chars; - while ((c = *u++) != '\0') - CHadd(cs, c); - for (u = cp->multis; *u != '\0'; u += strlen(u) + 1) - MCadd(p, cs, u); -} - -/* - - p_b_eclass - parse an equivalence-class name and deal with it - == static void p_b_eclass(register struct parse *p, register cset *cs); - * - * This implementation is incomplete. xxx - */ -static void -p_b_eclass(p, cs) -register struct parse *p; -register cset *cs; -{ - register char c; - - c = p_b_coll_elem(p, '='); - CHadd(cs, c); -} - -/* - - p_b_symbol - parse a character or [..]ed multicharacter collating symbol - == static char p_b_symbol(register struct parse *p); - */ -static char /* value of symbol */ -p_b_symbol(p) -register struct parse *p; -{ - register char value; - - REQUIRE(MORE(), REG_EBRACK); - if (!EATTWO('[', '.')) - return(GETNEXT()); - - /* collating symbol */ - value = p_b_coll_elem(p, '.'); - REQUIRE(EATTWO('.', ']'), REG_ECOLLATE); - return(value); -} - -/* - - p_b_coll_elem - parse a collating-element name and look it up - == static char p_b_coll_elem(register struct parse *p, int endc); - */ -static char /* value of collating element */ -p_b_coll_elem(p, endc) -register struct parse *p; -int endc; /* name ended by endc,']' */ -{ - register char *sp = p->next; - register struct cname *cp; - register int len; - - while (MORE() && !SEETWO(endc, ']')) - NEXT(); - if (!MORE()) { - SETERROR(REG_EBRACK); - return(0); - } - len = p->next - sp; - for (cp = cnames; cp->name != NULL; cp++) - if (strncmp(cp->name, sp, len) == 0 && cp->name[len] == '\0') - return(cp->code); /* known name */ - if (len == 1) - return(*sp); /* single character */ - SETERROR(REG_ECOLLATE); /* neither */ - return(0); -} - -/* - - othercase - return the case counterpart of an alphabetic - == static char othercase(int ch); - */ -static char /* if no counterpart, return ch */ -othercase(ch) -int ch; -{ - assert(isalpha(ch)); - if (isupper(ch)) - return(tolower(ch)); - else if (islower(ch)) - return(toupper(ch)); - else /* peculiar, but could happen */ - return(ch); -} - -/* - - bothcases - emit a dualcase version of a two-case character - == static void bothcases(register struct parse *p, int ch); - * - * Boy, is this implementation ever a kludge... - */ -static void -bothcases(p, ch) -register struct parse *p; -int ch; -{ - register char *oldnext = p->next; - register char *oldend = p->end; - char bracket[3]; - - assert(othercase(ch) != ch); /* p_bracket() would recurse */ - p->next = bracket; - p->end = bracket+2; - bracket[0] = ch; - bracket[1] = ']'; - bracket[2] = '\0'; - p_bracket(p); - assert(p->next == bracket+2); - p->next = oldnext; - p->end = oldend; -} - -/* - - ordinary - emit an ordinary character - == static void ordinary(register struct parse *p, register int ch); - */ -static void -ordinary(p, ch) -register struct parse *p; -register int ch; -{ - register cat_t *cap = p->g->categories; - - if ((p->g->cflags®_ICASE) && isalpha(ch) && othercase(ch) != ch) - bothcases(p, ch); - else { - EMIT(OCHAR, (unsigned char)ch); - if (cap[ch] == 0) - cap[ch] = p->g->ncategories++; - } -} - -/* - - nonnewline - emit REG_NEWLINE version of OANY - == static void nonnewline(register struct parse *p); - * - * Boy, is this implementation ever a kludge... - */ -static void -nonnewline(p) -register struct parse *p; -{ - register char *oldnext = p->next; - register char *oldend = p->end; - char bracket[4]; - - p->next = bracket; - p->end = bracket+3; - bracket[0] = '^'; - bracket[1] = '\n'; - bracket[2] = ']'; - bracket[3] = '\0'; - p_bracket(p); - assert(p->next == bracket+3); - p->next = oldnext; - p->end = oldend; -} - -/* - - repeat - generate code for a bounded repetition, recursively if needed - == static void repeat(register struct parse *p, sopno start, int from, int to); - */ -static void -repeat(p, start, from, to) -register struct parse *p; -sopno start; /* operand from here to end of strip */ -int from; /* repeated from this number */ -int to; /* to this number of times (maybe INFINITY) */ -{ - register sopno finish = HERE(); -# define N 2 -# define INF 3 -# define REP(f, t) ((f)*8 + (t)) -# define MAP(n) (((n) <= 1) ? (n) : ((n) == INFINITY) ? INF : N) - register sopno copy; - - if (p->error != 0) /* head off possible runaway recursion */ - return; - - assert(from <= to); - - switch (REP(MAP(from), MAP(to))) { - case REP(0, 0): /* must be user doing this */ - DROP(finish-start); /* drop the operand */ - break; - case REP(0, 1): /* as x{1,1}? */ - case REP(0, N): /* as x{1,n}? */ - case REP(0, INF): /* as x{1,}? */ - /* KLUDGE: emit y? as (y|) until subtle bug gets fixed */ - INSERT(OCH_, start); /* offset is wrong... */ - repeat(p, start+1, 1, to); - ASTERN(OOR1, start); - AHEAD(start); /* ... fix it */ - EMIT(OOR2, 0); - AHEAD(THERE()); - ASTERN(O_CH, THERETHERE()); - break; - case REP(1, 1): /* trivial case */ - /* done */ - break; - case REP(1, N): /* as x?x{1,n-1} */ - /* KLUDGE: emit y? as (y|) until subtle bug gets fixed */ - INSERT(OCH_, start); - ASTERN(OOR1, start); - AHEAD(start); - EMIT(OOR2, 0); /* offset very wrong... */ - AHEAD(THERE()); /* ...so fix it */ - ASTERN(O_CH, THERETHERE()); - copy = dupl(p, start+1, finish+1); - assert(copy == finish+4); - repeat(p, copy, 1, to-1); - break; - case REP(1, INF): /* as x+ */ - INSERT(OPLUS_, start); - ASTERN(O_PLUS, start); - break; - case REP(N, N): /* as xx{m-1,n-1} */ - copy = dupl(p, start, finish); - repeat(p, copy, from-1, to-1); - break; - case REP(N, INF): /* as xx{n-1,INF} */ - copy = dupl(p, start, finish); - repeat(p, copy, from-1, to); - break; - default: /* "can't happen" */ - SETERROR(REG_ASSERT); /* just in case */ - break; - } -} - -/* - - seterr - set an error condition - == static int seterr(register struct parse *p, int e); - */ -static int /* useless but makes type checking happy */ -seterr(p, e) -register struct parse *p; -int e; -{ - if (p->error == 0) /* keep earliest error condition */ - p->error = e; - p->next = nuls; /* try to bring things to a halt */ - p->end = nuls; - return(0); /* make the return value well-defined */ -} - -/* - - allocset - allocate a set of characters for [] - == static cset *allocset(register struct parse *p); - */ -static cset * -allocset(p) -register struct parse *p; -{ - register int no = p->g->ncsets++; - register size_t nc; - register size_t nbytes; - register cset *cs; - register size_t css = (size_t)p->g->csetsize; - register int i; - - if (no >= p->ncsalloc) { /* need another column of space */ - p->ncsalloc += CHAR_BIT; - nc = p->ncsalloc; - assert(nc % CHAR_BIT == 0); - nbytes = nc / CHAR_BIT * css; - if (p->g->sets == NULL) - p->g->sets = (cset *)malloc(nc * sizeof(cset)); - else - p->g->sets = (cset *)realloc((char *)p->g->sets, - nc * sizeof(cset)); - if (p->g->setbits == NULL) - p->g->setbits = (uch *)malloc(nbytes); - else { - p->g->setbits = (uch *)realloc((char *)p->g->setbits, - nbytes); - /* xxx this isn't right if setbits is now NULL */ - for (i = 0; i < no; i++) - p->g->sets[i].ptr = p->g->setbits + css*(i/CHAR_BIT); - } - if (p->g->sets != NULL && p->g->setbits != NULL) - (void) memset((char *)p->g->setbits + (nbytes - css), - 0, css); - else { - no = 0; - SETERROR(REG_ESPACE); - /* caller's responsibility not to do set ops */ - } - } - - assert(p->g->sets != NULL); /* xxx */ - cs = &p->g->sets[no]; - cs->ptr = p->g->setbits + css*((no)/CHAR_BIT); - cs->mask = 1 << ((no) % CHAR_BIT); - cs->hash = 0; - cs->smultis = 0; - cs->multis = NULL; - - return(cs); -} - -/* - - freeset - free a now-unused set - == static void freeset(register struct parse *p, register cset *cs); - */ -static void -freeset(p, cs) -register struct parse *p; -register cset *cs; -{ - register int i; - register cset *top = &p->g->sets[p->g->ncsets]; - register size_t css = (size_t)p->g->csetsize; - - for (i = 0; i < css; i++) - CHsub(cs, i); - if (cs == top-1) /* recover only the easy case */ - p->g->ncsets--; -} - -/* - - freezeset - final processing on a set of characters - == static int freezeset(register struct parse *p, register cset *cs); - * - * The main task here is merging identical sets. This is usually a waste - * of time (although the hash code minimizes the overhead), but can win - * big if REG_ICASE is being used. REG_ICASE, by the way, is why the hash - * is done using addition rather than xor -- all ASCII [aA] sets xor to - * the same value! - */ -static int /* set number */ -freezeset(p, cs) -register struct parse *p; -register cset *cs; -{ - register uch h = cs->hash; - register int i; - register cset *top = &p->g->sets[p->g->ncsets]; - register cset *cs2; - register size_t css = (size_t)p->g->csetsize; - - /* look for an earlier one which is the same */ - for (cs2 = &p->g->sets[0]; cs2 < top; cs2++) - if (cs2->hash == h && cs2 != cs) { - /* maybe */ - for (i = 0; i < css; i++) - if (!!CHIN(cs2, i) != !!CHIN(cs, i)) - break; /* no */ - if (i == css) - break; /* yes */ - } - - if (cs2 < top) { /* found one */ - freeset(p, cs); - cs = cs2; - } - - return((int)(cs - p->g->sets)); -} - -/* - - firstch - return first character in a set (which must have at least one) - == static int firstch(register struct parse *p, register cset *cs); - */ -static int /* character; there is no "none" value */ -firstch(p, cs) -register struct parse *p; -register cset *cs; -{ - register int i; - register size_t css = (size_t)p->g->csetsize; - - for (i = 0; i < css; i++) - if (CHIN(cs, i)) - return((char)i); - assert(never); - return(0); /* arbitrary */ -} - -/* - - nch - number of characters in a set - == static int nch(register struct parse *p, register cset *cs); - */ -static int -nch(p, cs) -register struct parse *p; -register cset *cs; -{ - register int i; - register size_t css = (size_t)p->g->csetsize; - register int n = 0; - - for (i = 0; i < css; i++) - if (CHIN(cs, i)) - n++; - return(n); -} - -/* - - mcadd - add a collating element to a cset - == static void mcadd(register struct parse *p, register cset *cs, \ - == register char *cp); - */ -static void -mcadd(p, cs, cp) -register struct parse *p; -register cset *cs; -register char *cp; -{ - register size_t oldend = cs->smultis; - - cs->smultis += strlen(cp) + 1; - if (cs->multis == NULL) - cs->multis = malloc(cs->smultis); - else - cs->multis = realloc(cs->multis, cs->smultis); - if (cs->multis == NULL) { - SETERROR(REG_ESPACE); - return; - } - - (void) strcpy(cs->multis + oldend - 1, cp); - cs->multis[cs->smultis - 1] = '\0'; -} - -/* - - mcsub - subtract a collating element from a cset - == static void mcsub(register cset *cs, register char *cp); - */ -static void -mcsub(cs, cp) -register cset *cs; -register char *cp; -{ - register char *fp = mcfind(cs, cp); - register size_t len; - - assert(fp != NULL); - len = strlen(fp); - (void) memmove(fp, fp + len + 1, - cs->smultis - (fp + len + 1 - cs->multis)); - cs->smultis -= len; - - if (cs->smultis == 0) { - free(cs->multis); - cs->multis = NULL; - return; - } - - cs->multis = realloc(cs->multis, cs->smultis); - assert(cs->multis != NULL); -} - -/* - - mcin - is a collating element in a cset? - == static int mcin(register cset *cs, register char *cp); - */ -static int -mcin(cs, cp) -register cset *cs; -register char *cp; -{ - return(mcfind(cs, cp) != NULL); -} - -/* - - mcfind - find a collating element in a cset - == static char *mcfind(register cset *cs, register char *cp); - */ -static char * -mcfind(cs, cp) -register cset *cs; -register char *cp; -{ - register char *p; - - if (cs->multis == NULL) - return(NULL); - for (p = cs->multis; *p != '\0'; p += strlen(p) + 1) - if (strcmp(cp, p) == 0) - return(p); - return(NULL); -} - -/* - - mcinvert - invert the list of collating elements in a cset - == static void mcinvert(register struct parse *p, register cset *cs); - * - * This would have to know the set of possibilities. Implementation - * is deferred. - */ -static void -mcinvert(p, cs) -register struct parse *p; -register cset *cs; -{ - assert(cs->multis == NULL); /* xxx */ -} - -/* - - mccase - add case counterparts of the list of collating elements in a cset - == static void mccase(register struct parse *p, register cset *cs); - * - * This would have to know the set of possibilities. Implementation - * is deferred. - */ -static void -mccase(p, cs) -register struct parse *p; -register cset *cs; -{ - assert(cs->multis == NULL); /* xxx */ -} - -/* - - isinsets - is this character in any sets? - == static int isinsets(register struct re_guts *g, int c); - */ -static int /* predicate */ -isinsets(g, c) -register struct re_guts *g; -int c; -{ - register uch *col; - register int i; - register int ncols = (g->ncsets+(CHAR_BIT-1)) / CHAR_BIT; - register unsigned uc = (unsigned char)c; - - for (i = 0, col = g->setbits; i < ncols; i++, col += g->csetsize) - if (col[uc] != 0) - return(1); - return(0); -} - -/* - - samesets - are these two characters in exactly the same sets? - == static int samesets(register struct re_guts *g, int c1, int c2); - */ -static int /* predicate */ -samesets(g, c1, c2) -register struct re_guts *g; -int c1; -int c2; -{ - register uch *col; - register int i; - register int ncols = (g->ncsets+(CHAR_BIT-1)) / CHAR_BIT; - register unsigned uc1 = (unsigned char)c1; - register unsigned uc2 = (unsigned char)c2; - - for (i = 0, col = g->setbits; i < ncols; i++, col += g->csetsize) - if (col[uc1] != col[uc2]) - return(0); - return(1); -} - -/* - - categorize - sort out character categories - == static void categorize(struct parse *p, register struct re_guts *g); - */ -static void -categorize(p, g) -struct parse *p; -register struct re_guts *g; -{ - register cat_t *cats = g->categories; - register int c; - register int c2; - register cat_t cat; - - /* avoid making error situations worse */ - if (p->error != 0) - return; - - for (c = CHAR_MIN; c <= CHAR_MAX; c++) - if (cats[c] == 0 && isinsets(g, c)) { - cat = g->ncategories++; - cats[c] = cat; - for (c2 = c+1; c2 <= CHAR_MAX; c2++) - if (cats[c2] == 0 && samesets(g, c, c2)) - cats[c2] = cat; - } -} - -/* - - dupl - emit a duplicate of a bunch of sops - == static sopno dupl(register struct parse *p, sopno start, sopno finish); - */ -static sopno /* start of duplicate */ -dupl(p, start, finish) -register struct parse *p; -sopno start; /* from here */ -sopno finish; /* to this less one */ -{ - register sopno ret = HERE(); - register sopno len = finish - start; - - assert(finish >= start); - if (len == 0) - return(ret); - enlarge(p, p->ssize + len); /* this many unexpected additions */ - assert(p->ssize >= p->slen + len); - (void) memcpy((char *)(p->strip + p->slen), - (char *)(p->strip + start), (size_t)len*sizeof(sop)); - p->slen += len; - return(ret); -} - -/* - - doemit - emit a strip operator - == static void doemit(register struct parse *p, sop op, size_t opnd); - * - * It might seem better to implement this as a macro with a function as - * hard-case backup, but it's just too big and messy unless there are - * some changes to the data structures. Maybe later. - */ -static void -doemit(p, op, opnd) -register struct parse *p; -sop op; -size_t opnd; -{ - /* avoid making error situations worse */ - if (p->error != 0) - return; - - /* deal with oversize operands ("can't happen", more or less) */ - assert(opnd < 1<slen >= p->ssize) - enlarge(p, (p->ssize+1) / 2 * 3); /* +50% */ - assert(p->slen < p->ssize); - - /* finally, it's all reduced to the easy case */ - p->strip[p->slen++] = SOP(op, opnd); -} - -/* - - doinsert - insert a sop into the strip - == static void doinsert(register struct parse *p, sop op, size_t opnd, sopno pos); - */ -static void -doinsert(p, op, opnd, pos) -register struct parse *p; -sop op; -size_t opnd; -sopno pos; -{ - register sopno sn; - register sop s; - register int i; - - /* avoid making error situations worse */ - if (p->error != 0) - return; - - sn = HERE(); - EMIT(op, opnd); /* do checks, ensure space */ - assert(HERE() == sn+1); - s = p->strip[sn]; - - /* adjust paren pointers */ - assert(pos > 0); - for (i = 1; i < NPAREN; i++) { - if (p->pbegin[i] >= pos) { - p->pbegin[i]++; - } - if (p->pend[i] >= pos) { - p->pend[i]++; - } - } - - memmove((char *)&p->strip[pos+1], (char *)&p->strip[pos], - (HERE()-pos-1)*sizeof(sop)); - p->strip[pos] = s; -} - -/* - - dofwd - complete a forward reference - == static void dofwd(register struct parse *p, sopno pos, sop value); - */ -static void -dofwd(p, pos, value) -register struct parse *p; -register sopno pos; -sop value; -{ - /* avoid making error situations worse */ - if (p->error != 0) - return; - - assert(value < 1<strip[pos] = OP(p->strip[pos]) | value; -} - -/* - - enlarge - enlarge the strip - == static void enlarge(register struct parse *p, sopno size); - */ -static void -enlarge(p, size) -register struct parse *p; -register sopno size; -{ - register sop *sp; - - if (p->ssize >= size) - return; - - sp = (sop *)realloc(p->strip, size*sizeof(sop)); - if (sp == NULL) { - SETERROR(REG_ESPACE); - return; - } - p->strip = sp; - p->ssize = size; -} - -/* - - stripsnug - compact the strip - == static void stripsnug(register struct parse *p, register struct re_guts *g); - */ -static void -stripsnug(p, g) -register struct parse *p; -register struct re_guts *g; -{ - g->nstates = p->slen; - g->strip = (sop *)realloc((char *)p->strip, p->slen * sizeof(sop)); - if (g->strip == NULL) { - SETERROR(REG_ESPACE); - g->strip = p->strip; - } -} - -/* - - findmust - fill in must and mlen with longest mandatory literal string - == static void findmust(register struct parse *p, register struct re_guts *g); - * - * This algorithm could do fancy things like analyzing the operands of | - * for common subsequences. Someday. This code is simple and finds most - * of the interesting cases. - * - * Note that must and mlen got initialized during setup. - */ -static void -findmust(p, g) -struct parse *p; -register struct re_guts *g; -{ - register sop *scan; - sop *start; - register sop *newstart; - register sopno newlen; - register sop s; - register char *cp; - register sopno i; - - /* avoid making error situations worse */ - if (p->error != 0) - return; - - /* find the longest OCHAR sequence in strip */ - newlen = 0; - scan = g->strip + 1; - do { - s = *scan++; - switch (OP(s)) { - case OCHAR: /* sequence member */ - if (newlen == 0) /* new sequence */ - newstart = scan - 1; - newlen++; - break; - case OPLUS_: /* things that don't break one */ - case OLPAREN: - case ORPAREN: - break; - case OQUEST_: /* things that must be skipped */ - case OCH_: - scan--; - do { - scan += OPND(s); - s = *scan; - /* assert() interferes w debug printouts */ - if (OP(s) != O_QUEST && OP(s) != O_CH && - OP(s) != OOR2) { - g->iflags |= BAD; - return; - } - } while (OP(s) != O_QUEST && OP(s) != O_CH); - /* fallthrough */ - default: /* things that break a sequence */ - if (newlen > g->mlen) { /* ends one */ - start = newstart; - g->mlen = newlen; - } - newlen = 0; - break; - } - } while (OP(s) != OEND); - - if (g->mlen == 0) /* there isn't one */ - return; - - /* turn it into a character string */ - g->must = malloc((size_t)g->mlen + 1); - if (g->must == NULL) { /* argh; just forget it */ - g->mlen = 0; - return; - } - cp = g->must; - scan = start; - for (i = g->mlen; i > 0; i--) { - while (OP(s = *scan++) != OCHAR) - continue; - assert(cp < g->must + g->mlen); - *cp++ = (char)OPND(s); - } - assert(cp == g->must + g->mlen); - *cp++ = '\0'; /* just on general principles */ -} - -/* - - pluscount - count + nesting - == static sopno pluscount(register struct parse *p, register struct re_guts *g); - */ -static sopno /* nesting depth */ -pluscount(p, g) -struct parse *p; -register struct re_guts *g; -{ - register sop *scan; - register sop s; - register sopno plusnest = 0; - register sopno maxnest = 0; - - if (p->error != 0) - return(0); /* there may not be an OEND */ - - scan = g->strip + 1; - do { - s = *scan++; - switch (OP(s)) { - case OPLUS_: - plusnest++; - break; - case O_PLUS: - if (plusnest > maxnest) - maxnest = plusnest; - plusnest--; - break; - } - } while (OP(s) != OEND); - if (plusnest != 0) - g->iflags |= BAD; - return(maxnest); -} diff --git a/src/lib/evil/regex/regcomp.ih b/src/lib/evil/regex/regcomp.ih deleted file mode 100644 index 357461f77f..0000000000 --- a/src/lib/evil/regex/regcomp.ih +++ /dev/null @@ -1,51 +0,0 @@ -/* ========= begin header generated by ../src/lib/evil/regex/mkh.sh ========= */ -#ifdef __cplusplus -extern "C" { -#endif - -/* === lib/evil/regex/regcomp.c === */ -static void p_ere(register struct parse *p, int stop); -static void p_ere_exp(register struct parse *p); -static void p_str(register struct parse *p); -static void p_bre(register struct parse *p, register int end1, register int end2); -static int p_simp_re(register struct parse *p, int starordinary); -static int p_count(register struct parse *p); -static void p_bracket(register struct parse *p); -static void p_b_term(register struct parse *p, register cset *cs); -static void p_b_cclass(register struct parse *p, register cset *cs); -static void p_b_eclass(register struct parse *p, register cset *cs); -static char p_b_symbol(register struct parse *p); -static char p_b_coll_elem(register struct parse *p, int endc); -static char othercase(int ch); -static void bothcases(register struct parse *p, int ch); -static void ordinary(register struct parse *p, register int ch); -static void nonnewline(register struct parse *p); -static void repeat(register struct parse *p, sopno start, int from, int to); -static int seterr(register struct parse *p, int e); -static cset *allocset(register struct parse *p); -static void freeset(register struct parse *p, register cset *cs); -static int freezeset(register struct parse *p, register cset *cs); -static int firstch(register struct parse *p, register cset *cs); -static int nch(register struct parse *p, register cset *cs); -static void mcadd(register struct parse *p, register cset *cs, register char *cp); -static void mcsub(register cset *cs, register char *cp); -static int mcin(register cset *cs, register char *cp); -static char *mcfind(register cset *cs, register char *cp); -static void mcinvert(register struct parse *p, register cset *cs); -static void mccase(register struct parse *p, register cset *cs); -static int isinsets(register struct re_guts *g, int c); -static int samesets(register struct re_guts *g, int c1, int c2); -static void categorize(struct parse *p, register struct re_guts *g); -static sopno dupl(register struct parse *p, sopno start, sopno finish); -static void doemit(register struct parse *p, sop op, size_t opnd); -static void doinsert(register struct parse *p, sop op, size_t opnd, sopno pos); -static void dofwd(register struct parse *p, sopno pos, sop value); -static void enlarge(register struct parse *p, sopno size); -static void stripsnug(register struct parse *p, register struct re_guts *g); -static void findmust(register struct parse *p, register struct re_guts *g); -static sopno pluscount(register struct parse *p, register struct re_guts *g); - -#ifdef __cplusplus -} -#endif -/* ========= end header generated by ../src/lib/evil/regex/mkh.sh ========= */ diff --git a/src/lib/evil/regex/regerror.c b/src/lib/evil/regex/regerror.c deleted file mode 100644 index ae46a43c3e..0000000000 --- a/src/lib/evil/regex/regerror.c +++ /dev/null @@ -1,122 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#include "regex.h" -#include "utils.h" -#include "regerror.ih" - -/* - = #define REG_OKAY 0 - = #define REG_NOMATCH 1 - = #define REG_BADPAT 2 - = #define REG_ECOLLATE 3 - = #define REG_ECTYPE 4 - = #define REG_EESCAPE 5 - = #define REG_ESUBREG 6 - = #define REG_EBRACK 7 - = #define REG_EPAREN 8 - = #define REG_EBRACE 9 - = #define REG_BADBR 10 - = #define REG_ERANGE 11 - = #define REG_ESPACE 12 - = #define REG_BADRPT 13 - = #define REG_EMPTY 14 - = #define REG_ASSERT 15 - = #define REG_INVARG 16 - = #define REG_ATOI 255 // convert name to number (!) - = #define REG_ITOA 0400 // convert number to name (!) - */ -static struct rerr { - int code; - char *name; - char *explain; -} rerrs[] = { - REG_OKAY, "REG_OKAY", "no errors detected", - REG_NOMATCH, "REG_NOMATCH", "regexec() failed to match", - REG_BADPAT, "REG_BADPAT", "invalid regular expression", - REG_ECOLLATE, "REG_ECOLLATE", "invalid collating element", - REG_ECTYPE, "REG_ECTYPE", "invalid character class", - REG_EESCAPE, "REG_EESCAPE", "trailing backslash (\\)", - REG_ESUBREG, "REG_ESUBREG", "invalid backreference number", - REG_EBRACK, "REG_EBRACK", "brackets ([ ]) not balanced", - REG_EPAREN, "REG_EPAREN", "parentheses not balanced", - REG_EBRACE, "REG_EBRACE", "braces not balanced", - REG_BADBR, "REG_BADBR", "invalid repetition count(s)", - REG_ERANGE, "REG_ERANGE", "invalid character range", - REG_ESPACE, "REG_ESPACE", "out of memory", - REG_BADRPT, "REG_BADRPT", "repetition-operator operand invalid", - REG_EMPTY, "REG_EMPTY", "empty (sub)expression", - REG_ASSERT, "REG_ASSERT", "\"can't happen\" -- you found a bug", - REG_INVARG, "REG_INVARG", "invalid argument to regex routine", - -1, "", "*** unknown regexp error code ***", -}; - -/* - - regerror - the interface to error numbers - = extern size_t regerror(int, const regex_t *, char *, size_t); - */ -/* ARGSUSED */ -EAPI size_t -regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size) -{ - register struct rerr *r; - register size_t len; - register int target = errcode &~ REG_ITOA; - register char *s; - char convbuf[50]; - - if (errcode == REG_ATOI) - s = regatoi(preg, convbuf); - else { - for (r = rerrs; r->code >= 0; r++) - if (r->code == target) - break; - - if (errcode®_ITOA) { - if (r->code >= 0) - (void) strcpy(convbuf, r->name); - else - sprintf(convbuf, "REG_0x%x", target); - assert(strlen(convbuf) < sizeof(convbuf)); - s = convbuf; - } else - s = r->explain; - } - - len = strlen(s) + 1; - if (errbuf_size > 0) { - if (errbuf_size > len) - (void) strcpy(errbuf, s); - else { - (void) strncpy(errbuf, s, errbuf_size-1); - errbuf[errbuf_size-1] = '\0'; - } - } - - return(len); -} - -/* - - regatoi - internal routine to implement REG_ATOI - == static char *regatoi(const regex_t *preg, char *localbuf); - */ -static char * -regatoi(preg, localbuf) -const regex_t *preg; -char *localbuf; -{ - register struct rerr *r; - - for (r = rerrs; r->code >= 0; r++) - if (strcmp(r->name, preg->re_endp) == 0) - break; - if (r->code < 0) - return("0"); - - sprintf(localbuf, "%d", r->code); - return(localbuf); -} diff --git a/src/lib/evil/regex/regerror.ih b/src/lib/evil/regex/regerror.ih deleted file mode 100644 index e3f391cc90..0000000000 --- a/src/lib/evil/regex/regerror.ih +++ /dev/null @@ -1,12 +0,0 @@ -/* ========= begin header generated by ../src/lib/evil/regex/mkh.sh ========= */ -#ifdef __cplusplus -extern "C" { -#endif - -/* === lib/evil/regex/regerror.c === */ -static char *regatoi(const regex_t *preg, char *localbuf); - -#ifdef __cplusplus -} -#endif -/* ========= end header generated by ../src/lib/evil/regex/mkh.sh ========= */ diff --git a/src/lib/evil/regex/regex.h b/src/lib/evil/regex/regex.h deleted file mode 100644 index b521b3a024..0000000000 --- a/src/lib/evil/regex/regex.h +++ /dev/null @@ -1,78 +0,0 @@ -#ifndef _REGEX_H_ -#define _REGEX_H_ /* never again */ - -#include -#include - -/* ========= begin header generated by ../src/lib/evil/regex/mkh.sh ========= */ -#ifdef __cplusplus -extern "C" { -#endif - -/* === lib/evil/regex/regex2.h === */ -typedef off_t regoff_t; -typedef struct { - int re_magic; - size_t re_nsub; /* number of parenthesized subexpressions */ - const char *re_endp; /* end pointer for REG_PEND */ - struct re_guts *re_g; /* none of your business :-) */ -} regex_t; -typedef struct { - regoff_t rm_so; /* start of match */ - regoff_t rm_eo; /* end of match */ -} regmatch_t; - - -/* === lib/evil/regex/regcomp.c === */ -EAPI int regcomp(regex_t *, const char *, int); -#define REG_BASIC 0000 -#define REG_EXTENDED 0001 -#define REG_ICASE 0002 -#define REG_NOSUB 0004 -#define REG_NEWLINE 0010 -#define REG_NOSPEC 0020 -#define REG_PEND 0040 -#define REG_DUMP 0200 - - -/* === lib/evil/regex/regerror.c === */ -#define REG_OKAY 0 -#define REG_NOMATCH 1 -#define REG_BADPAT 2 -#define REG_ECOLLATE 3 -#define REG_ECTYPE 4 -#define REG_EESCAPE 5 -#define REG_ESUBREG 6 -#define REG_EBRACK 7 -#define REG_EPAREN 8 -#define REG_EBRACE 9 -#define REG_BADBR 10 -#define REG_ERANGE 11 -#define REG_ESPACE 12 -#define REG_BADRPT 13 -#define REG_EMPTY 14 -#define REG_ASSERT 15 -#define REG_INVARG 16 -#define REG_ATOI 255 /* convert name to number (!) */ -#define REG_ITOA 0400 /* convert number to name (!) */ -EAPI size_t regerror(int, const regex_t *, char *, size_t); - - -/* === lib/evil/regex/regexec.c === */ -EAPI int regexec(const regex_t *, const char *, size_t, regmatch_t [], int); -#define REG_NOTBOL 00001 -#define REG_NOTEOL 00002 -#define REG_STARTEND 00004 -#define REG_TRACE 00400 /* tracing of execution */ -#define REG_LARGE 01000 /* force large representation */ -#define REG_BACKR 02000 /* force use of backref code */ - - -/* === lib/evil/regex/regfree.c === */ -EAPI void regfree(regex_t *); - -#ifdef __cplusplus -} -#endif -/* ========= end header generated by ../src/lib/evil/regex/mkh.sh ========= */ -#endif diff --git a/src/lib/evil/regex/regex2.h b/src/lib/evil/regex/regex2.h deleted file mode 100644 index 58fd8d8a43..0000000000 --- a/src/lib/evil/regex/regex2.h +++ /dev/null @@ -1,134 +0,0 @@ -/* - * First, the stuff that ends up in the outside-world include file - = typedef off_t regoff_t; - = typedef struct { - = int re_magic; - = size_t re_nsub; // number of parenthesized subexpressions - = const char *re_endp; // end pointer for REG_PEND - = struct re_guts *re_g; // none of your business :-) - = } regex_t; - = typedef struct { - = regoff_t rm_so; // start of match - = regoff_t rm_eo; // end of match - = } regmatch_t; - */ -/* - * internals of regex_t - */ -#define MAGIC1 ((('r'^0200)<<8) | 'e') - -/* - * The internal representation is a *strip*, a sequence of - * operators ending with an endmarker. (Some terminology etc. is a - * historical relic of earlier versions which used multiple strips.) - * Certain oddities in the representation are there to permit running - * the machinery backwards; in particular, any deviation from sequential - * flow must be marked at both its source and its destination. Some - * fine points: - * - * - OPLUS_ and O_PLUS are *inside* the loop they create. - * - OQUEST_ and O_QUEST are *outside* the bypass they create. - * - OCH_ and O_CH are *outside* the multi-way branch they create, while - * OOR1 and OOR2 are respectively the end and the beginning of one of - * the branches. Note that there is an implicit OOR2 following OCH_ - * and an implicit OOR1 preceding O_CH. - * - * In state representations, an operator's bit is on to signify a state - * immediately *preceding* "execution" of that operator. - */ -typedef long sop; /* strip operator */ -typedef long sopno; -#define OPRMASK 0x7c000000 -#define OPDMASK 0x03ffffff -#define OPSHIFT (26) -#define OP(n) ((n)&OPRMASK) -#define OPND(n) ((n)&OPDMASK) -#define SOP(op, opnd) ((op)|(opnd)) -/* operators meaning operand */ -/* (back, fwd are offsets) */ -#define OEND (1< uch [csetsize] */ - uch mask; /* bit within array */ - uch hash; /* hash code */ - size_t smultis; - char *multis; /* -> char[smulti] ab\0cd\0ef\0\0 */ -} cset; -/* note that CHadd and CHsub are unsafe, and CHIN doesn't yield 0/1 */ -#define CHadd(cs, c) ((cs)->ptr[(uch)(c)] |= (cs)->mask, (cs)->hash += (c)) -#define CHsub(cs, c) ((cs)->ptr[(uch)(c)] &= ~(cs)->mask, (cs)->hash -= (c)) -#define CHIN(cs, c) ((cs)->ptr[(uch)(c)] & (cs)->mask) -#define MCadd(p, cs, cp) mcadd(p, cs, cp) /* regcomp() internal fns */ -#define MCsub(p, cs, cp) mcsub(p, cs, cp) -#define MCin(p, cs, cp) mcin(p, cs, cp) - -/* stuff for character categories */ -typedef unsigned char cat_t; - -/* - * main compiled-expression structure - */ -struct re_guts { - int magic; -# define MAGIC2 ((('R'^0200)<<8)|'E') - sop *strip; /* malloced area for strip */ - int csetsize; /* number of bits in a cset vector */ - int ncsets; /* number of csets in use */ - cset *sets; /* -> cset [ncsets] */ - uch *setbits; /* -> uch[csetsize][ncsets/CHAR_BIT] */ - int cflags; /* copy of regcomp() cflags argument */ - sopno nstates; /* = number of sops */ - sopno firststate; /* the initial OEND (normally 0) */ - sopno laststate; /* the final OEND */ - int iflags; /* internal flags */ -# define USEBOL 01 /* used ^ */ -# define USEEOL 02 /* used $ */ -# define BAD 04 /* something wrong */ - int nbol; /* number of ^ used */ - int neol; /* number of $ used */ - int ncategories; /* how many character categories */ - cat_t *categories; /* ->catspace[-CHAR_MIN] */ - char *must; /* match must contain this string */ - int mlen; /* length of must */ - size_t nsub; /* copy of re_nsub */ - int backrefs; /* does it use back references? */ - sopno nplus; /* how deep does it nest +s? */ - /* catspace must be last */ - cat_t catspace[1]; /* actually [NC] */ -}; - -/* misc utilities */ -#define OUT (CHAR_MAX+1) /* a non-character value */ -#define ISWORD(c) (isalnum(c) || (c) == '_') diff --git a/src/lib/evil/regex/regexec.c b/src/lib/evil/regex/regexec.c deleted file mode 100644 index 3a9135d7b8..0000000000 --- a/src/lib/evil/regex/regexec.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - * the outer shell of regexec() - * - * This file includes engine.c *twice*, after muchos fiddling with the - * macros that code uses. This lets the same code operate on two different - * representations for state sets. - */ -#include -#include -#include -#include -#include -#include -#include - -#include "utils.h" -#include "regex2.h" - -static int nope = 0; /* for use in asserts; shuts lint up */ - -/* macros for manipulating states, small version */ -#define states unsigned -#define states1 unsigned /* for later use in regexec() decision */ -#define CLEAR(v) ((v) = 0) -#define SET0(v, n) ((v) &= ~((unsigned)1 << (n))) -#define SET1(v, n) ((v) |= (unsigned)1 << (n)) -#define ISSET(v, n) ((v) & ((unsigned)1 << (n))) -#define ASSIGN(d, s) ((d) = (s)) -#define EQ(a, b) ((a) == (b)) -#define STATEVARS int dummy /* dummy version */ -#define STATESETUP(m, n) /* nothing */ -#define STATETEARDOWN(m) /* nothing */ -#define SETUP(v) ((v) = 0) -#define onestate unsigned -#define INIT(o, n) ((o) = (unsigned)1 << (n)) -#define INC(o) ((o) <<= 1) -#define ISSTATEIN(v, o) ((v) & (o)) -/* some abbreviations; note that some of these know variable names! */ -/* do "if I'm here, I can also be there" etc without branches */ -#define FWD(dst, src, n) ((dst) |= ((unsigned)(src)&(here)) << (n)) -#define BACK(dst, src, n) ((dst) |= ((unsigned)(src)&(here)) >> (n)) -#define ISSETBACK(v, n) ((v) & ((unsigned)here >> (n))) -/* function names */ -#define SNAMES /* engine.c looks after details */ - -#include "engine.c" - -/* now undo things */ -#undef states -#undef CLEAR -#undef SET0 -#undef SET1 -#undef ISSET -#undef ASSIGN -#undef EQ -#undef STATEVARS -#undef STATESETUP -#undef STATETEARDOWN -#undef SETUP -#undef onestate -#undef INIT -#undef INC -#undef ISSTATEIN -#undef FWD -#undef BACK -#undef ISSETBACK -#undef SNAMES - -/* macros for manipulating states, large version */ -#define states char * -#define CLEAR(v) memset(v, 0, m->g->nstates) -#define SET0(v, n) ((v)[n] = 0) -#define SET1(v, n) ((v)[n] = 1) -#define ISSET(v, n) ((v)[n]) -#define ASSIGN(d, s) memcpy(d, s, m->g->nstates) -#define EQ(a, b) (memcmp(a, b, m->g->nstates) == 0) -#define STATEVARS int vn; char *space -#define STATESETUP(m, nv) { (m)->space = malloc((nv)*(m)->g->nstates); \ - if ((m)->space == NULL) return(REG_ESPACE); \ - (m)->vn = 0; } -#define STATETEARDOWN(m) { free((m)->space); } -#define SETUP(v) ((v) = &m->space[m->vn++ * m->g->nstates]) -#define onestate int -#define INIT(o, n) ((o) = (n)) -#define INC(o) ((o)++) -#define ISSTATEIN(v, o) ((v)[o]) -/* some abbreviations; note that some of these know variable names! */ -/* do "if I'm here, I can also be there" etc without branches */ -#define FWD(dst, src, n) ((dst)[here+(n)] |= (src)[here]) -#define BACK(dst, src, n) ((dst)[here-(n)] |= (src)[here]) -#define ISSETBACK(v, n) ((v)[here - (n)]) -/* function names */ -#define LNAMES /* flag */ - -#include "engine.c" - -/* - - regexec - interface for matching - = extern int regexec(const regex_t *, const char *, size_t, \ - = regmatch_t [], int); - = #define REG_NOTBOL 00001 - = #define REG_NOTEOL 00002 - = #define REG_STARTEND 00004 - = #define REG_TRACE 00400 // tracing of execution - = #define REG_LARGE 01000 // force large representation - = #define REG_BACKR 02000 // force use of backref code - * - * We put this here so we can exploit knowledge of the state representation - * when choosing which matcher to call. Also, by this point the matchers - * have been prototyped. - */ -EAPI int /* 0 success, REG_NOMATCH failure */ -regexec(preg, string, nmatch, pmatch, eflags) -const regex_t *preg; -const char *string; -size_t nmatch; -regmatch_t pmatch[]; -int eflags; -{ - register struct re_guts *g = preg->re_g; -#ifdef REDEBUG -# define GOODFLAGS(f) (f) -#else -# define GOODFLAGS(f) ((f)&(REG_NOTBOL|REG_NOTEOL|REG_STARTEND)) -#endif - - if (preg->re_magic != MAGIC1 || g->magic != MAGIC2) - return(REG_BADPAT); - assert(!(g->iflags&BAD)); - if (g->iflags&BAD) /* backstop for no-debug case */ - return(REG_BADPAT); - eflags = GOODFLAGS(eflags); - - if (g->nstates <= CHAR_BIT*sizeof(states1) && !(eflags®_LARGE)) - return(smatcher(g, (char *)string, nmatch, pmatch, eflags)); - else - return(lmatcher(g, (char *)string, nmatch, pmatch, eflags)); -} diff --git a/src/lib/evil/regex/regfree.c b/src/lib/evil/regex/regfree.c deleted file mode 100644 index 75885bd076..0000000000 --- a/src/lib/evil/regex/regfree.c +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include -#include -#include - -#include "utils.h" -#include "regex2.h" - -/* - - regfree - free everything - = extern void regfree(regex_t *); - */ -EAPI void -regfree(preg) -regex_t *preg; -{ - register struct re_guts *g; - - if (preg->re_magic != MAGIC1) /* oops */ - return; /* nice to complain, but hard */ - - g = preg->re_g; - if (g == NULL || g->magic != MAGIC2) /* oops again */ - return; - preg->re_magic = 0; /* mark it invalid */ - g->magic = 0; /* mark it invalid */ - - if (g->strip != NULL) - free((char *)g->strip); - if (g->sets != NULL) - free((char *)g->sets); - if (g->setbits != NULL) - free((char *)g->setbits); - if (g->must != NULL) - free(g->must); - free((char *)g); -} diff --git a/src/lib/evil/regex/utils.h b/src/lib/evil/regex/utils.h deleted file mode 100644 index 1a997ac8fc..0000000000 --- a/src/lib/evil/regex/utils.h +++ /dev/null @@ -1,22 +0,0 @@ -/* utility definitions */ -#ifdef _POSIX2_RE_DUP_MAX -#define DUPMAX _POSIX2_RE_DUP_MAX -#else -#define DUPMAX 255 -#endif -#define INFINITY (DUPMAX + 1) -#define NC (CHAR_MAX - CHAR_MIN + 1) -typedef unsigned char uch; - -/* switch off assertions (if not already off) if no REDEBUG */ -#ifndef REDEBUG -#ifndef NDEBUG -#define NDEBUG /* no assertions please */ -#endif -#endif -#include - -/* for old systems with bcopy() but no memmove() */ -#ifdef USEBCOPY -#define memmove(d, s, c) bcopy(s, d, c) -#endif diff --git a/src/tests/evil/evil_suite.c b/src/tests/evil/evil_suite.c index 3331d287b2..e510ee4fc5 100644 --- a/src/tests/evil/evil_suite.c +++ b/src/tests/evil/evil_suite.c @@ -30,7 +30,6 @@ static const Efl_Test_Case etc[] = { { "Dlfcn", evil_test_dlfcn }, /* { "Fcntl", evil_test_fcntl }, */ - /* { "Fnmatch", evil_test_fnmatch }, */ /* { "Langinfo", evil_test_langinfo }, */ { "Libgen", evil_test_libgen }, { "Main", evil_test_main }, diff --git a/src/tests/evil/evil_suite.h b/src/tests/evil/evil_suite.h index e7efc926ab..3c215e2484 100644 --- a/src/tests/evil/evil_suite.h +++ b/src/tests/evil/evil_suite.h @@ -23,7 +23,6 @@ #include "../efl_check.h" void evil_test_dlfcn(TCase *tc); /* void evil_test_fcntl(TCase *tc); */ -/* void evil_test_fnmatch(TCase *tc); */ /* void evil_test_langinfo(TCase *tc); */ void evil_test_libgen(TCase *tc); void evil_test_main(TCase *tc); From e881f936e819acb5a669178c06a76d7a9720eac2 Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Thu, 18 Apr 2019 09:31:57 -0400 Subject: [PATCH 72/80] meson: unbreak cxx header installation Summary: before we had *correct* fileds in the subdir: keyword. However, install_dir: was wrong, so *this* time, this seems right. Reviewers: cedric, zmike, segfaultxavi, raster Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8634 --- src/bindings/cxx/efl_cxx/meson.build | 2 +- src/bindings/cxx/eina_cxx/meson.build | 2 +- src/bindings/cxx/meson.build | 7 +++---- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/bindings/cxx/efl_cxx/meson.build b/src/bindings/cxx/efl_cxx/meson.build index 44113d324a..0dca3250c9 100644 --- a/src/bindings/cxx/efl_cxx/meson.build +++ b/src/bindings/cxx/efl_cxx/meson.build @@ -1,5 +1,5 @@ cxx_header_src += join_paths(file_location, 'Efl.hh') install_headers(join_paths('..', file_location, 'cxx', 'efl_part_impl.hh'), - subdir: join_paths(dir_package_include, 'cxx') + subdir: join_paths(package_version_name, 'cxx') ) diff --git a/src/bindings/cxx/eina_cxx/meson.build b/src/bindings/cxx/eina_cxx/meson.build index fbe6f55ede..a08c416c98 100644 --- a/src/bindings/cxx/eina_cxx/meson.build +++ b/src/bindings/cxx/eina_cxx/meson.build @@ -50,5 +50,5 @@ eina_cxx = declare_dependency( ) install_headers(eina_cxx_header_src, - subdir: dir_package_include + subdir: package_version_name ) diff --git a/src/bindings/cxx/meson.build b/src/bindings/cxx/meson.build index 8697473f09..d5b6295731 100644 --- a/src/bindings/cxx/meson.build +++ b/src/bindings/cxx/meson.build @@ -30,7 +30,6 @@ foreach lib : cxx_sublibs '-DNEED_RUN_IN_TREE=1' ] - dir_package_include = package_version_name dir_package_modules = join_paths(dir_lib, package_name, 'modules') cxx_generator_target = [] cxx_header_src = [] @@ -50,7 +49,7 @@ foreach lib : cxx_sublibs input : join_paths(subdir_file_location, cxx_gen_file), output : [cxx_gen_file + '.hh', cxx_gen_file + '.impl.hh'], install : true, - install_dir : join_paths(dir_package_include, eo_file_subdir), + install_dir : join_paths(dir_include, package_version_name, eo_file_subdir), command : [eolian_cxx_gen, '-I', meson.current_source_dir(), eolian_include_directories, '-o', join_paths(meson.current_build_dir(), cxx_gen_file + '.hh'), '@INPUT@']) @@ -64,7 +63,7 @@ foreach lib : cxx_sublibs input : eo_file_list, output : [lib[0] + '.eo.hh'], install : true, - install_dir : join_paths(dir_package_include), + install_dir : join_paths(dir_include, package_version_name), command : [eolian_cxx_gen, '-I', meson.current_source_dir(), eolian_include_directories, '-m', '-o', '@OUTPUT@', '@INPUT@']) @@ -97,7 +96,7 @@ foreach lib : cxx_sublibs endforeach install_headers(cxx_header_src, - subdir: dir_package_include + subdir: package_version_name, ) pkgconfig.generate( From db1bb63e0e4cea8f1cefa459ce48ca0b76115289 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 18 Apr 2019 12:35:52 -0400 Subject: [PATCH 73/80] ci: disable mingw build temporarily Summary: this cannot succeed until the docker image is rebuilt Reviewers: lauromoura Reviewed By: lauromoura Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8648 --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7b84077161..e501011b24 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,8 +18,8 @@ jobs: include: - os: osx env: BUILDSYSTEM=ninja - - os: linux - env: DISTRO=Fedora29-mingw CI_BUILD_TYPE=mingw + #- os: linux + #env: DISTRO=Fedora29-mingw CI_BUILD_TYPE=mingw - os: linux env: DISTRO=Fedora29 CI_BUILD_TYPE=options-enabled - os: linux From 6ee2df55aabec87d0a21e881c44c32999abb10f2 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Thu, 18 Apr 2019 19:35:36 +0200 Subject: [PATCH 74/80] eolian: remove legacy generation from tests --- src/tests/eolian/eolian_generation.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/tests/eolian/eolian_generation.c b/src/tests/eolian/eolian_generation.c index 2fe0be6267..589efa7a02 100644 --- a/src/tests/eolian/eolian_generation.c +++ b/src/tests/eolian/eolian_generation.c @@ -163,7 +163,6 @@ EFL_START_TEST(eolian_functions_descriptions) _remove_ref(output_filepath, "eo.h"); fail_if(0 != _eolian_gen_execute(TESTS_SRC_DIR"/data/class_simple.eo", "-gh", output_filepath)); fail_if(!_files_compare(TESTS_SRC_DIR"/data/class_simple_ref_eo.h", output_filepath, "eo.h")); - fail_if(0 != _eolian_gen_execute(TESTS_SRC_DIR"/data/class_simple.eo", "-gl", output_filepath)); } EFL_END_TEST @@ -186,7 +185,6 @@ EFL_START_TEST(eolian_docs) _remove_ref(output_filepath, "eo.h"); fail_if(0 != _eolian_gen_execute(TESTS_SRC_DIR"/data/docs.eo", "-gh", output_filepath)); fail_if(!_files_compare(TESTS_SRC_DIR"/data/docs_ref.h", output_filepath, "eo.h")); - fail_if(0 != _eolian_gen_execute(TESTS_SRC_DIR"/data/docs.eo", "-gl", output_filepath)); } EFL_END_TEST From a3f4f615999455ba76b5f8aa3315faa1e2803c58 Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Thu, 18 Apr 2019 14:48:12 -0400 Subject: [PATCH 75/80] Evil tests: remove tests of functions provided by mingw-w64 Summary: mingw-w64 developpers already tests basename and dirname Test Plan: compilation Reviewers: zmike, raster Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8649 --- src/Makefile_Evil.am | 1 - src/tests/evil/evil_suite.c | 1 - src/tests/evil/evil_suite.h | 1 - src/tests/evil/evil_test_libgen.c | 308 ------------------------------ 4 files changed, 311 deletions(-) delete mode 100644 src/tests/evil/evil_test_libgen.c diff --git a/src/Makefile_Evil.am b/src/Makefile_Evil.am index 13613cda50..f3ed4787e2 100644 --- a/src/Makefile_Evil.am +++ b/src/Makefile_Evil.am @@ -61,7 +61,6 @@ tests_evil_evil_suite_SOURCES = \ tests/evil/evil_suite.c \ tests/evil/evil_suite.h \ tests/evil/evil_test_dlfcn.c \ -tests/evil/evil_test_libgen.c \ tests/evil/evil_test_main.c \ tests/evil/evil_test_stdio.c \ tests/evil/evil_test_stdlib.c \ diff --git a/src/tests/evil/evil_suite.c b/src/tests/evil/evil_suite.c index e510ee4fc5..b29dbc702b 100644 --- a/src/tests/evil/evil_suite.c +++ b/src/tests/evil/evil_suite.c @@ -31,7 +31,6 @@ static const Efl_Test_Case etc[] = { { "Dlfcn", evil_test_dlfcn }, /* { "Fcntl", evil_test_fcntl }, */ /* { "Langinfo", evil_test_langinfo }, */ - { "Libgen", evil_test_libgen }, { "Main", evil_test_main }, /* { "Mman", evil_test_mman }, */ /* { "Pwd", evil_test_pwd }, */ diff --git a/src/tests/evil/evil_suite.h b/src/tests/evil/evil_suite.h index 3c215e2484..a9599b6ee8 100644 --- a/src/tests/evil/evil_suite.h +++ b/src/tests/evil/evil_suite.h @@ -24,7 +24,6 @@ void evil_test_dlfcn(TCase *tc); /* void evil_test_fcntl(TCase *tc); */ /* void evil_test_langinfo(TCase *tc); */ -void evil_test_libgen(TCase *tc); void evil_test_main(TCase *tc); /* void evil_test_mman(TCase *tc); */ /* void evil_test_pwd(TCase *tc); */ diff --git a/src/tests/evil/evil_test_libgen.c b/src/tests/evil/evil_test_libgen.c deleted file mode 100644 index 263e6de836..0000000000 --- a/src/tests/evil/evil_test_libgen.c +++ /dev/null @@ -1,308 +0,0 @@ -/* EVIL - EFL library for Windows port - * Copyright (C) 2017 Vincent Torri - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; - * if not, see . - */ - -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include -#include -#include - -#include "evil_suite.h" - -EFL_START_TEST(evil_libgen_null) -{ - char *dname; - char *bname; - - dname = dirname(NULL); - fail_if(strcmp(dname, ".") != 0); - bname = basename(NULL); - fail_if(strcmp(bname, ".") != 0); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_empty) -{ - const char *path = ""; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, ".") != 0); - bname = basename(basec); - fail_if(strcmp(bname, ".") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_path) -{ - const char *path = "/usr/lib"; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, "/usr") != 0); - bname = basename(basec); - fail_if(strcmp(bname, "lib") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_path_with_slash) -{ - const char *path = "/usr/"; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, "/") != 0); - bname = basename(basec); - fail_if(strcmp(bname, "usr") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_folder) -{ - const char *path = "usr"; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, ".") != 0); - bname = basename(basec); - fail_if(strcmp(bname, "usr") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_slash) -{ - const char *path = "/"; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, "/") != 0); - bname = basename(basec); - fail_if(strcmp(bname, "/") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_dot) -{ - const char *path = "."; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, ".") != 0); - bname = basename(basec); - fail_if(strcmp(bname, ".") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_dot_dot) -{ - const char *path = ".."; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, ".") != 0); - bname = basename(basec); - fail_if(strcmp(bname, "..") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_win_dir_1) -{ - const char *path = "c:/foo/bar"; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, "c:/foo") != 0); - bname = basename(basec); -fail_if(strcmp(bname, "bar") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_win_dir_2) -{ - const char *path = "c:/foo\\bar"; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, "c:/foo") != 0); - bname = basename(basec); - fail_if(strcmp(bname, "bar") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_win_dir_3) -{ - const char *path = "c:\\foo/bar"; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, "c:\\foo") != 0); - bname = basename(basec); - fail_if(strcmp(bname, "bar") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -EFL_START_TEST(evil_libgen_win_dir_4) -{ - const char *path = "c:\\foo\\bar"; - char *dirc; - char *basec; - char *dname; - char *bname; - - dirc = strdup(path); - fail_if(dirc == NULL); - basec = strdup(path); - fail_if(basec == NULL); - - dname = dirname(dirc); - fail_if(strcmp(dname, "c:\\foo") != 0); - bname = basename(basec); - fail_if(strcmp(bname, "bar") != 0); - - free(dirc); - free(basec); -} -EFL_END_TEST - -void evil_test_libgen(TCase *tc) -{ - tcase_add_test(tc, evil_libgen_null); - tcase_add_test(tc, evil_libgen_empty); - tcase_add_test(tc, evil_libgen_path); - tcase_add_test(tc, evil_libgen_path_with_slash); - tcase_add_test(tc, evil_libgen_folder); - tcase_add_test(tc, evil_libgen_slash); - tcase_add_test(tc, evil_libgen_dot); - tcase_add_test(tc, evil_libgen_dot_dot); - tcase_add_test(tc, evil_libgen_win_dir_1); - tcase_add_test(tc, evil_libgen_win_dir_2); - tcase_add_test(tc, evil_libgen_win_dir_3); - tcase_add_test(tc, evil_libgen_win_dir_4); -} From 3730447f0c60f89b81e05f00dafe7aa5f55a370f Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Wed, 3 Apr 2019 17:24:22 -0700 Subject: [PATCH 76/80] ecore: move property string definition to shared headers for Efl.Composite_Model. Reviewed-by: SangHyeon Jade Lee Reviewed-by: Xavi Artigas Differential Revision: https://phab.enlightenment.org/D8568 --- src/lib/ecore/efl_composite_model.c | 13 ++++++------- src/lib/ecore/efl_composite_model_private.h | 5 +++++ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/lib/ecore/efl_composite_model.c b/src/lib/ecore/efl_composite_model.c index 668b382dfb..a0457729ac 100644 --- a/src/lib/ecore/efl_composite_model.c +++ b/src/lib/ecore/efl_composite_model.c @@ -8,10 +8,9 @@ #include "ecore_private.h" +#include "efl_composite_model_private.h" #include "efl_composite_model.eo.h" -#define _CHILD_INDEX "child.index" - typedef struct _Efl_Composite_Model_Data Efl_Composite_Model_Data; struct _Efl_Composite_Model_Data @@ -148,7 +147,7 @@ _efl_composite_model_index_get(const Eo *obj, Efl_Composite_Model_Data *pd) if (pd->need_index) return 0xFFFFFFFF; - fetch = efl_model_property_get(obj, _CHILD_INDEX); + fetch = efl_model_property_get(obj, EFL_COMPOSITE_MODEL_CHILD_INDEX); if (!eina_value_uint_convert(fetch, &r)) return 0xFFFFFFFF; eina_value_free(fetch); @@ -179,7 +178,7 @@ _efl_composite_model_efl_ui_view_model_set(Eo *obj EINA_UNUSED, Efl_Composite_Mo properties = efl_model_properties_get(pd->source); EINA_ITERATOR_FOREACH(properties, property) { - if (!strcmp(property, _CHILD_INDEX)) + if (!strcmp(property, EFL_COMPOSITE_MODEL_CHILD_INDEX)) { pd->need_index = EINA_FALSE; break; @@ -198,7 +197,7 @@ static Eina_Future * _efl_composite_model_efl_model_property_set(Eo *obj, Efl_Composite_Model_Data *pd, const char *property, Eina_Value *value) { - if (pd->need_index && !strcmp(property, _CHILD_INDEX)) + if (pd->need_index && !strcmp(property, EFL_COMPOSITE_MODEL_CHILD_INDEX)) { if (pd->set_index || !pd->source) return efl_loop_future_rejected(obj, EFL_MODEL_ERROR_READ_ONLY); @@ -214,7 +213,7 @@ static Eina_Value * _efl_composite_model_efl_model_property_get(const Eo *obj EINA_UNUSED, Efl_Composite_Model_Data *pd, const char *property) { - if (pd->need_index && !strcmp(property, _CHILD_INDEX)) + if (pd->need_index && !strcmp(property, EFL_COMPOSITE_MODEL_CHILD_INDEX)) { if (pd->set_index) return eina_value_uint_new(pd->index); @@ -229,7 +228,7 @@ _efl_composite_model_efl_model_properties_get(const Eo *obj EINA_UNUSED, Efl_Com if (pd->need_index) { static const char *composite_properties[] = { - _CHILD_INDEX + EFL_COMPOSITE_MODEL_CHILD_INDEX }; return eina_multi_iterator_new(efl_model_properties_get(pd->source), diff --git a/src/lib/ecore/efl_composite_model_private.h b/src/lib/ecore/efl_composite_model_private.h index c9e3783b9d..b780326c8b 100644 --- a/src/lib/ecore/efl_composite_model_private.h +++ b/src/lib/ecore/efl_composite_model_private.h @@ -1,3 +1,7 @@ +#ifndef EFL_COMPOSITE_MODEL_PRIVATE_H_ +# define EFL_COMPOSITE_MODEL_PRIVATE_H_ + +#define EFL_COMPOSITE_MODEL_CHILD_INDEX "child.index" #define EFL_COMPOSITE_MODEL_PROPERTIES(name, dyn, sta, ...) \ EFL_COMPOSITE_MODEL_PROPERTIES_SUPER(name, NULL, NULL, (dyn), sta, ##__VA_ARGS__) @@ -36,3 +40,4 @@ _efl_composite_model_properties_mix(Eina_Iterator *super, Eina_Iterator *dyn, Ei }; } +#endif From 3715faf96566c73f1c985ce4872845963032ee9f Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Thu, 28 Mar 2019 12:42:45 -0700 Subject: [PATCH 77/80] elementary: ensure that the parent model is still alive when resolving future for fileselector. This future where relying on the parent model being alive to work (efl_parent_get). For that reason we should have been using efl_future_then with the parent Model as a measure to make sure this is always the case. Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D8500 --- src/lib/elementary/elc_fileselector.c | 38 +++++++++++++++++---------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/src/lib/elementary/elc_fileselector.c b/src/lib/elementary/elc_fileselector.c index 6f52cf6e87..59ce7b1321 100644 --- a/src/lib/elementary/elc_fileselector.c +++ b/src/lib/elementary/elc_fileselector.c @@ -936,15 +936,12 @@ _properties_changed(void *data, const Efl_Event *ev) } static Eina_Value -_process_children_cb(void *data, const Eina_Value v, const Eina_Future *dead_future EINA_UNUSED) +_process_children_cb(Eo *model EINA_UNUSED, void *data, const Eina_Value v) { Listing_Request *lreq = data; Efl_Model *child = NULL; unsigned int i, len; - if (eina_value_type_get(&v) == EINA_VALUE_TYPE_ERROR) - goto end; - if (!lreq->valid) goto end; EINA_VALUE_ARRAY_FOREACH(&v, len, i, child) @@ -960,6 +957,16 @@ _process_children_cb(void *data, const Eina_Value v, const Eina_Future *dead_fut return v; } +static Eina_Value +_process_children_error(Eo *model EINA_UNUSED, void *data, Eina_Error error) +{ + Listing_Request *lreq = data; + + _process_last(lreq); + + return eina_value_error_init(error); +} + static void _populate(Evas_Object *obj, Efl_Model *model, @@ -1030,8 +1037,11 @@ _populate(Evas_Object *obj, if (efl_model_children_count_get(model)) { future = efl_model_children_slice_get(model, 0, efl_model_children_count_get(model)); - future = eina_future_then(future, _process_children_cb, lreq, NULL); - efl_future_then(obj, future); + future = efl_future_then(obj, future); + efl_future_then(model, future, + .success = _process_children_cb, + .error = _process_children_error, + .data = lreq); } else { @@ -1562,21 +1572,19 @@ _files_grid_add(Evas_Object *obj) } static Eina_Value -_resource_created_then(void *data, const Eina_Value v, const Eina_Future *dead_future EINA_UNUSED) +_resource_created_then(Eo *model EINA_UNUSED, void *data, const Eina_Value v) { Evas_Object *fs = data; Efl_Model *child = NULL; unsigned int len, i; - if (eina_value_type_get(&v) == EINA_VALUE_TYPE_ERROR) - goto end; - ELM_FILESELECTOR_DATA_GET(fs, sd); EINA_VALUE_ARRAY_FOREACH(&v, len, i, child) - _process_model(sd, child); + { + _process_model(sd, child); + } - end: return v; } @@ -1593,8 +1601,10 @@ _resource_created(void *data, const Efl_Event *event) return; f = efl_model_children_slice_get(sd->model, evt->index, 1); - f = eina_future_then(f, _resource_created_then, fs, NULL); - efl_future_then(fs, f); + f = efl_future_then(fs, f); + f = efl_future_then(sd->model, f, + .success = _resource_created_then, + .data = fs); } static void From 5403af9629a9cc6805e26ade38ea95c2e0bbdb31 Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Fri, 19 Apr 2019 13:56:48 +0900 Subject: [PATCH 78/80] vg_common_svg: Prevent duplicate operations for percentage value Summary: x1, y1, x2 and y2 of Svg_Linear_Gradient structure must be a percentage value.(0 ~ 1) but these variables are reused with efl_gfx_gradient_linear_start/end_set/get and duplicate operations occur. Test Plan: N/A Reviewers: Hermet, smohanty Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8662 --- .../evas/vg_loaders/svg/evas_vg_load_svg.c | 49 ++++++++++++++++++- src/static_libs/vg_common/vg_common.h | 1 + src/static_libs/vg_common/vg_common_svg.c | 13 ++++- 3 files changed, 59 insertions(+), 4 deletions(-) diff --git a/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c b/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c index 950db2bea1..97a7215776 100644 --- a/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c +++ b/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c @@ -1519,6 +1519,7 @@ _clone_gradient(Svg_Style_Gradient *from) grad->id = _copy_id(from->id); grad->ref = _copy_id(from->ref); grad->spread = from->spread; + grad->use_percentage = from->use_percentage; grad->user_space = from->user_space; grad->stops = _clone_grad_stops(from->stops); if (grad->type == SVG_LINEAR_GRADIENT) @@ -1874,15 +1875,53 @@ _handle_linear_y2_attr(Evas_SVG_Loader *loader, Svg_Linear_Gradient* linear, con linear->y2 = _gradient_to_double(loader->svg_parse, value, SVG_PARSER_LENGTH_VERTICAL); } +static void +_recalc_linear_x1_attr(Evas_SVG_Loader *loader, Svg_Linear_Gradient* linear, Eina_Bool user_space) +{ + if (!user_space) + { + linear->x1 = linear->x1 * loader->svg_parse->global.width; + } +} + +static void +_recalc_linear_y1_attr(Evas_SVG_Loader *loader, Svg_Linear_Gradient* linear, Eina_Bool user_space) +{ + if (!user_space) + { + linear->y1 = linear->y1 * loader->svg_parse->global.height; + } +} + +static void +_recalc_linear_x2_attr(Evas_SVG_Loader *loader, Svg_Linear_Gradient* linear, Eina_Bool user_space) +{ + if (!user_space) + { + linear->x2 = linear->x2 * loader->svg_parse->global.width; + } +} + +static void +_recalc_linear_y2_attr(Evas_SVG_Loader *loader, Svg_Linear_Gradient* linear, Eina_Bool user_space) +{ + if (!user_space) + { + linear->y2 = linear->y2 * loader->svg_parse->global.height; + } +} + typedef void (*Linear_Method)(Evas_SVG_Loader *loader, Svg_Linear_Gradient *linear, const char *value); +typedef void (*Linear_Method_Recalc)(Evas_SVG_Loader *loader, Svg_Linear_Gradient *linear, Eina_Bool user_space); #define LINEAR_DEF(Name) \ - { #Name, sizeof (#Name), _handle_linear_##Name##_attr} + { #Name, sizeof (#Name), _handle_linear_##Name##_attr, _recalc_linear_##Name##_attr} static const struct { const char *tag; int sz; - Linear_Method tag_handler;; + Linear_Method tag_handler; + Linear_Method_Recalc tag_recalc; } linear_tags[] = { LINEAR_DEF(x1), LINEAR_DEF(y1), @@ -1931,6 +1970,7 @@ _create_linearGradient(Evas_SVG_Loader *loader, const char *buf, unsigned buflen { Svg_Style_Gradient *grad = calloc(1, sizeof(Svg_Style_Gradient)); loader->svg_parse->style_grad = grad; + unsigned int i; grad->type = SVG_LINEAR_GRADIENT; grad->user_space = EINA_FALSE; @@ -1942,6 +1982,11 @@ _create_linearGradient(Evas_SVG_Loader *loader, const char *buf, unsigned buflen eina_simple_xml_attributes_parse(buf, buflen, _attr_parse_linear_gradient_node, loader); + for (i = 0; i < sizeof (linear_tags) / sizeof(linear_tags[0]); i++) + linear_tags[i].tag_recalc(loader, grad->linear, grad->user_space); + + grad->use_percentage = EINA_TRUE; + return loader->svg_parse->style_grad; } diff --git a/src/static_libs/vg_common/vg_common.h b/src/static_libs/vg_common/vg_common.h index ab0cb0ded3..b1dfa7d7f9 100644 --- a/src/static_libs/vg_common/vg_common.h +++ b/src/static_libs/vg_common/vg_common.h @@ -206,6 +206,7 @@ struct _Svg_Style_Gradient Eina_List *stops; // Efl_Gfx_Gradient_Stop Svg_Radial_Gradient *radial; Svg_Linear_Gradient *linear; + Eina_Bool use_percentage; }; struct _Svg_Paint diff --git a/src/static_libs/vg_common/vg_common_svg.c b/src/static_libs/vg_common/vg_common_svg.c index 1c33e6454e..9f26453abc 100644 --- a/src/static_libs/vg_common/vg_common_svg.c +++ b/src/static_libs/vg_common/vg_common_svg.c @@ -568,8 +568,16 @@ _apply_gradient_property(Svg_Style_Gradient *g, Efl_VG *vg, Efl_VG *parent, Vg_F if (g->type == SVG_LINEAR_GRADIENT) { grad_obj = efl_add(EFL_CANVAS_VG_GRADIENT_LINEAR_CLASS, parent); - efl_gfx_gradient_linear_start_set(grad_obj, g->linear->x1 * r.w + r.x, g->linear->y1 * r.h + r.y); - efl_gfx_gradient_linear_end_set(grad_obj, g->linear->x2 * r.w + r.x, g->linear->y2 * r.h + r.y); + + if (g->use_percentage) + { + g->linear->x1 = g->linear->x1 * r.w + r.x; + g->linear->y1 = g->linear->y1 * r.h + r.y; + g->linear->x2 = g->linear->x2 * r.w + r.x; + g->linear->y2 = g->linear->y2 * r.h + r.y; + } + efl_gfx_gradient_linear_start_set(grad_obj, g->linear->x1, g->linear->y1); + efl_gfx_gradient_linear_end_set(grad_obj, g->linear->x2, g->linear->y2); } else if (g->type == SVG_RADIAL_GRADIENT) { @@ -911,6 +919,7 @@ _create_gradient_node(Efl_VG *vg) if (!grad->linear) goto oom_error; efl_gfx_gradient_linear_start_get(vg, &grad->linear->x1, &grad->linear->y1); efl_gfx_gradient_linear_end_get(vg, &grad->linear->x2, &grad->linear->y2); + grad->use_percentage = EINA_FALSE; } else { From 41152dc29e77ed55d9611d1f6d63dc9b33ca392b Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Fri, 19 Apr 2019 15:07:11 +0900 Subject: [PATCH 79/80] vg_common_svg : Implement gradientTransform property of linearGradient Summary: Svg parser gets transformation matrix information from svg. If there is a matrix, calculate matrix operations on the start and end points of the gradient. TODO: We should implement gradientTransform of radialGradient. Test Plan: N/A Reviewers: Hermet, smohanty Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8663 --- .../evas/vg_loaders/svg/evas_vg_load_svg.c | 9 ++++++ src/static_libs/vg_common/vg_common.h | 1 + src/static_libs/vg_common/vg_common_svg.c | 28 +++++++++++++++++++ 3 files changed, 38 insertions(+) diff --git a/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c b/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c index 97a7215776..9c63d0bdbd 100644 --- a/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c +++ b/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c @@ -1521,6 +1521,11 @@ _clone_gradient(Svg_Style_Gradient *from) grad->spread = from->spread; grad->use_percentage = from->use_percentage; grad->user_space = from->user_space; + if (from->transform) + { + grad->transform = calloc(1, sizeof(Eina_Matrix3)); + eina_matrix3_copy(grad->transform, from->transform); + } grad->stops = _clone_grad_stops(from->stops); if (grad->type == SVG_LINEAR_GRADIENT) { @@ -1961,6 +1966,10 @@ _attr_parse_linear_gradient_node(void *data, const char *key, const char *value) { grad->user_space = EINA_TRUE; } + else if (!strcmp(key, "gradientTransform")) + { + grad->transform = _parse_transformation_matrix(value); + } return EINA_TRUE; } diff --git a/src/static_libs/vg_common/vg_common.h b/src/static_libs/vg_common/vg_common.h index b1dfa7d7f9..3dc102c635 100644 --- a/src/static_libs/vg_common/vg_common.h +++ b/src/static_libs/vg_common/vg_common.h @@ -206,6 +206,7 @@ struct _Svg_Style_Gradient Eina_List *stops; // Efl_Gfx_Gradient_Stop Svg_Radial_Gradient *radial; Svg_Linear_Gradient *linear; + Eina_Matrix3 *transform; Eina_Bool use_percentage; }; diff --git a/src/static_libs/vg_common/vg_common_svg.c b/src/static_libs/vg_common/vg_common_svg.c index 9f26453abc..51f27bace4 100644 --- a/src/static_libs/vg_common/vg_common_svg.c +++ b/src/static_libs/vg_common/vg_common_svg.c @@ -481,6 +481,7 @@ _svg_style_gradient_free(Svg_Style_Gradient *grad) eina_stringshare_del(grad->ref); free(grad->radial); free(grad->linear); + if (grad->transform) free(grad->transform); EINA_LIST_FREE(grad->stops, stop) { @@ -576,6 +577,33 @@ _apply_gradient_property(Svg_Style_Gradient *g, Efl_VG *vg, Efl_VG *parent, Vg_F g->linear->x2 = g->linear->x2 * r.w + r.x; g->linear->y2 = g->linear->y2 * r.h + r.y; } + + if (g->transform) + { + double cy = ((double) r.h) * 0.5 + r.y; + double cx = ((double) r.w) * 0.5 + r.x; + + //Calc start point + eina_matrix3_identity(&m); + eina_matrix3_translate(&m, g->linear->x1 - cx, g->linear->y1 - cy); + eina_matrix3_multiply_copy(&m, g->transform , &m); + eina_matrix3_translate(&m, cx, cy); + + eina_matrix3_values_get(&m, NULL, NULL, &g->linear->x1, + NULL, NULL, &g->linear->y1, + NULL, NULL, NULL); + + //Calc end point + eina_matrix3_identity(&m); + eina_matrix3_translate(&m, g->linear->x2 - cx, g->linear->y2 - cy); + eina_matrix3_multiply_copy(&m, g->transform , &m); + eina_matrix3_translate(&m, cx, cy); + + eina_matrix3_values_get(&m, NULL, NULL, &g->linear->x2, + NULL, NULL, &g->linear->y2, + NULL, NULL, NULL); + } + efl_gfx_gradient_linear_start_set(grad_obj, g->linear->x1, g->linear->y1); efl_gfx_gradient_linear_end_set(grad_obj, g->linear->x2, g->linear->y2); } From 29b65ccf88212b2fdee48776a5a155eb4c511804 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Fri, 19 Apr 2019 15:21:07 +0900 Subject: [PATCH 80/80] evas svg: code refactoring. reorder data fields to packing memory fit. --- src/static_libs/vg_common/vg_common.h | 2 +- src/static_libs/vg_common/vg_common_svg.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/static_libs/vg_common/vg_common.h b/src/static_libs/vg_common/vg_common.h index 3dc102c635..3484a7174f 100644 --- a/src/static_libs/vg_common/vg_common.h +++ b/src/static_libs/vg_common/vg_common.h @@ -202,11 +202,11 @@ struct _Svg_Style_Gradient Eina_Stringshare *id; Eina_Stringshare *ref; Efl_Gfx_Gradient_Spread spread; - Eina_Bool user_space; Eina_List *stops; // Efl_Gfx_Gradient_Stop Svg_Radial_Gradient *radial; Svg_Linear_Gradient *linear; Eina_Matrix3 *transform; + Eina_Bool user_space; Eina_Bool use_percentage; }; diff --git a/src/static_libs/vg_common/vg_common_svg.c b/src/static_libs/vg_common/vg_common_svg.c index 51f27bace4..9cb4b9e246 100644 --- a/src/static_libs/vg_common/vg_common_svg.c +++ b/src/static_libs/vg_common/vg_common_svg.c @@ -158,10 +158,10 @@ _eet_for_style_gradient(void) EET_DATA_DESCRIPTOR_ADD_BASIC(_eet_style_gradient_node, Svg_Style_Gradient, "type", type, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(_eet_style_gradient_node, Svg_Style_Gradient, "id", id, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(_eet_style_gradient_node, Svg_Style_Gradient, "spread", spread, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(_eet_style_gradient_node, Svg_Style_Gradient, "user_space", user_space, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_LIST(_eet_style_gradient_node, Svg_Style_Gradient, "stops", stops, _eet_gradient_stops_node); EET_DATA_DESCRIPTOR_ADD_SUB(_eet_style_gradient_node, Svg_Style_Gradient, "radial", radial, _eet_radial_gradient_node); EET_DATA_DESCRIPTOR_ADD_SUB(_eet_style_gradient_node, Svg_Style_Gradient, "linear", linear, _eet_linear_gradient_node); + EET_DATA_DESCRIPTOR_ADD_BASIC(_eet_style_gradient_node, Svg_Style_Gradient, "user_space", user_space, EET_T_INT); return _eet_style_gradient_node; }