Index: ecore_exe.c
===================================================================
--- ecore_exe.c	(revision 58688)
+++ ecore_exe.c	(working copy)
@@ -1152,87 +1152,98 @@
 /**
  * Pauses the given process by sending it a @c SIGSTOP signal.
  * @param   exe Process handle to the given process.
+ * @return 0 on success, -1 otherwise.
  */
-EAPI void
+EAPI int
 ecore_exe_pause(Ecore_Exe *exe)
 {
    if (!ECORE_MAGIC_CHECK(exe, ECORE_MAGIC_EXE))
      {
         ECORE_MAGIC_FAIL(exe, ECORE_MAGIC_EXE, "ecore_exe_pause");
-        return;
+        return -1;
      }
-   kill(exe->pid, SIGSTOP);
+
+   return kill(exe->pid, SIGSTOP);
 }
 
 /**
  * Continues the given paused process by sending it a @c SIGCONT signal.
  * @param   exe Process handle to the given process.
+ * @return 0 on success, -1 otherwise.
  */
-EAPI void
+EAPI int
 ecore_exe_continue(Ecore_Exe *exe)
 {
    if (!ECORE_MAGIC_CHECK(exe, ECORE_MAGIC_EXE))
      {
         ECORE_MAGIC_FAIL(exe, ECORE_MAGIC_EXE, "ecore_exe_continue");
-        return;
+        return -1;
      }
-   kill(exe->pid, SIGCONT);
+
+   return kill(exe->pid, SIGCONT);
 }
 
 /**
  * Sends the given spawned process a interrupt (@c SIGINT) signal.
  * @param   exe Process handle to the given process.
+ * @return 0 on success, -1 otherwise.
  */
-EAPI void
+EAPI int
 ecore_exe_interrupt(Ecore_Exe *exe)
 {
    if (!ECORE_MAGIC_CHECK(exe, ECORE_MAGIC_EXE))
      {
         ECORE_MAGIC_FAIL(exe, ECORE_MAGIC_EXE, "ecore_exe_interrupt");
-        return;
+        return -1;
      }
    _ecore_exe_dead_attach(exe);
-   kill(exe->pid, SIGINT);
+
+   return kill(exe->pid, SIGINT);
 }
 
 /**
  * Sends the given spawned process a quit (@c SIGQUIT) signal.
  * @param   exe Process handle to the given process.
+ * @return 0 on success, -1 otherwise.
  */
-EAPI void
+EAPI int
 ecore_exe_quit(Ecore_Exe *exe)
 {
    if (!ECORE_MAGIC_CHECK(exe, ECORE_MAGIC_EXE))
      {
         ECORE_MAGIC_FAIL(exe, ECORE_MAGIC_EXE, "ecore_exe_quit");
-        return;
+        return -1;
      }
    _ecore_exe_dead_attach(exe);
-   kill(exe->pid, SIGQUIT);
+
+   return kill(exe->pid, SIGQUIT);
 }
 
 /**
  * Sends the given spawned process a terminate (@c SIGTERM) signal.
  * @param   exe Process handle to the given process.
+ * @return 0 on success, -1 otherwise.
  */
-EAPI void
+EAPI int
 ecore_exe_terminate(Ecore_Exe *exe)
 {
    if (!ECORE_MAGIC_CHECK(exe, ECORE_MAGIC_EXE))
      {
         ECORE_MAGIC_FAIL(exe, ECORE_MAGIC_EXE, "ecore_exe_terminate");
-        return;
+        return -1;
      }
    _ecore_exe_dead_attach(exe);
    INF("Sending TERM signal to %s (%d).", exe->cmd, exe->pid);
-   kill(exe->pid, SIGTERM);
+
+   return kill(exe->pid, SIGTERM);
 }
 
 /**
  * Kills the given spawned process by sending it a @c SIGKILL signal.
  * @param   exe Process handle to the given process.
+ * @return 0 on success, -1 otherwise.
  */
-EAPI void
+EAPI int
 ecore_exe_kill(Ecore_Exe *exe)
 {
    struct _ecore_exe_dead_exe *dead;
@@ -1240,7 +1251,7 @@
    if (!ECORE_MAGIC_CHECK(exe, ECORE_MAGIC_EXE))
      {
         ECORE_MAGIC_FAIL(exe, ECORE_MAGIC_EXE, "ecore_exe_kill");
-        return;
+        return -1;
      }
 
    dead = calloc(1, sizeof(struct _ecore_exe_dead_exe));
@@ -1254,7 +1265,8 @@
      }
 
    INF("Sending KILL signal to %s (%d).", exe->cmd, exe->pid);
-   kill(exe->pid, SIGKILL);
+
+   return kill(exe->pid, SIGKILL);
 }
 
 /**
@@ -1262,34 +1274,38 @@
  * @param   exe Process handle to the given process.
  * @param   num The number user signal to send.  Must be either 1 or 2, or
  *              the signal will be ignored.
+ * @return 0 on success, -1 otherwise.
  */
-EAPI void
+EAPI int
 ecore_exe_signal(Ecore_Exe *exe, int num)
 {
    if (!ECORE_MAGIC_CHECK(exe, ECORE_MAGIC_EXE))
      {
         ECORE_MAGIC_FAIL(exe, ECORE_MAGIC_EXE, "ecore_exe_signal");
-        return;
+        return -1;
      }
-   if (num == 1)
-      kill(exe->pid, SIGUSR1);
-   else if (num == 2)
-      kill(exe->pid, SIGUSR2);
+
+   if (num != 1 && num != 2)
+       return 0; /* XXX : Should fail instead? */
+
+   return kill(exe->pid, num == 1 ? SIGUSR1 : SIGUSR2);
 }
 
 /**
  * Sends a @c SIGHUP signal to the given spawned process.
  * @param   exe Process handle to the given process.
+ * @return 0 on success, -1 otherwise.
  */
-EAPI void
+EAPI int
 ecore_exe_hup(Ecore_Exe *exe)
 {
    if (!ECORE_MAGIC_CHECK(exe, ECORE_MAGIC_EXE))
      {
         ECORE_MAGIC_FAIL(exe, ECORE_MAGIC_EXE, "ecore_exe_hup");
-        return;
+        return -1;
      }
-   kill(exe->pid, SIGHUP);
+
+   return kill(exe->pid, SIGHUP);
 }
 
 /**
Index: Ecore.h
===================================================================
--- Ecore.h	(revision 58688)
+++ Ecore.h	(working copy)
@@ -398,14 +398,14 @@
    EAPI const char *ecore_exe_cmd_get(const Ecore_Exe *exe);
    EAPI void       *ecore_exe_data_get(const Ecore_Exe *exe);
    EAPI Ecore_Exe_Flags ecore_exe_flags_get(const Ecore_Exe *exe);
-   EAPI void        ecore_exe_pause(Ecore_Exe *exe);
-   EAPI void        ecore_exe_continue(Ecore_Exe *exe);
-   EAPI void        ecore_exe_interrupt(Ecore_Exe *exe);
-   EAPI void        ecore_exe_quit(Ecore_Exe *exe);
-   EAPI void        ecore_exe_terminate(Ecore_Exe *exe);
-   EAPI void        ecore_exe_kill(Ecore_Exe *exe);
-   EAPI void        ecore_exe_signal(Ecore_Exe *exe, int num);
-   EAPI void        ecore_exe_hup(Ecore_Exe *exe);
+   EAPI int         ecore_exe_pause(Ecore_Exe *exe);
+   EAPI int         ecore_exe_continue(Ecore_Exe *exe);
+   EAPI int         ecore_exe_interrupt(Ecore_Exe *exe);
+   EAPI int         ecore_exe_quit(Ecore_Exe *exe);
+   EAPI int         ecore_exe_terminate(Ecore_Exe *exe);
+   EAPI int         ecore_exe_kill(Ecore_Exe *exe);
+   EAPI int         ecore_exe_signal(Ecore_Exe *exe, int num);
+   EAPI int         ecore_exe_hup(Ecore_Exe *exe);
 
   /**
    * @}
