This is an automated email from the git hooks/post-receive script.

git pushed a commit to reference refs/pull/146/head
in repository enlightenment.

View the commit online.

commit 0c51c6d2e2d77a03a42382809a6cb6d9d463c9ed
Author: Cedric BAIL <[email protected]>
AuthorDate: Sat Aug 8 18:42:34 2026 -0600

    e_main - add E_MODULE_FORCE_LOAD
    
    Load modules the configuration does not list, by name or by absolute path
    to a .so, comma separated.
    
    Modules otherwise come only from the profile, so exercising one that is
    not in the profile means either editing the user's configuration or
    shipping a profile per scenario. Neither is reasonable for a test harness,
    and both are awkward during development. e_module_new() has always
    accepted an absolute path, so this also makes it possible to pull a module
    straight out of an uninstalled build tree.
    
    Same category as the E_WL_FORCE and E_COMP_ENGINE overrides already read
    at startup. Distinct from E_MODULE_LOAD, which is the crash-recovery
    hand-off in the safe-mode path below it.
    
    Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
    Claude-Session: https://claude.ai/code/session_01FtoiXoSKUmZb6Aix6U3GZS
---
 src/bin/e_main.c | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/src/bin/e_main.c b/src/bin/e_main.c
index aadbaa5f1..9f285b174 100644
--- a/src/bin/e_main.c
+++ b/src/bin/e_main.c
@@ -1770,9 +1770,50 @@ _e_main_modules_load_after(void *d EINA_UNUSED, int type EINA_UNUSED, void *ev E
    return ECORE_CALLBACK_RENEW;
 }
 
+/* E_MODULE_FORCE_LOAD=name[,name...] - load modules the configuration does
+ * not list, by name or by absolute path to a .so.
+ *
+ * For development and testing: it lets a harness pull a module straight out
+ * of an uninstalled build tree without editing the profile, in the same
+ * spirit as the E_WL_FORCE and E_COMP_ENGINE overrides. Distinct from
+ * E_MODULE_LOAD below, which is the crash-recovery hand-off.
+ */
+static void
+_e_main_modules_force_load(void)
+{
+   const char *env;
+   char *dup, *name, *next;
+
+   env = getenv("E_MODULE_FORCE_LOAD");
+   if ((!env) || (!env[0])) return;
+
+   dup = strdup(env);
+   if (!dup) return;
+
+   for (name = dup; name; name = next)
+     {
+        E_Module *m;
+
+        next = strchr(name, ',');
+        if (next) *next++ = 0;
+        while (*name == ' ') name++;
+        if (!*name) continue;
+
+        m = e_module_new(name);
+        if (m && e_module_enable(m))
+          INF("Force-loaded module: %s", name);
+        else
+          ERR("Could not force-load module: %s", name);
+     }
+
+   free(dup);
+}
+
 static void
 _e_main_modules_load(Eina_Bool safe_mode)
 {
+   _e_main_modules_force_load();
+
    if (!safe_mode)
      e_module_all_load();
    else

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to