Hello community,

here is the log from the commit of package efl for openSUSE:Factory checked in 
at 2018-03-28 10:29:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/efl (Old)
 and      /work/SRC/openSUSE:Factory/.efl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "efl"

Wed Mar 28 10:29:30 2018 rev:35 rq:590938 version:unknown

Changes:
--------
--- /work/SRC/openSUSE:Factory/efl/efl.changes  2017-12-11 18:57:36.339410381 
+0100
+++ /work/SRC/openSUSE:Factory/.efl.new/efl.changes     2018-03-28 
10:29:34.816932079 +0200
@@ -1,0 +2,45 @@
+Fri Mar 23 05:03:04 UTC 2018 - sfl...@suse.de
+- Bump to 1.20.7
+   * ecore ipc/con: fix nasty ... they dont mutually exclude
+   * evas: Fix potential crash with draw context
+   * disable async mode (use sync mode) for ibus when keymap changes
+   * eio: make inotify monitors fork-safe
+   * ecore-file: make monitoring truly fork-safe
+   * efl-wl: unset kbd mods changed flag after sending modifiers
+   * efl-wl: fix no-op of setting keyboard enter on already-entered surface
+   * ecore-x: re-add implementation of ecore_x_connection_get()
+   * ecore-x: filter XkbNewKeyboardNotifyEvent before emitting ecore-x event
+   * elementary config: Fix to use ELEMENTARY_BASE_DIR for configure path
+   * ecore-x: add more null checks for functions
+   * ecore-x: perform internal shutdown on io error if callback is set
+   * ecore-wl2: correctly translate spacebar keyname into key events (T6620)
+   * efl-wl: immediately unset a destroyed surface's cursor
+   * efl-wl: remove some broken logic for activating toplevel parents
+   * efl-wl: set event ON_HOLD flag when they are sent to a surface
+   * efl-wl: propagate surface activation back to parent if child is hidden
+   * efl-wl: send more mouse buttons to clients
+   * efl theme - fix bug in e init splash that would do hide anim 2x (T6619)
+   * ecore-drm2: return supported rotations if not using hardware
+   * ecore-drm2: Fix enabling outputs
+   * ecore evas init - init ecore then evas not the other way...
+   * emotion: unset DISPLAY when loading an engine under wayland (T6418)
+   * elm: fix memleak in combobox
+   * ecore_con: bug workaround SO_REUSEADDR and EADDRINUSE from bind (fix)
+   * eina: fix random segfaults when displaying BT
+   * eldbus test - del not unref obj as it has a parent ...
+   * eeze: Remove unused device variables
+   * eeze: Don't leak udev enumeration
+   * eina: Fix typo in doxygen
+   * ecore-evas-drm: Check for XDG_SEAT existence (T6455)
+   * eina_file: make sure we use a stringshare when virtualized. (T6449)
+   * elm ifrace scrollable - fix uninitialized values on scroll asjust
+   * eo - by default on 64bit only use 47 bits because of luajit
+   * elm_code_widget: make sure the widget is cleared properly. (T6185)
+   * elm_code_widget: keep track of visibility.
+   * edje - entry - fix empty item handling (T6668)
+- Attepmts to fix luajit issues on aarch64
+   * 0002-eina-safepointer-mimic-47-bit-eoid-patch.patch
+   * 0003-elua-use-safeptr-with-lightuserdata-to-work-around-l.patch
+   * 0004-elua-build-fix.patch
+
+-------------------------------------------------------------------
@@ -52,0 +98,6 @@
+
+-------------------------------------------------------------------
+Thu Nov 23 05:36:46 UTC 2017 - sfl...@suse.de
+
+- use luajit on aarch64
+- Add fix-luajit-address-size-check.patch to fix lua build on aarch64

Old:
----
  efl-1.20.6.tar.xz

New:
----
  0002-eina-safepointer-mimic-47-bit-eoid-patch.patch
  0003-elua-use-safeptr-with-lightuserdata-to-work-around-l.patch
  0004-elua-build-fix.patch
  efl-1.20.7.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ efl.spec ++++++
--- /var/tmp/diff_new_pack.SwnySN/_old  2018-03-28 10:29:38.228809380 +0200
+++ /var/tmp/diff_new_pack.SwnySN/_new  2018-03-28 10:29:38.232809237 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package efl
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -46,7 +46,7 @@
 %else
 %define xine_present 1
 %endif
-%ifarch %ix86 x86_64 %{arml} ppc
+%ifarch %ix86 x86_64 %{arml} ppc aarch64
 %if !0%{?suse_version} || 0%{?is_opensuse}
 %define luajit_present 1
 %endif
@@ -57,7 +57,8 @@
 %define poppler_present 0
 %endif
 %if 0%{?is_opensuse}
-%define vlc_present 1
+# VLC is broken atm
+%define vlc_present 0
 %else
 %define vlc_present 0
 %endif
@@ -74,14 +75,17 @@
 %{?!icon_theme_cache_create_ghost:%define icon_theme_cache_create_ghost() 
touch %{buildroot}%{_datadir}/icons/%1/icon-theme.cache}
 %{?!icon_theme_cache_post:%define icon_theme_cache_post() 
gtk-update-icon-cache %{_datadir}/icons/$1 &> /dev/null || :}
 Name:           efl
-Version:        1.20.6
+Version:        1.20.7
 Release:        0
 # TODO: split package to separate packages and specify licenses correctly
 Summary:        Enlightenment Foundation Libraries - set of libraries used 
(not only) by E17
-License:        BSD-2-Clause and LGPL-2.1 and Zlib
+License:        BSD-2-Clause AND LGPL-2.1-only AND Zlib
 Group:          Development/Libraries/C and C++
 Url:            https://git.enlightenment.org/core/efl.git
 Source:         %{name}-%{version}.tar.xz
+Patch1:         0002-eina-safepointer-mimic-47-bit-eoid-patch.patch
+Patch2:         0003-elua-use-safeptr-with-lightuserdata-to-work-around-l.patch
+Patch3:         0004-elua-build-fix.patch
 BuildRequires:  ImageMagick
 BuildRequires:  autoconf >= 2.5
 BuildRequires:  automake
@@ -216,7 +220,7 @@
 
 %package %{?mageia:-n %{_lib}%{name}-}devel
 Summary:        Headers, pkgconfig files and other files for development with 
EFL
-License:        BSD-2-Clause and LGPL-2.1 and Zlib
+License:        BSD-2-Clause AND LGPL-2.1-only AND Zlib
 Group:          Development/Libraries/C and C++
 Requires:       %{name} = %{version}
 Requires:       edje = %{version}
@@ -348,7 +352,7 @@
 
 %package -n lib%{?mageia:%{?_bit}}ector%{sover}
 Summary:        Ector, part of EFL
-License:        LGPL-2.1
+License:        LGPL-2.1-only
 Group:          System/Libraries
 
 %description -n lib%{?mageia:%{?_bit}}ector%{sover}
@@ -362,7 +366,7 @@
 
 %package -n lib%{?mageia:%{?_bit}}edje%{sover}
 Summary:        Edje, part of EFL
-License:        BSD-2-Clause and GPL-2.0
+License:        BSD-2-Clause AND GPL-2.0-only
 Group:          System/Libraries
 
 %description -n lib%{?mageia:%{?_bit}}edje%{sover}
@@ -370,7 +374,7 @@
 
 %package -n lib%{?mageia:%{?_bit}}eldbus%{sover}
 Summary:        ELDbus, part of EFL
-License:        LGPL-2.1
+License:        LGPL-2.1-only
 Group:          System/Libraries
 
 %description -n lib%{?mageia:%{?_bit}}eldbus%{sover}
@@ -417,7 +421,7 @@
 
 %package -n lib%{?mageia:%{?_bit}}efl%{sover}
 Summary:        EFL's general purpose library
-License:        LGPL-2.1
+License:        LGPL-2.1-only
 Group:          System/Libraries
 
 %description -n lib%{?mageia:%{?_bit}}efl%{sover}
@@ -451,7 +455,7 @@
 
 %package -n lib%{?mageia:%{?_bit}}eina%{sover}
 Summary:        Eina, part of EFL
-License:        LGPL-2.1
+License:        LGPL-2.1-only
 Group:          System/Libraries
 
 %description -n lib%{?mageia:%{?_bit}}eina%{sover}
@@ -459,7 +463,7 @@
 
 %package -n lib%{?mageia:%{?_bit}}eio%{sover}
 Summary:        Eio, part of EFL
-License:        LGPL-2.1
+License:        LGPL-2.1-only
 Group:          System/Libraries
 
 %description -n lib%{?mageia:%{?_bit}}eio%{sover}
@@ -467,7 +471,7 @@
 
 %package -n lib%{?mageia:%{?_bit}}elementary%{sover}
 Summary:        Elementary, part of EFL
-License:        LGPL-2.1
+License:        LGPL-2.1-only
 Group:          System/Libraries
 
 %description -n lib%{?mageia:%{?_bit}}elementary%{sover}
@@ -475,7 +479,7 @@
 
 %package -n lib%{?mageia:%{?_bit}}elocation%{sover}
 Summary:        ELocation, part of EFL
-License:        LGPL-2.1
+License:        LGPL-2.1-only
 Group:          System/Libraries
 
 %description -n lib%{?mageia:%{?_bit}}elocation%{sover}
@@ -484,7 +488,7 @@
 %if 0%{?enable_wayland}
 %package -n lib%{?mageia:%{?_bit}}elput%{sover}
 Summary:        Elput, part of EFL
-License:        LGPL-2.1
+License:        LGPL-2.1-only
 Group:          System/Libraries
 
 %description -n lib%{?mageia:%{?_bit}}elput%{sover}
@@ -495,7 +499,7 @@
 
 %package -n lib%{?mageia:%{?_bit}}elua%{sover}
 Summary:        Lua bindings for the EFL
-License:        LGPL-2.1
+License:        LGPL-2.1-only
 Group:          System/Libraries
 
 %description -n lib%{?mageia:%{?_bit}}elua%{sover}
@@ -503,7 +507,7 @@
 
 %package -n lib%{?mageia:%{?_bit}}embryo%{sover}
 Summary:        Embryo, part of EFL
-License:        BSD-2-Clause and Zlib
+License:        BSD-2-Clause AND Zlib
 Group:          System/Libraries
 
 %description -n lib%{?mageia:%{?_bit}}embryo%{sover}
@@ -525,7 +529,7 @@
 
 %package -n lib%{?mageia:%{?_bit}}emile%{sover}
 Summary:        Emile, part of EFL
-License:        LGPL-2.1
+License:        LGPL-2.1-only
 Group:          System/Libraries
 
 %description -n lib%{?mageia:%{?_bit}}emile%{sover}
@@ -541,7 +545,7 @@
 
 %package -n lib%{?mageia:%{?_bit}}eo%{sover}
 Summary:        Eo, part of EFL
-License:        LGPL-2.1
+License:        LGPL-2.1-only
 Group:          System/Libraries
 
 %description -n lib%{?mageia:%{?_bit}}eo%{sover}
@@ -549,7 +553,7 @@
 
 %package -n lib%{?mageia:%{?_bit}}eolian%{sover}
 Summary:        Eolian, part of EFL
-License:        LGPL-2.1
+License:        LGPL-2.1-only
 Group:          System/Libraries
 
 %description -n lib%{?mageia:%{?_bit}}eolian%{sover}
@@ -557,7 +561,7 @@
 
 %package -n lib%{?mageia:%{?_bit}}ethumb%{sover}
 Summary:        EThumb, part of EFL
-License:        LGPL-2.1
+License:        LGPL-2.1-only
 Group:          System/Libraries
 
 %description -n lib%{?mageia:%{?_bit}}ethumb%{sover}
@@ -566,7 +570,7 @@
 %if 0%{?physics_present}
 %package -n lib%{?mageia:%{?_bit}}ephysics%{sover}
 Summary:        EPhysics, part of EFL
-License:        LGPL-2.1
+License:        LGPL-2.1-only
 Group:          System/Libraries
 
 %description -n lib%{?mageia:%{?_bit}}ephysics%{sover}
@@ -587,7 +591,7 @@
 
 %package -n lib%{?mageia:%{?_bit}}ethumb_client%{sover}
 Summary:        EThumb Client, part of EFL
-License:        LGPL-2.1
+License:        LGPL-2.1-only
 Group:          System/Libraries
 
 %description -n lib%{?mageia:%{?_bit}}ethumb_client%{sover}
@@ -608,7 +612,7 @@
 
 %package -n elementary
 Summary:        The widget set for enlightenment
-License:        LGPL-2.1
+License:        LGPL-2.1-only
 Group:          System/GUI/Other
 Requires:       edje = %{version}
 Requires:       efl = %{version}
@@ -620,7 +624,7 @@
 
 %package -n elementary-examples
 Summary:        Elementary examples
-License:        LGPL-2.1
+License:        LGPL-2.1-only
 Group:          Documentation/Other
 
 %description -n elementary-examples
@@ -628,7 +632,7 @@
 
 %package -n elua
 Summary:        LuaJIT bindings for the efl
-License:        LGPL-2.1
+License:        LGPL-2.1-only
 Group:          System/GUI/Other
 Requires:       efl = %{version}
 
@@ -651,7 +655,7 @@
 
 %package -n evas-generic-loaders
 Summary:        Set of generic loaders for Evas
-License:        GPL-2.0+
+License:        GPL-2.0-or-later
 Group:          System/GUI/Other
 
 %description -n evas-generic-loaders
@@ -665,7 +669,7 @@
 %if %{generic_players_present}
 %package -n emotion-generic-players
 Summary:        Set of generic players for Emotion
-License:        GPL-2.0+
+License:        GPL-2.0-or-later
 Group:          System/GUI/Other
 
 %description -n emotion-generic-players
@@ -699,7 +703,7 @@
 
 %package examples
 Summary:        Examples of EFL usage
-License:        BSD-2-Clause and LGPL-2.1 and Zlib
+License:        BSD-2-Clause AND LGPL-2.1-only AND Zlib
 Group:          Documentation/Man
 
 %description examples
@@ -707,7 +711,7 @@
 
 %package testsuite
 Summary:        EFL testsuite
-License:        BSD-2-Clause and LGPL-2.1 and Zlib
+License:        BSD-2-Clause AND LGPL-2.1-only AND Zlib
 Group:          System/GUI/Other
 Requires:       lib%{?mageia:%{?_bit}}efreet%{sover} = %{version}
 
@@ -718,7 +722,7 @@
 Version:        0.21.0
 Release:        0
 Summary:        Default Enlightenment theme
-License:        BSD-2-Clause and LGPL-2.1
+License:        BSD-2-Clause AND LGPL-2.1-only
 Group:          System/GUI/Other
 Conflicts:      otherproviders(enlightenment-theme-dft)
 Provides:       enlightenment-theme = 0.1
@@ -732,7 +736,7 @@
 Version:        0.21.0
 Release:        0
 Summary:        Default Enlightenment theme(Dark)
-License:        BSD-2-Clause and LGPL-2.1
+License:        BSD-2-Clause AND LGPL-2.1-only
 Group:          System/GUI/Other
 Provides:       enlightenment-theme
 
@@ -743,7 +747,7 @@
 Version:        0.21.0
 Release:        0
 Summary:        A freedesktop.org compatible icon theme
-License:        GPL-3.0
+License:        GPL-3.0-only
 Group:          System/GUI/Other
 
 %description -n enlightenment-x-dark-icon-theme

++++++ 0002-eina-safepointer-mimic-47-bit-eoid-patch.patch ++++++
>From e2862c1f025c60ee94c60350d4bfa47222b6fb97 Mon Sep 17 00:00:00 2001
From: "Carsten Haitzler (Rasterman)" <ras...@rasterman.com>
Date: Thu, 23 Nov 2017 18:06:12 +0900
Subject: [PATCH 2/3] eina safepointer - mimic 47 bit eoid patch

same thing as b209b9a92286209281c12e81fd9dd72dc28c7495 but for safeptr
---
 src/lib/eina/eina_inline_safepointer.x | 27 ++++++++++++++++++++-------
 1 file changed, 20 insertions(+), 7 deletions(-)

diff --git a/src/lib/eina/eina_inline_safepointer.x 
b/src/lib/eina/eina_inline_safepointer.x
index 7c4cd5505c..1652e84947 100644
--- a/src/lib/eina/eina_inline_safepointer.x
+++ b/src/lib/eina/eina_inline_safepointer.x
@@ -38,16 +38,29 @@ typedef uintptr_t Eina_Sp_Id;
 typedef int16_t Eina_Table_Index;
 typedef uint16_t Eina_Generation_Counter;
 #else
+# ifndef EINA_FULL64BIT
+/* 47 bits */
+#  define EINA_BITS_MID_TABLE_ID       11
+#  define EINA_BITS_TABLE_ID           11
+#  define EINA_BITS_ENTRY_ID           12
+#  define EINA_BITS_GENERATION_COUNTER 11
+#  define EINA_BITS_FREE_COUNTER        2
+#  define EINA_DROPPED_TABLES           2
+#  define EINA_DROPPED_ENTRIES          2
+typedef int16_t Eina_Table_Index;
+typedef uint16_t Eina_Generation_Counter;
+# else
 /* 64 bits */
-# define EINA_BITS_MID_TABLE_ID       11
-# define EINA_BITS_TABLE_ID           11
-# define EINA_BITS_ENTRY_ID           12
-# define EINA_BITS_GENERATION_COUNTER 28
-# define EINA_BITS_FREE_COUNTER        2
-# define EINA_DROPPED_TABLES           2
-# define EINA_DROPPED_ENTRIES          2
+#  define EINA_BITS_MID_TABLE_ID       11
+#  define EINA_BITS_TABLE_ID           11
+#  define EINA_BITS_ENTRY_ID           12
+#  define EINA_BITS_GENERATION_COUNTER 28
+#  define EINA_BITS_FREE_COUNTER        2
+#  define EINA_DROPPED_TABLES           2
+#  define EINA_DROPPED_ENTRIES          2
 typedef int16_t Eina_Table_Index;
 typedef uint32_t Eina_Generation_Counter;
+# endif
 #endif
 
 /* Shifts macros to manipulate the SP id */
-- 
2.15.0

++++++ 0003-elua-use-safeptr-with-lightuserdata-to-work-around-l.patch ++++++
>From 8f73766fb9586592eb4c1c2318aee3bde70a5a0d Mon Sep 17 00:00:00 2001
From: "Carsten Haitzler (Rasterman)" <ras...@rasterman.com>
Date: Thu, 23 Nov 2017 18:07:01 +0900
Subject: [PATCH 3/3] elua - use safeptr with lightuserdata to work around
 luajit 64bit issue

luajit only supports 47bits on 64bit for lightuser data (bad! don't
mess with opaque pointers... really unexpected and bad and probably
should be fixed in luajit by doing things like on 32bit where
pointers are not messed with etc.)
---
 src/lib/elua/elua.c         | 26 ++++++++++++--------------
 src/lib/elua/elua_private.h |  1 +
 2 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/src/lib/elua/elua.c b/src/lib/elua/elua.c
index 2d9eebe3c3..44b5c32c59 100644
--- a/src/lib/elua/elua.c
+++ b/src/lib/elua/elua.c
@@ -70,6 +70,7 @@ EAPI Elua_State *
 elua_state_new(const char *progname)
 {
    Elua_State *ret = NULL;
+   Eina_Safepointer *sp;
    lua_State *L = luaL_newstate();
    if (!L)
      return NULL;
@@ -77,7 +78,9 @@ elua_state_new(const char *progname)
    ret->luastate = L;
    if (progname) ret->progname = eina_stringshare_add(progname);
    luaL_openlibs(L);
-   lua_pushlightuserdata(L, ret);
+   sp = (Eina_Safepointer *)eina_safepointer_register(ret);
+   ret->sp = sp;
+   lua_pushlightuserdata(L, sp);
    lua_setfield(L, LUA_REGISTRYINDEX, "elua_ptr");
    return ret;
 }
@@ -106,6 +109,7 @@ elua_state_free(Elua_State *es)
    eina_stringshare_del(es->coredir);
    eina_stringshare_del(es->moddir);
    eina_stringshare_del(es->appsdir);
+   eina_safepointer_unregister(es->sp);
    free(es);
 }
 
@@ -260,7 +264,8 @@ elua_state_from_lua_state_get(lua_State *L)
    lua_getfield(L, LUA_REGISTRYINDEX, "elua_ptr");
    if (!lua_isnil(L, -1))
      {
-        void *st = lua_touserdata(L, -1);
+        Eina_Safepointer *sp = lua_touserdata(L, -1);
+        void *st = eina_safepointer_get(sp);
         lua_pop(L, 1);
         return (Elua_State *)st;
      }
@@ -360,17 +365,16 @@ const luaL_Reg gettextlib[] =
    { "bind_textdomain", _elua_gettext_bind_textdomain },
    { "get_message_language", _elua_get_message_language },
    { "get_localeconv", _elua_get_localeconv },
+#ifdef ENABLE_NLS
+   { "dgettext", dgettext },
+   { "dgettext", dngettext },
+#endif
    { NULL, NULL }
 };
 
 static Eina_Bool
-_elua_state_i18n_setup(const Elua_State *es)
+_elua_state_i18n_setup(Elua_State *es)
 {
-#ifdef ENABLE_NLS
-   char *(*dgettextp)(const char*, const char*) = dgettext;
-   char *(*dngettextp)(const char*, const char*, const char*, unsigned long)
-      = dngettext;
-#endif
    char buf[PATH_MAX];
    EINA_SAFETY_ON_NULL_RETURN_VAL(es, EINA_FALSE);
    EINA_SAFETY_ON_NULL_RETURN_VAL(es->coredir, EINA_FALSE);
@@ -380,12 +384,6 @@ _elua_state_i18n_setup(const Elua_State *es)
      return EINA_FALSE;
    lua_createtable(es->luastate, 0, 0);
    luaL_register(es->luastate, NULL, gettextlib);
-#ifdef ENABLE_NLS
-   lua_pushlightuserdata(es->luastate, *((void**)&dgettextp));
-   lua_setfield(es->luastate, -2, "dgettext");
-   lua_pushlightuserdata(es->luastate, *((void**)&dngettextp));
-   lua_setfield(es->luastate, -2, "dngettext");
-#endif
    lua_call(es->luastate, 1, 0);
    return EINA_TRUE;
 }
diff --git a/src/lib/elua/elua_private.h b/src/lib/elua/elua_private.h
index f4392f604b..1fd955c3ea 100644
--- a/src/lib/elua/elua_private.h
+++ b/src/lib/elua/elua_private.h
@@ -40,6 +40,7 @@ struct _Elua_State
    Eina_List *lmods;
    Eina_List *cmods;
    Eina_List *lincs;
+   Eina_Safepointer *sp;
    int requireref, apploadref;
 };
 
-- 
2.15.0

++++++ 0004-elua-build-fix.patch ++++++


q66 pushed a commit to branch master.

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

commit 40214e16c72fb26e7dbdde0344dc771acc2aaa6b
Author: Daniel Kolesa <d.kol...@osg.samsung.com>
Date:   Fri Nov 24 10:53:27 2017 +0100

    elua: correctly wrap gettext funcs
    
    Now, we cannot directly register funcs defined by a different
    signature than the lua standard (int (*)(lua_State *)) so we
    have to correctly wrap those with proper conversions etc.
---
 src/lib/elua/elua.c               | 33 +++++++++++++++++++++++++++++++--
 src/scripts/elua/core/gettext.lua | 26 +++++++-------------------
 2 files changed, 38 insertions(+), 21 deletions(-)

diff --git a/src/lib/elua/elua.c b/src/lib/elua/elua.c
index 44b5c32c59..3f3654e678 100644
--- a/src/lib/elua/elua.c
+++ b/src/lib/elua/elua.c
@@ -360,14 +360,43 @@ _elua_get_localeconv(lua_State *L)
    return 1;
 };
 
+#ifdef ENABLE_NLS
+static int
+_elua_dgettext(lua_State *L)
+{
+   const char *domain = luaL_checkstring(L, 1);
+   const char *msgid  = luaL_checkstring(L, 2);
+   char *ret = dgettext(domain, msgid);
+   if (!ret)
+     lua_pushnil(L);
+   else
+     lua_pushstring(L, ret);
+   return 1;
+}
+
+static int
+_elua_dngettext(lua_State *L)
+{
+   const char *domain  = luaL_checkstring(L, 1);
+   const char *msgid   = luaL_checkstring(L, 2);
+   const char *plmsgid = luaL_checkstring(L, 3);
+   char *ret = dngettext(domain, msgid, plmsgid, luaL_checklong(L, 4));
+   if (!ret)
+     lua_pushnil(L);
+   else
+     lua_pushstring(L, ret);
+   return 1;
+}
+#endif
+
 const luaL_Reg gettextlib[] =
 {
    { "bind_textdomain", _elua_gettext_bind_textdomain },
    { "get_message_language", _elua_get_message_language },
    { "get_localeconv", _elua_get_localeconv },
 #ifdef ENABLE_NLS
-   { "dgettext", dgettext },
-   { "dgettext", dngettext },
+   { "dgettext", _elua_dgettext },
+   { "dngettext", _elua_dngettext },
 #endif
    { NULL, NULL }
 };
diff --git a/src/scripts/elua/core/gettext.lua 
b/src/scripts/elua/core/gettext.lua
index 96af7d3941..3659b4e043 100644
--- a/src/scripts/elua/core/gettext.lua
+++ b/src/scripts/elua/core/gettext.lua
@@ -1,7 +1,5 @@
 -- elua gettext module
 
-local ffi = require("ffi")
-
 local M = {}
 
 local gettext = ...
@@ -10,12 +8,6 @@ local bind_textdomain         = gettext.bind_textdomain
 local dgettext                = gettext.dgettext
 local dngettext               = gettext.dngettext
 
-if  dgettext then
-    dgettext  = ffi.cast("char *(*)(const char*, const char*)", dgettext)
-    dngettext = ffi.cast("char *(*)(const char*, const char*, const char*, "
-        .. "unsigned long)", dngettext)
-end
-
 local domains = {}
 
 local default_domain
@@ -39,7 +31,6 @@ M.set_default_domain = function(dom)
     return true
 end
 
-local cast, ffistr = ffi.cast, ffi.string
 local floor = math.floor
 local type = type
 
@@ -50,12 +41,11 @@ if dgettext then
             dom   = default_domain
         end
         if not domains[dom] or not msgid then return msgid end
-        local cmsgid = cast("const char*", msgid)
-        local lmsgid = dgettext(dom, cmsgid)
-        if cmsgid == lmsgid then
+        local lmsgid = dgettext(dom, msgid)
+        if msgid == lmsgid then
             return msgid
         end
-        return ffistr(lmsgid)
+        return lmsgid
     end
     M.dgettext = M.gettext
     M.ngettext = function(dom, msgid, plmsgid, n)
@@ -69,15 +59,13 @@ if dgettext then
             if not msgid or n == 1 then return msgid end
             return plmsgid
         end
-        local cmsgid   = cast("const char*", msgid)
-        local cplmsgid = cast("const char*", plmsgid)
-        local lmsgid   = dngettext(dom, cmsgid, cplmsgid, n)
+        local lmsgid = dngettext(dom, msgid, plmsgid, n)
         if n == 1 then
-            if cmsgid == lmsgid then return msgid end
+            if msgid == lmsgid then return msgid end
         else
-            if cplmsgid == lmsgid then return plmsgid end
+            if plmsgid == lmsgid then return plmsgid end
         end
-        return ffistr(lmsgid)
+        return lmsgid
     end
     M.dngettext = M.ngettext
 else

-- 



++++++ efl-1.20.6.tar.xz -> efl-1.20.7.tar.xz ++++++
/work/SRC/openSUSE:Factory/efl/efl-1.20.6.tar.xz 
/work/SRC/openSUSE:Factory/.efl.new/efl-1.20.7.tar.xz differ: char 26, line 1


Reply via email to