It's already done in other libs such as evas, edje, eina, ...

And ecore has missing documentations on the website due to this.
http://docs.enlightenment.org/auto/ecore/
Compare this with Evas documentation.
http://docs.enlightenment.org/auto/evas/

You know, it will take time for my changes to be affected in website.

Thanks.
Daniel Juyung Seo (SeoZ)

On Tue, May 24, 2011 at 8:35 PM, Vincent Torri <[email protected]> wrote:
>
>
> On Tue, 24 May 2011, Enlightenment SVN wrote:
>
>> Log:
>> Ecore: Moved ecore.dox.in to Ecore.h header.
>
> why did you do that ?
>
> Vincent
>
>>
>>
>> Author:       seoz
>> Date:         2011-05-24 04:31:32 -0700 (Tue, 24 May 2011)
>> New Revision: 59651
>> Trac:         http://trac.enlightenment.org/e/changeset/59651
>>
>> Modified:
>>  trunk/ecore/doc/ecore.dox.in trunk/ecore/src/lib/ecore/Ecore.h
>>
>> Modified: trunk/ecore/doc/ecore.dox.in
>> ===================================================================
>> --- trunk/ecore/doc/ecore.dox.in      2011-05-24 11:23:58 UTC (rev 59650)
>> +++ trunk/ecore/doc/ecore.dox.in      2011-05-24 11:31:32 UTC (rev 59651)
>> @@ -1,283 +0,0 @@
>> -/**
>> -@brief Ecore Library Public API Calls
>> -
>> -These routines are used for Ecore Library interaction
>> -*/
>> -
>> -/**
>> -
>> -@mainpage Ecore
>> -
>> -@image html  e.png
>> -
>> -@version @PACKAGE_VERSION@
>> -@author Carsten Haitzler <[email protected]>
>> -@author Tom Gilbert <[email protected]>
>> -@author Burra <[email protected]>
>> -@author Chris Ross <[email protected]>
>> -@author Term <[email protected]>
>> -@author Tilman Sauerbeck <[email protected]>
>> -@author Ibukun Olumuyiwa <[email protected]>
>> -@author Yuri <[email protected]>
>> -@author Nicholas Curran <[email protected]>
>> -@author Howell Tam <[email protected]>
>> -@author Nathan Ingersoll <[email protected]>
>> -@author Andrew Elcock <[email protected]>
>> -@author Kim Woelders <[email protected]>
>> -@author Sebastian Dransfeld <[email protected]>
>> -@author Simon Poole <[email protected]>
>> -@author Jorge Luis Zapata Muga <[email protected]>
>> -@author dan sinclair <[email protected]>
>> -@author Michael 'Mickey' Lauer <[email protected]>
>> -@author David 'onefang' Seikel <[email protected]>
>> -@author Hisham 'CodeWarrior' Mardam Bey <[email protected]>
>> -@author Brian 'rephorm' Mattern <[email protected]>
>> -@author Tim Horton <[email protected]>
>> -@author Arnaud de Turckheim 'quarium' <[email protected]>
>> -@author Matt Barclay <[email protected]>
>> -@author Peter Wehrfritz <[email protected]>
>> -@author Albin "Lutin" Tonnerre <[email protected]>
>> -@author Vincent Torri <[email protected]>
>> -@author Lars Munch <[email protected]>
>> -@author Andre Dieb <[email protected]>
>> -@author Mathieu Taillefumier <[email protected]>
>> -@author Rui Miguel Silva Seabra <[email protected]>
>> -@author Samsung Electronics
>> -@author Samsung SAIT
>> -@author Nicolas Aguirre <[email protected]>
>> -@author Brett Nash <[email protected]>
>> -@author Mike Blumenkrantz <[email protected]>
>> -@author Leif Middelschulte <[email protected]>
>> -@author Mike McCormack <[email protected]>
>> -@author Sangho Park <[email protected]>
>> -@author Jihoon Kim <[email protected]> <[email protected]>
>> -@author Daniel Juyung Seo <[email protected]> <[email protected]>
>> -@date 2000-2011
>> -
>> -@section intro Introduction
>> -
>> -Ecore is a library of convenience functions.
>> -
>> -The Ecore library provides the following modules:
>> -@li @ref Ecore_Group
>> -@li @ref Ecore_File_Group
>> -@li @ref Ecore_Con_Group
>> -@li @link Ecore_Evas.h   Ecore_Evas - Evas convenience functions. @endlink
>> -@li @ref Ecore_FB_Group
>> -@li @link Ecore_Ipc.h    Ecore_IPC - Inter Process Communication functions. 
>> @endlink
>> -@li @link Ecore_X.h      Ecore_X - X Windows System wrapper. @endlink
>> -@li @ref Ecore_Win32_Group
>> -@li @ref Ecore_WinCE_Group
>> -
>> -@section compiling How to compile using Ecore?
>> -pkgconfig (.pc) files are installed for every ecore module.
>> -Thus, to compile using any of them, you can use something like the 
>> following:
>> -
>> -@verbatim
>> -gcc *.c $(pkg-config ecore ecore-$x ecore-$y [...] --cflags --libs)
>> -@endverbatim
>> -
>> -@section install How is it installed?
>> -
>> -Suggested configure options for evas for a Linux desktop X display:
>> -
>> -@verbatim
>> -./configure \
>> ---enable-ecore-x \
>> ---enable-ecore-fb \
>> ---enable-ecore-evas \
>> ---enable-ecore-evas-gl \
>> ---enable-ecore-con \
>> ---enable-ecore-ipc
>> -make CFLAGS="-O9 -mpentiumpro -march=pentiumpro -mcpu=pentiumpro"
>> -@endverbatim
>> -
>> -@todo (1.0) Document API
>> -
>> -/*
>> -@page Ecore_Main_Loop_Page The Ecore Main Loop
>> -
>> -@section intro What is Ecore?
>> -
>> -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.
>> -
>> -Here is an example of a simple program and its basic event loop flow:
>> -
>> -@image html  prog_flow.png
>> -
>> -
>> -
>> -@section work How does Ecore work?
>> -
>> -Ecore is very easy to learn and use. All the function calls are designed to
>> -be easy to remember, explicit in describing what they do, and heavily
>> -name-spaced. Ecore programs can start and be very simple.
>> -
>> -For example:
>> -
>> -@code
>> -#include <Ecore.h>
>> -
>> -int main(int argc, const char **argv)
>> -{
>> -  ecore_init();
>> -  ecore_app_args_set(argc, argv);
>> -  ecore_main_loop_begin();
>> -  ecore_shutdown();
>> -  return 0;
>> -}
>> -@endcode
>> -
>> -This program is very simple and does't check for errors, but it does start 
>> up
>> -and begin a main loop waiting for events or timers to tick off. This program
>> -doesn't set up any, but now we can expand on this simple program a little
>> -more by adding some event handlers and timers.
>> -
>> -@code
>> -#include <Ecore.h>
>> -
>> -Ecore_Timer         *timer1     = NULL;
>> -Ecore_Event_Handler *handler1   = NULL;
>> -double               start_time = 0.0;
>> -
>> -int timer_func(void *data)
>> -{
>> -  printf("Tick timer. Sec: %3.2f\n", ecore_time_get() - start_time);
>> -  return 1;
>> -}
>> -
>> -int exit_func(void *data, int ev_type, void *ev)
>> -{
>> -  Ecore_Event_Signal_Exit *e;
>> -
>> -  e = (Ecore_Event_Signal_Exit *)ev;
>> -  if (e->interrupt)      printf("Exit: interrupt\n");
>> -  else if (e->quit)      printf("Exit: quit\n");
>> -  else if (e->terminate) printf("Exit: terminate\n");
>> -  ecore_main_loop_quit();
>> -  return 1;
>> -}
>> -
>> -int main(int argc, const char **argv)
>> -{
>> -  ecore_init();
>> -  ecore_app_args_set(argc, argv);
>> -  start_time = ecore_time_get();
>> -  handler1 = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, exit_func, 
>> NULL);
>> -  timer1 = ecore_timer_add(0.5, timer_func, NULL);
>> -  ecore_main_loop_begin();
>> -  ecore_shutdown();
>> -  return 0;
>> -}
>> -@endcode
>> -
>> -In the previous example, we initialize our application and get the time at
>> -which our program has started so we can calculate an offset. We set
>> -up a timer to tick off in 0.5 seconds, and since it returns 1, will
>> -keep ticking off every 0.5 seconds until it returns 0, or is deleted
>> -by hand. An event handler is set up to call a function - exit_func(),
>> -whenever an event of type ECORE_EVENT_SIGNAL_EXIT is received (CTRL-C
>> -on the command line will cause such an event to happen). If this event
>> -occurs it tells you what kind of exit signal was received, and asks
>> -the main loop to quit when it is finished by calling
>> -ecore_main_loop_quit().
>> -
>> -The handles returned by ecore_timer_add() and ecore_event_handler_add() are
>> -only stored here as an example. If you don't need to address the timer or
>> -event handler again you don't need to store the result, so just call the
>> -function, and don't assign the result to any variable.
>> -
>> -This program looks slightly more complex than needed to do these simple
>> -things, but in principle, programs don't get any more complex. You add more
>> -event handlers, for more events, will have more timers and such, BUT it all
>> -follows the same principles as shown in this example.
>> -
>> -*/
>> -
>> -/*
>> -@page Ecore_Config_Page The Enlightened Property Library
>> -
>> -The Enlightened Property Library (Ecore_Config) is an adbstraction
>> -from the complexities of writing your own configuration. It provides
>> -many features using the Enlightenment 17 development libraries.
>> -
>> -To use the library, you:
>> -@li Set the default values of your properties.
>> -@li Load the configuration from a file.  You must set the default values
>> -    first, so that the library knows the correct type of each argument.
>> -
>> -The following examples show how to use the Enlightened Property Library:
>> -@li @link config_basic_example.c config_basic_example.c @endlink
>> -@li @link config_listener_example.c config_listener_example.c @endlink
>> -
>> -*/
>> -
>> -/**
>> -@page X_Window_System_Page X Window System
>> -
>> -The Ecore library includes a wrapper for handling the X window system.
>> -This page briefly explains what the X window system is and various terms
>> -that are used.
>> -*/
>> -
>> -// EXAMPLES
>> -
>> -/**
>> -@example ecore_args_example.c
>> -Shows how to set and retrieve the program arguments.
>> -*/
>> -
>> -/**
>> -@example ecore_event_handler_example.c
>> -Shows how to use event handlers.
>> -*/
>> -
>> -/**
>> -@example ecore_fd_handler_example.c
>> -Shows how to use fd handlers.
>> -*/
>> -
>> -/**
>> -@example ecore_timer_example.c
>> -Demonstrates use of the ecore_timer.
>> -*/
>> -
>> -/*
>> -@example ecore_config_basic_example.c
>> -Provides an example of how to use the basic configuration functions.
>> -See the file Ecore_Config.h for the full list of available functions.
>> -*/
>> -
>> -/*
>> -@example ecore_config_listener_example.c
>> -Shows how to set up a listener to listen for configuration changes.
>> -*/
>> -
>> -/**
>> -@example ecore_x_window_example.c
>> -Shows the basics of using the X Windows system through Ecore functions.
>> -*/
>>
>> Modified: trunk/ecore/src/lib/ecore/Ecore.h
>> ===================================================================
>> --- trunk/ecore/src/lib/ecore/Ecore.h 2011-05-24 11:23:58 UTC (rev 59650)
>> +++ trunk/ecore/src/lib/ecore/Ecore.h 2011-05-24 11:31:32 UTC (rev 59651)
>> @@ -1,3 +1,288 @@
>> +/**
>> +@brief Ecore Library Public API Calls
>> +
>> +These routines are used for Ecore Library interaction
>> +*/
>> +
>> +/**
>> +
>> +@mainpage Ecore
>> +
>> +@image html  e.png
>> +
>> +@version @PACKAGE_VERSION@
>> +@author Carsten Haitzler <[email protected]>
>> +@author Tom Gilbert <[email protected]>
>> +@author Burra <[email protected]>
>> +@author Chris Ross <[email protected]>
>> +@author Term <[email protected]>
>> +@author Tilman Sauerbeck <[email protected]>
>> +@author Ibukun Olumuyiwa <[email protected]>
>> +@author Yuri <[email protected]>
>> +@author Nicholas Curran <[email protected]>
>> +@author Howell Tam <[email protected]>
>> +@author Nathan Ingersoll <[email protected]>
>> +@author Andrew Elcock <[email protected]>
>> +@author Kim Woelders <[email protected]>
>> +@author Sebastian Dransfeld <[email protected]>
>> +@author Simon Poole <[email protected]>
>> +@author Jorge Luis Zapata Muga <[email protected]>
>> +@author dan sinclair <[email protected]>
>> +@author Michael 'Mickey' Lauer <[email protected]>
>> +@author David 'onefang' Seikel <[email protected]>
>> +@author Hisham 'CodeWarrior' Mardam Bey <[email protected]>
>> +@author Brian 'rephorm' Mattern <[email protected]>
>> +@author Tim Horton <[email protected]>
>> +@author Arnaud de Turckheim 'quarium' <[email protected]>
>> +@author Matt Barclay <[email protected]>
>> +@author Peter Wehrfritz <[email protected]>
>> +@author Albin "Lutin" Tonnerre <[email protected]>
>> +@author Vincent Torri <[email protected]>
>> +@author Lars Munch <[email protected]>
>> +@author Andre Dieb <[email protected]>
>> +@author Mathieu Taillefumier <[email protected]>
>> +@author Rui Miguel Silva Seabra <[email protected]>
>> +@author Samsung Electronics
>> +@author Samsung SAIT
>> +@author Nicolas Aguirre <[email protected]>
>> +@author Brett Nash <[email protected]>
>> +@author Mike Blumenkrantz <[email protected]>
>> +@author Leif Middelschulte <[email protected]>
>> +@author Mike McCormack <[email protected]>
>> +@author Sangho Park <[email protected]>
>> +@author Jihoon Kim <[email protected]> <[email protected]>
>> +@author Daniel Juyung Seo <[email protected]> <[email protected]>
>> +@date 2000-2011
>> +
>> +@section intro Introduction
>> +
>> +Ecore is a library of convenience functions.
>> +
>> +The Ecore library provides the following modules:
>> +@li @ref Ecore_Group
>> +@li @ref Ecore_File_Group
>> +@li @ref Ecore_Con_Group
>> +@li @link Ecore_Evas.h   Ecore_Evas - Evas convenience functions. @endlink
>> +@li @ref Ecore_FB_Group
>> +@li @link Ecore_Ipc.h    Ecore_IPC - Inter Process Communication functions. 
>> @endlink
>> +@li @link Ecore_X.h      Ecore_X - X Windows System wrapper. @endlink
>> +@li @ref Ecore_Win32_Group
>> +@li @ref Ecore_WinCE_Group
>> +
>> +@section compiling How to compile using Ecore?
>> +pkgconfig (.pc) files are installed for every ecore module.
>> +Thus, to compile using any of them, you can use something like the 
>> following:
>> +
>> +@verbatim
>> +gcc *.c $(pkg-config ecore ecore-$x ecore-$y [...] --cflags --libs)
>> +@endverbatim
>> +
>> +@section install How is it installed?
>> +
>> +Suggested configure options for evas for a Linux desktop X display:
>> +
>> +@verbatim
>> +./configure \
>> +--enable-ecore-x \
>> +--enable-ecore-fb \
>> +--enable-ecore-evas \
>> +--enable-ecore-evas-gl \
>> +--enable-ecore-con \
>> +--enable-ecore-ipc
>> +make CFLAGS="-O9 -mpentiumpro -march=pentiumpro -mcpu=pentiumpro"
>> +@endverbatim
>> +
>> +@todo (1.0) Document API
>> +*/
>> +
>> +/*
>> +@page Ecore_Main_Loop_Page The Ecore Main Loop
>> +
>> +@section intro What is Ecore?
>> +
>> +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.
>> +
>> +Here is an example of a simple program and its basic event loop flow:
>> +
>> +@image html  prog_flow.png
>> +
>> +
>> +
>> +@section work How does Ecore work?
>> +
>> +Ecore is very easy to learn and use. All the function calls are designed to
>> +be easy to remember, explicit in describing what they do, and heavily
>> +name-spaced. Ecore programs can start and be very simple.
>> +
>> +For example:
>> +
>> +@code
>> +#include <Ecore.h>
>> +
>> +int main(int argc, const char **argv)
>> +{
>> +  ecore_init();
>> +  ecore_app_args_set(argc, argv);
>> +  ecore_main_loop_begin();
>> +  ecore_shutdown();
>> +  return 0;
>> +}
>> +@endcode
>> +
>> +This program is very simple and does't check for errors, but it does start 
>> up
>> +and begin a main loop waiting for events or timers to tick off. This program
>> +doesn't set up any, but now we can expand on this simple program a little
>> +more by adding some event handlers and timers.
>> +
>> +@code
>> +#include <Ecore.h>
>> +
>> +Ecore_Timer         *timer1     = NULL;
>> +Ecore_Event_Handler *handler1   = NULL;
>> +double               start_time = 0.0;
>> +
>> +int timer_func(void *data)
>> +{
>> +  printf("Tick timer. Sec: %3.2f\n", ecore_time_get() - start_time);
>> +  return 1;
>> +}
>> +
>> +int exit_func(void *data, int ev_type, void *ev)
>> +{
>> +  Ecore_Event_Signal_Exit *e;
>> +
>> +  e = (Ecore_Event_Signal_Exit *)ev;
>> +  if (e->interrupt)      printf("Exit: interrupt\n");
>> +  else if (e->quit)      printf("Exit: quit\n");
>> +  else if (e->terminate) printf("Exit: terminate\n");
>> +  ecore_main_loop_quit();
>> +  return 1;
>> +}
>> +
>> +int main(int argc, const char **argv)
>> +{
>> +  ecore_init();
>> +  ecore_app_args_set(argc, argv);
>> +  start_time = ecore_time_get();
>> +  handler1 = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, exit_func, 
>> NULL);
>> +  timer1 = ecore_timer_add(0.5, timer_func, NULL);
>> +  ecore_main_loop_begin();
>> +  ecore_shutdown();
>> +  return 0;
>> +}
>> +@endcode
>> +
>> +In the previous example, we initialize our application and get the time at
>> +which our program has started so we can calculate an offset. We set
>> +up a timer to tick off in 0.5 seconds, and since it returns 1, will
>> +keep ticking off every 0.5 seconds until it returns 0, or is deleted
>> +by hand. An event handler is set up to call a function - exit_func(),
>> +whenever an event of type ECORE_EVENT_SIGNAL_EXIT is received (CTRL-C
>> +on the command line will cause such an event to happen). If this event
>> +occurs it tells you what kind of exit signal was received, and asks
>> +the main loop to quit when it is finished by calling
>> +ecore_main_loop_quit().
>> +
>> +The handles returned by ecore_timer_add() and ecore_event_handler_add() are
>> +only stored here as an example. If you don't need to address the timer or
>> +event handler again you don't need to store the result, so just call the
>> +function, and don't assign the result to any variable.
>> +
>> +This program looks slightly more complex than needed to do these simple
>> +things, but in principle, programs don't get any more complex. You add more
>> +event handlers, for more events, will have more timers and such, BUT it all
>> +follows the same principles as shown in this example.
>> +
>> +*/
>> +
>> +/*
>> +@page Ecore_Config_Page The Enlightened Property Library
>> +
>> +The Enlightened Property Library (Ecore_Config) is an adbstraction
>> +from the complexities of writing your own configuration. It provides
>> +many features using the Enlightenment 17 development libraries.
>> +
>> +To use the library, you:
>> +@li Set the default values of your properties.
>> +@li Load the configuration from a file.  You must set the default values
>> +    first, so that the library knows the correct type of each argument.
>> +
>> +The following examples show how to use the Enlightened Property Library:
>> +@li @link config_basic_example.c config_basic_example.c @endlink
>> +@li @link config_listener_example.c config_listener_example.c @endlink
>> +
>> +*/
>> +
>> +/**
>> +@page X_Window_System_Page X Window System
>> +
>> +The Ecore library includes a wrapper for handling the X window system.
>> +This page briefly explains what the X window system is and various terms
>> +that are used.
>> +*/
>> +
>> +// EXAMPLES
>> +
>> +/**
>> +@example ecore_args_example.c
>> +Shows how to set and retrieve the program arguments.
>> +*/
>> +
>> +/**
>> +@example ecore_event_handler_example.c
>> +Shows how to use event handlers.
>> +*/
>> +
>> +/**
>> +@example ecore_fd_handler_example.c
>> +Shows how to use fd handlers.
>> +*/
>> +
>> +/**
>> +@example ecore_timer_example.c
>> +Demonstrates use of the ecore_timer.
>> +*/
>> +
>> +/*
>> +@example ecore_config_basic_example.c
>> +Provides an example of how to use the basic configuration functions.
>> +See the file Ecore_Config.h for the full list of available functions.
>> +*/
>> +
>> +/*
>> +@example ecore_config_listener_example.c
>> +Shows how to set up a listener to listen for configuration changes.
>> +*/
>> +
>> +/**
>> +@example ecore_x_window_example.c
>> +Shows the basics of using the X Windows system through Ecore functions.
>> +*/
>> +
>> #ifndef _ECORE_H
>> #define _ECORE_H
>>
>>
>>
>> ------------------------------------------------------------------------------
>> vRanger cuts backup time in half-while increasing security.
>> With the market-leading solution for virtual backup and recovery,
>> you get blazing-fast, flexible, and affordable data protection.
>> Download your free trial now.
>> http://p.sf.net/sfu/quest-d2dcopy1
>> _______________________________________________
>> enlightenment-svn mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
>>
>>
>
> ------------------------------------------------------------------------------
> vRanger cuts backup time in half-while increasing security.
> With the market-leading solution for virtual backup and recovery,
> you get blazing-fast, flexible, and affordable data protection.
> Download your free trial now.
> http://p.sf.net/sfu/quest-d2dcopy1
> _______________________________________________
> enlightenment-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>

------------------------------------------------------------------------------
vRanger cuts backup time in half-while increasing security.
With the market-leading solution for virtual backup and recovery, 
you get blazing-fast, flexible, and affordable data protection.
Download your free trial now. 
http://p.sf.net/sfu/quest-d2dcopy1
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to