<?xml version="1.0"?>
<statsTarget><link>http://cia.vc/stats/project/e/ecore</link><counters><counter name="forever" lastEventTime="1329142940" firstEventTime="1265415624">1689</counter><counter name="lastMonth" lastEventTime="1327881642" firstEventTime="1325543954">77</counter><counter name="thisMonth" lastEventTime="1329142940" firstEventTime="1328090362">28</counter><counter name="lastWeek" lastEventTime="1329056831" firstEventTime="1328517183">21</counter><counter name="yesterday" lastEventTime="1329142940" firstEventTime="1329128181">2</counter><counter name="thisWeek" lastEventTime="1329142940" firstEventTime="1329128181">2</counter></counters><metadata><item name="subtitle"><value type="text/plain">Enlightenment's core event abstraction layer and OS abstraction layer</value></item><item name="description"><value type="text/plain">Ecore is a clean and tiny event loop library with many modules to do
lots of convenient things for a programmer, to save time and effort.

It's small and lean, designed to work on embedded systems all the way
to large and powerful multi-cpu workstations. It serialises all system
signals, events etc. into a single event queue, that is easily
processed without needing to worry about concurrency. A properly
written, event-driven program using this kind of programming doesn't
need threads, nor has to worry about concurrency. It turns a program
into a state machine, and makes it very robust and easy to follow.

Ecore gives you other handy primitives, such as timers to tick over
for you and call specified functions at particular times so the
programmer can use this to do things, like animate, or time out on
connections or tasks that take too long etc.

Idle handlers are provided too, as well as calls on entering an idle
state (often a very good time to update the state of the program). All
events that enter the system are passed to specific callback functions
that the program sets up to handle those events. Handling them is
simple and other Ecore modules produce more events on the queue,
coming from other sources such as file descriptors etc.

Ecore also lets you have functions called when file descriptors become
active for reading or writing, allowing for streamlined, non-blocking
IO.

Ecore may provide (if enabled) the following libraries:

 * ecore: main loop, signals, and base;

 * ecore_con: http/ftp (curl) access;

 * ecore_file: easy file manipulation (copy, move, symlink, remove),
   monitoring and directory (mkdir, mkdir -p, rm -fr);

 * ecore_txt: text charset conversion (iconv wrapper);

 * ecore_evas: integrates &lt;pkg&gt;media-libs/evas&lt;/pkg&gt; into different
   input and output systems, providing easy to use canvas;

 * ecore_x, ecore_sdl, ecore_quartz, ecore_directfb, ecore_win32,
   ecore_wince, ecore_fb: access to different input/output systems,
   mapping them to ecore main loop and events;

 * ecore_imf, ecore_imf_evas: input-method framework used to integrate
   with different input methods such as virtual keyboards;

 * ecore_input, ecore_input_evas: abstraction of input events.
</value></item><item name="links-filter"><value type="text/plain">None</value></item><item name="title"><value type="text/plain">Ecore</value></item><item name="url"><value type="text/plain">http://trac.enlightenment.org/e/wiki/Ecore</value></item><item name="related-filter"><value type="text/plain">None</value></item></metadata><recentMessages><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67878</revision><author>jihoon</author><log>scim_immodule: improve maintenability  </log><diffLines>50</diffLines><url>http://trac.enlightenment.org/e/changeset/67878</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/modules/immodules/scim/scim_imcontext.cpp">src/modules/immodules/scim/scim_imcontext.cpp</file></files></commit></body><timestamp>1329142940</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67874</revision><author>raster</author><log>From: 윤정현 &lt;jh0506.yun@samsung.com&gt;
Subject: Re: [E-devel] [Patch] ecore_ipc - remove potential risk in
ecore_ipc_shutdown

I found a problem this infinite loop case.

If server is deleted, then ECORE_IPC_EVENT_SERVER_DEL callback
function will be called in client side.
It will happen infinite loop in ecore_ipc_shutdown if
ecore_ipc_shutdown called in this ECORE_IPC_EVENT_SERVER_DEL callback
function.

For example,
server_del_handler =
ecore_event_handler_add(ECORE_IPC_EVENT_SERVER_DEL, _server_del_cb, NULL);
static Eina_Bool
_server_del_cb(void *data, int type, void *event)
{
   ecore_ipc_shutdown();
   return EINA_TRUE;
 }
      
If server is deleted,
1. _ecore_ipc_event_server_del : svr-&gt;event_count++
2. _server_del_cb : ecore_ipc_shutdown called
3. ecore_ipc_shutdown : while (servers) ecore_ipc_server_del(eina_list_data_get(servers))
4. ecore_ipc_server_del : can't eina_list_remove(servers, svr) because event_count != 0
5. infinite loop

I think this while code is very dangerous whether user miss or not.
I modified EINA_LIST_FOREACH_SAFE instead of EINA_LIST_FOREACH refer
to ecore_con.
Please review this patch.   </log><diffLines>18</diffLines><url>http://trac.enlightenment.org/e/changeset/67874</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_ipc/ecore_ipc.c">src/lib/ecore_ipc/ecore_ipc.c</file></files></commit></body><timestamp>1329128181</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67852</revision><author>jihoon</author><log>scim_immodule: set cursor location even though only client_window is provided without evas (ecore_imf_context_client_canvas_set)  </log><diffLines>65</diffLines><url>http://trac.enlightenment.org/e/changeset/67852</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/modules/immodules/scim/scim_imcontext.cpp">src/modules/immodules/scim/scim_imcontext.cpp</file></files></commit></body><timestamp>1329056828</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67825</revision><author>rfonseca</author><log>Ecore_Evas_Cocoa: fix header include name.   </log><diffLines>15</diffLines><url>http://trac.enlightenment.org/e/changeset/67825</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_evas/ecore_evas_cocoa.c">src/lib/ecore_evas/ecore_evas_cocoa.c</file></files></commit></body><timestamp>1328892779</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67820</revision><author>devilhorns</author><log>Ecore: Add ChangeLog entries for new ecore_evas_wayland function.   </log><diffLines>14</diffLines><url>http://trac.enlightenment.org/e/changeset/67820</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/ChangeLog">ChangeLog</file></files></commit></body><timestamp>1328882557</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67819</revision><author>devilhorns</author><log>Ecore_Evas (wayland): Disable logfn's (again) :( Remove extra parens.   </log><diffLines>29</diffLines><url>http://trac.enlightenment.org/e/changeset/67819</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c">src/lib/ecore_evas/ecore_evas_wayland_egl.c</file><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c">src/lib/ecore_evas/ecore_evas_wayland_shm.c</file></files></commit></body><timestamp>1328882490</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67816</revision><author>devilhorns</author><log>Ecore_Evas: Add functions for setting wayland mouse pointer (used from
elm wayland clients).   </log><diffLines>125</diffLines><url>http://trac.enlightenment.org/e/changeset/67816</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_evas/Ecore_Evas.h">src/lib/ecore_evas/Ecore_Evas.h</file><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_evas/ecore_evas.c">src/lib/ecore_evas/ecore_evas.c</file><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_evas/ecore_evas_private.h">src/lib/ecore_evas/ecore_evas_private.h</file><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c">src/lib/ecore_evas/ecore_evas_wayland_egl.c</file><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c">src/lib/ecore_evas/ecore_evas_wayland_shm.c</file></files></commit></body><timestamp>1328877699</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67801</revision><author>jihoon</author><log>scim_immmodule: Provide compose, string in key down/up event in case of scim-input-pad.  </log><diffLines>29</diffLines><url>http://trac.enlightenment.org/e/changeset/67801</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/ChangeLog">ChangeLog</file><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/modules/immodules/scim/scim_imcontext.cpp">src/modules/immodules/scim/scim_imcontext.cpp</file></files></commit></body><timestamp>1328844500</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67782</revision><author>devilhorns</author><log>Ecore_Wl: Add function in header.   </log><diffLines>14</diffLines><url>http://trac.enlightenment.org/e/changeset/67782</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_wayland/Ecore_Wayland.h">src/lib/ecore_wayland/Ecore_Wayland.h</file></files></commit></body><timestamp>1328787679</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67781</revision><author>devilhorns</author><log>Ecore_Wl: Also send mouse move before sending mouse down/up. Add some
missing Logfn's. Add handler to free the mouse_move event when we're
done with it. Add a function to retrieve the 'last mouse button down
time' (needed for fixing surface move).   </log><diffLines>173</diffLines><url>http://trac.enlightenment.org/e/changeset/67781</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_wayland/ecore_wl.c">src/lib/ecore_wayland/ecore_wl.c</file></files></commit></body><timestamp>1328787583</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67780</revision><author>devilhorns</author><log>Ecore_Evas (Wayland): Fix getting double mouse events for the wayland
engines.

NB: Fixes elementary momentum scrolling.   </log><diffLines>374</diffLines><url>http://trac.enlightenment.org/e/changeset/67780</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c">src/lib/ecore_evas/ecore_evas_wayland_egl.c</file><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c">src/lib/ecore_evas/ecore_evas_wayland_shm.c</file></files></commit></body><timestamp>1328787431</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67779</revision><author>jihoon</author><log>ecore_imf_context.c: fix formatting  </log><diffLines>89</diffLines><url>http://trac.enlightenment.org/e/changeset/67779</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_imf/ecore_imf_context.c">src/lib/ecore_imf/ecore_imf_context.c</file></files></commit></body><timestamp>1328771849</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67777</revision><author>discomfitor</author><log>add new curl function to news  </log><diffLines>14</diffLines><url>http://trac.enlightenment.org/e/changeset/67777</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/NEWS">NEWS</file></files></commit></body><timestamp>1328760899</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67774</revision><author>discomfitor</author><log>@since from @67759  </log><diffLines>34</diffLines><url>http://trac.enlightenment.org/e/changeset/67774</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_con/Ecore_Con.h">src/lib/ecore_con/Ecore_Con.h</file></files></commit></body><timestamp>1328754146</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67772</revision><author>discomfitor</author><log>fix compile without curl from @67759, also add missing magic check
SPANK SPANK SPANK RASTER  </log><diffLines>33</diffLines><url>http://trac.enlightenment.org/e/changeset/67772</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_con/ecore_con_url.c">src/lib/ecore_con/ecore_con_url.c</file></files></commit></body><timestamp>1328748602</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67768</revision><author>tasn</author><log>Ecore tests: Disable ecore_x tests in the meanwhile.

They are currently useless and just cause buildbot to complain. </log><diffLines>17</diffLines><url>http://trac.enlightenment.org/e/changeset/67768</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/tests/ecore_test_ecore_x.c">src/tests/ecore_test_ecore_x.c</file></files></commit></body><timestamp>1328732054</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67759</revision><author>raster</author><log>add ecore_con_url_http_version_set() to be able to specify request
version   </log><diffLines>93</diffLines><url>http://trac.enlightenment.org/e/changeset/67759</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/ChangeLog">ChangeLog</file><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_con/Ecore_Con.h">src/lib/ecore_con/Ecore_Con.h</file><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_con/ecore_con_url.c">src/lib/ecore_con/ecore_con_url.c</file></files></commit></body><timestamp>1328719754</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67728</revision><author>jihoon</author><log>Support ecore_imf_context_input_panel_show/hide in SCIM module  </log><diffLines>100</diffLines><url>http://trac.enlightenment.org/e/changeset/67728</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/ChangeLog">ChangeLog</file><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/modules/immodules/scim/scim_imcontext.cpp">src/modules/immodules/scim/scim_imcontext.cpp</file><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/modules/immodules/scim/scim_imcontext.h">src/modules/immodules/scim/scim_imcontext.h</file><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/modules/immodules/scim/scim_module.cpp">src/modules/immodules/scim/scim_module.cpp</file></files></commit></body><timestamp>1328622864</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67727</revision><author>jihoon</author><log>ecore_imf_xim: Support ecore_imf_context_input_panel_show/hide in XIM module.  </log><diffLines>91</diffLines><url>http://trac.enlightenment.org/e/changeset/67727</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/ChangeLog">ChangeLog</file><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/modules/immodules/xim/ecore_imf_xim.c">src/modules/immodules/xim/ecore_imf_xim.c</file></files></commit></body><timestamp>1328621629</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.20</version></generator><source><project>e</project><module>ecore</module></source><body><commit><revision>67723</revision><author>jihoon</author><log>Ecore_IMF.h: fix wrong documentation about Ecore_IMF_Preedit_Attr  </log><diffLines>17</diffLines><url>http://trac.enlightenment.org/e/changeset/67723</url><files><file action="modify" uri="http://svn.enlightenment.org/svn/e/trunk/ecore/src/lib/ecore_imf/Ecore_IMF.h">src/lib/ecore_imf/Ecore_IMF.h</file></files></commit></body><timestamp>1328594031</timestamp></message></recentMessages></statsTarget>
