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