Hello guys,
Time to dump all pending patch :) First bunch are small one, with
normally
little effect outside of their file.
- eet_race_memdirect.diff : The most important change is a fix for a race
condition between opening the file and obtaining the file size for the mmap.
It also introduce a new function in EET :
EAPI Eet_File *eet_memopen_read(const void *data, size_t size);
(it give you the possibility to directly open an eet from memory). I did fix
some minor prototype issue with this same patch.
Just a little warning about this patch, it could perhaps break windows
build
as I am not sure I did follow all eet patch related to windows.
- evas_unused.diff : Remove evas_common_draw_context_cutouts_add as its unused
outside of evas_draw_main.c
- expedite.diff : Add support for sdl-16 engine (no need for any external
header or whatever as I use the same engine info structure for both engine).
It also add :
const char *build_path(const char *filename);
This correctly handle a path for all ressource used by the different test.
That's all for the easy part.
Cedric
diff -NrauBb -X exclude.cvs e17-clean/libs/evas/src/lib/engines/common/evas_draw_main.c e17-dev/libs/evas/src/lib/engines/common/evas_draw_main.c
--- e17-clean/libs/evas/src/lib/engines/common/evas_draw_main.c 2007-10-03 23:13:08.000000000 +0200
+++ e17-dev/libs/evas/src/lib/engines/common/evas_draw_main.c 2007-10-02 17:54:57.000000000 +0200
@@ -19,7 +19,7 @@
rects->active = 0;
}
-EAPI Cutout_Rect*
+static Cutout_Rect*
evas_common_draw_context_cutouts_add(Cutout_Rects* rects,
int x, int y, int w, int h)
{
diff -NrauBb -X exclude.cvs e17-clean/libs/eet/src/lib/Eet.h e17-dev/libs/eet/src/lib/Eet.h
--- e17-clean/libs/eet/src/lib/Eet.h 2007-09-28 14:34:06.000000000 +0200
+++ e17-dev/libs/eet/src/lib/Eet.h 2007-09-27 17:22:39.000000000 +0200
@@ -249,7 +249,7 @@
* If the eet file handle is not valid NULL is returned and size_ret is
* filled with 0.
*/
- EAPI void *eet_read_direct (Eet_File *ef, const char *name, int *size_ret);
+ EAPI const void *eet_read_direct(Eet_File *ef, const char *name, int *size_ret);
/**
* Write a specified entry to an eet file handle
diff -NrauBb -X exclude.cvs e17-clean/libs/eet/src/lib/eet_data.c e17-dev/libs/eet/src/lib/eet_data.c
--- e17-clean/libs/eet/src/lib/eet_data.c 2007-10-03 23:13:05.000000000 +0200
+++ e17-dev/libs/eet/src/lib/eet_data.c 2007-10-03 23:13:38.000000000 +0200
@@ -906,7 +906,7 @@
eet_data_read(Eet_File *ef, Eet_Data_Descriptor *edd, const char *name)
{
void *data_dec;
- void *data;
+ const void *data;
int size;
int required_free = 0;
diff -NrauBb -X exclude.cvs e17-clean/libs/eet/src/lib/eet_image.c e17-dev/libs/eet/src/lib/eet_image.c
--- e17-clean/libs/eet/src/lib/eet_image.c 2007-03-20 18:54:12.000000000 +0100
+++ e17-dev/libs/eet/src/lib/eet_image.c 2006-12-20 12:24:26.000000000 +0100
@@ -733,7 +733,7 @@
unsigned int *d = NULL;
int free_data = 0;
- data = eet_read_direct (ef, name, &size);
+ data = (void*) eet_read_direct (ef, name, &size);
if (!data)
{
data = eet_read(ef, name, &size);
@@ -759,7 +759,7 @@
int d;
int free_data = 0;
- data = eet_read_direct (ef, name, &size);
+ data = (void*) eet_read_direct (ef, name, &size);
if (!data)
{
data = eet_read(ef, name, &size);
diff -NrauBb -X exclude.cvs e17-clean/libs/eet/src/lib/eet_lib.c e17-dev/libs/eet/src/lib/eet_lib.c
--- e17-clean/libs/eet/src/lib/eet_lib.c 2007-09-28 14:34:06.000000000 +0200
+++ e17-dev/libs/eet/src/lib/eet_lib.c 2007-10-02 17:36:56.000000000 +0200
@@ -26,7 +26,7 @@
char *path;
FILE *fp;
Eet_File_Header *header;
- unsigned char *data;
+ const unsigned char *data;
int magic;
int references;
@@ -454,142 +454,15 @@
}
}
-EAPI Eet_File *
-eet_open(const char *file, Eet_File_Mode mode)
+static Eet_File*
+eet_internal_read (Eet_File *ef)
{
- Eet_File *ef;
- struct stat file_stat;
-#ifdef _WIN32
- HANDLE h;
-#endif
-
- if (!file)
- return NULL;
-
- /* find the current file handle in cache*/
- ef = NULL;
- if (mode == EET_FILE_MODE_READ)
- {
- ef = eet_cache_find((char *)file, eet_writers, eet_writers_num);
- if (ef)
- {
- eet_flush(ef);
- ef->delete_me_now = 1;
- eet_close(ef);
- }
- ef = eet_cache_find((char *)file, eet_readers, eet_readers_num);
- }
- else if ((mode == EET_FILE_MODE_WRITE) || (mode == EET_FILE_MODE_READ_WRITE))
- {
- ef = eet_cache_find((char *)file, eet_readers, eet_readers_num);
- if (ef)
- {
- ef->delete_me_now = 1;
- eet_close(ef);
- }
- ef = eet_cache_find((char *)file, eet_writers, eet_writers_num);
- }
-
- if (stat(file, &file_stat))
- {
- if (mode == EET_FILE_MODE_WRITE)
- memset(&file_stat, 0, sizeof(file_stat));
- else
- return NULL;
- }
-
- /* We found one */
- if (ef && (file_stat.st_mtime != ef->mtime))
- {
- ef->delete_me_now = 1;
- eet_close(ef);
- ef = NULL;
- }
-
- if (ef)
- {
- /* reference it up and return it */
- ef->references++;
- return ef;
- }
-
- /* Allocate struct for eet file and have it zero'd out */
- ef = malloc(sizeof(Eet_File) + strlen(file) + 1);
- if (!ef)
- return NULL;
-
- /* fill some of the members */
- ef->path = ((char *)ef) + sizeof(Eet_File);
- strcpy(ef->path, file);
- ef->magic = EET_MAGIC_FILE;
- ef->references = 1;
- ef->mode = mode;
- ef->header = NULL;
- ef->mtime = file_stat.st_mtime;
- ef->delete_me_now = 0;
- ef->data = NULL;
- ef->data_size = 0;
-
- /* try open the file based on mode */
- if ((ef->mode == EET_FILE_MODE_READ) || (ef->mode == EET_FILE_MODE_READ_WRITE))
- ef->fp = fopen(ef->path, "rb");
- else
- {
- if (eet_test_close(ef->mode != EET_FILE_MODE_WRITE, ef))
- return NULL;
- else
- {
- /* opening for write - delete old copy of file right away */
- unlink(ef->path);
- ef->fp = fopen(ef->path, "wb");
- }
- }
-
- /* if we can't open - bail out */
- if (eet_test_close(!ef->fp, ef))
- return NULL;
-
-#ifndef _WIN32
- fcntl(fileno(ef->fp), F_SETFD, FD_CLOEXEC);
-#else
- /* FIXME: check if that code is needed / correct */
- h = (HANDLE) _get_osfhandle (fileno(ef->fp));
- if (h == (HANDLE) -1)
- return NULL;
- SetHandleInformation (h, HANDLE_FLAG_INHERIT, 0);
-#endif
- /* if we opened for read or read-write */
- if ((mode == EET_FILE_MODE_READ) || (mode == EET_FILE_MODE_READ_WRITE))
- {
- unsigned char *dyn_buf = NULL;
- unsigned char *p = NULL;
+ const unsigned char *dyn_buf = NULL;
+ const unsigned char *p = NULL;
int index = 0;
int num_entries;
int byte_entries;
int i;
-#ifdef _WIN32
- HANDLE fm;
-#endif
-
-
- ef->data_size = file_stat.st_size;
-#ifndef _WIN32
- ef->data = mmap(NULL, ef->data_size, PROT_READ,
- MAP_SHARED, fileno(ef->fp), 0);
-#else
- fm = CreateFileMapping((HANDLE) _get_osfhandle (fileno(ef->fp)),
- NULL,
- PAGE_READONLY,
- 0,
- 0,
- NULL);
- ef->data = MapViewOfFile(fm,
- FILE_MAP_READ,
- 0,
- 0,
- ef->data_size);
- CloseHandle(fm);
-#endif
if (eet_test_close((ef->data == (void *)-1) || (ef->data == NULL), ef))
return NULL;
@@ -613,12 +486,12 @@
EXTRACT_INT(byte_entries, ef->data, index);
/* we cant have <= 0 values here - invalid */
-// if (eet_test_close((num_entries <= 0) || (byte_entries <= 0), ef))
-// return NULL;
+ if (eet_test_close((num_entries <= 0) || (byte_entries <= 0), ef))
+ return NULL;
/* we can't have more entires than minimum bytes for those! invalid! */
- if (eet_test_close((num_entries * 20) > byte_entries, ef))
- return NULL;
+/* if (eet_test_close((num_entries * 20) > byte_entries, ef)) */
+/* return NULL; */
/* allocate header */
ef->header = calloc(1, sizeof(Eet_File_Header));
@@ -716,7 +589,7 @@
}
else
/* The only really usefull peace of code for efn->name (no backward compatibility) */
- efn->name = (char*)((unsigned char *)(p + HEADER_SIZE));
+ efn->name = (char*)((unsigned char*)(p + HEADER_SIZE));
/* get hash bucket it should go in */
hash = _eet_hash_gen(efn->name, ef->header->directory->size);
@@ -724,7 +597,7 @@
ef->header->directory->nodes[hash] = efn;
/* read-only mode, so currently we have no data loaded */
- if (mode == EET_FILE_MODE_READ)
+ if (ef->mode == EET_FILE_MODE_READ)
efn->data = NULL;
/* read-write mode - read everything into ram */
else
@@ -737,6 +610,172 @@
/* advance */
p += HEADER_SIZE + name_size;
}
+ return ef;
+}
+
+EAPI Eet_File *
+eet_memopen_read(const void *data, size_t size)
+{
+ Eet_File *ef;
+
+ if (data == NULL || size == 0)
+ return NULL;
+
+ ef = malloc (sizeof (Eet_File));
+ if (!ef)
+ return NULL;
+
+ ef->path = NULL;
+ ef->magic = EET_MAGIC_FILE;
+ ef->references = 1;
+ ef->mode = EET_FILE_MODE_READ;
+ ef->header = NULL;
+ ef->mtime = 0;
+ ef->delete_me_now = 1;
+ ef->fp = NULL;
+ ef->data = data;
+ ef->data_size = size;
+
+ return eet_internal_read(ef);
+}
+
+EAPI Eet_File *
+eet_open(const char *file, Eet_File_Mode mode)
+{
+ FILE *fp;
+ Eet_File *ef;
+ struct stat file_stat;
+
+#ifdef _WIN32
+ HANDLE h;
+#endif
+
+ if (!file)
+ return NULL;
+
+ /* find the current file handle in cache*/
+ ef = NULL;
+ if (mode == EET_FILE_MODE_READ)
+ {
+ ef = eet_cache_find((char *)file, eet_writers, eet_writers_num);
+ if (ef)
+ {
+ eet_flush(ef);
+ ef->delete_me_now = 1;
+ eet_close(ef);
+ }
+ ef = eet_cache_find((char *)file, eet_readers, eet_readers_num);
+ }
+ else if ((mode == EET_FILE_MODE_WRITE) || (mode == EET_FILE_MODE_READ_WRITE))
+ {
+ ef = eet_cache_find((char *)file, eet_readers, eet_readers_num);
+ if (ef)
+ {
+ ef->delete_me_now = 1;
+ eet_close(ef);
+ }
+ ef = eet_cache_find((char *)file, eet_writers, eet_writers_num);
+ }
+
+ /* try open the file based on mode */
+ if ((mode == EET_FILE_MODE_READ) || (mode == EET_FILE_MODE_READ_WRITE)) {
+ fp = fopen(file, "rb");
+ if (fp == NULL)
+ return NULL;
+
+ if (fstat(fileno(fp), &file_stat))
+ {
+ fclose(fp);
+ return NULL;
+ }
+ } else {
+ if (mode != EET_FILE_MODE_WRITE)
+ return NULL;
+
+ memset(&file_stat, 0, sizeof(file_stat));
+
+ /* opening for write - delete old copy of file right away */
+ unlink(file);
+ fp = fopen(file, "wb");
+ }
+
+ /* We found one */
+ if (ef && (file_stat.st_mtime != ef->mtime))
+ {
+ ef->delete_me_now = 1;
+ eet_close(ef);
+ ef = NULL;
+ }
+
+ if (ef)
+ {
+ /* reference it up and return it */
+ fclose(fp);
+ ef->references++;
+ return ef;
+ }
+
+ /* Allocate struct for eet file and have it zero'd out */
+ ef = malloc(sizeof(Eet_File) + strlen(file) + 1);
+ if (!ef)
+ return NULL;
+
+ /* fill some of the members */
+ ef->fp = fp;
+ ef->path = ((char *)ef) + sizeof(Eet_File);
+ strcpy(ef->path, file);
+ ef->magic = EET_MAGIC_FILE;
+ ef->references = 1;
+ ef->mode = mode;
+ ef->header = NULL;
+ ef->mtime = file_stat.st_mtime;
+ ef->delete_me_now = 0;
+ ef->data = NULL;
+ ef->data_size = 0;
+
+ /* if we can't open - bail out */
+ if (eet_test_close(!ef->fp, ef))
+ return NULL;
+
+#ifndef _WIN32
+ fcntl(fileno(ef->fp), F_SETFD, FD_CLOEXEC);
+#else
+ /* FIXME: check if that code is needed / correct */
+ h = (HANDLE) _get_osfhandle (fileno(ef->fp));
+ if (h == (HANDLE) -1)
+ return NULL;
+ SetHandleInformation (h, HANDLE_FLAG_INHERIT, 0);
+#endif
+ /* if we opened for read or read-write */
+ if ((mode == EET_FILE_MODE_READ) || (mode == EET_FILE_MODE_READ_WRITE))
+ {
+#ifdef _WIN32
+ HANDLE fm;
+#endif
+
+
+ ef->data_size = file_stat.st_size;
+#ifndef _WIN32
+ ef->data = mmap(NULL, ef->data_size, PROT_READ,
+ MAP_SHARED, fileno(ef->fp), 0);
+#else
+ fm = CreateFileMapping((HANDLE) _get_osfhandle (fileno(ef->fp)),
+ NULL,
+ PAGE_READONLY,
+ 0,
+ 0,
+ NULL);
+ ef->data = MapViewOfFile(fm,
+ FILE_MAP_READ,
+ 0,
+ 0,
+ ef->data_size);
+ CloseHandle(fm);
+#endif
+
+ ef = eet_internal_read(ef);
+ if (!ef)
+ return NULL;
}
/* we need to delete the original file in read-write mode and re-open for writing */
@@ -843,8 +882,9 @@
}
free(ef->header);
}
+
#ifndef _WIN32
- if (ef->data) munmap(ef->data, ef->data_size);
+ if (ef->data) munmap((void*)ef->data, ef->data_size);
#else
if (ef->data) UnmapViewOfFile (ef->data);
#endif
@@ -957,10 +998,10 @@
return data;
}
-EAPI void *
+EAPI const void *
eet_read_direct(Eet_File *ef, const char *name, int *size_ret)
{
- void *data = NULL;
+ const void *data = NULL;
int size = 0;
Eet_File_Node *efn;
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/configure.in e17-dev/apps/expedite/configure.in
--- e17-clean/apps/expedite/configure.in 2007-10-15 11:21:57.000000000 +0200
+++ e17-dev/apps/expedite/configure.in 2007-11-07 18:46:19.000000000 +0100
@@ -146,14 +146,19 @@
sdl_libs=""
have_sdl="no"
+sdl_cflags=`$SDL_CONFIG --cflags`
+sdl_libs=`$SDL_CONFIG --libs`
+
+save_CFLAGS=$CFLAGS
+CFLAGS="$CFLAGS $sdl_cflags"
AC_CHECK_HEADER(Evas_Engine_SDL.h,
[ AC_DEFINE(HAVE_SOFTWARE_SDL, 1, [Evas Software SDL Support])
have_sdl="yes"
- sdl_cflags=`$SDL_CONFIG --cflags`
- sdl_libs=`$SDL_CONFIG --libs` ],
+ ],
[ dummy=no ],
[ #include <Evas.h> ]
)
+CFLAGS=$save_CFLAGS
AC_SUBST(sdl_cflags)
AC_SUBST(sdl_libs)
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/engine_software_sdl.c e17-dev/apps/expedite/src/bin/engine_software_sdl.c
--- e17-clean/apps/expedite/src/bin/engine_software_sdl.c 2007-07-16 09:27:43.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/engine_software_sdl.c 2007-11-07 20:17:46.000000000 +0100
@@ -1,3 +1,4 @@
+#include <assert.h>
#include "main.h"
#ifndef HAVE_SOFTWARE_SDL
@@ -31,11 +32,15 @@
{
i++;
if (!strcmp(argv[i], "sdl")) ok = 1;
+ if (!strcmp(argv[i], "sdl-16")) ok = 2;
}
}
if (!ok) return 0;
+ if (ok == 1)
evas_output_method_set(evas, evas_render_method_lookup("software_sdl"));
+ else
+ evas_output_method_set(evas, evas_render_method_lookup("software_16_sdl"));
einfo = (Evas_Engine_Info_SDL *) evas_engine_info_get(evas);
@@ -44,6 +49,8 @@
einfo->info.noframe = 0;
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
+
+ return 1;
}
void
@@ -112,8 +119,14 @@
else
evas_key_lock_on(evas, "Scroll_Lock");
break;
- case SDLK_ESCAPE: evas_event_feed_key_down(evas, "Escape", "Escape", NULL, NULL, 0, NULL); break;
- case SDLK_RETURN: evas_event_feed_key_down(evas, "Return", "Return", NULL, NULL, 0, NULL); break;
+ case SDLK_s:
+ case SDLK_ESCAPE:
+ evas_event_feed_key_down(evas, "Escape", "Escape", NULL, NULL, 0, NULL);
+ break;
+ case SDLK_KP_ENTER:
+ case SDLK_RETURN:
+ evas_event_feed_key_down(evas, "Return", "Return", NULL, NULL, 0, NULL);
+ break;
case SDLK_LEFT: evas_event_feed_key_down(evas, "Left", "Left", NULL, NULL, 0, NULL); break;
case SDLK_RIGHT: evas_event_feed_key_down(evas, "Right", "Right", NULL, NULL, 0, NULL); break;
case SDLK_q:
@@ -122,6 +135,8 @@
else
evas_event_feed_key_down(evas, "q", "q", NULL, NULL, 0, NULL);
break;
+ default:
+ break;
}
break;
case SDL_KEYUP:
@@ -154,6 +169,8 @@
else
evas_event_feed_key_up(evas, "q", "q", NULL, NULL, 0, NULL);
break;
+ default:
+ break;
}
break;
case SDL_QUIT:
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_border.c e17-dev/apps/expedite/src/bin/image_blend_border.c
--- e17-clean/apps/expedite/src/bin/image_blend_border.c 2007-04-11 13:58:32.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_border.c 2007-11-07 20:35:41.000000000 +0100
@@ -25,7 +25,7 @@
{
o = evas_object_image_add(evas);
o_images[i] = o;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/bar.png", NULL);
+ evas_object_image_file_set(o, build_path("bar.png"), NULL);
evas_object_image_border_set(o, 8, 8, 8, 8);
evas_object_show(o);
}
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_border_recolor.c e17-dev/apps/expedite/src/bin/image_blend_border_recolor.c
--- e17-clean/apps/expedite/src/bin/image_blend_border_recolor.c 2007-04-11 13:58:32.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_border_recolor.c 2007-11-07 20:35:59.000000000 +0100
@@ -25,7 +25,7 @@
{
o = evas_object_image_add(evas);
o_images[i] = o;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/pan.png", NULL);
+ evas_object_image_file_set(o, build_path("pan.png"), NULL);
evas_object_color_set(o, 64, 64, 64, 255);
evas_object_image_border_set(o, 3, 3, 3, 3);
evas_object_show(o);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_nearest_scaled.c e17-dev/apps/expedite/src/bin/image_blend_nearest_scaled.c
--- e17-clean/apps/expedite/src/bin/image_blend_nearest_scaled.c 2007-04-11 13:58:32.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_nearest_scaled.c 2007-11-07 20:36:13.000000000 +0100
@@ -25,7 +25,7 @@
{
o = evas_object_image_add(evas);
o_images[i] = o;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL);
+ evas_object_image_file_set(o, build_path("logo.png"), NULL);
evas_object_image_smooth_scale_set(o, 0);
evas_object_show(o);
}
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_nearest_solid_scaled.c e17-dev/apps/expedite/src/bin/image_blend_nearest_solid_scaled.c
--- e17-clean/apps/expedite/src/bin/image_blend_nearest_solid_scaled.c 2007-04-11 13:58:32.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_nearest_solid_scaled.c 2007-11-07 20:36:26.000000000 +0100
@@ -25,7 +25,7 @@
{
o = evas_object_image_add(evas);
o_images[i] = o;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL);
+ evas_object_image_file_set(o, build_path("image.png"), NULL);
evas_object_image_smooth_scale_set(o, 0);
evas_object_show(o);
}
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_occlude1.c e17-dev/apps/expedite/src/bin/image_blend_occlude1.c
--- e17-clean/apps/expedite/src/bin/image_blend_occlude1.c 2007-10-20 19:28:27.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_occlude1.c 2007-11-07 20:36:47.000000000 +0100
@@ -27,12 +27,12 @@
o = evas_object_image_add(evas);
o_images[i] = o;
if (i < (OBNUM / 2))
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL);
+ evas_object_image_file_set(o, build_path("logo.png"), NULL);
else
{
Evas_Coord x, y;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL);
+ evas_object_image_file_set(o, build_path("image.png"), NULL);
x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
evas_object_move(o, x, y);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_occlude1_many.c e17-dev/apps/expedite/src/bin/image_blend_occlude1_many.c
--- e17-clean/apps/expedite/src/bin/image_blend_occlude1_many.c 2007-10-20 19:28:27.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_occlude1_many.c 2007-11-07 20:37:10.000000000 +0100
@@ -30,12 +30,12 @@
o = evas_object_image_add(evas);
o_images[i] = o;
if (i < (OBNUM / 2))
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL);
+ evas_object_image_file_set(o, build_path("logo.png"), NULL);
else
{
Evas_Coord x, y;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL);
+ evas_object_image_file_set(o, build_path("image.png"), NULL);
x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
evas_object_move(o, x, y);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_occlude1_very_many.c e17-dev/apps/expedite/src/bin/image_blend_occlude1_very_many.c
--- e17-clean/apps/expedite/src/bin/image_blend_occlude1_very_many.c 2007-10-20 19:28:27.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_occlude1_very_many.c 2007-11-07 20:37:29.000000000 +0100
@@ -30,12 +30,12 @@
o = evas_object_image_add(evas);
o_images[i] = o;
if (i < (OBNUM / 2))
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL);
+ evas_object_image_file_set(o, build_path("logo.png"), NULL);
else
{
Evas_Coord x, y;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL);
+ evas_object_image_file_set(o, build_path("image.png"), NULL);
x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
evas_object_move(o, x, y);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_occlude2.c e17-dev/apps/expedite/src/bin/image_blend_occlude2.c
--- e17-clean/apps/expedite/src/bin/image_blend_occlude2.c 2007-10-20 19:28:27.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_occlude2.c 2007-11-07 20:37:48.000000000 +0100
@@ -27,12 +27,12 @@
o = evas_object_image_add(evas);
o_images[i] = o;
if (i & 0x1)
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL);
+ evas_object_image_file_set(o, build_path("logo.png"), NULL);
else
{
Evas_Coord x, y;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL);
+ evas_object_image_file_set(o, build_path("image.png"), NULL);
x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
evas_object_move(o, x, y);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_occlude2_few.c e17-dev/apps/expedite/src/bin/image_blend_occlude2_few.c
--- e17-clean/apps/expedite/src/bin/image_blend_occlude2_few.c 2007-10-20 19:28:27.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_occlude2_few.c 2007-11-07 20:38:09.000000000 +0100
@@ -30,12 +30,12 @@
o = evas_object_image_add(evas);
o_images[i] = o;
if (i & 0x1)
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL);
+ evas_object_image_file_set(o, build_path("logo.png"), NULL);
else
{
Evas_Coord x, y;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL);
+ evas_object_image_file_set(o, build_path("image.png"), NULL);
x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
evas_object_move(o, x, y);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_occlude2_many.c e17-dev/apps/expedite/src/bin/image_blend_occlude2_many.c
--- e17-clean/apps/expedite/src/bin/image_blend_occlude2_many.c 2007-10-20 19:28:27.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_occlude2_many.c 2007-11-07 20:38:28.000000000 +0100
@@ -30,12 +30,12 @@
o = evas_object_image_add(evas);
o_images[i] = o;
if (i & 0x1)
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL);
+ evas_object_image_file_set(o, build_path("logo.png"), NULL);
else
{
Evas_Coord x, y;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL);
+ evas_object_image_file_set(o, build_path("image.png"), NULL);
x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
evas_object_move(o, x, y);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_occlude2_very_many.c e17-dev/apps/expedite/src/bin/image_blend_occlude2_very_many.c
--- e17-clean/apps/expedite/src/bin/image_blend_occlude2_very_many.c 2007-10-20 19:28:27.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_occlude2_very_many.c 2007-11-07 20:38:50.000000000 +0100
@@ -30,12 +30,12 @@
o = evas_object_image_add(evas);
o_images[i] = o;
if (i & 0x1)
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL);
+ evas_object_image_file_set(o, build_path("logo.png"), NULL);
else
{
Evas_Coord x, y;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL);
+ evas_object_image_file_set(o, build_path("image.png"), NULL);
x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
evas_object_move(o, x, y);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_occlude3.c e17-dev/apps/expedite/src/bin/image_blend_occlude3.c
--- e17-clean/apps/expedite/src/bin/image_blend_occlude3.c 2007-10-20 19:28:27.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_occlude3.c 2007-11-07 20:40:17.000000000 +0100
@@ -27,12 +27,12 @@
o = evas_object_image_add(evas);
o_images[i] = o;
if (i > (OBNUM / 2))
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL);
+ evas_object_image_file_set(o, build_path("logo.png"), NULL);
else
{
Evas_Coord x, y;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL);
+ evas_object_image_file_set(o, build_path("image.png"), NULL);
x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
evas_object_move(o, x, y);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_occlude3_few.c e17-dev/apps/expedite/src/bin/image_blend_occlude3_few.c
--- e17-clean/apps/expedite/src/bin/image_blend_occlude3_few.c 2007-10-20 19:28:27.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_occlude3_few.c 2007-11-07 20:40:36.000000000 +0100
@@ -30,12 +30,12 @@
o = evas_object_image_add(evas);
o_images[i] = o;
if (i > (OBNUM / 2))
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL);
+ evas_object_image_file_set(o, build_path("logo.png"), NULL);
else
{
Evas_Coord x, y;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL);
+ evas_object_image_file_set(o, build_path("image.png"), NULL);
x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
evas_object_move(o, x, y);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_occlude3_many.c e17-dev/apps/expedite/src/bin/image_blend_occlude3_many.c
--- e17-clean/apps/expedite/src/bin/image_blend_occlude3_many.c 2007-10-20 19:28:27.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_occlude3_many.c 2007-11-07 20:40:56.000000000 +0100
@@ -30,12 +30,12 @@
o = evas_object_image_add(evas);
o_images[i] = o;
if (i > (OBNUM / 2))
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL);
+ evas_object_image_file_set(o, build_path("logo.png"), NULL);
else
{
Evas_Coord x, y;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL);
+ evas_object_image_file_set(o, build_path("image.png"), NULL);
x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
evas_object_move(o, x, y);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_occlude3_very_many.c e17-dev/apps/expedite/src/bin/image_blend_occlude3_very_many.c
--- e17-clean/apps/expedite/src/bin/image_blend_occlude3_very_many.c 2007-10-20 19:28:27.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_occlude3_very_many.c 2007-11-07 20:41:21.000000000 +0100
@@ -30,12 +30,12 @@
o = evas_object_image_add(evas);
o_images[i] = o;
if (i > (OBNUM / 2))
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL);
+ evas_object_image_file_set(o, build_path("logo.png"), NULL);
else
{
Evas_Coord x, y;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL);
+ evas_object_image_file_set(o, build_path("image.png"), NULL);
x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
evas_object_move(o, x, y);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_smooth_scaled.c e17-dev/apps/expedite/src/bin/image_blend_smooth_scaled.c
--- e17-clean/apps/expedite/src/bin/image_blend_smooth_scaled.c 2007-04-11 13:58:32.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_smooth_scaled.c 2007-11-07 20:41:32.000000000 +0100
@@ -25,7 +25,7 @@
{
o = evas_object_image_add(evas);
o_images[i] = o;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL);
+ evas_object_image_file_set(o, build_path("logo.png"), NULL);
evas_object_image_smooth_scale_set(o, 1);
evas_object_show(o);
}
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_smooth_solid_scaled.c e17-dev/apps/expedite/src/bin/image_blend_smooth_solid_scaled.c
--- e17-clean/apps/expedite/src/bin/image_blend_smooth_solid_scaled.c 2007-04-11 13:58:32.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_smooth_solid_scaled.c 2007-11-07 20:41:44.000000000 +0100
@@ -25,7 +25,7 @@
{
o = evas_object_image_add(evas);
o_images[i] = o;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL);
+ evas_object_image_file_set(o, build_path("image.png"), NULL);
evas_object_image_smooth_scale_set(o, 1);
evas_object_show(o);
}
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_solid_border.c e17-dev/apps/expedite/src/bin/image_blend_solid_border.c
--- e17-clean/apps/expedite/src/bin/image_blend_solid_border.c 2007-04-11 13:58:32.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_solid_border.c 2007-11-07 20:41:55.000000000 +0100
@@ -25,7 +25,7 @@
{
o = evas_object_image_add(evas);
o_images[i] = o;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/frame.png", NULL);
+ evas_object_image_file_set(o, build_path("frame.png"), NULL);
evas_object_image_border_set(o, 8, 8, 8, 8);
evas_object_show(o);
}
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_solid_unscaled.c e17-dev/apps/expedite/src/bin/image_blend_solid_unscaled.c
--- e17-clean/apps/expedite/src/bin/image_blend_solid_unscaled.c 2007-04-11 13:58:32.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_solid_unscaled.c 2007-11-07 20:42:06.000000000 +0100
@@ -25,7 +25,7 @@
{
o = evas_object_image_add(evas);
o_images[i] = o;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL);
+ evas_object_image_file_set(o, build_path("image.png"), NULL);
evas_object_image_fill_set(o, 0, 0, 120, 160);
evas_object_resize(o, 120, 160);
evas_object_show(o);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_blend_unscaled.c e17-dev/apps/expedite/src/bin/image_blend_unscaled.c
--- e17-clean/apps/expedite/src/bin/image_blend_unscaled.c 2007-04-11 13:58:32.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_blend_unscaled.c 2007-11-07 20:42:17.000000000 +0100
@@ -25,7 +25,7 @@
{
o = evas_object_image_add(evas);
o_images[i] = o;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL);
+ evas_object_image_file_set(o, build_path("logo.png"), NULL);
evas_object_image_fill_set(o, 0, 0, 120, 160);
evas_object_resize(o, 120, 160);
evas_object_show(o);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_crossfade.c e17-dev/apps/expedite/src/bin/image_crossfade.c
--- e17-clean/apps/expedite/src/bin/image_crossfade.c 2007-10-20 19:28:27.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_crossfade.c 2007-11-07 20:42:35.000000000 +0100
@@ -24,14 +24,14 @@
o = evas_object_image_add(evas);
o_images[0] = o;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/im1.png", NULL);
+ evas_object_image_file_set(o, build_path("im1.png"), NULL);
evas_object_image_fill_set(o, 0, 0, 720, 420);
evas_object_resize(o, 720, 420);
evas_object_show(o);
o = evas_object_image_add(evas);
o_images[1] = o;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/im2.png", NULL);
+ evas_object_image_file_set(o, build_path("im2.png"), NULL);
evas_object_image_fill_set(o, 0, 0, 720, 420);
evas_object_resize(o, 720, 420);
evas_object_show(o);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_data_ycbcr601pl.c e17-dev/apps/expedite/src/bin/image_data_ycbcr601pl.c
--- e17-clean/apps/expedite/src/bin/image_data_ycbcr601pl.c 2007-04-11 14:36:32.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_data_ycbcr601pl.c 2007-11-07 20:42:58.000000000 +0100
@@ -38,7 +38,7 @@
yp = malloc(640 * 480);
up = malloc(320 * 240);
vp = malloc(320 * 240);
- f = fopen(PACKAGE_DATA_DIR"/data/tp.yuv", "rb");
+ f = fopen(build_path("tp.yuv"), "rb");
if (f)
{
fread(yp, 640 * 480, 1, f);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_data_ycbcr601pl_wide_stride.c e17-dev/apps/expedite/src/bin/image_data_ycbcr601pl_wide_stride.c
--- e17-clean/apps/expedite/src/bin/image_data_ycbcr601pl_wide_stride.c 2007-10-20 19:28:27.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_data_ycbcr601pl_wide_stride.c 2007-11-07 20:43:15.000000000 +0100
@@ -38,7 +38,7 @@
yp = malloc(640 * 480);
up = malloc(320 * 240);
vp = malloc(320 * 240);
- f = fopen(PACKAGE_DATA_DIR"/data/tp.yuv", "rb");
+ f = fopen(build_path("tp.yuv"), "rb");
if (f)
{
fread(yp, 640 * 480, 1, f);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/image_quality_scale.c e17-dev/apps/expedite/src/bin/image_quality_scale.c
--- e17-clean/apps/expedite/src/bin/image_quality_scale.c 2007-04-11 13:58:32.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/image_quality_scale.c 2007-11-07 20:43:27.000000000 +0100
@@ -26,7 +26,7 @@
{
o = evas_object_image_add(evas);
o_images[i] = o;
- evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/tp.png", NULL);
+ evas_object_image_file_set(o, build_path("tp.png"), NULL);
evas_object_image_fill_set(o, 0, 0, 640, 480);
evas_object_resize(o, 640, 480);
evas_object_show(o);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/main.c e17-dev/apps/expedite/src/bin/main.c
--- e17-clean/apps/expedite/src/bin/main.c 2007-10-20 19:28:28.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/main.c 2007-11-07 21:07:27.000000000 +0100
@@ -1075,9 +1075,36 @@
}
#endif
+
+const char *
+build_path(const char *filename)
+{
+ static char path[4096];
+ static char buffer[4096];
+ static int init = 0;
+
+ if (!init)
+ {
+ char *prefix;
+
+ prefix = getenv("EXPEDITE_DATA_DIR");
+ if (!prefix)
+ strcpy(path, PACKAGE_DATA_DIR"/data/");
+ else
+ snprintf(path, 4096, "%s/", prefix);
+
+ init = 1;
+ }
+
+ snprintf(buffer, 4096, "%s%s", path, filename);
+
+ return buffer;
+}
+
int
engine_abort(void)
{
+ fprintf(stderr, "go: %i\n", go);
go = 0;
return go;
}
@@ -1098,7 +1125,6 @@
_profile_parse(int argc, char **argv)
{
int i;
- int ok = 0;
for (i = 1; i < argc; i++)
{
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/main.h e17-dev/apps/expedite/src/bin/main.h
--- e17-clean/apps/expedite/src/bin/main.h 2007-10-15 11:21:57.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/main.h 2007-11-07 20:51:26.000000000 +0100
@@ -34,6 +34,7 @@
void srnd(void);
unsigned int rnd(void);
double get_time(void);
+const char *build_path(const char *filename);
void engine_loop(void);
int engine_abort(void);
diff -NrauBb -X exclude.cvs e17-clean/apps/expedite/src/bin/ui.c e17-dev/apps/expedite/src/bin/ui.c
--- e17-clean/apps/expedite/src/bin/ui.c 2007-10-20 19:28:28.000000000 +0200
+++ e17-dev/apps/expedite/src/bin/ui.c 2007-11-07 20:34:33.000000000 +0100
@@ -206,13 +207,11 @@
static void
_ui_menu_item_add(char *icon, char *text, void (*func) (void))
{
- char buf[4096];
Menu_Item *mi;
mi = malloc(sizeof(Menu_Item));
- snprintf(buf, 4096, "%s%s", data_dir, icon);
mi->o_icon = evas_object_image_add(evas);
- evas_object_image_file_set(mi->o_icon, buf, NULL);
+ evas_object_image_file_set(mi->o_icon, build_path(icon), NULL);
evas_object_resize(mi->o_icon, 32, 32);
evas_object_image_fill_set(mi->o_icon, 0, 0, 32, 32);
mi->icon = strdup(icon);
@@ -225,16 +224,8 @@
static void
_ui_setup(void)
{
- char buf[4096];
Evas_Object *o;
Evas_Coord x, y, w, h;
- char *prefix;
-
- prefix = getenv("EXPEDITE_DATA_DIR");
- if (!prefix)
- strcpy(data_dir, PACKAGE_DATA_DIR"/data/");
- else
- snprintf(data_dir, 4096, "%s/", prefix);
o = evas_object_rectangle_add(evas);
evas_object_move(o, 0, 0);
@@ -297,8 +288,7 @@
o = evas_object_image_add(evas);
evas_object_move(o, (win_w - 120) / 2, ((win_h - 160) / 2));
- snprintf(buf, 4096, "%s%s", data_dir, "logo.png");
- evas_object_image_file_set(o, buf, NULL);
+ evas_object_image_file_set(o, build_path("logo.png"), NULL);
evas_object_image_fill_set(o, 0, 0, 120, 160);
evas_object_resize(o, 120, 160);
evas_object_layer_set(o, -98);
@@ -315,16 +305,14 @@
o = evas_object_image_add(evas);
evas_object_move(o, 0, 0);
- snprintf(buf, 4096, "%s%s", data_dir, "icon_sel.png");
- evas_object_image_file_set(o, buf, NULL);
+ evas_object_image_file_set(o, build_path("icon_sel.png"), NULL);
evas_object_resize(o, 56, 56);
evas_object_image_fill_set(o, 0, 0, 56, 56);
o_menu_icon_sel = o;
o = evas_object_image_add(evas);
evas_object_move(o, 0, 0);
- snprintf(buf, 4096, "%s%s", data_dir, "text_sel.png");
- evas_object_image_file_set(o, buf, NULL);
+ evas_object_image_file_set(o, build_path("text_sel.png"), NULL);
evas_object_resize(o, 96, 32);
evas_object_image_fill_set(o, 0, 0, 96, 32);
evas_object_image_border_set(o, 8, 8, 8, 8);
@@ -332,8 +320,7 @@
o = evas_object_image_add(evas);
evas_object_move(o, 0, 0);
- snprintf(buf, 4096, "%s%s", data_dir, "icon_sel2.png");
- evas_object_image_file_set(o, buf, NULL);
+ evas_object_image_file_set(o, build_path("icon_sel2.png"), NULL);
evas_object_resize(o, 56, 41);
evas_object_image_fill_set(o, 0, 0, 56, 41);
o_menu_icon_sel2 = o;
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel