svn update: 49540 (latest:49550)
authorDaniel Juyung Seo <juyung.seo@samsung.com>
Mon, 7 Jun 2010 03:15:17 +0000 (12:15 +0900)
committerDaniel Juyung Seo <juyung.seo@samsung.com>
Mon, 7 Jun 2010 03:15:17 +0000 (12:15 +0900)
43 files changed:
AUTHORS
configure.ac
debian/SVN_REV
po/cs.po
po/de.po
po/el.po
po/fr.po
po/it.po
src/lib/ecore/Ecore.h
src/lib/ecore/Makefile.am
src/lib/ecore/ecore.c
src/lib/ecore/ecore_events.c
src/lib/ecore/ecore_main.c
src/lib/ecore/ecore_poll.c
src/lib/ecore/ecore_private.h
src/lib/ecore/ecore_timer.c
src/lib/ecore_cocoa/Makefile.am
src/lib/ecore_con/Makefile.am
src/lib/ecore_config/Makefile.am
src/lib/ecore_directfb/Makefile.am
src/lib/ecore_evas/Ecore_Evas.h
src/lib/ecore_evas/Makefile.am
src/lib/ecore_evas/ecore_evas.c
src/lib/ecore_evas/ecore_evas_buffer.c
src/lib/ecore_evas/ecore_evas_private.h
src/lib/ecore_evas/ecore_evas_x.c
src/lib/ecore_fb/Makefile.am
src/lib/ecore_file/Makefile.am
src/lib/ecore_file/ecore_file_download.c
src/lib/ecore_imf/Makefile.am
src/lib/ecore_imf/ecore_imf.c
src/lib/ecore_imf/ecore_imf_module.c
src/lib/ecore_imf_evas/Makefile.am
src/lib/ecore_input/Makefile.am
src/lib/ecore_input_evas/Makefile.am
src/lib/ecore_ipc/Makefile.am
src/lib/ecore_sdl/Makefile.am
src/lib/ecore_win32/Makefile.am
src/lib/ecore_wince/Makefile.am
src/lib/ecore_x/Makefile.am
src/lib/ecore_x/xlib/ecore_x.c
src/tests/Makefile.am
src/tests/ecore_test_ecore.c

diff --git a/AUTHORS b/AUTHORS
index 4acdbfb..e9bda20 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -29,3 +29,5 @@ Lars Munch <lars@segv.dk>
 Andre Dieb <andre.dieb@gmail.com>
 Mathieu Taillefumier <mathieu.taillefumier@free.fr>
 Rui Miguel Silva Seabra <rms@1407.org>
+Saumsung Electronics <tbd>
+Samsung SAIT <tbd>
index 23813d4..e3ccdda 100644 (file)
@@ -1,8 +1,26 @@
-# get rid of that stupid cache mechanism
-rm -f config.cache
-
-AC_INIT([ecore], [0.9.9.063], [enlightenment-devel@lists.sourceforge.net])
-release="ver-pre-svn-05"
+##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
+##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
+m4_define([v_maj], [0])
+m4_define([v_min], [9])
+m4_define([v_mic], [9])
+m4_define([v_rev], m4_esyscmd([(svnversion . | grep -v exported || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n']))
+m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))])
+##--   When released, remove the dnl on the below line
+dnl m4_undefine([v_rev])
+##--   When doing snapshots - change soname. remove dnl on below line
+m4_define([relname], [ver-pre-svn-06])
+m4_define([v_rel], [-release relname])
+##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
+m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])],
+[m4_define([v_ver], [v_maj.v_min.v_mic])])
+m4_define([lt_rev], m4_eval(v_maj + v_min))
+m4_define([lt_cur], v_mic)
+m4_define([lt_age], v_min)
+##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
+##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
+
+AC_INIT([ecore], [v_ver], [enlightenment-devel@lists.sourceforge.net])
+release="ver-pre-svn-06"
 AC_PREREQ([2.52])
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_MACRO_DIR([m4])
@@ -20,59 +38,26 @@ AC_LIBTOOL_WIN32_DLL
 define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
 AC_PROG_LIBTOOL
 
-VMAJ=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $1);}'`
-VMIN=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $2);}'`
-VMIC=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $3);}'`
-SNAP=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $4);}'`
-version_info=`expr $VMAJ + $VMIN`":$VMIC:$VMIN"
+##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
+##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
+m4_ifdef([v_rev], , [m4_define([v_rev], [0])])
+m4_ifdef([v_rel], , [m4_define([v_rel], [])])
+AC_DEFINE_UNQUOTED(VERS_MAJ, [v_maj], [Major version])
+AC_DEFINE_UNQUOTED(VERS_MIN, [v_min], [Minor version])
+AC_DEFINE_UNQUOTED(VERS_MIC, [v_mic], [Micro version])
+AC_DEFINE_UNQUOTED(VERS_REV, [v_rev], [Revison])
+version_info="lt_rev:lt_cur:lt_age"
+release_info="v_rel"
 AC_SUBST(version_info)
+AC_SUBST(release_info)
+##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
+##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 
 AM_GNU_GETTEXT_VERSION([0.12.1])
 AM_GNU_GETTEXT([external])
 
 EFL_CHECK_PATH_MAX
 
-case "$host_os" in
-   mingw32ce* | cegcc*)
-      ;;
-   *)
-      ecore_config_release_info="-release $release"
-      ecore_con_release_info="-release $release"
-      ecore_directfb_release_info="-release $release"
-      ecore_evas_release_info="-release $release"
-      ecore_fb_release_info="-release $release"
-      ecore_file_release_info="-release $release"
-      ecore_imf_evas_release_info="-release $release"
-      ecore_imf_release_info="-release $release"
-      ecore_input_release_info="-release $release"
-      ecore_input_evas_release_info="-release $release"
-      ecore_ipc_release_info="-release $release"
-      ecore_cocoa_release_info="-release $release"
-      ecore_release_info="-release $release"
-      ecore_sdl_release_info="-release $release"
-      ecore_win32_release_info="-release $release"
-      ecore_x_release_info="-release $release"
-      ;;
-esac
-AC_SUBST(ecore_config_release_info)
-AC_SUBST(ecore_con_release_info)
-AC_SUBST(ecore_directfb_release_info)
-AC_SUBST(ecore_evas_release_info)
-AC_SUBST(ecore_fb_release_info)
-AC_SUBST(ecore_file_release_info)
-AC_SUBST(ecore_imf_evas_release_info)
-AC_SUBST(ecore_imf_release_info)
-AC_SUBST(ecore_input_release_info)
-AC_SUBST(ecore_input_evas_release_info)
-AC_SUBST(ecore_ipc_release_info)
-AC_SUBST(ecore_cocoa_release_info)
-AC_SUBST(ecore_release_info)
-AC_SUBST(ecore_sdl_release_info)
-AC_SUBST(ecore_win32_release_info)
-AC_SUBST(ecore_wince_release_info)
-AC_SUBST(ecore_x_release_info)
-
-
 with_max_log_level="<unset>"
 AC_ARG_WITH(internal-maximum-log-level,
    [AC_HELP_STRING([--with-internal-maximum-log-level=NUMBER],
index 4cc07a7..dd0e91d 100644 (file)
@@ -1,2 +1,2 @@
-Revision 48959
-Last Changed Rev 48958
+Revision 49550
+Last Changed Rev 49540
index 50b1ff0..716b92b 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -4,7 +4,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ecore\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-08 09:04+0100\n"
+"POT-Creation-Date: 2010-05-14 23:51+1000\n"
 "PO-Revision-Date: 2009-10-27 19:35+0100\n"
 "Last-Translator: quaker66 <quaker66@gmail.com>\n"
 "Language-Team: cs <quaker66@gmail.com>\n"
@@ -12,159 +12,159 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: src/lib/ecore/ecore_getopt.c:74
+#: src/lib/ecore/ecore_getopt.c:91
 msgid "Version:"
 msgstr "Verze:"
 
-#: src/lib/ecore/ecore_getopt.c:82
+#: src/lib/ecore/ecore_getopt.c:99
 msgid "Usage:"
 msgstr "Použití:"
 
-#: src/lib/ecore/ecore_getopt.c:87
+#: src/lib/ecore/ecore_getopt.c:104
 #, c-format
 msgid "%s [options]\n"
 msgstr "%s [volby]\n"
 
-#: src/lib/ecore/ecore_getopt.c:235
+#: src/lib/ecore/ecore_getopt.c:252
 msgid "Copyright:"
 msgstr "Copyright:"
 
-#: src/lib/ecore/ecore_getopt.c:246
+#: src/lib/ecore/ecore_getopt.c:263
 msgid "License:"
 msgstr "Licence:"
 
-#: src/lib/ecore/ecore_getopt.c:398
+#: src/lib/ecore/ecore_getopt.c:415
 msgid "Type: "
 msgstr "Typ: "
 
-#: src/lib/ecore/ecore_getopt.c:465
+#: src/lib/ecore/ecore_getopt.c:482
 msgid "Default: "
 msgstr "Výchozí: "
 
-#: src/lib/ecore/ecore_getopt.c:488
+#: src/lib/ecore/ecore_getopt.c:505
 msgid "Choices: "
 msgstr "Možnosti: "
 
-#: src/lib/ecore/ecore_getopt.c:585
+#: src/lib/ecore/ecore_getopt.c:602
 msgid "Options:\n"
 msgstr "Volby:\n"
 
-#: src/lib/ecore/ecore_getopt.c:704
+#: src/lib/ecore/ecore_getopt.c:722
 #, c-format
 msgid "ERROR: unknown option --%s.\n"
 msgstr "CHYBA: neznámá volba --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:706
+#: src/lib/ecore/ecore_getopt.c:724
 #, c-format
 msgid "ERROR: unknown option -%c.\n"
 msgstr "CHYBA: neznámá volba -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:762
+#: src/lib/ecore/ecore_getopt.c:780
 msgid "ERROR: "
 msgstr "CHYBA: "
 
-#: src/lib/ecore/ecore_getopt.c:839 src/lib/ecore/ecore_getopt.c:955
-#: src/lib/ecore/ecore_getopt.c:968 src/lib/ecore/ecore_getopt.c:980
-#: src/lib/ecore/ecore_getopt.c:994 src/lib/ecore/ecore_getopt.c:1038
-#: src/lib/ecore/ecore_getopt.c:1147 src/lib/ecore/ecore_getopt.c:1184
+#: src/lib/ecore/ecore_getopt.c:857 src/lib/ecore/ecore_getopt.c:973
+#: src/lib/ecore/ecore_getopt.c:986 src/lib/ecore/ecore_getopt.c:998
+#: src/lib/ecore/ecore_getopt.c:1012 src/lib/ecore/ecore_getopt.c:1056
+#: src/lib/ecore/ecore_getopt.c:1165 src/lib/ecore/ecore_getopt.c:1202
 msgid "value has no pointer set.\n"
 msgstr "hodnota nemá nastaven pointer.\n"
 
-#: src/lib/ecore/ecore_getopt.c:868 src/lib/ecore/ecore_getopt.c:1058
+#: src/lib/ecore/ecore_getopt.c:886 src/lib/ecore/ecore_getopt.c:1076
 #, c-format
 msgid "unknown boolean value %s.\n"
 msgstr "neznámá boolean hodnota %s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:912 src/lib/ecore/ecore_getopt.c:1138
+#: src/lib/ecore/ecore_getopt.c:930 src/lib/ecore/ecore_getopt.c:1156
 #, c-format
 msgid "invalid number format %s\n"
 msgstr "neznámý číselný formát %s\n"
 
-#: src/lib/ecore/ecore_getopt.c:1007
+#: src/lib/ecore/ecore_getopt.c:1025
 #, c-format
 msgid "invalid choice \"%s\". Valid values are: "
 msgstr "neznámá volba \"%s\". Možné hodnoty jsou: "
 
-#: src/lib/ecore/ecore_getopt.c:1032
+#: src/lib/ecore/ecore_getopt.c:1050
 msgid "missing parameter to append.\n"
 msgstr "chybějící parametr k připojení.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1128
+#: src/lib/ecore/ecore_getopt.c:1146
 msgid "could not parse value.\n"
 msgstr "nemůžu parsovat hodnotu.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1177
+#: src/lib/ecore/ecore_getopt.c:1195
 msgid "missing parameter.\n"
 msgstr "chybějící parametr.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1191
+#: src/lib/ecore/ecore_getopt.c:1209
 msgid "missing callback function!\n"
 msgstr "chybějící callback funkce!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1214
+#: src/lib/ecore/ecore_getopt.c:1232
 msgid "no version was defined.\n"
 msgstr "nebyla definována verze.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1228
+#: src/lib/ecore/ecore_getopt.c:1246
 msgid "no copyright was defined.\n"
 msgstr "nebyl definován copyright.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1242
+#: src/lib/ecore/ecore_getopt.c:1260
 msgid "no license was defined.\n"
 msgstr "nebyla definována licence.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1296
+#: src/lib/ecore/ecore_getopt.c:1314
 #, c-format
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "CHYBA: neznámá volba --%s, ignoruji.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1329
+#: src/lib/ecore/ecore_getopt.c:1347
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "CHYBA: volba --%s vyžaduje argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1365
+#: src/lib/ecore/ecore_getopt.c:1383
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "CHYBA: neznámá volba -%c, ignoruji.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1403
+#: src/lib/ecore/ecore_getopt.c:1421
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "CHYBA: volba -%c vyžaduje argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1606
+#: src/lib/ecore/ecore_getopt.c:1624
 msgid "ERROR: no parser provided.\n"
 msgstr "CHYBA: nebyl poskytnut parser.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1611
+#: src/lib/ecore/ecore_getopt.c:1629
 msgid "ERROR: no values provided.\n"
 msgstr "CHYBA: nebyly poskytnuty hodnoty.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1620
+#: src/lib/ecore/ecore_getopt.c:1638
 msgid "ERROR: no arguments provided.\n"
 msgstr "CHYBA: nebyly poskytnuty argumenty.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1646
+#: src/lib/ecore/ecore_getopt.c:1664
 msgid "ERROR: invalid options found."
 msgstr "CHYBA: nalezeny neplatné volby."
 
-#: src/lib/ecore/ecore_getopt.c:1652
+#: src/lib/ecore/ecore_getopt.c:1670
 #, c-format
 msgid " See --%s.\n"
 msgstr " viz. --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1654
+#: src/lib/ecore/ecore_getopt.c:1672
 #, c-format
 msgid " See -%c.\n"
 msgstr " viz. -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1691
+#: src/lib/ecore/ecore_getopt.c:1709
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "CHYBA: neplatná hodnota geometrie '%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:1714
+#: src/lib/ecore/ecore_getopt.c:1732
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "CHYBA: neplatná hodnota velikosti '%s'\n"
index 0920a04..2b057af 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ecore 0.9.9.063-2\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-08 09:04+0100\n"
+"POT-Creation-Date: 2010-05-14 23:51+1000\n"
 "PO-Revision-Date: 2010-01-03 21:52+GMT\n"
 "Last-Translator: Chris Leick <c.leick@vollbio.de>\n"
 "Language-Team: German <debian-l10n-german@lists.debian.org>\n"
@@ -15,159 +15,159 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: src/lib/ecore/ecore_getopt.c:74
+#: src/lib/ecore/ecore_getopt.c:91
 msgid "Version:"
 msgstr "Version:"
 
-#: src/lib/ecore/ecore_getopt.c:82
+#: src/lib/ecore/ecore_getopt.c:99
 msgid "Usage:"
 msgstr "Aufruf:"
 
-#: src/lib/ecore/ecore_getopt.c:87
+#: src/lib/ecore/ecore_getopt.c:104
 #, c-format
 msgid "%s [options]\n"
 msgstr "%s [Optionen]\n"
 
-#: src/lib/ecore/ecore_getopt.c:235
+#: src/lib/ecore/ecore_getopt.c:252
 msgid "Copyright:"
 msgstr "Copyright:"
 
-#: src/lib/ecore/ecore_getopt.c:246
+#: src/lib/ecore/ecore_getopt.c:263
 msgid "License:"
 msgstr "Lizenz:"
 
-#: src/lib/ecore/ecore_getopt.c:398
+#: src/lib/ecore/ecore_getopt.c:415
 msgid "Type: "
 msgstr "Typ: "
 
-#: src/lib/ecore/ecore_getopt.c:465
+#: src/lib/ecore/ecore_getopt.c:482
 msgid "Default: "
 msgstr "Vorgabe: "
 
-#: src/lib/ecore/ecore_getopt.c:488
+#: src/lib/ecore/ecore_getopt.c:505
 msgid "Choices: "
 msgstr "Auswahlen: "
 
-#: src/lib/ecore/ecore_getopt.c:585
+#: src/lib/ecore/ecore_getopt.c:602
 msgid "Options:\n"
 msgstr "Optionen:\n"
 
-#: src/lib/ecore/ecore_getopt.c:704
+#: src/lib/ecore/ecore_getopt.c:722
 #, c-format
 msgid "ERROR: unknown option --%s.\n"
 msgstr "FEHLER: Unbekannte Option --%s\n"
 
-#: src/lib/ecore/ecore_getopt.c:706
+#: src/lib/ecore/ecore_getopt.c:724
 #, c-format
 msgid "ERROR: unknown option -%c.\n"
 msgstr "FEHLER: Unbekannte Option -%c\n"
 
-#: src/lib/ecore/ecore_getopt.c:762
+#: src/lib/ecore/ecore_getopt.c:780
 msgid "ERROR: "
 msgstr "FEHLER: "
 
-#: src/lib/ecore/ecore_getopt.c:839 src/lib/ecore/ecore_getopt.c:955
-#: src/lib/ecore/ecore_getopt.c:968 src/lib/ecore/ecore_getopt.c:980
-#: src/lib/ecore/ecore_getopt.c:994 src/lib/ecore/ecore_getopt.c:1038
-#: src/lib/ecore/ecore_getopt.c:1147 src/lib/ecore/ecore_getopt.c:1184
+#: src/lib/ecore/ecore_getopt.c:857 src/lib/ecore/ecore_getopt.c:973
+#: src/lib/ecore/ecore_getopt.c:986 src/lib/ecore/ecore_getopt.c:998
+#: src/lib/ecore/ecore_getopt.c:1012 src/lib/ecore/ecore_getopt.c:1056
+#: src/lib/ecore/ecore_getopt.c:1165 src/lib/ecore/ecore_getopt.c:1202
 msgid "value has no pointer set.\n"
 msgstr "kein Zeiger auf Wert gesetzt\n"
 
-#: src/lib/ecore/ecore_getopt.c:868 src/lib/ecore/ecore_getopt.c:1058
+#: src/lib/ecore/ecore_getopt.c:886 src/lib/ecore/ecore_getopt.c:1076
 #, c-format
 msgid "unknown boolean value %s.\n"
 msgstr "unbekannter boolescher Wert %s\n"
 
-#: src/lib/ecore/ecore_getopt.c:912 src/lib/ecore/ecore_getopt.c:1138
+#: src/lib/ecore/ecore_getopt.c:930 src/lib/ecore/ecore_getopt.c:1156
 #, c-format
 msgid "invalid number format %s\n"
 msgstr "ungültiges Zahlenformat %s\n"
 
-#: src/lib/ecore/ecore_getopt.c:1007
+#: src/lib/ecore/ecore_getopt.c:1025
 #, c-format
 msgid "invalid choice \"%s\". Valid values are: "
 msgstr "ungültige Auswahl »%s«. Gültige Werte sind: "
 
-#: src/lib/ecore/ecore_getopt.c:1032
+#: src/lib/ecore/ecore_getopt.c:1050
 msgid "missing parameter to append.\n"
 msgstr "fehlender Parameter zum Anhängen\n"
 
-#: src/lib/ecore/ecore_getopt.c:1128
+#: src/lib/ecore/ecore_getopt.c:1146
 msgid "could not parse value.\n"
 msgstr "Wert kann nicht ausgewertet werden\n"
 
-#: src/lib/ecore/ecore_getopt.c:1177
+#: src/lib/ecore/ecore_getopt.c:1195
 msgid "missing parameter.\n"
 msgstr "fehlender Parameter\n"
 
-#: src/lib/ecore/ecore_getopt.c:1191
+#: src/lib/ecore/ecore_getopt.c:1209
 msgid "missing callback function!\n"
 msgstr "fehlende Rückruffunktion!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1214
+#: src/lib/ecore/ecore_getopt.c:1232
 msgid "no version was defined.\n"
 msgstr "es wurde keine Version definiert.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1228
+#: src/lib/ecore/ecore_getopt.c:1246
 msgid "no copyright was defined.\n"
 msgstr "es wurde kein Copyright definiert.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1242
+#: src/lib/ecore/ecore_getopt.c:1260
 msgid "no license was defined.\n"
 msgstr "es wurde keine Lizenz definiert.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1296
+#: src/lib/ecore/ecore_getopt.c:1314
 #, c-format
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "FEHLER: Unbekannte Option --%s, ignoriert\n"
 
-#: src/lib/ecore/ecore_getopt.c:1329
+#: src/lib/ecore/ecore_getopt.c:1347
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "FEHLER: Option --%s benötigt ein Argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1365
+#: src/lib/ecore/ecore_getopt.c:1383
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "FEHLER: Unbekannte Option -%c, ignoriert\n"
 
-#: src/lib/ecore/ecore_getopt.c:1403
+#: src/lib/ecore/ecore_getopt.c:1421
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "FEHLER: Option -%c benötigt ein Argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1606
+#: src/lib/ecore/ecore_getopt.c:1624
 msgid "ERROR: no parser provided.\n"
 msgstr "FEHLER: Kein Parser bereitgestellt\n"
 
-#: src/lib/ecore/ecore_getopt.c:1611
+#: src/lib/ecore/ecore_getopt.c:1629
 msgid "ERROR: no values provided.\n"
 msgstr "FEHLER: Keine Werte bereitgestellt\n"
 
-#: src/lib/ecore/ecore_getopt.c:1620
+#: src/lib/ecore/ecore_getopt.c:1638
 msgid "ERROR: no arguments provided.\n"
 msgstr "FEHLER: Keine Argumente bereitgestellt\n"
 
-#: src/lib/ecore/ecore_getopt.c:1646
+#: src/lib/ecore/ecore_getopt.c:1664
 msgid "ERROR: invalid options found."
 msgstr "FEHLER: Ungültige Optionen gefunden"
 
-#: src/lib/ecore/ecore_getopt.c:1652
+#: src/lib/ecore/ecore_getopt.c:1670
 #, c-format
 msgid " See --%s.\n"
 msgstr " Siehe --%s\n"
 
-#: src/lib/ecore/ecore_getopt.c:1654
+#: src/lib/ecore/ecore_getopt.c:1672
 #, c-format
 msgid " See -%c.\n"
 msgstr " Siehe -%c\n"
 
-#: src/lib/ecore/ecore_getopt.c:1691
+#: src/lib/ecore/ecore_getopt.c:1709
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "FEHLER: Falscher Geometriewert »%s«\n"
 
-#: src/lib/ecore/ecore_getopt.c:1714
+#: src/lib/ecore/ecore_getopt.c:1732
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "FEHLER: Falscher Größenwert »%s«\n"
index 6e455b8..597edd1 100644 (file)
--- a/po/el.po
+++ b/po/el.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Ecore\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-08 09:04+0100\n"
+"POT-Creation-Date: 2010-05-14 23:51+1000\n"
 "PO-Revision-Date: 2009-12-15 00:56+0200\n"
 "Last-Translator: Giorgos Koutsikos <ragecryx@yahoo.gr>\n"
 "Language-Team: Greek\n"
@@ -14,159 +14,159 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: src/lib/ecore/ecore_getopt.c:74
+#: src/lib/ecore/ecore_getopt.c:91
 msgid "Version:"
 msgstr "Έκδοση:"
 
-#: src/lib/ecore/ecore_getopt.c:82
+#: src/lib/ecore/ecore_getopt.c:99
 msgid "Usage:"
 msgstr "Χρήση:"
 
-#: src/lib/ecore/ecore_getopt.c:87
+#: src/lib/ecore/ecore_getopt.c:104
 #, c-format
 msgid "%s [options]\n"
 msgstr "%s [επιλογές]\n"
 
-#: src/lib/ecore/ecore_getopt.c:235
+#: src/lib/ecore/ecore_getopt.c:252
 msgid "Copyright:"
 msgstr "Πνευματικά δικαιώματα:"
 
-#: src/lib/ecore/ecore_getopt.c:246
+#: src/lib/ecore/ecore_getopt.c:263
 msgid "License:"
 msgstr "Άδεια:"
 
-#: src/lib/ecore/ecore_getopt.c:398
+#: src/lib/ecore/ecore_getopt.c:415
 msgid "Type: "
 msgstr "Τύπος:"
 
-#: src/lib/ecore/ecore_getopt.c:465
+#: src/lib/ecore/ecore_getopt.c:482
 msgid "Default: "
 msgstr "Προκαθορισμένο:"
 
-#: src/lib/ecore/ecore_getopt.c:488
+#: src/lib/ecore/ecore_getopt.c:505
 msgid "Choices: "
 msgstr "Επιλογές:"
 
-#: src/lib/ecore/ecore_getopt.c:585
+#: src/lib/ecore/ecore_getopt.c:602
 msgid "Options:\n"
 msgstr "Επιλογές:\n"
 
-#: src/lib/ecore/ecore_getopt.c:704
+#: src/lib/ecore/ecore_getopt.c:722
 #, c-format
 msgid "ERROR: unknown option --%s.\n"
 msgstr "ΣΦΑΛΜΑ: άγνωστη παράμετρος --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:706
+#: src/lib/ecore/ecore_getopt.c:724
 #, c-format
 msgid "ERROR: unknown option -%c.\n"
 msgstr "ΣΦΑΛΜΑ: άγνωστη παράμετρος -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:762
+#: src/lib/ecore/ecore_getopt.c:780
 msgid "ERROR: "
 msgstr "ΣΦΑΛΜΑ:"
 
-#: src/lib/ecore/ecore_getopt.c:839 src/lib/ecore/ecore_getopt.c:955
-#: src/lib/ecore/ecore_getopt.c:968 src/lib/ecore/ecore_getopt.c:980
-#: src/lib/ecore/ecore_getopt.c:994 src/lib/ecore/ecore_getopt.c:1038
-#: src/lib/ecore/ecore_getopt.c:1147 src/lib/ecore/ecore_getopt.c:1184
+#: src/lib/ecore/ecore_getopt.c:857 src/lib/ecore/ecore_getopt.c:973
+#: src/lib/ecore/ecore_getopt.c:986 src/lib/ecore/ecore_getopt.c:998
+#: src/lib/ecore/ecore_getopt.c:1012 src/lib/ecore/ecore_getopt.c:1056
+#: src/lib/ecore/ecore_getopt.c:1165 src/lib/ecore/ecore_getopt.c:1202
 msgid "value has no pointer set.\n"
 msgstr "η τιμή δεν έχει δείκτη ορισμένο.\n"
 
-#: src/lib/ecore/ecore_getopt.c:868 src/lib/ecore/ecore_getopt.c:1058
+#: src/lib/ecore/ecore_getopt.c:886 src/lib/ecore/ecore_getopt.c:1076
 #, c-format
 msgid "unknown boolean value %s.\n"
 msgstr "άγνωστη τιμή boolean %s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:912 src/lib/ecore/ecore_getopt.c:1138
+#: src/lib/ecore/ecore_getopt.c:930 src/lib/ecore/ecore_getopt.c:1156
 #, c-format
 msgid "invalid number format %s\n"
 msgstr "άγνωστη μορφή αριθμού %s\n"
 
-#: src/lib/ecore/ecore_getopt.c:1007
+#: src/lib/ecore/ecore_getopt.c:1025
 #, c-format
 msgid "invalid choice \"%s\". Valid values are: "
 msgstr "μη-έγκυρη επιλογή \"%s\". Οι τιμές είναι: "
 
-#: src/lib/ecore/ecore_getopt.c:1032
+#: src/lib/ecore/ecore_getopt.c:1050
 msgid "missing parameter to append.\n"
 msgstr "ελλιπής παράμετρος προς επισύναψη.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1128
+#: src/lib/ecore/ecore_getopt.c:1146
 msgid "could not parse value.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1177
+#: src/lib/ecore/ecore_getopt.c:1195
 msgid "missing parameter.\n"
 msgstr "ελλιπής παράμετρος.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1191
+#: src/lib/ecore/ecore_getopt.c:1209
 msgid "missing callback function!\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1214
+#: src/lib/ecore/ecore_getopt.c:1232
 msgid "no version was defined.\n"
 msgstr "δεν έχει οριστεί έκδοση.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1228
+#: src/lib/ecore/ecore_getopt.c:1246
 msgid "no copyright was defined.\n"
 msgstr "δεν έχουν οριστεί πνευματικά δικαιώματα.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1242
+#: src/lib/ecore/ecore_getopt.c:1260
 msgid "no license was defined.\n"
 msgstr "δεν έχει οριστεί άδεια.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1296
+#: src/lib/ecore/ecore_getopt.c:1314
 #, c-format
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1329
+#: src/lib/ecore/ecore_getopt.c:1347
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1365
+#: src/lib/ecore/ecore_getopt.c:1383
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1403
+#: src/lib/ecore/ecore_getopt.c:1421
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1606
+#: src/lib/ecore/ecore_getopt.c:1624
 msgid "ERROR: no parser provided.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1611
+#: src/lib/ecore/ecore_getopt.c:1629
 msgid "ERROR: no values provided.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1620
+#: src/lib/ecore/ecore_getopt.c:1638
 msgid "ERROR: no arguments provided.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1646
+#: src/lib/ecore/ecore_getopt.c:1664
 msgid "ERROR: invalid options found."
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1652
+#: src/lib/ecore/ecore_getopt.c:1670
 #, c-format
 msgid " See --%s.\n"
 msgstr " Δες --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1654
+#: src/lib/ecore/ecore_getopt.c:1672
 #, c-format
 msgid " See -%c.\n"
 msgstr " Δες -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1691
+#: src/lib/ecore/ecore_getopt.c:1709
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1714
+#: src/lib/ecore/ecore_getopt.c:1732
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr ""
index d9db977..71ed19c 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Ecore\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-08 09:04+0100\n"
+"POT-Creation-Date: 2010-05-14 23:51+1000\n"
 "PO-Revision-Date: 2010-03-13 14:04+0400\n"
 "Last-Translator: batden <batden@orange.fr>\n"
 "Language-Team: Enlightenment French Team <pourunmondesansgourou@gmail.com>\n"
@@ -18,165 +18,159 @@ msgstr ""
 "X-Poedit-Country: FRANCE\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: src/lib/ecore/ecore_getopt.c:74
+#: src/lib/ecore/ecore_getopt.c:91
 msgid "Version:"
 msgstr "Version :"
 
-#: src/lib/ecore/ecore_getopt.c:82
+#: src/lib/ecore/ecore_getopt.c:99
 msgid "Usage:"
 msgstr "Usage :"
 
-#: src/lib/ecore/ecore_getopt.c:87
+#: src/lib/ecore/ecore_getopt.c:104
 #, c-format
 msgid "%s [options]\n"
 msgstr "%s [options]\n"
 
-#: src/lib/ecore/ecore_getopt.c:235
+#: src/lib/ecore/ecore_getopt.c:252
 msgid "Copyright:"
 msgstr "Copyright :"
 
-#: src/lib/ecore/ecore_getopt.c:246
+#: src/lib/ecore/ecore_getopt.c:263
 msgid "License:"
 msgstr "Licence :"
 
-#: src/lib/ecore/ecore_getopt.c:398
+#: src/lib/ecore/ecore_getopt.c:415
 msgid "Type: "
 msgstr "Type : "
 
-#: src/lib/ecore/ecore_getopt.c:465
+#: src/lib/ecore/ecore_getopt.c:482
 msgid "Default: "
 msgstr "Par défaut :"
 
-#: src/lib/ecore/ecore_getopt.c:488
+#: src/lib/ecore/ecore_getopt.c:505
 msgid "Choices: "
 msgstr "Choix :"
 
-#: src/lib/ecore/ecore_getopt.c:585
+#: src/lib/ecore/ecore_getopt.c:602
 msgid "Options:\n"
 msgstr "Options :\n"
 
-#: src/lib/ecore/ecore_getopt.c:704
+#: src/lib/ecore/ecore_getopt.c:722
 #, c-format
 msgid "ERROR: unknown option --%s.\n"
 msgstr "ERREUR : option inconnue --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:706
+#: src/lib/ecore/ecore_getopt.c:724
 #, c-format
 msgid "ERROR: unknown option -%c.\n"
 msgstr "ERREUR : option inconnue -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:762
+#: src/lib/ecore/ecore_getopt.c:780
 msgid "ERROR: "
 msgstr "ERREUR :"
 
-#: src/lib/ecore/ecore_getopt.c:839
-#: src/lib/ecore/ecore_getopt.c:955
-#: src/lib/ecore/ecore_getopt.c:968
-#: src/lib/ecore/ecore_getopt.c:980
-#: src/lib/ecore/ecore_getopt.c:994
-#: src/lib/ecore/ecore_getopt.c:1038
-#: src/lib/ecore/ecore_getopt.c:1147
-#: src/lib/ecore/ecore_getopt.c:1184
+#: src/lib/ecore/ecore_getopt.c:857 src/lib/ecore/ecore_getopt.c:973
+#: src/lib/ecore/ecore_getopt.c:986 src/lib/ecore/ecore_getopt.c:998
+#: src/lib/ecore/ecore_getopt.c:1012 src/lib/ecore/ecore_getopt.c:1056
+#: src/lib/ecore/ecore_getopt.c:1165 src/lib/ecore/ecore_getopt.c:1202
 msgid "value has no pointer set.\n"
 msgstr "la valeur n'a aucun pointeur défini.\n"
 
-#: src/lib/ecore/ecore_getopt.c:868
-#: src/lib/ecore/ecore_getopt.c:1058
+#: src/lib/ecore/ecore_getopt.c:886 src/lib/ecore/ecore_getopt.c:1076
 #, c-format
 msgid "unknown boolean value %s.\n"
 msgstr "valeur booléenne inconnue %s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:912
-#: src/lib/ecore/ecore_getopt.c:1138
+#: src/lib/ecore/ecore_getopt.c:930 src/lib/ecore/ecore_getopt.c:1156
 #, c-format
 msgid "invalid number format %s\n"
 msgstr "format du nombre non valide %s\n"
 
-#: src/lib/ecore/ecore_getopt.c:1007
+#: src/lib/ecore/ecore_getopt.c:1025
 #, c-format
 msgid "invalid choice \"%s\". Valid values are: "
 msgstr "choix non valide \"%s\". Les valeurs valides sont : "
 
-#: src/lib/ecore/ecore_getopt.c:1032
+#: src/lib/ecore/ecore_getopt.c:1050
 msgid "missing parameter to append.\n"
 msgstr "paramètre manquant à ajouter.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1128
+#: src/lib/ecore/ecore_getopt.c:1146
 msgid "could not parse value.\n"
 msgstr "analyse de la valeur impossible.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1177
+#: src/lib/ecore/ecore_getopt.c:1195
 msgid "missing parameter.\n"
 msgstr "paramètre manquant.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1191
+#: src/lib/ecore/ecore_getopt.c:1209
 msgid "missing callback function!\n"
 msgstr "fonction de rappel manquante !\n"
 
-#: src/lib/ecore/ecore_getopt.c:1214
+#: src/lib/ecore/ecore_getopt.c:1232
 msgid "no version was defined.\n"
 msgstr "aucune version n'est définie.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1228
+#: src/lib/ecore/ecore_getopt.c:1246
 msgid "no copyright was defined.\n"
 msgstr "aucun copyright n'est défini.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1242
+#: src/lib/ecore/ecore_getopt.c:1260
 msgid "no license was defined.\n"
 msgstr "aucune licence n'est définie.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1296
+#: src/lib/ecore/ecore_getopt.c:1314
 #, c-format
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "ERREUR : option inconnue --%s, non prise en compte.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1329
+#: src/lib/ecore/ecore_getopt.c:1347
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "ERREUR : l'option --%s requiert un argument !\n"
 
-#: src/lib/ecore/ecore_getopt.c:1365
+#: src/lib/ecore/ecore_getopt.c:1383
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "ERREUR : option inconnue -%c, non prise en compte.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1403
+#: src/lib/ecore/ecore_getopt.c:1421
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "ERREUR : l'option -%c requiert un argument !\n"
 
-#: src/lib/ecore/ecore_getopt.c:1606
+#: src/lib/ecore/ecore_getopt.c:1624
 msgid "ERROR: no parser provided.\n"
 msgstr "ERREUR : aucun analyseur n'est fourni.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1611
+#: src/lib/ecore/ecore_getopt.c:1629
 msgid "ERROR: no values provided.\n"
 msgstr "ERREUR : aucune valeur n'est fournie.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1620
+#: src/lib/ecore/ecore_getopt.c:1638
 msgid "ERROR: no arguments provided.\n"
 msgstr "ERREUR : aucun argument n'est fourni.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1646
+#: src/lib/ecore/ecore_getopt.c:1664
 msgid "ERROR: invalid options found."
 msgstr "ERREUR : options non valides détectées."
 
-#: src/lib/ecore/ecore_getopt.c:1652
+#: src/lib/ecore/ecore_getopt.c:1670
 #, c-format
 msgid " See --%s.\n"
 msgstr " Voir --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1654
+#: src/lib/ecore/ecore_getopt.c:1672
 #, c-format
 msgid " See -%c.\n"
 msgstr " Voir -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1691
+#: src/lib/ecore/ecore_getopt.c:1709
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "ERREUR : valeur géométrique incorrecte '%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:1714
+#: src/lib/ecore/ecore_getopt.c:1732
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "ERREUR : valeur de taille incorrecte '%s'\n"
@@ -187,20 +181,27 @@ msgstr "ERREUR : valeur de taille incorrecte '%s'\n"
 #~ msgstr ""
 #~ "\n"
 #~ "   "
+
 #~ msgid "true"
 #~ msgstr "true"
+
 #~ msgid "false"
 #~ msgstr "false"
+
 #~ msgid "f"
 #~ msgstr "f"
+
 #~ msgid "no"
 #~ msgstr "no"
+
 #~ msgid "off"
 #~ msgstr "off"
+
 #~ msgid "t"
 #~ msgstr "t"
+
 #~ msgid "yes"
 #~ msgstr "yes"
+
 #~ msgid "on"
 #~ msgstr "on"
-
index 61ec74b..5f7c587 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Ecore\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-08 09:04+0100\n"
+"POT-Creation-Date: 2010-05-14 23:51+1000\n"
 "PO-Revision-Date: 2009-10-27 19:36+0100\n"
 "Last-Translator: quaker66 <quaker66@gmail.com>\n"
 "Language-Team: none\n"
@@ -14,159 +14,159 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: src/lib/ecore/ecore_getopt.c:74
+#: src/lib/ecore/ecore_getopt.c:91
 msgid "Version:"
 msgstr "Versione:"
 
-#: src/lib/ecore/ecore_getopt.c:82
+#: src/lib/ecore/ecore_getopt.c:99
 msgid "Usage:"
 msgstr "Uso:"
 
-#: src/lib/ecore/ecore_getopt.c:87
+#: src/lib/ecore/ecore_getopt.c:104
 #, c-format
 msgid "%s [options]\n"
 msgstr "%s [opzioni]\n"
 
-#: src/lib/ecore/ecore_getopt.c:235
+#: src/lib/ecore/ecore_getopt.c:252
 msgid "Copyright:"
 msgstr "Copyright:"
 
-#: src/lib/ecore/ecore_getopt.c:246
+#: src/lib/ecore/ecore_getopt.c:263
 msgid "License:"
 msgstr "Licenza:"
 
-#: src/lib/ecore/ecore_getopt.c:398
+#: src/lib/ecore/ecore_getopt.c:415
 msgid "Type: "
 msgstr "Tipo: "
 
-#: src/lib/ecore/ecore_getopt.c:465
+#: src/lib/ecore/ecore_getopt.c:482
 msgid "Default: "
 msgstr "Predefinito:"
 
-#: src/lib/ecore/ecore_getopt.c:488
+#: src/lib/ecore/ecore_getopt.c:505
 msgid "Choices: "
 msgstr "Scelte:"
 
-#: src/lib/ecore/ecore_getopt.c:585
+#: src/lib/ecore/ecore_getopt.c:602
 msgid "Options:\n"
 msgstr "Opzioni:\n"
 
-#: src/lib/ecore/ecore_getopt.c:704
+#: src/lib/ecore/ecore_getopt.c:722
 #, c-format
 msgid "ERROR: unknown option --%s.\n"
 msgstr "ERRORE: opzione sconosciuta --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:706
+#: src/lib/ecore/ecore_getopt.c:724
 #, c-format
 msgid "ERROR: unknown option -%c.\n"
 msgstr "ERRORE: opzione sconosciuta -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:762
+#: src/lib/ecore/ecore_getopt.c:780
 msgid "ERROR: "
 msgstr "ERRORE:"
 
-#: src/lib/ecore/ecore_getopt.c:839 src/lib/ecore/ecore_getopt.c:955
-#: src/lib/ecore/ecore_getopt.c:968 src/lib/ecore/ecore_getopt.c:980
-#: src/lib/ecore/ecore_getopt.c:994 src/lib/ecore/ecore_getopt.c:1038
-#: src/lib/ecore/ecore_getopt.c:1147 src/lib/ecore/ecore_getopt.c:1184
+#: src/lib/ecore/ecore_getopt.c:857 src/lib/ecore/ecore_getopt.c:973
+#: src/lib/ecore/ecore_getopt.c:986 src/lib/ecore/ecore_getopt.c:998
+#: src/lib/ecore/ecore_getopt.c:1012 src/lib/ecore/ecore_getopt.c:1056
+#: src/lib/ecore/ecore_getopt.c:1165 src/lib/ecore/ecore_getopt.c:1202
 msgid "value has no pointer set.\n"
 msgstr "il valore non ha puntatori impostati.\n"
 
-#: src/lib/ecore/ecore_getopt.c:868 src/lib/ecore/ecore_getopt.c:1058
+#: src/lib/ecore/ecore_getopt.c:886 src/lib/ecore/ecore_getopt.c:1076
 #, c-format
 msgid "unknown boolean value %s.\n"
 msgstr "valore booleano sconosciuto %s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:912 src/lib/ecore/ecore_getopt.c:1138
+#: src/lib/ecore/ecore_getopt.c:930 src/lib/ecore/ecore_getopt.c:1156
 #, c-format
 msgid "invalid number format %s\n"
 msgstr "formato numero non valido %s\n"
 
-#: src/lib/ecore/ecore_getopt.c:1007
+#: src/lib/ecore/ecore_getopt.c:1025
 #, c-format
 msgid "invalid choice \"%s\". Valid values are: "
 msgstr "scelta non valida \"%s\". I valori ammessi sono: "
 
-#: src/lib/ecore/ecore_getopt.c:1032
+#: src/lib/ecore/ecore_getopt.c:1050
 msgid "missing parameter to append.\n"
 msgstr "parametro da appendere mancante.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1128
+#: src/lib/ecore/ecore_getopt.c:1146
 msgid "could not parse value.\n"
 msgstr "impossibile il parsing del valore.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1177
+#: src/lib/ecore/ecore_getopt.c:1195
 msgid "missing parameter.\n"
 msgstr "parametro mancante.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1191
+#: src/lib/ecore/ecore_getopt.c:1209
 msgid "missing callback function!\n"
 msgstr "funzione callback mancante!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1214
+#: src/lib/ecore/ecore_getopt.c:1232
 msgid "no version was defined.\n"
 msgstr "nessuna versione definita.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1228
+#: src/lib/ecore/ecore_getopt.c:1246
 msgid "no copyright was defined.\n"
 msgstr "nessun copyright definito.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1242
+#: src/lib/ecore/ecore_getopt.c:1260
 msgid "no license was defined.\n"
 msgstr "nessuna licenza definita.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1296
+#: src/lib/ecore/ecore_getopt.c:1314
 #, c-format
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "ERRORE: opzione sconosciuta --%s, ignorata.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1329
+#: src/lib/ecore/ecore_getopt.c:1347
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "ERRORE: l'opzione --%s richiede un argomento!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1365
+#: src/lib/ecore/ecore_getopt.c:1383
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "ERRORE: opzione sconosciuta -%c, ignorata.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1403
+#: src/lib/ecore/ecore_getopt.c:1421
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "ERRORE: l'opzione -%c richiede un argomento!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1606
+#: src/lib/ecore/ecore_getopt.c:1624
 msgid "ERROR: no parser provided.\n"
 msgstr "ERRORE: nessun parser fornito.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1611
+#: src/lib/ecore/ecore_getopt.c:1629
 msgid "ERROR: no values provided.\n"
 msgstr "ERRORE: nessun valore fornito.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1620
+#: src/lib/ecore/ecore_getopt.c:1638
 msgid "ERROR: no arguments provided.\n"
 msgstr "ERRORE: nessun argomento fornito.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1646
+#: src/lib/ecore/ecore_getopt.c:1664
 msgid "ERROR: invalid options found."
 msgstr "ERRORE: trovate opzioni non valide."
 
-#: src/lib/ecore/ecore_getopt.c:1652
+#: src/lib/ecore/ecore_getopt.c:1670
 #, c-format
 msgid " See --%s.\n"
 msgstr " Vedere --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1654
+#: src/lib/ecore/ecore_getopt.c:1672
 #, c-format
 msgid " See -%c.\n"
 msgstr " Vedere -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1691
+#: src/lib/ecore/ecore_getopt.c:1709
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "ERRORE: valore geometrico non corretto '%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:1714
+#: src/lib/ecore/ecore_getopt.c:1732
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "ERRORE: valore dimensione non corretto '%s'\n"
index 48dea7b..bedcbb0 100644 (file)
 extern "C" {
 #endif
 
+#define ECORE_VERSION_MAJOR 0
+#define ECORE_VERSION_MINOR 9
+
+   typedef struct _Ecore_Version
+     {
+        int major;
+        int minor;
+        int micro;
+        int revision;
+     } Ecore_Version;
+   
+   EAPI extern Ecore_Version *ecore_version;
+
 #define ECORE_CALLBACK_CANCEL 0 /**< Return value to remove a callback */
 #define ECORE_CALLBACK_RENEW 1  /**< Return value to keep a callback */
 
@@ -345,6 +358,8 @@ extern "C" {
 
    EAPI void          ecore_poller_poll_interval_set(Ecore_Poller_Type type, double poll_time);
    EAPI double        ecore_poller_poll_interval_get(Ecore_Poller_Type type);
+   EAPI Eina_Bool     ecore_poller_poller_interval_set(Ecore_Poller *poller, int interval);
+   EAPI int           ecore_poller_poller_interval_get(Ecore_Poller *poller);
    EAPI Ecore_Poller *ecore_poller_add(Ecore_Poller_Type type, int interval, int (*func) (void *data), const void *data);
    EAPI void         *ecore_poller_del(Ecore_Poller *poller);
 
index c1fb716..f852281 100644 (file)
@@ -45,6 +45,6 @@ endif
 endif
 
 libecore_la_LIBADD = @dlopen_libs@ @EINA_LIBS@ @EVIL_LIBS@ @GLIB_LIBS@ @WIN32_LIBS@ @LTLIBINTL@ @EFL_PTHREAD_LIBS@ -lm
-libecore_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @ecore_release_info@
+libecore_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
 
 EXTRA_DIST = ecore_private.h
index 8ccb8d2..a77bf2c 100644 (file)
@@ -39,6 +39,9 @@
 #if HAVE_MALLINFO
 #include <malloc.h>
 
+static Ecore_Version _version = { VERS_MAJ, VERS_MIN, VERS_MIC, VERS_REV };
+EAPI Ecore_Version *ecore_version = &_version;
+
 #define KEEP_MAX(Global, Local)                        \
    if (Global < (Local))                       \
      Global = Local;
index e30234d..1890719 100644 (file)
@@ -11,6 +11,7 @@
 #include "Ecore.h"
 #include "ecore_private.h"
 
+static int inpurge = 0;
 
 struct _Ecore_Event_Handler
 {
@@ -52,6 +53,7 @@ struct _Ecore_Event
 static int events_num = 0;
 static Ecore_Event *events = NULL;
 static Ecore_Event *event_current = NULL;
+static Ecore_Event *purge_events = NULL;
 
 static Ecore_Event_Handler **event_handlers = NULL;
 static Ecore_Event_Handler *event_handler_current = NULL;
@@ -61,6 +63,7 @@ static Eina_List *event_handlers_delete_list = NULL;
 
 static Ecore_Event_Filter *event_filters = NULL;
 static Ecore_Event_Filter *event_filter_current = NULL;
+static Ecore_Event *event_filter_event_current = NULL;
 static int event_filters_delete_me = 0;
 static int event_id_max = ECORE_EVENT_COUNT;
 static int ecore_raw_event_type = ECORE_EVENT_NONE;
@@ -363,12 +366,15 @@ _ecore_event_shutdown(void)
      }
    event_filters_delete_me = 0;
    event_filter_current = NULL;
+   event_filter_event_current = NULL;
 }
 
 int
 _ecore_event_exist(void)
 {
-   if (events) return 1;
+   Ecore_Event *e;
+   EINA_INLIST_FOREACH(events, e)
+      if (!e->delete_me) return 1;
    return 0;
 }
 
@@ -384,8 +390,16 @@ _ecore_event_add(int type, void *ev, void (*func_free) (void *data, void *ev), v
    e->event = ev;
    e->func_free = func_free;
    e->data = data;
-   events = (Ecore_Event *) eina_inlist_append(EINA_INLIST_GET(events), EINA_INLIST_GET(e));
-   events_num++;
+   if (inpurge > 0)
+     {
+        purge_events = (Ecore_Event *)eina_inlist_append(EINA_INLIST_GET(purge_events), EINA_INLIST_GET(e));
+        events_num++;
+     }
+   else
+     {
+        events = (Ecore_Event *)eina_inlist_append(EINA_INLIST_GET(events), EINA_INLIST_GET(e));
+        events_num++;
+     }
    return e;
 }
 
@@ -408,20 +422,26 @@ _ecore_event_purge_deleted(void)
 {
    Ecore_Event *itr = events;
 
+   inpurge++;
    while (itr)
      {
        Ecore_Event *next = (Ecore_Event *)EINA_INLIST_GET(itr)->next;
-       if (!itr->references)
+       if ((!itr->references) && (itr->delete_me))
          _ecore_event_del(itr);
        itr = next;
      }
+   inpurge--;
+   while (purge_events)
+     {
+        Ecore_Event *e = purge_events;
+        purge_events = (Ecore_Event *)eina_inlist_remove(EINA_INLIST_GET(purge_events), EINA_INLIST_GET(purge_events));
+        events = (Ecore_Event *)eina_inlist_append(EINA_INLIST_GET(events), EINA_INLIST_GET(e));
+     }
 }
 
-void
-_ecore_event_call(void)
+static inline void
+_ecore_event_filters_apply()
 {
-   Eina_List *l, *l_next;
-   Ecore_Event_Handler *eh;
 
    if (!event_filter_current)
      {
@@ -445,30 +465,29 @@ _ecore_event_call(void)
             if (ef->func_start)
               ef->loop_data = ef->func_start(ef->data);
 
-            if (!event_current)
+            if (!event_filter_event_current)
               {
                  /* regular main loop, start from head */
-                 event_current = events;
+                 event_filter_event_current = events;
               }
             else
               {
                  /* recursive main loop, continue from where we were */
-                 event_current = (Ecore_Event *)EINA_INLIST_GET(event_current)->next;
+                 event_filter_event_current = (Ecore_Event *)EINA_INLIST_GET(event_filter_event_current)->next;
               }
 
-            while (event_current)
+            while (event_filter_event_current)
               {
-                 Ecore_Event *e = event_current;
+                 Ecore_Event *e = event_filter_event_current;
 
-                 if (!ef->func_filter(ef->loop_data, ef->data,
+                 if (!ef->func_filter(ef->data, ef->loop_data,
                                       e->type, e->event))
                    {
-//                    printf("FILTER SAID TO DEL ev %p\n", e->event);
                       ecore_event_del(e);
                    }
 
-                 if (event_current) /* may have changed in recursive main loops */
-                   event_current = (Ecore_Event *)EINA_INLIST_GET(event_current)->next;
+                 if (event_filter_event_current) /* may have changed in recursive main loops */
+                   event_filter_event_current = (Ecore_Event *)EINA_INLIST_GET(event_filter_event_current)->next;
               }
             if (ef->func_end)
               ef->func_end(ef->data, ef->loop_data);
@@ -482,7 +501,7 @@ _ecore_event_call(void)
    if (event_filters_delete_me)
      {
        int deleted_in_use = 0;
-       Ecore_Event_Filter *l;
+       Ecore_Event_Filter *l;
        for (l = event_filters; l;)
          {
             Ecore_Event_Filter *ef = l;
@@ -503,8 +522,14 @@ _ecore_event_call(void)
        if (!deleted_in_use)
          event_filters_delete_me = 0;
      }
+}
+void
+_ecore_event_call(void)
+{
+   Eina_List *l, *l_next;
+   Ecore_Event_Handler *eh;
 
-//   printf("EVENT BATCH...\n");
+   _ecore_event_filters_apply();
 
    if (!event_current)
      {
@@ -516,65 +541,70 @@ _ecore_event_call(void)
    while (event_current)
      {
        Ecore_Event *e = event_current;
+       int handle_count = 0;
 
-       if (!e->delete_me)
+       if (e->delete_me)
          {
-            int handle_count = 0;
-            ecore_raw_event_type = e->type;
-            ecore_raw_event_event = e->event;
-            e->references++;
-//          printf("HANDLE ev type %i, %p\n", e->type, e->event);
-            if ((e->type >= 0) && (e->type < event_handlers_num))
+            event_current = (Ecore_Event *)EINA_INLIST_GET(event_current)->next;
+            continue;
+         }
+
+       ecore_raw_event_type = e->type;
+       ecore_raw_event_event = e->event;
+       e->references++;
+       if ((e->type >= 0) && (e->type < event_handlers_num))
+         {
+            if (!event_handler_current)
               {
-                 if (!event_handler_current)
-                   {
-                      /* regular main loop, start from head */
-                      event_handler_current = event_handlers[e->type];
-                   }
-                 else
-                   {
-                      /* recursive main loop, continue from where we were */
-                      event_handler_current= (Ecore_Event_Handler *)EINA_INLIST_GET(event_handler_current)->next;
-                   }
+                 /* regular main loop, start from head */
+                 event_handler_current = event_handlers[e->type];
+              }
+            else
+              {
+                 /* recursive main loop, continue from where we were */
+                 event_handler_current = (Ecore_Event_Handler *)EINA_INLIST_GET(event_handler_current)->next;
+              }
 
-                 while ((event_handler_current) && (!e->delete_me))
+            while ((event_handler_current) && (!e->delete_me))
+              {
+                 Ecore_Event_Handler *eh = event_handler_current;
+                 if (!eh->delete_me)
                    {
-                      Ecore_Event_Handler *eh = event_handler_current;
-                      if (!eh->delete_me)
-                        {
-                           int ret;
+                      int ret;
 
-                           handle_count++;
+                      handle_count++;
 
-                           eh->references++;
-                           ret = eh->func(eh->data, e->type, e->event);
-                           eh->references--;
+                      eh->references++;
+                      ret = eh->func(eh->data, e->type, e->event);
+                      eh->references--;
 
-                           if (!ret)
-                             {
-                                event_handler_current = NULL;
-                                break;  /* 0 == "call no further handlers" */
-                             }
+                      if (!ret)
+                        {
+                           event_handler_current = NULL;
+                           break;  /* 0 == "call no further handlers" */
                         }
-                      if (event_handler_current) /* may have changed in recursive main loops */
-                        event_handler_current= (Ecore_Event_Handler *)EINA_INLIST_GET(event_handler_current)->next;
                    }
+
+                 if (event_handler_current) /* may have changed in recursive main loops */
+                   event_handler_current = (Ecore_Event_Handler *)EINA_INLIST_GET(event_handler_current)->next;
               }
-            /* if no handlers were set for EXIT signal - then default is */
-            /* to quit the main loop */
-            if ((e->type == ECORE_EVENT_SIGNAL_EXIT) && (handle_count == 0))
-              ecore_main_loop_quit();
-            e->references--;
          }
+       /* if no handlers were set for EXIT signal - then default is */
+       /* to quit the main loop */
+       if ((e->type == ECORE_EVENT_SIGNAL_EXIT) && (handle_count == 0))
+         ecore_main_loop_quit();
+       e->references--;
+       e->delete_me = 1;
 
        if (event_current) /* may have changed in recursive main loops */
          event_current = (Ecore_Event *)EINA_INLIST_GET(event_current)->next;
      }
-//   printf("EVENT BATCH DONE\n");
+
    ecore_raw_event_type = ECORE_EVENT_NONE;
    ecore_raw_event_event = NULL;
 
    _ecore_event_purge_deleted();
+
    EINA_LIST_FOREACH_SAFE(event_handlers_delete_list, l, l_next, eh)
      {
        if (eh->references) continue;
index 7c53bfd..61e7636 100644 (file)
@@ -163,7 +163,7 @@ EAPI void
 ecore_main_loop_begin(void)
 {
    in_main_loop++;
-   for (;do_quit == 0;) _ecore_main_loop_iterate_internal(0);
+   while (do_quit == 0) _ecore_main_loop_iterate_internal(0);
    do_quit = 0;
    in_main_loop--;
 }
@@ -193,7 +193,7 @@ ecore_main_loop_quit(void)
  * @ingroup Ecore_Main_Loop_Group
  */
 EAPI void
-ecore_main_loop_select_func_set(int (*func)(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout))
+ecore_main_loop_select_func_set(int (*func) (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout))
 {
    main_loop_select = func;
 }
@@ -253,9 +253,7 @@ ecore_main_fd_handler_add(int fd, Ecore_Fd_Handler_Flags flags, int (*func) (voi
 {
    Ecore_Fd_Handler *fdh;
 
-   if ((fd < 0) ||
-       (flags == 0) ||
-       (!func)) return NULL;
+   if ((fd < 0) || (flags == 0) || (!func)) return NULL;
 
    fdh = calloc(1, sizeof(Ecore_Fd_Handler));
    if (!fdh) return NULL;
@@ -270,8 +268,9 @@ ecore_main_fd_handler_add(int fd, Ecore_Fd_Handler_Flags flags, int (*func) (voi
    fdh->data = (void *)data;
    fdh->buf_func = buf_func;
    fdh->buf_data = (void *)buf_data;
-   fd_handlers = (Ecore_Fd_Handler *) eina_inlist_append(EINA_INLIST_GET(fd_handlers),
-                                                        EINA_INLIST_GET(fdh));
+   fd_handlers = (Ecore_Fd_Handler *)
+     eina_inlist_append(EINA_INLIST_GET(fd_handlers),
+                        EINA_INLIST_GET(fdh));
    return fdh;
 }
 
@@ -283,8 +282,7 @@ ecore_main_win32_handler_add(void *h,
 {
    Ecore_Win32_Handler *wh;
 
-   if (!h || !func)
-     return NULL;
+   if (!h || !func) return NULL;
 
    wh = calloc(1, sizeof(Ecore_Win32_Handler));
    if (!wh) return NULL;
@@ -293,8 +291,9 @@ ecore_main_win32_handler_add(void *h,
    wh->delete_me = 0;
    wh->func = func;
    wh->data = (void *)data;
-   win32_handlers = (Ecore_Win32_Handler *)eina_inlist_append(EINA_INLIST_GET(win32_handlers),
-                                                              EINA_INLIST_GET(wh));
+   win32_handlers = (Ecore_Win32_Handler *)
+     eina_inlist_append(EINA_INLIST_GET(win32_handlers),
+                        EINA_INLIST_GET(wh));
    return wh;
 }
 #else
@@ -504,31 +503,35 @@ _ecore_main_select(double timeout)
 
    /* call the prepare callback for all handlers */
    EINA_INLIST_FOREACH(fd_handlers, fdh)
-     if (!fdh->delete_me && fdh->prep_func)
-       {
-         fdh->references++;
-         fdh->prep_func (fdh->prep_data, fdh);
-         fdh->references--;
-       }
+     {
+        if (!fdh->delete_me && fdh->prep_func)
+          {
+             fdh->references++;
+             fdh->prep_func (fdh->prep_data, fdh);
+             fdh->references--;
+          }
+     }
    EINA_INLIST_FOREACH(fd_handlers, fdh)
-     if (!fdh->delete_me)
-       {
-         if (fdh->flags & ECORE_FD_READ)
-           {
-              FD_SET(fdh->fd, &rfds);
-              if (fdh->fd > max_fd) max_fd = fdh->fd;
-           }
-         if (fdh->flags & ECORE_FD_WRITE)
-           {
-              FD_SET(fdh->fd, &wfds);
-              if (fdh->fd > max_fd) max_fd = fdh->fd;
-           }
-         if (fdh->flags & ECORE_FD_ERROR)
-           {
-              FD_SET(fdh->fd, &exfds);
-              if (fdh->fd > max_fd) max_fd = fdh->fd;
-           }
-       }
+     {
+        if (!fdh->delete_me)
+          {
+             if (fdh->flags & ECORE_FD_READ)
+               {
+                  FD_SET(fdh->fd, &rfds);
+                  if (fdh->fd > max_fd) max_fd = fdh->fd;
+               }
+             if (fdh->flags & ECORE_FD_WRITE)
+               {
+                  FD_SET(fdh->fd, &wfds);
+                  if (fdh->fd > max_fd) max_fd = fdh->fd;
+               }
+             if (fdh->flags & ECORE_FD_ERROR)
+               {
+                  FD_SET(fdh->fd, &exfds);
+                  if (fdh->fd > max_fd) max_fd = fdh->fd;
+               }
+          }
+     }
    if (_ecore_signal_count_get()) return -1;
 
    ret = main_loop_select(max_fd + 1, &rfds, &wfds, &exfds, t);
@@ -630,22 +633,20 @@ _ecore_main_fd_handlers_cleanup(void)
        l = l->next;
        if (fdh->delete_me)
          {
-//          ERR("Removing fd %d", fdh->fd);
-
             if (fdh->references)
               {
                  deleted_in_use++;
                  continue;
               }
 
-            fd_handlers = (Ecore_Fd_Handler *) eina_inlist_remove(EINA_INLIST_GET(fd_handlers),
-                                                                  EINA_INLIST_GET(fdh));
+            fd_handlers = (Ecore_Fd_Handler *)
+               eina_inlist_remove(EINA_INLIST_GET(fd_handlers),
+                                  EINA_INLIST_GET(fdh));
             ECORE_MAGIC_SET(fdh, ECORE_MAGIC_NONE);
             free(fdh);
          }
      }
-   if (!deleted_in_use)
-     fd_handlers_delete_me = 0;
+   if (!deleted_in_use) fd_handlers_delete_me = 0;
 }
 
 #ifdef _WIN32
@@ -670,14 +671,14 @@ _ecore_main_win32_handlers_cleanup(void)
                  continue;
               }
 
-             win32_handlers = (Ecore_Win32_Handler *)eina_inlist_remove(EINA_INLIST_GET(win32_handlers),
-                                                                        EINA_INLIST_GET(wh));
+             win32_handlers = (Ecore_Win32_Handler *)
+               eina_inlist_remove(EINA_INLIST_GET(win32_handlers),
+                                  EINA_INLIST_GET(wh));
              ECORE_MAGIC_SET(wh, ECORE_MAGIC_NONE);
              free(wh);
           }
      }
-   if (!deleted_in_use)
-     win32_handlers_delete_me = 0;
+   if (!deleted_in_use) win32_handlers_delete_me = 0;
 }
 #endif
 
@@ -732,20 +733,21 @@ _ecore_main_fd_handlers_buf_call(void)
 
    ret = 0;
    EINA_INLIST_FOREACH(fd_handlers, fdh)
-     if (!fdh->delete_me)
-       {
-         if (fdh->buf_func)
-           {
-              fdh->references++;
-              if (fdh->buf_func(fdh->buf_data, fdh))
-                {
-                   ret |= fdh->func(fdh->data, fdh);
-                   fdh->read_active = 1;
-                }
-              fdh->references--;
-           }
-       }
-
+     {
+        if (!fdh->delete_me)
+          {
+             if (fdh->buf_func)
+               {
+                  fdh->references++;
+                  if (fdh->buf_func(fdh->buf_data, fdh))
+                    {
+                       ret |= fdh->func(fdh->data, fdh);
+                       fdh->read_active = 1;
+                    }
+                  fdh->references--;
+               }
+          }
+     }
    return ret;
 }
 
@@ -879,37 +881,22 @@ _ecore_main_loop_iterate_internal(int once_only)
          }
         _ecore_loop_time = ecore_time_get();
      }
-   if (_ecore_fps_debug)
-     {
-       t1 = ecore_time_get();
-     }
+   if (_ecore_fps_debug) t1 = ecore_time_get();
    /* we came out of our "wait state" so idle has exited */
-   if (!once_only)
-     _ecore_idle_exiter_call();
+   if (!once_only) _ecore_idle_exiter_call();
    /* call the fd handler per fd that became alive... */
    /* this should read or write any data to the monitored fd and then */
    /* post events onto the ecore event pipe if necessary */
    process_events:
-//   if (have_event) 
    _ecore_main_fd_handlers_call();
    _ecore_main_fd_handlers_buf_call();
-//   do
-//     {
-       /* process signals into events .... */
-       while (_ecore_signal_count_get()) _ecore_signal_call();
-       /* handle events ... */
-       _ecore_event_call();
-       _ecore_main_fd_handlers_cleanup();
-//     }
-//   while (_ecore_main_fd_handlers_buf_call());
+   /* process signals into events .... */
+   while (_ecore_signal_count_get()) _ecore_signal_call();
+   /* handle events ... */
+   _ecore_event_call();
+   _ecore_main_fd_handlers_cleanup();
 
-/* ok - too much optimising. let's call idle enterers more often. if we
- * have events that place more events or jobs etc. on the event queue
- * we may never get to call an idle enterer
-   if (once_only)
- */
-   if (once_only)
-     _ecore_idle_enterer_call();
+   if (once_only) _ecore_idle_enterer_call();
    in_main_loop--;
 }
 
@@ -918,18 +905,18 @@ static int
 _ecore_main_win32_select(int nfds __UNUSED__, fd_set *readfds, fd_set *writefds,
                         fd_set *exceptfds, struct timeval *tv)
 {
-   HANDLE objects[MAXIMUM_WAIT_OBJECTS];
-   int    sockets[MAXIMUM_WAIT_OBJECTS];
+   HANDLE       objects[MAXIMUM_WAIT_OBJECTS];
+   int          sockets[MAXIMUM_WAIT_OBJECTS];
    Ecore_Fd_Handler *fdh;
    Ecore_Win32_Handler *wh;
    unsigned int objects_nbr = 0;
    unsigned int handles_nbr = 0;
    unsigned int events_nbr = 0;
-   DWORD  result;
-   DWORD  timeout;
-   MSG    msg;
-   unsigned int    i;
-   int    res;
+   DWORD        result;
+   DWORD        timeout;
+   MSG          msg;
+   unsigned int i;
+   int          res;
 
    /* Create an event object per socket */
    EINA_INLIST_FOREACH(fd_handlers, fdh)
@@ -938,14 +925,14 @@ _ecore_main_win32_select(int nfds __UNUSED__, fd_set *readfds, fd_set *writefds,
         long network_event;
 
         network_event = 0;
-        if(FD_ISSET(fdh->fd, readfds))
+        if (FD_ISSET(fdh->fd, readfds))
          network_event |= FD_READ;
-        if(FD_ISSET(fdh->fd, writefds))
+        if (FD_ISSET(fdh->fd, writefds))
          network_event |= FD_WRITE;
-        if(FD_ISSET(fdh->fd, exceptfds))
+        if (FD_ISSET(fdh->fd, exceptfds))
          network_event |= FD_OOB;
 
-        if(network_event)
+        if (network_event)
          {
              event = WSACreateEvent();
             WSAEventSelect(fdh->fd, event, network_event);
@@ -973,10 +960,10 @@ _ecore_main_win32_select(int nfds __UNUSED__, fd_set *readfds, fd_set *writefds,
 
    /* Wait for any message sent or posted to this queue */
    /* or for one of the passed handles be set to signaled. */
-   if(tv == NULL)
+   if (tv == NULL)
      timeout = INFINITE;
    else
-     timeout = (DWORD)(tv->tv_sec * 1000.0 + tv->tv_usec / 1000.0);
+     timeout = (DWORD)((tv->tv_sec * 1000.0) + (tv->tv_usec / 1000.0));
 
    if (timeout == 0) return 0;
 
@@ -1018,16 +1005,17 @@ _ecore_main_win32_select(int nfds __UNUSED__, fd_set *readfds, fd_set *writefds,
 
         WSAEnumNetworkEvents(sockets[result], objects[result], &network_event);
 
-        if(network_event.lNetworkEvents & FD_READ)
+        if (network_event.lNetworkEvents & FD_READ)
          FD_SET(sockets[result], readfds);
-        if(network_event.lNetworkEvents & FD_WRITE)
+        if (network_event.lNetworkEvents & FD_WRITE)
          FD_SET(sockets[result], writefds);
-        if(network_event.lNetworkEvents & FD_OOB)
+        if (network_event.lNetworkEvents & FD_OOB)
          FD_SET(sockets[result], exceptfds);
 
         res = 1;
      }
-   else if ((result >= WAIT_OBJECT_0 + events_nbr) && (result < WAIT_OBJECT_0 + objects_nbr))
+   else if ((result >= (WAIT_OBJECT_0 + events_nbr)) && 
+            (result < (WAIT_OBJECT_0 + objects_nbr)))
      {
        if (!win32_handler_current)
          {
@@ -1045,17 +1033,18 @@ _ecore_main_win32_select(int nfds __UNUSED__, fd_set *readfds, fd_set *writefds,
             wh = win32_handler_current;
 
              if (objects[result - WAIT_OBJECT_0] == wh->h)
-               if (!wh->delete_me)
-                {
-                   wh->references++;
-                   if (!wh->func(wh->data, wh))
-                     {
-                        wh->delete_me = 1;
-                        win32_handlers_delete_me = 1;
-                     }
-                   wh->references--;
-                }
-
+               {
+                  if (!wh->delete_me)
+                    {
+                       wh->references++;
+                       if (!wh->func(wh->data, wh))
+                         {
+                            wh->delete_me = 1;
+                            win32_handlers_delete_me = 1;
+                         }
+                       wh->references--;
+                    }
+               }
              if (win32_handler_current) /* may have changed in recursive main loops */
                win32_handler_current = (Ecore_Win32_Handler *)EINA_INLIST_GET(win32_handler_current)->next;
           }
@@ -1068,8 +1057,7 @@ _ecore_main_win32_select(int nfds __UNUSED__, fd_set *readfds, fd_set *writefds,
      }
 
    /* Remove event objects again */
-   for(i = 0; i < events_nbr; i++)
-     WSACloseEvent(objects[i]);
+   for (i = 0; i < events_nbr; i++) WSACloseEvent(objects[i]);
 
    return res;
 }
index 09ae899..dd1528a 100644 (file)
@@ -316,6 +316,82 @@ ecore_poller_add(Ecore_Poller_Type type __UNUSED__, int interval, int (*func) (v
 }
 
 /**
+ * Changes the polling interval rate of @p poller.
+ *
+ * @param poller The Ecore_Poller to change the interval of
+ * @param interval The tick interval to set; must be a power of 2 but <= 32768
+ * @return Returns true on success, false on failure
+ *
+ * This allows the changing of a poller's polling interval.  It is useful when you want to alter
+ * a poll rate without deleting and re-creating a poller.
+ * @ingroup Ecore_Poller_Group
+ */
+EAPI Eina_Bool 
+ecore_poller_poller_interval_set(Ecore_Poller *poller, int interval)
+{
+   int ibit;
+
+   if (!ECORE_MAGIC_CHECK(poller, ECORE_MAGIC_POLLER))
+     {
+        ECORE_MAGIC_FAIL(poller, ECORE_MAGIC_POLLER,
+           "ecore_poller_poller_interval_set");
+        return 0;
+     }
+
+   /* interval MUST be a power of 2, so enforce it */
+   if (interval < 1) interval = 1;
+   ibit = -1;
+   while (interval != 0)
+     {
+       ibit++;
+       interval >>= 1;
+     }
+   /* only allow up to 32768 - i.e. ibit == 15, so limit it */
+   if (ibit > 15) ibit = 15;
+   /* if interval specified is the same as interval set, return true without wasting time */
+   if (poller->ibit == ibit)
+     return 1;
+   pollers[poller->ibit] = (Ecore_Poller *) eina_inlist_remove(EINA_INLIST_GET(pollers[poller->ibit]), EINA_INLIST_GET(poller));
+   poller->ibit = ibit;
+   pollers[poller->ibit] = (Ecore_Poller *) eina_inlist_prepend(EINA_INLIST_GET(pollers[poller->ibit]), EINA_INLIST_GET(poller));
+   if (poller_walking)
+     just_added_poller++;
+   else
+     _ecore_poller_next_tick_eval();
+   return 1;
+}
+
+/**
+ * Gets the polling interval rate of @p poller.
+ *
+ * @param poller The Ecore_Poller to change the interval of
+ * @return Returns the interval, in ticks, that @p poller polls at
+ *
+ * This returns a poller's polling interval, or 0 on error.
+ * @ingroup Ecore_Poller_Group
+ */
+EAPI int
+ecore_poller_poller_interval_get(Ecore_Poller *poller)
+{
+   int ibit, interval = 1;
+
+   if (!ECORE_MAGIC_CHECK(poller, ECORE_MAGIC_POLLER))
+     {
+        ECORE_MAGIC_FAIL(poller, ECORE_MAGIC_POLLER,
+           "ecore_poller_poller_interval_get");
+        return 0;
+     }
+
+   ibit = poller->ibit;
+   while (ibit != 0)
+     {
+       ibit--;
+       interval <<= 1;
+     }
+   return interval;
+}
+
+/**
  * Delete the specified poller from the timer list.
  * @param   poller The poller to delete.
  * @return  The data pointer set for the timer when @ref ecore_poller_add was
@@ -332,18 +408,18 @@ ecore_poller_del(Ecore_Poller *poller)
 
    if (!ECORE_MAGIC_CHECK(poller, ECORE_MAGIC_POLLER))
      {
-       ECORE_MAGIC_FAIL(poller, ECORE_MAGIC_POLLER,
-                        "ecore_poller_del");
-       return NULL;
+        ECORE_MAGIC_FAIL(poller, ECORE_MAGIC_POLLER,
+           "ecore_poller_del");
+        return NULL;
      }
    /* we are walking the poller list - a bad idea to remove from it while
     * walking it, so just flag it as delete_me and come back to it after
     * the loop has finished */
    if (poller_walking > 0)
      {
-       poller_delete_count++;
-       poller->delete_me = 1;
-       return poller->data;
+        poller_delete_count++;
+        poller->delete_me = 1;
+        return poller->data;
      }
    /* not in loop so safe - delete immediately */
    data = poller->data;
index ea59794..86c0d71 100644 (file)
@@ -57,6 +57,8 @@ extern int _ecore_log_dom ;
 # define CLAMP(x, min, max) (((x) > (max)) ? (max) : (((x) < (min)) ? (min) : (x)))
 #endif
 
+#define EVAS_FRAME_QUEUING 1   /* for test */
+
 #define READBUFSIZ 65536
 
 #define ECORE_MAGIC_NONE            0x1234fedc
index 8d13c06..995d6c2 100644 (file)
@@ -485,6 +485,28 @@ _ecore_timer_next_get(void)
    return in;
 }
 
+static inline void
+_ecore_timer_reschedule(Ecore_Timer *timer, double when)
+{
+   if ((timer->delete_me) || (timer->frozen)) return;
+
+   timers = (Ecore_Timer *) eina_inlist_remove(EINA_INLIST_GET(timers), EINA_INLIST_GET(timer));
+
+   /* if the timer would have gone off more than 15 seconds ago,
+    * assume that the system hung and set the timer to go off
+    * timer->in from now. this handles system hangs, suspends
+    * and more, so ecore will only "replay" the timers while
+    * the system is suspended if it is suspended for less than
+    * 15 seconds (basically). this also handles if the process
+    * is stopped in a debugger or IO and other handling gets
+    * really slow within the main loop.
+    */
+   if ((timer->at + timer->in) < (when - 15.0))
+     _ecore_timer_set(timer, when + timer->in, timer->in, timer->func, timer->data);
+   else
+     _ecore_timer_set(timer, timer->at + timer->in, timer->in, timer->func, timer->data);
+}
+
 int
 _ecore_timer_call(double when)
 {
@@ -505,7 +527,9 @@ _ecore_timer_call(double when)
    else
      {
        /* recursive main loop, continue from where we were */
+       Ecore_Timer *timer_old = timer_current;
        timer_current = (Ecore_Timer *)EINA_INLIST_GET(timer_current)->next;
+       _ecore_timer_reschedule(timer_old, when);
      }
 
    while (timer_current)
@@ -531,24 +555,7 @@ _ecore_timer_call(double when)
        if (timer_current) /* may have changed in recursive main loops */
          timer_current = (Ecore_Timer *)EINA_INLIST_GET(timer_current)->next;
 
-       if ((!timer->delete_me) && (!timer->frozen))
-         {
-            timers = (Ecore_Timer *) eina_inlist_remove(EINA_INLIST_GET(timers), EINA_INLIST_GET(timer));
-
-            /* if the timer would have gone off more than 15 seconds ago,
-             * assume that the system hung and set the timer to go off
-             * timer->in from now. this handles system hangs, suspends
-             * and more, so ecore will only "replay" the timers while
-             * the system is suspended if it is suspended for less than
-             * 15 seconds (basically). this also handles if the process
-             * is stopped in a debugger or IO and other handling gets
-             * really slow within the main loop.
-             */
-            if ((timer->at + timer->in) < (when - 15.0))
-              _ecore_timer_set(timer, when + timer->in, timer->in, timer->func, timer->data);
-            else
-              _ecore_timer_set(timer, timer->at + timer->in, timer->in, timer->func, timer->data);
-         }
+       _ecore_timer_reschedule(timer, when);
      }
    return 0;
 }
index 190d0fa..ed05cdf 100644 (file)
@@ -25,7 +25,7 @@ $(top_builddir)/src/lib/ecore_input/libecore_input.la \
 @EVAS_LIBS@ \
 @EINA_LIBS@
 
-libecore_cocoa_la_LDFLAGS = @cocoa_ldflags@ -version-info @version_info@ @ecore_cocoa_release_info@
+libecore_cocoa_la_LDFLAGS = @cocoa_ldflags@ -version-info @version_info@ @release_info@
 
 endif
 
index a4ba20b..5fe2ed2 100644 (file)
@@ -35,7 +35,7 @@ libecore_con_la_LIBADD = \
 $(top_builddir)/src/lib/ecore/libecore.la \
 @SSL_LIBS@ @CURL_LIBS@ @EINA_LIBS@ @TLS_LIBS@ @CARES_LIBS@ @WIN32_LIBS@
 
-libecore_con_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @ecore_con_release_info@
+libecore_con_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
 
 endif
 
index 9ac305f..30bbd20 100644 (file)
@@ -29,7 +29,7 @@ lib_LTLIBRARIES = libecore_config.la
 
 include_HEADERS = Ecore_Config.h
 
-libecore_config_la_LDFLAGS = -no-undefined -version-info @version_info@ @ecore_config_release_info@
+libecore_config_la_LDFLAGS = -no-undefined -version-info @version_info@ @release_info@
 
 #config_DATA = $(DB)
 #configdir = $(pkgdatadir)
index d270ae2..458170a 100644 (file)
@@ -21,7 +21,7 @@ $(top_builddir)/src/lib/ecore/libecore.la \
 @DIRECTFB_LIBS@ \
 @EINA_LIBS@
 
-libecore_directfb_la_LDFLAGS = -version-info @version_info@ @ecore_directfb_release_info@
+libecore_directfb_la_LDFLAGS = -version-info @version_info@ @release_info@
 
 libecore_directfb_la_DEPENDENCIES = \
 $(top_builddir)/src/lib/ecore/libecore.la
index a113bdb..61a0d5b 100644 (file)
@@ -182,6 +182,7 @@ EAPI Ecore_Evas     *ecore_evas_directfb_new(const char *disp_name, int windowed
 EAPI Ecore_DirectFB_Window *ecore_evas_directfb_window_get(const Ecore_Evas *ee);
 
 EAPI Ecore_Evas     *ecore_evas_buffer_new(int w, int h);
+EAPI Ecore_Evas     *ecore_evas_buffer_allocfunc_new(int w, int h, void *(*alloc_func) (void *data, int size), void (*free_func) (void *data, void *pix), const void *data);
 EAPI const void     *ecore_evas_buffer_pixels_get(Ecore_Evas *ee);
 
 EAPI Evas_Object    *ecore_evas_object_image_new(Ecore_Evas *ee_target);
index adabce7..65f8956 100644 (file)
@@ -116,7 +116,7 @@ $(top_builddir)/src/lib/ecore/libecore.la \
 @EINA_LIBS@ \
 @EVIL_LIBS@
 
-libecore_evas_la_LDFLAGS = @cocoa_ldflags@ -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @ecore_evas_release_info@
+libecore_evas_la_LDFLAGS = @cocoa_ldflags@ -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
 
 endif
 
index eda08f3..a212136 100644 (file)
@@ -2763,26 +2763,26 @@ void
 _ecore_evas_free(Ecore_Evas *ee)
 {
    if (ee->func.fn_pre_free) ee->func.fn_pre_free(ee);
-   ECORE_MAGIC_SET(ee, ECORE_MAGIC_NONE);
    while (ee->sub_ecore_evas)
      {
        _ecore_evas_free(ee->sub_ecore_evas->data);
      }
    if (ee->data) eina_hash_free(ee->data);
-   if (ee->name) free(ee->name);
-   if (ee->prop.title) free(ee->prop.title);
-   if (ee->prop.name) free(ee->prop.name);
-   if (ee->prop.clas) free(ee->prop.clas);
-   if (ee->prop.cursor.object) evas_object_del(ee->prop.cursor.object);
-   if (ee->evas) evas_free(ee->evas);
    ee->data = NULL;
-   ee->driver = NULL;
+   if (ee->name) free(ee->name);
    ee->name = NULL;
+   if (ee->prop.title) free(ee->prop.title);
    ee->prop.title = NULL;
+   if (ee->prop.name) free(ee->prop.name);
    ee->prop.name = NULL;
+   if (ee->prop.clas) free(ee->prop.clas);
    ee->prop.clas = NULL;
+   if (ee->prop.cursor.object) evas_object_del(ee->prop.cursor.object);
    ee->prop.cursor.object = NULL;
+   if (ee->evas) evas_free(ee->evas);
    ee->evas = NULL;
+   ECORE_MAGIC_SET(ee, ECORE_MAGIC_NONE);
+   ee->driver = NULL;
    if (ee->engine.idle_flush_timer)
      ecore_timer_del(ee->engine.idle_flush_timer);
    if (ee->engine.func->fn_free) ee->engine.func->fn_free(ee);
index 0e194a4..0ff4b4b 100644 (file)
@@ -33,7 +33,8 @@ _ecore_evas_buffer_free(Ecore_Evas *ee)
      }
    else
      {
-       free(ee->engine.buffer.pixels);
+       ee->engine.buffer.free_func(ee->engine.buffer.data, 
+                                    ee->engine.buffer.pixels);
      }
    _ecore_evas_buffer_shutdown();
 }
@@ -58,8 +59,12 @@ _ecore_evas_resize(Ecore_Evas *ee, int w, int h)
      }
    else
      {
-       if (ee->engine.buffer.pixels) free(ee->engine.buffer.pixels);
-       ee->engine.buffer.pixels = malloc(ee->w * ee->h * sizeof(int));
+       if (ee->engine.buffer.pixels)
+          ee->engine.buffer.free_func(ee->engine.buffer.data,
+                                      ee->engine.buffer.pixels);
+       ee->engine.buffer.pixels = 
+          ee->engine.buffer.alloc_func(ee->engine.buffer.data,
+                                       ee->w * ee->h * sizeof(int));
      }
 
    einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(ee->evas);
@@ -477,6 +482,18 @@ static Ecore_Evas_Engine_Func _ecore_buffer_engine_func =
 };
 #endif
 
+static void *
+_ecore_evas_buffer_pix_alloc(void *data, int size)
+{
+   return malloc(size);
+}
+
+static void
+_ecore_evas_buffer_pix_free(void *data, void *pix)
+{
+   free(pix);
+}
+
 /**
  * To be documented.
  *
@@ -485,11 +502,19 @@ static Ecore_Evas_Engine_Func _ecore_buffer_engine_func =
 EAPI Ecore_Evas *
 ecore_evas_buffer_new(int w, int h)
 {
+    return ecore_evas_buffer_allocfunc_new
+     (w, h, _ecore_evas_buffer_pix_alloc, _ecore_evas_buffer_pix_free, NULL);
+}
+
+EAPI Ecore_Evas *
+ecore_evas_buffer_allocfunc_new(int w, int h, void *(*alloc_func) (void *data, int size), void (*free_func) (void *data, void *pix), const void *data)
+{
 #ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER
    Evas_Engine_Info_Buffer *einfo;
    Ecore_Evas *ee;
    int rmethod;
 
+   if ((!alloc_func) || (!free_func)) return NULL;
    rmethod = evas_render_method_lookup("buffer");
    if (!rmethod) return NULL;
    ee = calloc(1, sizeof(Ecore_Evas));
@@ -500,6 +525,9 @@ ecore_evas_buffer_new(int w, int h)
    _ecore_evas_buffer_init();
 
    ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_buffer_engine_func;
+   ee->engine.buffer.alloc_func = alloc_func;
+   ee->engine.buffer.free_func = free_func;
+   ee->engine.buffer.data = (void *)data;
 
    ee->driver = "buffer";
 
@@ -528,7 +556,9 @@ ecore_evas_buffer_new(int w, int h)
    evas_output_size_set(ee->evas, w, h);
    evas_output_viewport_set(ee->evas, 0, 0, w, h);
 
-   ee->engine.buffer.pixels = malloc(w * h * sizeof(int));
+   ee->engine.buffer.pixels = 
+     ee->engine.buffer.alloc_func
+     (ee->engine.buffer.data, w * h * sizeof(int));
 
    einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(ee->evas);
    if (einfo)
index 24b027d..cd3b3fb 100644 (file)
@@ -233,6 +233,9 @@ struct _Ecore_Evas_Engine
    struct {
       void *pixels;
       Evas_Object *image;
+      void  (*free_func) (void *data, void *pix);
+      void *(*alloc_func) (void *data, int size);
+      void *data;
    } buffer;
 #endif
 #ifdef BUILD_ECORE_EVAS_DIRECTFB
index ff5a36e..c322f65 100644 (file)
@@ -237,9 +237,21 @@ _ecore_evas_x_render(Ecore_Evas *ee)
                  EINA_LIST_FOREACH(updates, l, r)
                    ecore_x_window_area_clear(ee->prop.window, r->x, r->y, r->w, r->h);
                  if ((ee->shaped) && (updates))
-                   ecore_x_window_shape_mask_set(ee->prop.window, ee->engine.x.mask);
-//               if ((ee->alpha) && (updates))
-//                 ecore_x_window_shape_input_mask_set(ee->prop.window, ee->engine.x.mask);
+                    {
+#ifdef EVAS_FRAME_QUEUING
+                       /* wait until ee->engine.x.mask being updated */
+                       evas_sync(ee->evas);
+#endif
+                       ecore_x_window_shape_mask_set(ee->prop.window, ee->engine.x.mask);
+                    }
+                 if ((ee->alpha) && (updates))
+                    {
+#ifdef EVAS_FRAME_QUEUING
+                       /* wait until ee->engine.x.mask being updated */
+//                     evas_sync(ee->evas);
+#endif
+//                     ecore_x_window_shape_input_mask_set(ee->prop.window, ee->engine.x.mask);
+                    }
                  evas_render_updates_free(updates);
                  _ecore_evas_idle_timeout_update(ee);
                   rend = 1;
@@ -351,14 +363,25 @@ _ecore_evas_x_render(Ecore_Evas *ee)
            ((ee->should_be_visible) && (ee->prop.fullscreen)) ||
            ((ee->should_be_visible) && (ee->prop.override)))
      {
-
         updates = evas_render_updates(ee->evas);
         if (updates) 
           {
              if (ee->shaped) 
-               ecore_x_window_shape_mask_set(ee->prop.window, ee->engine.x.mask);
-//             if (ee->alpha)
-//               ecore_x_window_shape_input_mask_set(ee->prop.window, ee->engine.x.mask);
+               {
+#ifdef EVAS_FRAME_QUEUING
+                  /* wait until ee->engine.x.mask being updated */
+                  evas_sync(ee->evas);
+#endif
+                  ecore_x_window_shape_mask_set(ee->prop.window, ee->engine.x.mask);
+               }
+             if (ee->alpha)
+               {
+#ifdef EVAS_FRAME_QUEUING
+                  /* wait until ee->engine.x.mask being updated */
+//                evas_sync(ee->evas);
+#endif
+//                ecore_x_window_shape_input_mask_set(ee->prop.window, ee->engine.x.mask);
+               }
              evas_render_updates_free(updates);
              _ecore_evas_idle_timeout_update(ee);
              rend = 1;
@@ -2829,6 +2852,17 @@ ecore_evas_software_x11_new(const char *disp_name, Ecore_X_Window parent,
         einfo->info.backend = EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB;
        einfo->info.connection = ecore_x_display_get();
        einfo->info.screen = NULL;
+#ifdef EVAS_FRAME_QUEUING
+        {
+           char    *render_mode;
+           render_mode = getenv("EVAS_RENDER_MODE");
+           if (render_mode && !strcmp(render_mode, "non-blocking"))
+             {
+                einfo->render_mode = EVAS_RENDER_MODE_NONBLOCKING;
+             }
+        }
+#endif
+
 # endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */
        einfo->info.drawable = ee->prop.window;
        if (argb)
index 2d82071..035d6bc 100644 (file)
@@ -26,7 +26,7 @@ libecore_fb_la_LIBADD = \
 $(top_builddir)/src/lib/ecore/libecore.la \
 @EINA_LIBS@
 
-libecore_fb_la_LDFLAGS = -version-info @version_info@ @ecore_fb_release_info@
+libecore_fb_la_LDFLAGS = -version-info @version_info@ @release_info@
 
 endif
 
index fff3591..d2b6c66 100644 (file)
@@ -36,7 +36,7 @@ $(lib_ecore_con_la) \
 @EVIL_LIBS@ \
 @EINA_LIBS@
 
-libecore_file_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @ecore_file_release_info@
+libecore_file_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
 
 endif
 
index 94682c5..70fdc68 100644 (file)
@@ -296,7 +296,8 @@ _ecore_file_download_curl(const char *url, const char *dst,
 #endif
 
 /**
- * Abort the given download job
+ * Abort the given download job and call the @p completion_cb function with a
+ * @status of 1 (error)
  * @param  job The download job to abort
  */
 
@@ -304,6 +305,8 @@ EAPI void
 ecore_file_download_abort(Ecore_File_Download_Job *job)
 {
 #ifdef BUILD_ECORE_CON
+   if (job->completion_cb)
+     job->completion_cb(ecore_con_url_data_get(job->url_con), job->dst, 1);
 # ifdef HAVE_CURL
    ecore_con_url_destroy(job->url_con);
 # endif
index 385ae8c..929cc41 100644 (file)
@@ -24,7 +24,7 @@ $(top_builddir)/src/lib/ecore/libecore.la \
 @EINA_LIBS@ \
 @EVIL_LIBS@
 
-libecore_imf_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @ecore_imf_release_info@
+libecore_imf_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
 endif
 
 EXTRA_DIST = ecore_imf_private.h
index e3b2915..99c4c52 100644 (file)
@@ -37,20 +37,18 @@ static int _ecore_imf_init_count = 0;
 EAPI int
 ecore_imf_init(void)
 {
-   if (++_ecore_imf_init_count != 1)
-     return _ecore_imf_init_count;
-
-   if (!ecore_init())
-     return --_ecore_imf_init_count;
+   if (++_ecore_imf_init_count != 1) return _ecore_imf_init_count;
+   
+   if (!ecore_init()) return --_ecore_imf_init_count;
    _ecore_imf_log_dom = eina_log_domain_register("EcoreIMF", ECORE_IMF_DEFAULT_LOG_COLOR);
-   if(_ecore_imf_log_dom < 0) 
+   if (_ecore_imf_log_dom < 0) 
      {
-       EINA_LOG_ERR("Impossible to create a log domain for the Ecore IMF module.");
-       ecore_shutdown();
-       return --_ecore_imf_init_count;
+        EINA_LOG_ERR("Impossible to create a log domain for the Ecore IMF module.");
+        ecore_shutdown();
+        return --_ecore_imf_init_count;
      }
    ecore_imf_module_init();
-
+   
    ECORE_IMF_EVENT_PREEDIT_START = ecore_event_type_new();
    ECORE_IMF_EVENT_PREEDIT_END = ecore_event_type_new();
    ECORE_IMF_EVENT_PREEDIT_CHANGED = ecore_event_type_new();
@@ -69,12 +67,10 @@ ecore_imf_init(void)
 EAPI int
 ecore_imf_shutdown(void)
 {
-   if (--_ecore_imf_init_count != 0)
-     return _ecore_imf_init_count;
-
-   ecore_shutdown();
+   if (--_ecore_imf_init_count != 0) return _ecore_imf_init_count;
    ecore_imf_module_shutdown();
    eina_log_domain_unregister(_ecore_imf_log_dom);
    _ecore_imf_log_dom = -1;
+   ecore_shutdown();
    return _ecore_imf_init_count;
 }
index 0bf24f8..9560389 100644 (file)
@@ -55,7 +55,7 @@ ecore_imf_module_shutdown(void)
    if (module_list)
      {
        eina_module_list_free(module_list);
-       modules = NULL;
+       module_list = NULL;
      }
 }
 
index 2455944..ba5b192 100644 (file)
@@ -20,5 +20,5 @@ $(top_builddir)/src/lib/ecore_imf/libecore_imf.la \
 @EVAS_LIBS@ \
 @EINA_LIBS@
 
-libecore_imf_evas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @ecore_imf_evas_release_info@
+libecore_imf_evas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
 endif
index 4a666c2..297d88f 100644 (file)
@@ -20,7 +20,7 @@ $(top_builddir)/src/lib/ecore/libecore.la \
 @EINA_LIBS@ \
 @EVIL_LIBS@
 
-libecore_input_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @ecore_input_release_info@
+libecore_input_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
 
 endif
 
index b0fe622..1e3e77f 100644 (file)
@@ -25,7 +25,7 @@ $(top_builddir)/src/lib/ecore_input/libecore_input.la \
 @EINA_LIBS@ \
 @EVIL_LIBS@
 
-libecore_input_evas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @ecore_input_evas_release_info@
+libecore_input_evas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
 
 endif
 
index 6b3f186..99dd9c1 100644 (file)
@@ -24,7 +24,7 @@ $(top_builddir)/src/lib/ecore_con/libecore_con.la \
 @SSL_LIBS@ \
 @EINA_LIBS@
 
-libecore_ipc_la_LDFLAGS = -no-undefined -version-info @version_info@ @ecore_ipc_release_info@
+libecore_ipc_la_LDFLAGS = -no-undefined -version-info @version_info@ @release_info@
 
 endif
 
index 2e434ef..a2bd2c8 100644 (file)
@@ -26,7 +26,7 @@ $(top_builddir)/src/lib/ecore/libecore.la \
 $(top_builddir)/src/lib/ecore_input/libecore_input.la \
 @SDL_LIBS@ @EVIL_LIBS@ @EINA_LIBS@
 
-libecore_sdl_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @ecore_sdl_release_info@
+libecore_sdl_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
 
 endif
 
index 015f302..5cf8bfa 100644 (file)
@@ -37,7 +37,7 @@ $(top_builddir)/src/lib/ecore_input/libecore_input.la \
 @EVAS_LIBS@ \
 @EINA_LIBS@
 
-libecore_win32_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @ecore_win32_release_info@
+libecore_win32_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
 
 endif
 
index 2ea84f6..d99b729 100644 (file)
@@ -33,7 +33,7 @@ $(top_builddir)/src/lib/ecore/libecore.la \
 @EINA_LIBS@ \
 @EVIL_LIBS@
 
-libecore_wince_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @ecore_wince_release_info@
+libecore_wince_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
 
 endif
 
index 1286b37..2cfa4aa 100644 (file)
@@ -20,7 +20,7 @@ lib_LTLIBRARIES = libecore_x.la
 libecore_x_la_SOURCES =
 
 libecore_x_la_LIBADD = $(DEP) @EINA_LIBS@
-libecore_x_la_LDFLAGS = -version-info @version_info@ @ecore_x_release_info@
+libecore_x_la_LDFLAGS = -version-info @version_info@ @release_info@
 libecore_x_la_DEPENDENCIES = $(DEP)
 
 include_HEADERS = \
index 547b7ba..a3d7d87 100644 (file)
@@ -63,6 +63,7 @@ int      _ecore_x_event_last_root_x = 0;
 int      _ecore_x_event_last_root_y = 0;
 int      _ecore_x_xcursor = 0;
 XIC      _ecore_x_ic = NULL; /* Input context for composed characters */
+XIM      _ecore_x_im = NULL;
 
 Ecore_X_Window _ecore_x_private_win = 0;
 
@@ -254,6 +255,9 @@ ecore_x_init(const char *name)
        _ecore_xlib_log_dom = -1;
        return --_ecore_x_init_count;
      }
+#ifdef EVAS_FRAME_QUEUING
+   XInitThreads();
+#endif
    _ecore_x_disp = XOpenDisplay((char *)name);
    if (!_ecore_x_disp)
      goto shutdown_ecore_event;
@@ -535,8 +539,11 @@ ecore_x_init(const char *name)
        if (ret || !supported_styles)
          goto _im_create_error;
        for (i = 0; i < supported_styles->count_styles; i++)
-         if (supported_styles->supported_styles[i] == (XIMPreeditNothing | XIMStatusNothing))
-           chosen_style = supported_styles->supported_styles[i];
+          {
+             if (supported_styles->supported_styles[i] == 
+                 (XIMPreeditNothing | XIMStatusNothing))
+               chosen_style = supported_styles->supported_styles[i];
+          }
        XFree(supported_styles);
        if (!chosen_style)
          goto _im_create_error;
@@ -544,6 +551,7 @@ ecore_x_init(const char *name)
        if (ic)
          {
             _ecore_x_ic = ic;
+             _ecore_x_im = im;
             goto _im_create_end;
          }
 _im_create_error:
@@ -553,16 +561,15 @@ _im_create_end:
 #endif
    return _ecore_x_init_count;
 
- free_event_handlers:
+free_event_handlers:
    free(_ecore_x_event_handlers);
    _ecore_x_event_handlers = NULL;
- close_display:
+close_display:
    XCloseDisplay(_ecore_x_disp);
    _ecore_x_fd_handler_handle = NULL;
    _ecore_x_disp = NULL;
- shutdown_ecore_event:
+shutdown_ecore_event:
    ecore_event_shutdown();
-
    return --_ecore_x_init_count;
 }
 
@@ -578,12 +585,14 @@ _ecore_x_shutdown(int close_display)
 #ifdef ENABLE_XIM
    if (_ecore_x_ic)
      {
-       XIM xim;
-       xim = XIMOfIC(_ecore_x_ic);
        XDestroyIC(_ecore_x_ic);
-       XCloseIM(xim);
        _ecore_x_ic = NULL;
      }
+   if (_ecore_x_im)
+     {
+       XCloseIM(_ecore_x_im);
+        _ecore_x_im = NULL;
+     }
 #endif
    if (close_display)
       XCloseDisplay(_ecore_x_disp);
index 005e1c9..8a58b0a 100644 (file)
@@ -8,6 +8,8 @@ AM_CPPFLAGS = \
 
 if EFL_ENABLE_TESTS
 
+noinst_PROGRAMS = ecore_suite
+
 check_PROGRAMS = ecore_suite
 
 ecore_suite_SOURCES = \
index fc0c668..d6bbac0 100644 (file)
@@ -3,10 +3,15 @@
 #endif
 
 #include <Ecore.h>
+#include <Eina.h>
 #include <unistd.h>
 
 #include "ecore_suite.h"
 
+
+static int _log_dom;
+#define INF(...) EINA_LOG_DOM_INFO(_log_dom, __VA_ARGS__)
+
 static int
 _quit_cb(void *data)
 {
@@ -150,6 +155,49 @@ START_TEST(ecore_test_ecore_main_loop_timer)
 }
 END_TEST
 
+static int _timer3(void *data)
+{
+   /* timer 3, do nothing */
+   return 0;
+}
+
+static int _timer2(void *data)
+{
+   /* timer 2, quit inner mainloop */
+   ecore_main_loop_quit();
+   return 0;
+}
+
+static int _timer1(void *data)
+{
+   /* timer 1, begin inner mainloop */
+   int *times = data;
+   (*times)++;
+
+   ecore_timer_add(0.3, _timer2, NULL);
+   ecore_timer_add(0.1, _timer3, NULL);
+   ecore_main_loop_begin();
+
+   ecore_main_loop_quit();
+
+   return 0;
+}
+
+START_TEST(ecore_test_ecore_main_loop_timer_inner)
+{
+   int times = 0;
+
+   ecore_init();
+   ecore_timer_add(1.0, _timer1, &times);
+
+   /* BEGIN: outer mainloop */
+   ecore_main_loop_begin();
+   /*END: outer mainloop */
+
+   fail_if(times != 1);
+}
+END_TEST
+
 static int
 _fd_handler_cb(void *data, Ecore_Fd_Handler *handler __UNUSED__)
 {
@@ -228,6 +276,70 @@ START_TEST(ecore_test_ecore_main_loop_event)
 }
 END_TEST
 
+static int
+_timer_quit_recursive(void *data)
+{
+   INF("   _timer_quit_recursive: begin");
+   ecore_main_loop_quit(); /* quits inner main loop */
+   INF("   _timer_quit_recursive: end");
+   return 0;
+}
+
+static int
+_event_recursive_cb(void *data, int type, void *event)
+{
+   Ecore_Event *e;
+   static int guard = 0;
+
+   /* If we enter this callback more than once, it's wrong! */
+   fail_if(guard != 0);
+   guard++;
+
+   INF("  event_recursive_cb: begin");
+
+   ecore_timer_add(1.0, _timer_quit_recursive, NULL);
+   INF("   add 1.0s timer (once) to trigger _timer_quit_recursive");
+
+   INF("   inner main loop begin (recurse)");
+   ecore_main_loop_begin();
+   INF("   inner main loop end (recurse)");
+
+   ecore_main_loop_quit(); /* quits outer main loop */
+
+   INF("   guard = %d", guard);
+   INF("  event_recursive_cb: end");
+   return 0;
+}
+
+
+START_TEST(ecore_test_ecore_main_loop_event_recursive)
+{
+   /* This test tests if the event handlers are really called only once when
+    * recursive main loops are used and any number of events may have occurred
+    * between the beginning and the end of recursive main loop.
+    */
+   Ecore_Event *e;
+   int type;
+
+   _log_dom = eina_log_domain_register("test", EINA_COLOR_CYAN);
+
+   INF("main: begin");
+   ecore_init();
+
+
+   type = ecore_event_type_new();
+   ecore_event_handler_add(type, _event_recursive_cb, NULL);
+   e = ecore_event_add(type, NULL, NULL, NULL);
+   INF(" add event to trigger cb1: event=%p", e);
+   INF(" main loop begin");
+   ecore_main_loop_begin();
+   INF(" main loop end");
+
+   INF("main: end");
+   ecore_shutdown();
+}
+END_TEST
+
 void ecore_test_ecore(TCase *tc)
 {
    tcase_add_test(tc, ecore_test_ecore_init);
@@ -238,4 +350,6 @@ void ecore_test_ecore(TCase *tc)
    tcase_add_test(tc, ecore_test_ecore_main_loop_timer);
    tcase_add_test(tc, ecore_test_ecore_main_loop_fd_handler);
    tcase_add_test(tc, ecore_test_ecore_main_loop_event);
+   tcase_add_test(tc, ecore_test_ecore_main_loop_timer_inner);
+   tcase_add_test(tc, ecore_test_ecore_main_loop_event_recursive);
 }