Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        E.h hints.c main.c mod-misc.c 


Log Message:
Enable running scripts on startup/restart.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v
retrieving revision 1.359
retrieving revision 1.360
diff -u -3 -r1.359 -r1.360
--- E.h 7 Feb 2005 22:42:07 -0000       1.359
+++ E.h 7 Feb 2005 23:44:57 -0000       1.360
@@ -891,6 +891,8 @@
    {
       char                enable_logout_dialog;
       char                enable_reboot_halt;
+      char               *cmd_init;
+      char               *cmd_start;
       char               *cmd_reboot;
       char               *cmd_halt;
    } session;
@@ -1012,6 +1014,7 @@
       char                window;      /* Running in virtual root window */
       pid_t               master_pid;
       int                 master_screen;
+      char                session_start;
       char                startup;
       char                restart;
       char                xselect;
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/hints.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -3 -r1.30 -r1.31
--- hints.c     23 Jan 2005 18:23:04 -0000      1.30
+++ hints.c     7 Feb 2005 23:44:58 -0000       1.31
@@ -494,6 +494,11 @@
        DesksSetCurrent(*c);
        XFree(c);
      }
+   else
+     {
+       /* Used to test if we should run cmd_init */
+       Mode.wm.session_start = 1;
+     }
 }
 
 void
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/main.c,v
retrieving revision 1.107
retrieving revision 1.108
diff -u -3 -r1.107 -r1.108
--- main.c      22 Jan 2005 11:32:58 -0000      1.107
+++ main.c      7 Feb 2005 23:44:58 -0000       1.108
@@ -56,6 +56,7 @@
 static void         EDirUserSet(const char *dir);
 static void         EDirUserCacheSet(const char *dir);
 static void         EDirsSetup(void);
+static void         RunInitPrograms(void);
 
 int
 main(int argc, char **argv)
@@ -280,6 +281,7 @@
 
    ModulesSignal(ESIGNAL_START, NULL);
 
+   RunInitPrograms();
    SpawnSnappedCmds();
 
    Conf.startup.firsttime = 0;
@@ -296,6 +298,62 @@
    return 1;
 }
 
+static void
+RunDocBrowser(void)
+{
+   char                file[FILEPATH_LEN_MAX];
+
+   Esnprintf(file, sizeof(file), "%s/edox", EDirBin());
+   if (!canexec(file))
+      return;
+   Esnprintf(file, sizeof(file), "%s/E-docs", EDirRoot());
+   if (!canread(file))
+      return;
+
+   if (fork())
+      return;
+
+   Esnprintf(file, sizeof(file), "exec %s/edox %s/E-docs",
+            EDirBin(), EDirRoot());
+
+   execl(usershell(getuid()), usershell(getuid()), "-c", (char *)file, NULL);
+
+   exit(0);
+}
+
+static void
+RunMenuGen(void)
+{
+
+   char                file[FILEPATH_LEN_MAX];
+
+   if (fork())
+      return;
+
+   Esnprintf(file, sizeof(file), "exec %s/scripts/e_gen_menu", EDirRoot());
+   execl(usershell(getuid()), usershell(getuid()), "-c", (char *)file, NULL);
+   exit(0);
+}
+
+static void
+RunInitPrograms(void)
+{
+   if (Mode.wm.session_start)
+     {
+       if (Conf.session.cmd_init && canexec(Conf.session.cmd_init))
+          system(Conf.session.cmd_init);
+     }
+
+   if (Conf.session.cmd_start && canexec(Conf.session.cmd_start))
+      system(Conf.session.cmd_start);
+
+   if (Conf.startup.firsttime && Mode.wm.master)
+     {
+       RunMenuGen();
+       RunDocBrowser();
+     }
+}
+
 void
 EExit(int exitcode)
 {
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/mod-misc.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- mod-misc.c  6 Feb 2005 19:13:33 -0000       1.7
+++ mod-misc.c  7 Feb 2005 23:44:59 -0000       1.8
@@ -83,66 +83,19 @@
 };
 int                 n_modules = sizeof(p_modules) / sizeof(EModule *);
 
-static void
-runDocBrowser(void)
-{
-   char                file[FILEPATH_LEN_MAX];
-
-   Esnprintf(file, sizeof(file), "%s/edox", EDirBin());
-   if (!canexec(file))
-      return;
-   Esnprintf(file, sizeof(file), "%s/E-docs", EDirRoot());
-   if (!canread(file))
-      return;
-
-   if (fork())
-      return;
-
-   Esnprintf(file, sizeof(file), "exec %s/edox %s/E-docs",
-            EDirBin(), EDirRoot());
-
-   execl(usershell(getuid()), usershell(getuid()), "-c", (char *)file, NULL);
-
-   exit(0);
-}
-
-static void
-SetupUserInitialization(void)
-{
-
-   char                file[FILEPATH_LEN_MAX];
-
-   if (!Conf.startup.firsttime)
-      return;
-   if (!Mode.wm.master)
-      return;
-
-   if (fork() == 0)
-     {
-       Esnprintf(file, sizeof(file), "exec %s/scripts/e_gen_menu", EDirRoot());
-       execl(usershell(getuid()), usershell(getuid()), "-c", (char *)file,
-             NULL);
-       exit(0);
-     }
-
-   /* Run edox */
-   runDocBrowser();
-
-   autosave();
-}
-
+#if 0
 static void
 MiscSighan(int sig, void *prm __UNUSED__)
 {
    switch (sig)
      {
      case ESIGNAL_START:
-       SetupUserInitialization();
        break;
      }
 }
+#endif
 
-static const CfgItem cfg_items[] = {
+static const CfgItem MiscCfgItems[] = {
    CFG_ITEM_INT(Conf, backgrounds.hiquality, 1),
    CFG_ITEM_INT(Conf, backgrounds.timeout, 240),
    CFG_ITEM_BOOL(Conf, backgrounds.user, 1),
@@ -179,6 +132,8 @@
 
    CFG_ITEM_BOOL(Conf, session.enable_logout_dialog, 1),
    CFG_ITEM_BOOL(Conf, session.enable_reboot_halt, 0),
+   CFG_ITEM_STR(Conf, session.cmd_init),
+   CFG_ITEM_STR(Conf, session.cmd_start),
    CFG_ITEM_STR(Conf, session.cmd_reboot),
    CFG_ITEM_STR(Conf, session.cmd_halt),
 
@@ -203,7 +158,7 @@
    CFG_ITEM_BOOL(Conf, save_under, 0),
    CFG_ITEM_INT(Conf, edge_flip_resistance, 25),
 };
-#define N_CFG_ITEMS ((int)(sizeof(cfg_items)/sizeof(CfgItem)))
+#define N_CFG_ITEMS ((int)(sizeof(MiscCfgItems)/sizeof(CfgItem)))
 
 static void
 MiscIpcExec(const char *params, Client * c __UNUSED__)
@@ -270,8 +225,8 @@
 /* Stuff not elsewhere */
 EModule             ModMisc = {
    "misc", NULL,
-   MiscSighan,
+   NULL,
    {N_IPC_FUNCS, MiscIpcArray}
    ,
-   {N_CFG_ITEMS, cfg_items}
+   {N_CFG_ITEMS, MiscCfgItems}
 };




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to