Commit Graph

73 Commits

Author SHA1 Message Date
Michael BOUCHAUD 29b6b151b1 eio: don't forget to init the list of links. Avoid segfault with eio_dir_copy and maybee(surely) others function
SVN revision: 55848
2011-01-04 16:58:58 +00:00
Michael BOUCHAUD 947b8db665 eio: move 'typedef enum' after 'enum' to compil with g++ (from Mikael Sans)
SVN revision: 55372
2010-12-08 14:35:37 +00:00
Cedric BAIL 3efc7f4f9b * eio: snapidoo too !
SVN revision: 55241
2010-12-04 00:52:40 +00:00
Cedric BAIL e9a8da1455 * eio: define PATH_MAX if not available.
SVN revision: 55230
2010-12-03 22:59:28 +00:00
Cedric BAIL e697938fc2 * eio, ethumb and elementary: snapshot increase.
SVN revision: 54508
2010-11-12 16:03:34 +00:00
Cedric BAIL 581a3c66e2 * eio: fix API to match the rest of the EFL API.
SVN revision: 54504
2010-11-12 14:08:01 +00:00
Cedric BAIL e61f8560ea * ecore: break Ecore_Thread API once and for all to make it consistent.
SVN revision: 54502
2010-11-12 13:28:19 +00:00
Cedric BAIL bdf50e0fc9 * eio: remove not needed file.
SVN revision: 54473
2010-11-11 19:01:52 +00:00
Cedric BAIL 7e9c729ce2 * eio: fix recursion by detecting link and recreating them.
SVN revision: 54123
2010-11-03 12:35:21 +00:00
Cedric BAIL 058deb3c1f * eio: add eio_file_stat_ls.
SVN revision: 54106
2010-11-02 17:08:00 +00:00
Cedric BAIL eb4cd21f0c * eina: remove dirent so apps don't rely on non portable code.
SVN revision: 54103
2010-11-02 15:11:05 +00:00
Cedric BAIL 57aa3f4147 * eio: fix shadow symbol.
SVN revision: 54033
2010-10-30 12:06:21 +00:00
Carsten Haitzler 46abf6fc81 use new type member.
SVN revision: 54018
2010-10-30 05:59:39 +00:00
Cedric BAIL 61bb247e13 * eio: oops forgotten file.
SVN revision: 53990
2010-10-29 13:06:58 +00:00
Cedric BAIL 09d09fe0ce * eio: inline accessor.
SVN revision: 53988
2010-10-29 12:58:04 +00:00
Cedric BAIL 9b279fa367 * eio: break Eio error callback API to match the rest of the API.
SVN revision: 53986
2010-10-29 12:36:43 +00:00
Cedric BAIL feffc8fd02 * eio: more doxy fix.
SVN revision: 53966
2010-10-28 16:09:17 +00:00
Cedric BAIL b519dad7b4 * eio: fix doc.
SVN revision: 53964
2010-10-28 15:57:48 +00:00
Cedric BAIL c0cf78da54 * eio: add small helper.
SVN revision: 53962
2010-10-28 14:50:24 +00:00
Cedric BAIL a5abd3d320 * eio: add eio_file_ls() tutorial.
SVN revision: 53915
2010-10-27 12:30:12 +00:00
Vincent Torri 9c5ce8345e [eio] add check on some functions (will be used later) and
add native win32 mutex code.

Question: with pthread, if a mutex is initialized with
PTHREAD_MUTEX_INITIALIZER, should it be destroyed  with
pthread_mutex_destroy() ?

SVN revision: 53772
2010-10-22 16:44:30 +00:00
Cedric BAIL 318a56c004 * eio: fix eio.pc
SVN revision: 53762
2010-10-22 11:54:54 +00:00
Vincent Torri c2d941930c [eio] check if threads, grp.h and fchmod() are available
SVN revision: 53723
2010-10-21 17:51:21 +00:00
Vincent Torri ab84f4da58 [eio] _GNU_SOURCE already defined in config.h
SVN revision: 53721
2010-10-21 17:18:35 +00:00
Vincent Torri 600053d7a9 [eio] improve documentation layout and add a tutorial for
eio_dir_copy()

SVN revision: 53704
2010-10-21 05:03:23 +00:00
Vincent Torri 3a5d43ea9c [eio] reorganize code like eina, clean up doc
SVN revision: 53688
2010-10-20 19:17:30 +00:00
Vincent Torri 6b588fbef6 [eio] exclude eio_private.h from the doc
SVN revision: 53687
2010-10-20 17:57:17 +00:00
Vincent Torri 964ce60666 [eio] take into account eio.dox
SVN revision: 53686
2010-10-20 17:54:27 +00:00
Cedric BAIL 06ea9c415d * eio: add eio_file_chmod and eio_file_chown.
SVN revision: 53678
2010-10-20 16:42:45 +00:00
Cedric BAIL da9d9f4e89 * eio: improve doc.
SVN revision: 53673
2010-10-20 14:44:45 +00:00
Cedric BAIL ff69a72f47 * eio: add eio_dir_unlink.
SVN revision: 53664
2010-10-20 13:48:13 +00:00
Cedric BAIL 80cbbc23a7 * eio: more doxy fix.
SVN revision: 53658
2010-10-20 12:20:06 +00:00
Cedric BAIL ab4a53f091 * eio: add eio_dir_move.
SVN revision: 53657
2010-10-20 12:09:58 +00:00
Cedric BAIL 10ff95e654 * eio: small doxy fix.
SVN revision: 53656
2010-10-20 12:08:56 +00:00
Cedric BAIL f3b720812e * e, eio: fix ecore_thread_run breakage.
SVN revision: 53371
2010-10-13 17:46:02 +00:00
Cedric BAIL 75577ee618 * eio: remove unecessary call.
SVN revision: 53365
2010-10-13 16:45:45 +00:00
Cedric BAIL a1c4588d64 * eio: fix use of ecore_thread_*run.
SVN revision: 53348
2010-10-13 10:59:33 +00:00
Gustavo Sverzut Barbieri c30d8f6af6 init threads as we use them!
SVN revision: 53342
2010-10-13 06:14:56 +00:00
Gustavo Sverzut Barbieri 83270f5f45 seems that the other way was not enough.
I was still reaching uninitialized usage and it does make sense, as
the parent thread could be postponed until the new is started, then
the scanner/worker thread hits an error (ie: directory permission
denied) and it is cancelled before the main thread had time to get the
thread attribution (common->thread).

I'd like someone to look at it. Probably this is NOT the right way to
fix. Likely what we should do is send a "ready! start working" command
from the main thread to the worker thread and avoid such thing.


==5848== Conditional jump or move depends on uninitialised value(s)
==5848==    at 0x42808CD: ecore_thread_cancel (ecore_thread.c:534)
==5848==    by 0x4238558: eio_file_thread_error (eio_single.c:35)
==5848==    by 0x42368FC: _eio_file_direct_heavy (eio_file.c:78)
==5848==    by 0x42800F3: _ecore_feedback_job (ecore_thread.c:247)
==5848==    by 0x4280398: _ecore_thread_worker (ecore_thread.c:317)
==5848==    by 0x41FE16AE: start_thread (in /lib/libpthread-2.11.2.so)
==5848==    by 0x41F3295D: clone (in /lib/libc-2.11.2.so)
==5848==  Uninitialised value was created by a heap allocation
==5848==    at 0x400793F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==5848==    by 0x4237991: eio_file_direct_ls (eio_file.c:566)
==5848==    by 0x8051C81: ephoto_directory_thumb_add (ephoto_directory_thumb.c:131)
==5848==    by 0x804D4AB: _ephoto_thumb_dir_icon_get (ephoto_thumb_browser.c:75)
==5848==    by 0x405F4C8: _item_realize (elm_gengrid.c:807)
==5848==    by 0x405FE77: _item_place (elm_gengrid.c:980)
==5848==    by 0x40610F6: _pan_calculate (elm_gengrid.c:1199)
==5848==    by 0x418CA38: evas_call_smarts_calculate (evas_object_smart.c:843)
==5848==    by 0x41B23B2: evas_render_updates_internal (evas_render.c:971)
==5848==    by 0x41B3DA1: evas_render_updates (evas_render.c:1414)
==5848==    by 0x42E4550: _ecore_evas_x_render (ecore_evas_x.c:406)
==5848==    by 0x42DDD2C: _ecore_evas_idle_enter (ecore_evas.c:47)




SVN revision: 53340
2010-10-13 05:33:16 +00:00
Gustavo Sverzut Barbieri d037d75281 fix unitialized error.
==17972== Use of uninitialised value of size 4
==17972==    at 0x42918DB: ecore_thread_cancel (ecore_thread.c:536)
==17972==    by 0x4249558: eio_file_thread_error (eio_single.c:35)
==17972==    by 0x42478FC: _eio_file_direct_heavy (eio_file.c:78)
==17972==    by 0x42910F3: _ecore_feedback_job (ecore_thread.c:247)
==17972==    by 0x4291398: _ecore_thread_worker (ecore_thread.c:317)
==17972==    by 0x41FE16AE: start_thread (in /lib/libpthread-2.11.2.so)
==17972==    by 0x41F3295D: clone (in /lib/libc-2.11.2.so)
==17972==  Uninitialised value was created by a heap allocation
==17972==    at 0x400793F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==17972==    by 0x4248991: eio_file_direct_ls (eio_file.c:566)
==17972==    by 0x8050B8E: ephoto_directory_thumb_add (ephoto_directory_thumb.c:127)
==17972==    by 0x4061570: _item_realize (elm_gengrid.c:807)
==17972==    by 0x4061E27: _item_place (elm_gengrid.c:980)
==17972==    by 0x4062875: _pan_calculate (elm_gengrid.c:1199)
==17972==    by 0x419DA38: evas_call_smarts_calculate (evas_object_smart.c:843)
==17972==    by 0x41C33B2: evas_render_updates_internal (evas_render.c:971)
==17972==    by 0x41C4DA1: evas_render_updates (evas_render.c:1414)
==17972==    by 0x42F5550: _ecore_evas_x_render (ecore_evas_x.c:406)
==17972==    by 0x42EED2C: _ecore_evas_idle_enter (ecore_evas.c:47)
==17972==    by 0x428C85F: _ecore_idle_enterer_call (ecore_idle_enterer.c:129)




SVN revision: 53336
2010-10-13 03:56:24 +00:00
Carsten Haitzler 8cde3d4ba6 ok... bad eio hackers. you know setting things like gnu_source and
file_offset_bits .. CHANGES the size of structs like dirent? so if u
do it differently in different c files... u end up with.. GASP
different structs with different sizes! dont do this. unify everything
into eio_private.h so its at least CONSISTENT for eio's internals.



SVN revision: 53322
2010-10-13 00:26:12 +00:00
Vincent Torri 0304666261 improve doc. Now, cedric, it's up to you :p
SVN revision: 53308
2010-10-12 14:59:30 +00:00
Vincent Torri 933bac3a3a add doc support
SVN revision: 53265
2010-10-11 17:18:39 +00:00
Cedric BAIL cb8d2cf2f9 * eio: improve allocation code for eio_file_direct_ls.
SVN revision: 53262
2010-10-11 12:40:20 +00:00
Gustavo Sverzut Barbieri 98e0d9f009 safer and louder about errors.
SVN revision: 53204
2010-10-08 20:14:21 +00:00
Eduardo de Barros Lima 9910581b1c Eio: No need to #define _GNU_SOURCE
SVN revision: 53165
2010-10-07 21:06:54 +00:00
Cedric BAIL 71ae9cd4e5 * eio: reduce code duplication.
SVN revision: 53094
2010-10-06 09:54:00 +00:00
Cedric BAIL 96172a4066 * eio: fix coding style, the other way.
SVN revision: 53071
2010-10-05 16:57:51 +00:00
Cedric BAIL b3d7e3423f * eio: add eio_dir_copy.
Little example on how to use it :
#include <Ecore.h>
#include <Eio.h>

static void
_test_notify_cb(void *data, const Eio_Progress *info)
{
   switch (info->op)
     {
      case EIO_FILE_COPY:
         printf("[%s] %f%%\n", info->dest, info->percent);
         break;
      case EIO_DIR_COPY:
         printf("global [%li/%li] %f%%\n", info->current, info->max, info->percent);
         break;
     }
}

static void
_test_done_cb(void *data)
{
   printf("copy done\n");
   ecore_main_loop_quit();
}

static void
_test_error_cb(int error, void *data)
{
   fprintf(stderr, "error: [%s]\n", strerror(error));
   ecore_main_loop_quit();
}

int
main(int argc, char **argv)
{
   Eio_File *cp;

   if (argc != 3)
     {
        fprintf(stderr, "eio_cp source_file destination_file\n");
        return -1;
     }

   ecore_init();
   eio_init();

   cp = eio_dir_copy(argv[1], argv[2],
                     _test_notify_cb,
                     _test_done_cb,
                     _test_error_cb,
                     NULL);

   ecore_main_loop_begin();

   eio_shutdown();
   ecore_shutdown();

   return 0;
}

	NOTE: be aware that it's your duty to provide the "right target".
	Meaning that copying to '.' will copy the content directly inside
	'.' and not in a subdirectory.


SVN revision: 53069
2010-10-05 16:46:41 +00:00
Cedric BAIL f352ce15bc * eio: follow efl coding style.
SVN revision: 53066
2010-10-05 15:58:19 +00:00