Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src


Modified Files:
      Tag: SPLIT
        ecore.c ecore_exe.c ecore_main.c ecore_private.h 


Log Message:


update

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Attic/ecore.c,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -3 -r1.1.2.1 -r1.1.2.2
--- ecore.c     13 Jan 2003 00:25:19 -0000      1.1.2.1
+++ ecore.c     13 Jan 2003 07:40:13 -0000      1.1.2.2
@@ -14,6 +14,7 @@
 int
 ecore_init(void)
 {
+   _ecore_signal_init();
 }
 
 /**
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Attic/ecore_exe.c,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -3 -r1.1.2.3 -r1.1.2.4
--- ecore_exe.c 13 Jan 2003 00:34:59 -0000      1.1.2.3
+++ ecore_exe.c 13 Jan 2003 07:40:13 -0000      1.1.2.4
@@ -3,6 +3,7 @@
 
 #include <sys/types.h>
 #include <signal.h>
+#include <unistd.h>
 
 /**
  * Spawn off a child process and return a handle to that process
@@ -22,6 +23,26 @@
 Ecore_Exe *
 ecore_exe_run(char *exe_cmd, void *data)
 {
+   Ecore_Exe *exe;
+   pid_t pid;
+   
+   pid = fork();   
+   if (pid)
+     {
+       exe = calloc(1, sizeof(Ecore_Exe));
+       if (!exe)
+         {
+            kill(pid, SIGKILL);
+            return NULL;
+         }
+       exe->pid = pid;
+       exe->data = data;
+       return exe;
+     }
+   setsid();
+   execl("/bin/sh", "/bin/sh", "-c", exe_cmd, NULL);
+   exit(0);
+   return NULL;
 }
 
 /**
@@ -34,6 +55,7 @@
 pid_t
 ecore_exe_pid_get(Ecore_Exe *exe)
 {
+   return exe->pid;
 }
 
 /**
@@ -47,6 +69,7 @@
 void *
 ecore_exe_data_get(Ecore_Exe *exe)
 {
+   return exe->data;
 }
 
 /**
@@ -82,9 +105,8 @@
 void
 ecore_exe_terminate(Ecore_Exe *exe)
 {
-   kill(exe->pid, SIGQUIT);
+   kill(exe->pid, SIGTERM);
 }
-
 
 /**
  * Control an executed child
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Attic/ecore_main.c,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -3 -r1.1.2.2 -r1.1.2.3
--- ecore_main.c        13 Jan 2003 00:25:19 -0000      1.1.2.2
+++ ecore_main.c        13 Jan 2003 07:40:13 -0000      1.1.2.3
@@ -114,9 +114,7 @@
        /* process signals into events .... */
        if (have_signal)
          {
-            /* FIXME: implement signal -> event converters here */
-            /* FIXME: need ecore_signal.c for setup of signal handlers */
-            /* and signal counters, wait() loop etc. */
+            while (_ecore_signal_count_get()) _ecore_signal_call();
          }
        
        /* filter events to remove useless ones etc. ... */
@@ -260,6 +258,7 @@
             if (fd_handlers[i].fd > max_fd) max_fd = fd_handlers[i].fd;
          }
      }
+   if (_ecore_signal_count_get()) return -1;
    ret = select(max_fd + 1, &rfds, &wfds, NULL, t);
    if (ret < 0)
      {
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/Attic/ecore_private.h,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -3 -r1.1.2.2 -r1.1.2.3
--- ecore_private.h     13 Jan 2003 00:25:19 -0000      1.1.2.2
+++ ecore_private.h     13 Jan 2003 07:40:13 -0000      1.1.2.3
@@ -91,4 +91,9 @@
 int           _ecore_event_count_get(void);
 Ecore_Event  *_ecore_event_get(int num);
 void          _ecore_event_call(void);
+
+void          _ecore_signal_init(void);
+int           _ecore_signal_count_get(void);
+void          _ecore_signal_call(void);
+    
 #endif




-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to