Enlightenment CVS committal

Author  : onefang
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/lib/ecore


Modified Files:
        Ecore.h ecore_exe.c ecore_private.h 


Log Message:
New flag to allow forcing the use of /bin/sh to execute the command.

===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore/Ecore.h,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -3 -r1.47 -r1.48
--- Ecore.h     24 Jan 2006 13:58:18 -0000      1.47
+++ Ecore.h     5 Apr 2006 18:05:16 -0000       1.48
@@ -92,7 +92,8 @@
    ECORE_EXE_PIPE_READ_LINE_BUFFERED = 8, /**< Reads are buffered until a 
newline and delivered 1 event per line */
    ECORE_EXE_PIPE_ERROR_LINE_BUFFERED = 16, /**< Errors are buffered until a 
newline and delivered 1 event per line */
    ECORE_EXE_PIPE_AUTO = 32, /**< stdout and stderr are buffered automatically 
*/
-   ECORE_EXE_RESPAWN = 64 /**< FIXME: Exe is restarted if it dies */
+   ECORE_EXE_RESPAWN = 64, /**< FIXME: Exe is restarted if it dies */
+   ECORE_EXE_USE_SH = 128 /**< Use /bin/sh to run the command. */
      };
    typedef enum _Ecore_Exe_Flags Ecore_Exe_Flags;
    
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore/ecore_exe.c,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -3 -r1.57 -r1.58
--- ecore_exe.c 1 Mar 2006 05:05:58 -0000       1.57
+++ ecore_exe.c 5 Apr 2006 18:05:16 -0000       1.58
@@ -11,7 +11,7 @@
    char               *cmd;
 };
 
-static inline void  _ecore_exe_exec_it(const char *exe_cmd);
+static inline void  _ecore_exe_exec_it(const char *exe_cmd, Ecore_Exe_Flags 
flags);
 
 static int          _ecore_exe_data_generic_handler(void *data,
                                                    Ecore_Fd_Handler *
@@ -228,7 +228,7 @@
        exes = _ecore_list2_append(exes, exe);
        return exe;
      }
-   _ecore_exe_exec_it(exe_cmd);
+   _ecore_exe_exec_it(exe_cmd, 0);
    exit(127);
    return NULL;
 #else
@@ -355,7 +355,7 @@
                  E_IF_NO_ERRNO(result, fcntl(statusPipe[1], F_SETFD, 
FD_CLOEXEC), ok)  /* close on exec shows sucess */
                  {
                     /* Run the actual command. */
-                    _ecore_exe_exec_it(exe_cmd);       /* Should not return 
from this. */
+                    _ecore_exe_exec_it(exe_cmd, flags);        /* Should not 
return from this. */
                  }
               }
 
@@ -1147,7 +1147,7 @@
 }
 
 static inline void
-_ecore_exe_exec_it(const char *exe_cmd)
+_ecore_exe_exec_it(const char *exe_cmd, Ecore_Exe_Flags flags)
 {
    char                use_sh = 1;
    char               *buf = NULL;
@@ -1213,7 +1213,12 @@
      }
 
    setsid();
-   if (use_sh)
+   if ((flags & ECORE_EXE_USE_SH))
+   {
+       errno = 0;
+       execl("/bin/sh", "/bin/sh", "-c", exe_cmd, (char *)NULL);
+   }
+   else if (use_sh)
      {                         /* We have to use a shell to run this. */
        if (shell == NULL)
          {                     /* Find users preferred shell. */
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore/ecore_private.h,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -3 -r1.40 -r1.41
--- ecore_private.h     14 Feb 2006 12:54:26 -0000      1.40
+++ ecore_private.h     5 Apr 2006 18:05:16 -0000       1.41
@@ -157,7 +157,8 @@
    ECORE_EXE_PIPE_READ_LINE_BUFFERED = 8,
    ECORE_EXE_PIPE_ERROR_LINE_BUFFERED = 16,
    ECORE_EXE_PIPE_AUTO = 32,
-   ECORE_EXE_RESPAWN = 64
+   ECORE_EXE_RESPAWN = 64,
+   ECORE_EXE_USE_SH = 128
    /* FIXME: Getting respawn to work
     *
     * There is no way that we can do anything about the internal state info of




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to