q66 pushed a commit to branch master.

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

commit d27c27528c2bb640f2e0c01249aeeb8a4a143679
Author: Daniel Kolesa <[email protected]>
Date:   Mon Aug 8 14:38:08 2016 +0100

    elua: load modules from local dirs first
    
    This fixes cases when running scripts locally - local modules
    are preferred over systemwide, avoiding possibly outdated system
    scripts from being run.
---
 src/lib/elua/elua.c | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/src/lib/elua/elua.c b/src/lib/elua/elua.c
index f537663..185f592 100644
--- a/src/lib/elua/elua.c
+++ b/src/lib/elua/elua.c
@@ -499,28 +499,33 @@ _elua_module_system_init(lua_State *L)
    const char       *modpath  = es->moddir;
    const char       *appspath = es->appsdir;
    Eina_Stringshare *data     = NULL;
-   int n = 4;
    if (!corepath || !modpath || !appspath)
      return 0;
    lua_pushvalue(L, 1);
    es->requireref = luaL_ref(L, LUA_REGISTRYINDEX);
    lua_pushvalue(L, 2);
    es->apploadref = luaL_ref(L, LUA_REGISTRYINDEX);
-   lua_pushfstring(L, "%s/?.lua;", corepath);
+
+   /* module path, local directories take priority */
+   int n = 0;
+   lua_pushvalue(L, 3); ++n;
+   lua_pushfstring(L, ";%s/?.lua", corepath); ++n;
    EINA_LIST_FREE(es->lincs, data)
      {
-        lua_pushfstring(L, "%s/?.lua;", data);
+        lua_pushfstring(L, ";%s/?.lua", data);
         eina_stringshare_del(data);
         ++n;
      }
-   lua_pushfstring(L, "%s/?.eo.lua;", modpath);
-   lua_pushfstring(L, "%s/?.lua;", modpath);
-   lua_pushfstring(L, "%s/?.lua;", appspath);
-   lua_pushvalue(L, 3);
-   lua_concat(L, n + 1);
-   lua_pushfstring(L, "%s/?.lua;", appspath);
+   lua_pushfstring(L, ";%s/?.eo.lua", modpath); ++n;
+   lua_pushfstring(L, ";%s/?.lua", modpath); ++n;
+   lua_pushfstring(L, ";%s/?.lua", appspath); ++n;
+   lua_concat(L, n);
+
+   /* apps path, local directory takes priority as well */
    lua_pushvalue(L, 4);
+   lua_pushfstring(L, ";%s/?.lua", appspath);
    lua_concat(L, 2);
+
    return 2;
 }
 

-- 


Reply via email to