applet: on Test, fork after fetching values from config
[espeaktime] / src / applet.c
index 86762a4..e3ff2a7 100644 (file)
@@ -89,13 +89,6 @@ static void do_test(struct espeaktime_settings *cfg)
        int res;
        pid_t pid;
 
-       pid = fork();
-       if (pid < 0) {
-               perror("fork");
-               return;
-       }
-       if (pid)
-               return;
        time(&t);
        tm = localtime(&t);
 
@@ -105,6 +98,14 @@ static void do_test(struct espeaktime_settings *cfg)
        g_snprintf(vstr, sizeof(vstr), "%s%s%s", cfg->voice,
                (*cfg->effect) ? "+" : "", cfg->effect);
        strftime(text, sizeof(text), cfg->text, tm);
+
+       pid = fork();
+       if (pid < 0) {
+               perror("fork");
+               return;
+       }
+       if (pid)
+               return;
        g_print("execlp: -a '%s' -p '%s' -v '%s' '%s'\n",
                astr, pstr, sstr, vstr, text);
        res = execlp(ESPEAK_BIN, ESPEAK_BIN,