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>
-# 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])
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],
-Revision 48959
-Last Changed Rev 48958
+Revision 49550
+Last Changed Rev 49540
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"
"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"
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"
"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"
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"
"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 ""
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"
"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"
#~ 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"
-
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"
"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"
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 */
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);
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
#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;
#include "Ecore.h"
#include "ecore_private.h"
+static int inpurge = 0;
struct _Ecore_Event_Handler
{
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;
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;
}
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;
}
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;
}
{
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)
{
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);
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;
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)
{
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;
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--;
}
* @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;
}
{
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;
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;
}
{
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;
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
/* 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);
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
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
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;
}
}
_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--;
}
_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)
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);
/* 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;
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)
{
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;
}
}
/* 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;
}
}
/**
+ * 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
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;
# 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
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)
{
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)
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;
}
@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
$(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
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)
@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
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);
@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
_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);
}
else
{
- free(ee->engine.buffer.pixels);
+ ee->engine.buffer.free_func(ee->engine.buffer.data,
+ ee->engine.buffer.pixels);
}
_ecore_evas_buffer_shutdown();
}
}
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);
};
#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.
*
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));
_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";
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)
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
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;
((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;
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)
$(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
@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
#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
*/
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
@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
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();
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;
}
if (module_list)
{
eina_module_list_free(module_list);
- modules = NULL;
+ module_list = NULL;
}
}
@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
@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
@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
@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
$(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
@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
@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
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 = \
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;
_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;
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;
if (ic)
{
_ecore_x_ic = ic;
+ _ecore_x_im = im;
goto _im_create_end;
}
_im_create_error:
#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;
}
#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);
if EFL_ENABLE_TESTS
+noinst_PROGRAMS = ecore_suite
+
check_PROGRAMS = ecore_suite
ecore_suite_SOURCES = \
#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)
{
}
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, ×);
+
+ /* 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__)
{
}
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);
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);
}