Merge pull request #2055 from Airblader/bug-2044

Remove autostart commands after they have been executed.
This commit is contained in:
Michael Stapelberg 2015-11-02 20:10:53 +01:00
commit 911ce37871
1 changed files with 14 additions and 4 deletions

View File

@ -819,18 +819,28 @@ int main(int argc, char *argv[]) {
/* Autostarting exec-lines */ /* Autostarting exec-lines */
if (autostart) { if (autostart) {
struct Autostart *exec; while (!TAILQ_EMPTY(&autostarts)) {
TAILQ_FOREACH(exec, &autostarts, autostarts) { struct Autostart *exec = TAILQ_FIRST(&autostarts);
LOG("auto-starting %s\n", exec->command); LOG("auto-starting %s\n", exec->command);
start_application(exec->command, exec->no_startup_id); start_application(exec->command, exec->no_startup_id);
FREE(exec->command);
TAILQ_REMOVE(&autostarts, exec, autostarts);
FREE(exec);
} }
} }
/* Autostarting exec_always-lines */ /* Autostarting exec_always-lines */
struct Autostart *exec_always; while (!TAILQ_EMPTY(&autostarts_always)) {
TAILQ_FOREACH(exec_always, &autostarts_always, autostarts_always) { struct Autostart *exec_always = TAILQ_FIRST(&autostarts_always);
LOG("auto-starting (always!) %s\n", exec_always->command); LOG("auto-starting (always!) %s\n", exec_always->command);
start_application(exec_always->command, exec_always->no_startup_id); start_application(exec_always->command, exec_always->no_startup_id);
FREE(exec_always->command);
TAILQ_REMOVE(&autostarts_always, exec_always, autostarts_always);
FREE(exec_always);
} }
/* Start i3bar processes for all configured bars */ /* Start i3bar processes for all configured bars */