Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/ecore

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


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


Log Message:


allow tagging of exe's

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/Ecore.h,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -3 -r1.25 -r1.26
--- Ecore.h     6 Sep 2005 19:26:19 -0000       1.25
+++ Ecore.h     28 Sep 2005 13:09:09 -0000      1.26
@@ -175,16 +175,18 @@
        
        
 #ifndef WIN32
-   EAPI Ecore_Exe *ecore_exe_run(const char *exe_cmd, const void *data);
-   EAPI void      *ecore_exe_free(Ecore_Exe *exe);
-   EAPI pid_t      ecore_exe_pid_get(Ecore_Exe *exe);
-   EAPI void      *ecore_exe_data_get(Ecore_Exe *exe);
-   EAPI void       ecore_exe_pause(Ecore_Exe *exe);
-   EAPI void       ecore_exe_continue(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 Ecore_Exe  *ecore_exe_run(const char *exe_cmd, const void *data);
+   EAPI void       *ecore_exe_free(Ecore_Exe *exe);
+   EAPI pid_t       ecore_exe_pid_get(Ecore_Exe *exe);
+   EAPI void        ecore_exe_tag_set(Ecore_Exe *exe, const char *tag);
+   EAPI char       *ecore_exe_tag_get(Ecore_Exe *exe);
+   EAPI void       *ecore_exe_data_get(Ecore_Exe *exe);
+   EAPI void        ecore_exe_pause(Ecore_Exe *exe);
+   EAPI void        ecore_exe_continue(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);
 #endif
        
    EAPI Ecore_Idler *ecore_idler_add(int (*func) (void *data), const void 
*data);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/ecore_exe.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- ecore_exe.c 6 Sep 2005 23:10:24 -0000       1.10
+++ ecore_exe.c 28 Sep 2005 13:09:09 -0000      1.11
@@ -53,6 +53,49 @@
 }
 
 /**
+ * Sets the string tag for the given process handle
+ *
+ * @param   exe The given process handle.
+ * @param   tag The string tag to set on the process handle.
+ * @ingroup Ecore_Exe_Basic_Group
+ */
+void
+ecore_exe_tag_set(Ecore_Exe *exe, const char *tag)
+{
+   if (!ECORE_MAGIC_CHECK(exe, ECORE_MAGIC_EXE))
+     {
+       ECORE_MAGIC_FAIL(exe, ECORE_MAGIC_EXE,
+                        "ecore_exe_tag_set");
+       return NULL;
+     }
+   if (exe->tag) free(exe->tag);
+   exe->tag = NULL;
+   if (tag) exe->tag = strdup(tag);
+}
+
+/**
+ * Retrieves the tag attached to the given process handle. There is no need to
+ * free it as it just returns the internal pointer value. This value is only
+ * valid as long as the @p exe is valid or until the tag is set to something
+ * else on this @p exe.
+ * 
+ * @param   exe The given process handle.
+ * @return  The string attached to @p exe.
+ * @ingroup Ecore_Exe_Basic_Group
+ */
+char *
+ecore_exe_tag_get(Ecore_Exe *exe)
+{
+   if (!ECORE_MAGIC_CHECK(exe, ECORE_MAGIC_EXE))
+     {
+       ECORE_MAGIC_FAIL(exe, ECORE_MAGIC_EXE,
+                        "ecore_exe_tag_get");
+       return NULL;
+     }
+   return exe->tag;
+}
+
+/**
  * Frees the given process handle.
  *
  * Note that the process that the handle represents is unaffected by this
@@ -253,6 +296,7 @@
    data = exe->data;
    exes = _ecore_list2_remove(exes, exe);
    ECORE_MAGIC_SET(exe, ECORE_MAGIC_NONE);
+   if (exe->tag) free(exe->tag);
    free(exe);
    return data;
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/ecore_private.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- ecore_private.h     6 Sep 2005 19:26:19 -0000       1.18
+++ ecore_private.h     28 Sep 2005 13:09:09 -0000      1.19
@@ -137,6 +137,7 @@
    ECORE_MAGIC;
    pid_t        pid;
    void        *data;
+   char        *tag;
 };
 #endif
 




-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to