svn update: 57453 (latest:57453)
authorMyungjae Lee <mjae.lee@samsung.com>
Mon, 7 Mar 2011 08:22:04 +0000 (17:22 +0900)
committerMyungjae Lee <mjae.lee@samsung.com>
Mon, 7 Mar 2011 08:22:04 +0000 (17:22 +0900)
67 files changed:
AUTHORS
ChangeLog
autogen.sh
configure.ac
doc/ecore.dox.in
ecore.spec.in
examples/ecore_file_download_example.c [new file with mode: 0644]
po/LINGUAS
po/cs.po
po/de.po
po/el.po
po/fr.po
po/it.po
po/pt.po
po/sl.po [new file with mode: 0644]
src/lib/ecore/Ecore.h
src/lib/ecore/ecore_main.c
src/lib/ecore/ecore_pipe.c
src/lib/ecore/ecore_signal.c
src/lib/ecore/ecore_thread.c
src/lib/ecore_con/Ecore_Con.h
src/lib/ecore_con/ecore_con.c
src/lib/ecore_con/ecore_con_ares.c
src/lib/ecore_con/ecore_con_info.c
src/lib/ecore_con/ecore_con_private.h
src/lib/ecore_con/ecore_con_ssl.c
src/lib/ecore_con/ecore_con_url.c
src/lib/ecore_config/ecore_config.c
src/lib/ecore_evas/Ecore_Evas.h
src/lib/ecore_evas/ecore_evas_private.h
src/lib/ecore_evas/ecore_evas_x.c
src/lib/ecore_fb/ecore_fb_kbd.c
src/lib/ecore_file/Ecore_File.h
src/lib/ecore_file/ecore_file.c
src/lib/ecore_file/ecore_file_download.c
src/lib/ecore_file/ecore_file_monitor.c
src/lib/ecore_file/ecore_file_monitor_inotify.c
src/lib/ecore_file/ecore_file_path.c
src/lib/ecore_imf/Ecore_IMF.h
src/lib/ecore_imf/Makefile.am
src/lib/ecore_imf/ecore_imf_context.c
src/lib/ecore_imf/ecore_imf_private.h
src/lib/ecore_win32/ecore_win32.c
src/lib/ecore_win32/ecore_win32_dnd.c
src/lib/ecore_win32/ecore_win32_dnd_data_object.cpp
src/lib/ecore_win32/ecore_win32_dnd_drop_source.cpp
src/lib/ecore_win32/ecore_win32_dnd_drop_target.cpp
src/lib/ecore_win32/ecore_win32_event.c
src/lib/ecore_win32/ecore_win32_private.h
src/lib/ecore_win32/ecore_win32_window.c
src/lib/ecore_wince/Ecore_WinCE.h
src/lib/ecore_wince/ecore_wince.c
src/lib/ecore_wince/ecore_wince_event.c
src/lib/ecore_wince/ecore_wince_window.c
src/lib/ecore_x/xlib/ecore_x_image.c
src/lib/ecore_x/xlib/ecore_x_randr_12.c
win32/MANIFEST.txt [deleted file]
win32/README.txt [deleted file]
win32/common/config.h [deleted file]
win32/start.bat [deleted file]
win32/vs9/ecore.sln [deleted file]
win32/vs9/libecore.vcproj [deleted file]
win32/vs9/libecore_evas.vcproj [deleted file]
win32/vs9/libecore_file.vcproj [deleted file]
win32/vs9/libecore_input.vcproj [deleted file]
win32/vs9/libecore_input_evas.vcproj [deleted file]
win32/vs9/libecore_win32.vcproj [deleted file]

diff --git a/AUTHORS b/AUTHORS
index c86d644..c8f7095 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -36,3 +36,5 @@ Brett Nash <nash@nash.id.au>
 Mike Blumenkrantz <mike@zentific.com>
 Leif Middelschulte <leif.middelschulte@gmail.com>
 Mike McCormack <mj.mccormack@samsung.com>
+Sangho Park <gouache95@gmail.com>
+Jihoon Kim <jihoon48.kim@samsung.com> <imfine98@gmail.com>
index ee16b53..dfbf4be 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,83 @@
-Wed Jun  8 16:56:30 2005                        Michael Jennings (mej)
+2011-01-29  Carsten Haitzler (The Rasterman)
+
+        1.0.0 release
+
+2011-01-29  Mike McCormack
+
+        * Convert fd list to inlist to save allocs
+
+2011-01-29  Rui Miguel Silva Seabra
+
+        * make https not fail (that's curl's responsibility, really).
+
+2011-01-31  Carsten Haitzler (The Rasterman)
+
+        * Fix: ecore-evas CAN send "render done" messages even if not
+        waiting for sync counter when using gl engine. new semi-sync
+        mode to account for that.
+
+2011-02-01 Mike McCormack
+
+        * Remove SIGRT from ecore's signals since it's unused and broken
+
+2011-02-09  Mathieu Taillefumier
+
+       * Add xrandr backlight support to ecore_x
+
+2011-02-10 Mike Blumenkrantz
+
+        * Added some more possibly useless safety checks to ecore_con_ares
+
+        * Implement event-driven error message api for all non-curl ecore_con
+        +ECORE_CON_EVENT_CLIENT_ERROR, ECORE_CON_EVENT_SERVER_ERROR events
+        +Ecore_Con_Event_Server_Error, Ecore_Con_Event_Client_Error types
+
+        * Unify event handler code
+        * Always increment server event count for client events
+
+2011-02-11 Mike Blumenkrantz
+
+        * Added ecore_con_client_port_get
+
+2011-02-16 Sangho Park
+
+       * Added ecore_file_download_full API.
+
+2011-02-20 Vincent Torri
+
+       * Ecore_Win32: improve resize of windows and fix key up event for
+       the 'space' key.
+       * Ecore_WinCE: do not erase a window background
+
+2011-02-21 Jihoon Kim
+
+       * Add get calls in ecore_imf for ecore_imf_context_canvas_get() and
+        ecore_imf_context_window_get().
+
+2011-02-21 Raoul Hecky
+
+       * Remove 300 second timeout so large downloads work in ecore_con.
+
+2011-02-22  Carsten Haitzler (The Rasterman)
+
+        * Fix: ecore-file inotify fd would be duplicated in children
+        on fork. Have it detecti this on next monitor add and re-init the
+        inotify fd and fd handler.
+
+2011-02-24 Vincent Torri
+
+       * Ecore_File: fix compilation when ecore_con and curl are not
+       available
+
+2011-02-27 Jihoon Kim
+
+        * Add ecore_imf_context_preedit_string_with_attributes_get API.
+
+2011-03-01 Raoul Hecky
+
+       * Add ecore_con_url_ssl_verify_peer_set API.
+
+2011-03-01 Guillaume Friloux
+
+       * Fix detection of complete file write in ecore_file inotify.
 
-Fix spec file.
-----------------------------------------------------------------------
index 0a59462..77515c5 100755 (executable)
@@ -1,9 +1,7 @@
 #!/bin/sh
 
-rm -rf autom4te.cache
-rm -f aclocal.m4 ltmain.sh
-
 touch README
+touch ABOUT-NLS
 
 echo "Running autopoint..." ; autopoint -f || :
 echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS -I m4 || exit 1
@@ -13,5 +11,5 @@ echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --au
 echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1
 
 if [ -z "$NOCONFIGURE" ]; then
-       ./configure "$@"
+       ./configure -C "$@"
 fi
index ff3d7c3..d0f8d44 100644 (file)
@@ -2,11 +2,11 @@
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 m4_define([v_maj], [1])
 m4_define([v_min], [0])
-m4_define([v_mic], [0])
+m4_define([v_mic], [999])
 m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v export || 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
-m4_undefine([v_rev])
+dnl m4_undefine([v_rev])
 ##--   When doing snapshots - change soname. remove dnl on below line
 dnl m4_define([relname], [ver-pre-svn-07])
 dnl m4_define([v_rel], [-release relname])
@@ -18,7 +18,7 @@ m4_define([lt_age], v_min)
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 
-AC_INIT([ecore], [v_ver.beta3], [enlightenment-devel@lists.sourceforge.net])
+AC_INIT([ecore], [v_ver], [enlightenment-devel@lists.sourceforge.net])
 AC_PREREQ([2.52])
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_MACRO_DIR([m4])
@@ -64,7 +64,6 @@ AM_GNU_GETTEXT_VERSION([0.12.1])
 
 m4_ifdef([AM_GNU_GETTEXT], [
 AM_GNU_GETTEXT([external])
-po_makefile_in=po/Makefile.in
 AM_CONDITIONAL([HAVE_PO], [true])
 ],[
 AM_CONDITIONAL([HAVE_PO], [false])
@@ -1370,8 +1369,6 @@ ECORE_EVAS_CHECK_MODULE([software-16-wince],
    [${have_ecore_wince}],
    [requirements_ecore_evas="ecore-wince >= 1.0.0 ${requirements_ecore_evas}"])
 
-
-
 ### requirements
 
 AC_SUBST(requirements_ecore)
@@ -1392,7 +1389,7 @@ AC_SUBST(requirements_ecore_x)
 AC_SUBST(requirements_ecore_win32)
 AC_SUBST(requirements_ecore_wince)
 
-AC_OUTPUT([
+AC_CONFIG_FILES([
 Makefile
 ecore-con.pc
 ecore-config.pc
@@ -1438,9 +1435,12 @@ src/lib/ecore_x/xcb/Makefile
 src/tests/Makefile
 README
 ecore.spec
-$po_makefile_in
 ])
 
+m4_ifdef([AM_GNU_GETTEXT], [AC_CONFIG_FILES([po/Makefile.in])])
+
+AC_OUTPUT
+
 echo
 echo "$PACKAGE $VERSION"
 echo
index 07e0b15..a92a2cb 100644 (file)
@@ -11,43 +11,47 @@ These routines are used for Ecore Library interaction
 @image html  e.png
 
 @version @PACKAGE_VERSION@
-@author Carsten Haitzler <raster\@rasterman.com>
-@author Tom Gilbert <tom\@linuxbrit.co.uk>
-@author Burra <burra\@colorado.edu>
-@author Chris Ross <chris\@darkrock.co.uk>
-@author Term <term\@twistedpath.org>
-@author Tilman Sauerbeck <tilman\@code-monkey.de>
-@author Ibukun Olumuyiwa <ibukun\@computer.org>
-@author Yuri <da2001\@hotmail.ru>
-@author Nicholas Curran <quasar\@bigblue.net.au>
-@author Howell Tam <pigeon\@pigeond.net>
-@author Nathan Ingersoll <rbdpngn\@users.sourceforge.net>
-@author Andrew Elcock <andy\@elcock.org>
-@author Kim Woelders <kim\@woelders.dk>
-@author Sebastian Dransfeld <sebastid\@tango.flipp.net>
-@author Simon Poole <simon.armlinux\@themalago.net>
-@author Jorge Luis Zapata Muga <jorgeluis.zapata\@gmail.com>
-@author dan sinclair <zero\@everburning.com>
-@author Michael 'Mickey' Lauer <mickey\@tm.informatik.uni-frankfurt.de>
-@author David 'onefang' Seikel <onefang\@gmail.com>
-@author Hisham 'CodeWarrior' Mardam Bey <hisham\@hisham.cc>
-@author Brian 'rephorm' Mattern <rephorm\@rephorm.com>
-@author Tim Horton <hortont424\@gmail.com>
-@author Arnaud de Turckheim 'quarium' <quarium\@gmail.com>
-@author Matt Barclay <mbarclay\@gmail.com>
-@author Peter Wehrfritz <peter.wehrfritz\@web.de>
-@author Albin "Lutin" Tonnerre <albin.tonnerre\@gmail.com>
-@author Vincent Torri <vincent.torri\@gmail.com>
-@author Lars Munch <lars\@segv.dk>
-@author Andre Dieb <andre.dieb\@gmail.com>
-@author Mathieu Taillefumier <mathieu.taillefumier\@free.fr>
-@author Rui Miguel Silva Seabra <rms\@1407.org>
-@author Saumsung Electronics
+@author Carsten Haitzler <raster@@rasterman.com>
+@author Tom Gilbert <tom@@linuxbrit.co.uk>
+@author Burra <burra@@colorado.edu>
+@author Chris Ross <chris@@darkrock.co.uk>
+@author Term <term@@twistedpath.org>
+@author Tilman Sauerbeck <tilman@@code-monkey.de>
+@author Ibukun Olumuyiwa <ibukun@@computer.org>
+@author Yuri <da2001@@hotmail.ru>
+@author Nicholas Curran <quasar@@bigblue.net.au>
+@author Howell Tam <pigeon@@pigeond.net>
+@author Nathan Ingersoll <rbdpngn@@users.sourceforge.net>
+@author Andrew Elcock <andy@@elcock.org>
+@author Kim Woelders <kim@@woelders.dk>
+@author Sebastian Dransfeld <sebastid@@tango.flipp.net>
+@author Simon Poole <simon.armlinux@@themalago.net>
+@author Jorge Luis Zapata Muga <jorgeluis.zapata@@gmail.com>
+@author dan sinclair <zero@@everburning.com>
+@author Michael 'Mickey' Lauer <mickey@@tm.informatik.uni-frankfurt.de>
+@author David 'onefang' Seikel <onefang@@gmail.com>
+@author Hisham 'CodeWarrior' Mardam Bey <hisham@@hisham.cc>
+@author Brian 'rephorm' Mattern <rephorm@@rephorm.com>
+@author Tim Horton <hortont424@@gmail.com>
+@author Arnaud de Turckheim 'quarium' <quarium@@gmail.com>
+@author Matt Barclay <mbarclay@@gmail.com>
+@author Peter Wehrfritz <peter.wehrfritz@@web.de>
+@author Albin "Lutin" Tonnerre <albin.tonnerre@@gmail.com>
+@author Vincent Torri <vincent.torri@@gmail.com>
+@author Lars Munch <lars@@segv.dk>
+@author Andre Dieb <andre.dieb@@gmail.com>
+@author Mathieu Taillefumier <mathieu.taillefumier@@free.fr>
+@author Rui Miguel Silva Seabra <rms@@1407.org>
+@author Samsung Electronics
 @author Samsung SAIT
-@author Nicolas Aguirre <aguirre.nicolas\@gmail.com>
-@author Brett Nash <nash\@nash.id.au>
-@author Mike Blumenkrantz <mike\@zentific.com>
-@date 2000-2010
+@author Nicolas Aguirre <aguirre.nicolas@@gmail.com>
+@author Brett Nash <nash@@nash.id.au>
+@author Mike Blumenkrantz <mike@@zentific.com>
+@author Leif Middelschulte <leif.middelschulte@@gmail.com>
+@author Mike McCormack <mj.mccormack@@samsung.com>
+@author Sangho Park <gouache95@gmail.com>
+@author Jihoon Kim <jihoon48.kim@samsung.com> <imfine98@gmail.com>
+@date 2000-2011
 
 @section intro Introduction
 
index 49a4e6b..3b5682e 100644 (file)
@@ -146,7 +146,7 @@ Requires: %{name} = %{version}
 Ecore functions for dealing with the X Windows System
 
 %prep
-%setup -q -n %{name}-%{version}
+%setup -q
 
 %build
 CFLAGS="-I/usr/kerberos/include -I/usr/X11R6/include/X11/extensions"
@@ -186,7 +186,7 @@ test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT
 %{_libdir}/*.a
 %{_libdir}/pkgconfig/*
 #%{_datadir}/aclocal/*
-%{_includedir}/*.h
+%{_includedir}/ecore-1/*.h
 
 %files con
 %defattr(-, root, root)
diff --git a/examples/ecore_file_download_example.c b/examples/ecore_file_download_example.c
new file mode 100644 (file)
index 0000000..c03940b
--- /dev/null
@@ -0,0 +1,86 @@
+#include <stdio.h>
+#include <Eina.h>
+#include <Ecore.h>
+#include <Ecore_File.h>
+
+/* 
+ * ecore_file_download() example
+ *
+ * compile with:
+ * gcc ecore_file_download_example.c `pkg-config --libs --cflags ecore-file` \
+ *     -o ecore_file_download_example
+ *
+ */
+
+#define URL "http://www.kernel.org/pub/linux/kernel/v1.0/linux-1.0.tar.gz"
+#define DST "linux-1.0.tar.gz"
+#define DST_MIME "[x-gzip]linux-1.0.tar.gz"
+
+
+void
+completion_cb(void *data, const char *file, int status)
+{
+   printf("Done (status: %d)\n", status);
+   ecore_main_loop_quit();
+}
+
+int
+progress_cb(void *data, const char *file,
+            long int dltotal, long int dlnow,
+            long int ultotal, long int ulnow)
+{
+   printf("Progress: %ld/%ld\n", dlnow, dltotal);
+   return ECORE_FILE_PROGRESS_CONTINUE; //  continue the download
+}
+
+
+int main(void)
+{
+   double start;
+   Eina_Hash *headers;
+
+   eina_init();
+   ecore_init();
+   ecore_file_init();
+
+   if (ecore_file_exists(DST))
+     ecore_file_unlink(DST);
+
+   start = ecore_time_get();
+
+   if (ecore_file_download(URL, DST, completion_cb, progress_cb, NULL, NULL))
+     {
+        printf("Download started successfully:\n  URL: %s\n  DEST: %s\n", URL, DST);
+        ecore_main_loop_begin();
+        printf("\nTime elapsed: %f seconds\n", ecore_time_get() - start);
+        printf("Downloaded %lld bytes\n", ecore_file_size(DST));
+     }
+   else
+     {
+        printf("Error, can't start download\n");
+        goto done;
+     }
+
+   headers = eina_hash_string_small_new(NULL);
+   eina_hash_add(headers, "Content-type", "application/x-gzip");
+
+   if (ecore_file_download_full(URL, DST_MIME, completion_cb, progress_cb, NULL, NULL, headers))
+     {
+        printf("Download started successfully:\n  URL: %s\n  DEST: %s\n", URL, DST_MIME);
+        ecore_main_loop_begin();
+        printf("\nTime elapsed: %f seconds\n", ecore_time_get() - start);
+        printf("Downloaded %lld bytes\n", ecore_file_size(DST));
+     }
+   else
+     {
+        printf("Error, can't start download\n");
+        goto done; 
+     }
+
+done:
+   if (headers) eina_hash_free(headers);
+   ecore_file_shutdown();
+   ecore_shutdown();
+   eina_shutdown();
+   return 0;
+}
index 6359957..5d0de31 100644 (file)
@@ -1,2 +1,2 @@
-cs de el fr it pt
+cs de el fr it pt sl
 
index e9f1b2e..0761c17 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -4,10 +4,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ecore\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2010-08-16 17:14+0900\n"
+"POT-Creation-Date: 2011-01-30 13:29-0600\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"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -66,16 +67,16 @@ msgstr "CHYBA: "
 #: src/lib/ecore/ecore_getopt.c:853 src/lib/ecore/ecore_getopt.c:969
 #: src/lib/ecore/ecore_getopt.c:982 src/lib/ecore/ecore_getopt.c:994
 #: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1052
-#: src/lib/ecore/ecore_getopt.c:1161 src/lib/ecore/ecore_getopt.c:1198
+#: src/lib/ecore/ecore_getopt.c:1160 src/lib/ecore/ecore_getopt.c:1196
 msgid "value has no pointer set.\n"
 msgstr "hodnota nemá nastaven pointer.\n"
 
-#: src/lib/ecore/ecore_getopt.c:882 src/lib/ecore/ecore_getopt.c:1072
+#: src/lib/ecore/ecore_getopt.c:882 src/lib/ecore/ecore_getopt.c:1071
 #, c-format
 msgid "unknown boolean value %s.\n"
 msgstr "neznámá boolean hodnota %s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:926 src/lib/ecore/ecore_getopt.c:1152
+#: src/lib/ecore/ecore_getopt.c:926 src/lib/ecore/ecore_getopt.c:1151
 #, c-format
 msgid "invalid number format %s\n"
 msgstr "neznámý číselný formát %s\n"
@@ -89,82 +90,82 @@ msgstr "neznámá volba \"%s\". Možné hodnoty jsou: "
 msgid "missing parameter to append.\n"
 msgstr "chybějící parametr k připojení.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1142
+#: src/lib/ecore/ecore_getopt.c:1141
 msgid "could not parse value.\n"
 msgstr "nemůžu parsovat hodnotu.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1191
+#: src/lib/ecore/ecore_getopt.c:1190
 msgid "missing parameter.\n"
 msgstr "chybějící parametr.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1205
+#: src/lib/ecore/ecore_getopt.c:1203
 msgid "missing callback function!\n"
 msgstr "chybějící callback funkce!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1228
+#: src/lib/ecore/ecore_getopt.c:1226
 msgid "no version was defined.\n"
 msgstr "nebyla definována verze.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1242
+#: src/lib/ecore/ecore_getopt.c:1240
 msgid "no copyright was defined.\n"
 msgstr "nebyl definován copyright.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1256
+#: src/lib/ecore/ecore_getopt.c:1254
 msgid "no license was defined.\n"
 msgstr "nebyla definována licence.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1310
+#: src/lib/ecore/ecore_getopt.c:1308
 #, c-format
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "CHYBA: neznámá volba --%s, ignoruji.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1343
+#: src/lib/ecore/ecore_getopt.c:1341
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "CHYBA: volba --%s vyžaduje argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1379
+#: src/lib/ecore/ecore_getopt.c:1377
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "CHYBA: neznámá volba -%c, ignoruji.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1417
+#: src/lib/ecore/ecore_getopt.c:1415
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "CHYBA: volba -%c vyžaduje argument!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1620
+#: src/lib/ecore/ecore_getopt.c:1614
 msgid "ERROR: no parser provided.\n"
 msgstr "CHYBA: nebyl poskytnut parser.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1625
+#: src/lib/ecore/ecore_getopt.c:1619
 msgid "ERROR: no values provided.\n"
 msgstr "CHYBA: nebyly poskytnuty hodnoty.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1634
+#: src/lib/ecore/ecore_getopt.c:1628
 msgid "ERROR: no arguments provided.\n"
 msgstr "CHYBA: nebyly poskytnuty argumenty.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1660
+#: src/lib/ecore/ecore_getopt.c:1654
 msgid "ERROR: invalid options found."
 msgstr "CHYBA: nalezeny neplatné volby."
 
-#: src/lib/ecore/ecore_getopt.c:1666
+#: src/lib/ecore/ecore_getopt.c:1660
 #, c-format
 msgid " See --%s.\n"
 msgstr " viz. --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1668
+#: src/lib/ecore/ecore_getopt.c:1662
 #, c-format
 msgid " See -%c.\n"
 msgstr " viz. -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1705
+#: src/lib/ecore/ecore_getopt.c:1699
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "CHYBA: neplatná hodnota geometrie '%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:1728
+#: src/lib/ecore/ecore_getopt.c:1722
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "CHYBA: neplatná hodnota velikosti '%s'\n"
index ebd2d51..d9fda10 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -8,7 +8,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-11-23 23:14+0100\n"
+"POT-Creation-Date: 2011-01-30 13:29-0600\n"
 "PO-Revision-Date: 2010-01-03 21:52+GMT\n"
 "Last-Translator: Fabian Nowak <timystery@arcor.de>\n"
 "Language-Team: German <debian-l10n-german@lists.debian.org>\n"
index 82952cc..6668cbc 100644 (file)
--- a/po/el.po
+++ b/po/el.po
@@ -6,10 +6,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Ecore\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2010-08-16 17:14+0900\n"
+"POT-Creation-Date: 2011-01-30 13:29-0600\n"
 "PO-Revision-Date: 2009-12-15 00:56+0200\n"
 "Last-Translator: Giorgos Koutsikos <ragecryx@yahoo.gr>\n"
 "Language-Team: Greek\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -68,16 +69,16 @@ msgstr "ΣΦΑΛΜΑ:"
 #: src/lib/ecore/ecore_getopt.c:853 src/lib/ecore/ecore_getopt.c:969
 #: src/lib/ecore/ecore_getopt.c:982 src/lib/ecore/ecore_getopt.c:994
 #: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1052
-#: src/lib/ecore/ecore_getopt.c:1161 src/lib/ecore/ecore_getopt.c:1198
+#: src/lib/ecore/ecore_getopt.c:1160 src/lib/ecore/ecore_getopt.c:1196
 msgid "value has no pointer set.\n"
 msgstr "η τιμή δεν έχει δείκτη ορισμένο.\n"
 
-#: src/lib/ecore/ecore_getopt.c:882 src/lib/ecore/ecore_getopt.c:1072
+#: src/lib/ecore/ecore_getopt.c:882 src/lib/ecore/ecore_getopt.c:1071
 #, c-format
 msgid "unknown boolean value %s.\n"
 msgstr "άγνωστη τιμή boolean %s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:926 src/lib/ecore/ecore_getopt.c:1152
+#: src/lib/ecore/ecore_getopt.c:926 src/lib/ecore/ecore_getopt.c:1151
 #, c-format
 msgid "invalid number format %s\n"
 msgstr "άγνωστη μορφή αριθμού %s\n"
@@ -91,82 +92,82 @@ msgstr "μη-έγκυρη επιλογή \"%s\". Οι τιμές είναι: "
 msgid "missing parameter to append.\n"
 msgstr "ελλιπής παράμετρος προς επισύναψη.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1142
+#: src/lib/ecore/ecore_getopt.c:1141
 msgid "could not parse value.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1191
+#: src/lib/ecore/ecore_getopt.c:1190
 msgid "missing parameter.\n"
 msgstr "ελλιπής παράμετρος.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1205
+#: src/lib/ecore/ecore_getopt.c:1203
 msgid "missing callback function!\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1228
+#: src/lib/ecore/ecore_getopt.c:1226
 msgid "no version was defined.\n"
 msgstr "δεν έχει οριστεί έκδοση.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1242
+#: src/lib/ecore/ecore_getopt.c:1240
 msgid "no copyright was defined.\n"
 msgstr "δεν έχουν οριστεί πνευματικά δικαιώματα.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1256
+#: src/lib/ecore/ecore_getopt.c:1254
 msgid "no license was defined.\n"
 msgstr "δεν έχει οριστεί άδεια.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1310
+#: src/lib/ecore/ecore_getopt.c:1308
 #, c-format
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1343
+#: src/lib/ecore/ecore_getopt.c:1341
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1379
+#: src/lib/ecore/ecore_getopt.c:1377
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1417
+#: src/lib/ecore/ecore_getopt.c:1415
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1620
+#: src/lib/ecore/ecore_getopt.c:1614
 msgid "ERROR: no parser provided.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1625
+#: src/lib/ecore/ecore_getopt.c:1619
 msgid "ERROR: no values provided.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1634
+#: src/lib/ecore/ecore_getopt.c:1628
 msgid "ERROR: no arguments provided.\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1660
+#: src/lib/ecore/ecore_getopt.c:1654
 msgid "ERROR: invalid options found."
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1666
+#: src/lib/ecore/ecore_getopt.c:1660
 #, c-format
 msgid " See --%s.\n"
 msgstr " Δες --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1668
+#: src/lib/ecore/ecore_getopt.c:1662
 #, c-format
 msgid " See -%c.\n"
 msgstr " Δες -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1705
+#: src/lib/ecore/ecore_getopt.c:1699
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr ""
 
-#: src/lib/ecore/ecore_getopt.c:1728
+#: src/lib/ecore/ecore_getopt.c:1722
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr ""
index 7957a2f..aaa148a 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -6,10 +6,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Ecore\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2010-08-16 17:14+0900\n"
+"POT-Creation-Date: 2011-01-30 13:29-0600\n"
 "PO-Revision-Date: 2010-07-11 11:01+0400\n"
 "Last-Translator: batden <batden@orange.fr>\n"
 "Language-Team: Enlightenment French Team <pourunmondesansgourou@gmail.com>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -72,16 +73,16 @@ msgstr "ERREUR :"
 #: src/lib/ecore/ecore_getopt.c:853 src/lib/ecore/ecore_getopt.c:969
 #: src/lib/ecore/ecore_getopt.c:982 src/lib/ecore/ecore_getopt.c:994
 #: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1052
-#: src/lib/ecore/ecore_getopt.c:1161 src/lib/ecore/ecore_getopt.c:1198
+#: src/lib/ecore/ecore_getopt.c:1160 src/lib/ecore/ecore_getopt.c:1196
 msgid "value has no pointer set.\n"
 msgstr "la valeur n'a aucun pointeur défini.\n"
 
-#: src/lib/ecore/ecore_getopt.c:882 src/lib/ecore/ecore_getopt.c:1072
+#: src/lib/ecore/ecore_getopt.c:882 src/lib/ecore/ecore_getopt.c:1071
 #, c-format
 msgid "unknown boolean value %s.\n"
 msgstr "valeur booléenne inconnue %s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:926 src/lib/ecore/ecore_getopt.c:1152
+#: src/lib/ecore/ecore_getopt.c:926 src/lib/ecore/ecore_getopt.c:1151
 #, c-format
 msgid "invalid number format %s\n"
 msgstr "format du nombre non valide %s\n"
@@ -95,82 +96,82 @@ msgstr "choix non valide « %s ». Les valeurs valides sont : "
 msgid "missing parameter to append.\n"
 msgstr "paramètre manquant à ajouter.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1142
+#: src/lib/ecore/ecore_getopt.c:1141
 msgid "could not parse value.\n"
 msgstr "analyse de la valeur impossible.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1191
+#: src/lib/ecore/ecore_getopt.c:1190
 msgid "missing parameter.\n"
 msgstr "paramètre manquant.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1205
+#: src/lib/ecore/ecore_getopt.c:1203
 msgid "missing callback function!\n"
 msgstr "fonction de rappel manquante !\n"
 
-#: src/lib/ecore/ecore_getopt.c:1228
+#: src/lib/ecore/ecore_getopt.c:1226
 msgid "no version was defined.\n"
 msgstr "aucune version n'est définie.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1242
+#: src/lib/ecore/ecore_getopt.c:1240
 msgid "no copyright was defined.\n"
 msgstr "aucun copyright n'est défini.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1256
+#: src/lib/ecore/ecore_getopt.c:1254
 msgid "no license was defined.\n"
 msgstr "aucune licence n'est définie.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1310
+#: src/lib/ecore/ecore_getopt.c:1308
 #, 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:1343
+#: src/lib/ecore/ecore_getopt.c:1341
 #, 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:1379
+#: src/lib/ecore/ecore_getopt.c:1377
 #, 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:1417
+#: src/lib/ecore/ecore_getopt.c:1415
 #, 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:1620
+#: src/lib/ecore/ecore_getopt.c:1614
 msgid "ERROR: no parser provided.\n"
 msgstr "ERREUR : aucun analyseur n'est fourni.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1625
+#: src/lib/ecore/ecore_getopt.c:1619
 msgid "ERROR: no values provided.\n"
 msgstr "ERREUR : aucune valeur n'est fournie.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1634
+#: src/lib/ecore/ecore_getopt.c:1628
 msgid "ERROR: no arguments provided.\n"
 msgstr "ERREUR : aucun argument n'est fourni.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1660
+#: src/lib/ecore/ecore_getopt.c:1654
 msgid "ERROR: invalid options found."
 msgstr "ERREUR : options non valides détectées."
 
-#: src/lib/ecore/ecore_getopt.c:1666
+#: src/lib/ecore/ecore_getopt.c:1660
 #, c-format
 msgid " See --%s.\n"
 msgstr " Voir --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1668
+#: src/lib/ecore/ecore_getopt.c:1662
 #, c-format
 msgid " See -%c.\n"
 msgstr " Voir -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1705
+#: src/lib/ecore/ecore_getopt.c:1699
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "ERREUR : valeur géométrique incorrecte « %s »\n"
 
-#: src/lib/ecore/ecore_getopt.c:1728
+#: src/lib/ecore/ecore_getopt.c:1722
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "ERREUR : valeur de taille incorrecte « %s »\n"
index f3c43ef..8b46b5e 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -6,10 +6,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Ecore\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2010-08-16 17:14+0900\n"
+"POT-Creation-Date: 2011-01-30 13:29-0600\n"
 "PO-Revision-Date: 2009-10-27 19:36+0100\n"
 "Last-Translator: quaker66 <quaker66@gmail.com>\n"
 "Language-Team: none\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -68,16 +69,16 @@ msgstr "ERRORE:"
 #: src/lib/ecore/ecore_getopt.c:853 src/lib/ecore/ecore_getopt.c:969
 #: src/lib/ecore/ecore_getopt.c:982 src/lib/ecore/ecore_getopt.c:994
 #: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1052
-#: src/lib/ecore/ecore_getopt.c:1161 src/lib/ecore/ecore_getopt.c:1198
+#: src/lib/ecore/ecore_getopt.c:1160 src/lib/ecore/ecore_getopt.c:1196
 msgid "value has no pointer set.\n"
 msgstr "il valore non ha puntatori impostati.\n"
 
-#: src/lib/ecore/ecore_getopt.c:882 src/lib/ecore/ecore_getopt.c:1072
+#: src/lib/ecore/ecore_getopt.c:882 src/lib/ecore/ecore_getopt.c:1071
 #, c-format
 msgid "unknown boolean value %s.\n"
 msgstr "valore booleano sconosciuto %s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:926 src/lib/ecore/ecore_getopt.c:1152
+#: src/lib/ecore/ecore_getopt.c:926 src/lib/ecore/ecore_getopt.c:1151
 #, c-format
 msgid "invalid number format %s\n"
 msgstr "formato numero non valido %s\n"
@@ -91,82 +92,82 @@ msgstr "scelta non valida \"%s\". I valori ammessi sono: "
 msgid "missing parameter to append.\n"
 msgstr "parametro da appendere mancante.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1142
+#: src/lib/ecore/ecore_getopt.c:1141
 msgid "could not parse value.\n"
 msgstr "impossibile il parsing del valore.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1191
+#: src/lib/ecore/ecore_getopt.c:1190
 msgid "missing parameter.\n"
 msgstr "parametro mancante.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1205
+#: src/lib/ecore/ecore_getopt.c:1203
 msgid "missing callback function!\n"
 msgstr "funzione callback mancante!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1228
+#: src/lib/ecore/ecore_getopt.c:1226
 msgid "no version was defined.\n"
 msgstr "nessuna versione definita.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1242
+#: src/lib/ecore/ecore_getopt.c:1240
 msgid "no copyright was defined.\n"
 msgstr "nessun copyright definito.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1256
+#: src/lib/ecore/ecore_getopt.c:1254
 msgid "no license was defined.\n"
 msgstr "nessuna licenza definita.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1310
+#: src/lib/ecore/ecore_getopt.c:1308
 #, c-format
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "ERRORE: opzione sconosciuta --%s, ignorata.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1343
+#: src/lib/ecore/ecore_getopt.c:1341
 #, 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:1379
+#: src/lib/ecore/ecore_getopt.c:1377
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "ERRORE: opzione sconosciuta -%c, ignorata.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1417
+#: src/lib/ecore/ecore_getopt.c:1415
 #, 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:1620
+#: src/lib/ecore/ecore_getopt.c:1614
 msgid "ERROR: no parser provided.\n"
 msgstr "ERRORE: nessun parser fornito.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1625
+#: src/lib/ecore/ecore_getopt.c:1619
 msgid "ERROR: no values provided.\n"
 msgstr "ERRORE: nessun valore fornito.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1634
+#: src/lib/ecore/ecore_getopt.c:1628
 msgid "ERROR: no arguments provided.\n"
 msgstr "ERRORE: nessun argomento fornito.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1660
+#: src/lib/ecore/ecore_getopt.c:1654
 msgid "ERROR: invalid options found."
 msgstr "ERRORE: trovate opzioni non valide."
 
-#: src/lib/ecore/ecore_getopt.c:1666
+#: src/lib/ecore/ecore_getopt.c:1660
 #, c-format
 msgid " See --%s.\n"
 msgstr " Vedere --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1668
+#: src/lib/ecore/ecore_getopt.c:1662
 #, c-format
 msgid " See -%c.\n"
 msgstr " Vedere -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1705
+#: src/lib/ecore/ecore_getopt.c:1699
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "ERRORE: valore geometrico non corretto '%s'\n"
 
-#: src/lib/ecore/ecore_getopt.c:1728
+#: src/lib/ecore/ecore_getopt.c:1722
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "ERRORE: valore dimensione non corretto '%s'\n"
index 2037dbb..4150405 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
@@ -6,10 +6,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ecore\n"
 "Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2010-08-16 17:14+0900\n"
+"POT-Creation-Date: 2011-01-30 13:29-0600\n"
 "PO-Revision-Date: 2010-10-06 12:37-0000\n"
 "Last-Translator: Sérgio Marques <smarquespt@gmail.com>\n"
 "Language-Team: \n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -68,25 +69,19 @@ msgstr "ERRO: opção desconhecida -%c.\n"
 msgid "ERROR: "
 msgstr "ERRO: "
 
-#: src/lib/ecore/ecore_getopt.c:853
-#: src/lib/ecore/ecore_getopt.c:969
-#: src/lib/ecore/ecore_getopt.c:982
-#: src/lib/ecore/ecore_getopt.c:994
-#: src/lib/ecore/ecore_getopt.c:1008
-#: src/lib/ecore/ecore_getopt.c:1052
-#: src/lib/ecore/ecore_getopt.c:1161
-#: src/lib/ecore/ecore_getopt.c:1198
+#: src/lib/ecore/ecore_getopt.c:853 src/lib/ecore/ecore_getopt.c:969
+#: src/lib/ecore/ecore_getopt.c:982 src/lib/ecore/ecore_getopt.c:994
+#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1052
+#: src/lib/ecore/ecore_getopt.c:1160 src/lib/ecore/ecore_getopt.c:1196
 msgid "value has no pointer set.\n"
 msgstr "o valor não está definido.\n"
 
-#: src/lib/ecore/ecore_getopt.c:882
-#: src/lib/ecore/ecore_getopt.c:1072
+#: src/lib/ecore/ecore_getopt.c:882 src/lib/ecore/ecore_getopt.c:1071
 #, c-format
 msgid "unknown boolean value %s.\n"
 msgstr "valor booleano desconhecido %s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:926
-#: src/lib/ecore/ecore_getopt.c:1152
+#: src/lib/ecore/ecore_getopt.c:926 src/lib/ecore/ecore_getopt.c:1151
 #, c-format
 msgid "invalid number format %s\n"
 msgstr "formato do número inválido %s\n"
@@ -100,83 +95,82 @@ msgstr "escolha inválida \"%s\". O valores possíveis são:"
 msgid "missing parameter to append.\n"
 msgstr "faltam os parâmetros a anexar.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1142
+#: src/lib/ecore/ecore_getopt.c:1141
 msgid "could not parse value.\n"
 msgstr "incapaz de analisar o valor.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1191
+#: src/lib/ecore/ecore_getopt.c:1190
 msgid "missing parameter.\n"
 msgstr "parâmetro em falta.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1205
+#: src/lib/ecore/ecore_getopt.c:1203
 msgid "missing callback function!\n"
 msgstr "função de chamada em falta!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1228
+#: src/lib/ecore/ecore_getopt.c:1226
 msgid "no version was defined.\n"
 msgstr "nenhuma versão definida.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1242
+#: src/lib/ecore/ecore_getopt.c:1240
 msgid "no copyright was defined.\n"
 msgstr "direitos de autor não definidos.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1256
+#: src/lib/ecore/ecore_getopt.c:1254
 msgid "no license was defined.\n"
 msgstr "licença não definida.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1310
+#: src/lib/ecore/ecore_getopt.c:1308
 #, c-format
 msgid "ERROR: unknown option --%s, ignored.\n"
 msgstr "ERRO: opção desconhecida --%s, ignorada.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1343
+#: src/lib/ecore/ecore_getopt.c:1341
 #, c-format
 msgid "ERROR: option --%s requires an argument!\n"
 msgstr "ERRO: a opção --%s requer um argumento!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1379
+#: src/lib/ecore/ecore_getopt.c:1377
 #, c-format
 msgid "ERROR: unknown option -%c, ignored.\n"
 msgstr "ERRO: opção desconhecida --%c, ignorada.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1417
+#: src/lib/ecore/ecore_getopt.c:1415
 #, c-format
 msgid "ERROR: option -%c requires an argument!\n"
 msgstr "ERRO: a opção --%c requer um argumento!\n"
 
-#: src/lib/ecore/ecore_getopt.c:1620
+#: src/lib/ecore/ecore_getopt.c:1614
 msgid "ERROR: no parser provided.\n"
 msgstr "ERRO: nenhum analisador fornecido.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1625
+#: src/lib/ecore/ecore_getopt.c:1619
 msgid "ERROR: no values provided.\n"
 msgstr "ERRO: nenhum valor fornecido.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1634
+#: src/lib/ecore/ecore_getopt.c:1628
 msgid "ERROR: no arguments provided.\n"
 msgstr "ERRO: nenhum argumento fornecido.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1660
+#: src/lib/ecore/ecore_getopt.c:1654
 msgid "ERROR: invalid options found."
 msgstr "ERRO: encontradas opções inválidas."
 
-#: src/lib/ecore/ecore_getopt.c:1666
+#: src/lib/ecore/ecore_getopt.c:1660
 #, c-format
 msgid " See --%s.\n"
 msgstr " Veja --%s.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1668
+#: src/lib/ecore/ecore_getopt.c:1662
 #, c-format
 msgid " See -%c.\n"
 msgstr " Veja -%c.\n"
 
-#: src/lib/ecore/ecore_getopt.c:1705
+#: src/lib/ecore/ecore_getopt.c:1699
 #, c-format
 msgid "ERROR: incorrect geometry value '%s'\n"
 msgstr "ERRO: valor geométrico incorreto \"%s\"\n"
 
-#: src/lib/ecore/ecore_getopt.c:1728
+#: src/lib/ecore/ecore_getopt.c:1722
 #, c-format
 msgid "ERROR: incorrect size value '%s'\n"
 msgstr "ERRO: tamanho incorreto \"%s\"\n"
-
diff --git a/po/sl.po b/po/sl.po
new file mode 100644 (file)
index 0000000..cedd65f
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,174 @@
+# Slovenian translation of ecore.
+# This file is put in the public domain.
+# r1to <renato.rener@gmail.com>, 2011.
+# , fuzzy
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ecore 1.0\n"
+"Report-Msgid-Bugs-To: http://trac.enlightenment.org/e/\n"
+"POT-Creation-Date: 2011-02-22 20:00-0800\n"
+"PO-Revision-Date: 2011-02-24 16:54+0100\n"
+"Last-Translator: r1to <renato.rener@gmail.com>\n"
+"Language-Team: Slovenian <sl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit"
+
+#: ../src/lib/ecore/ecore_getopt.c:87
+msgid "Version:"
+msgstr "Različica"
+
+#: ../src/lib/ecore/ecore_getopt.c:95
+msgid "Usage:"
+msgstr "Uporaba:"
+
+#: ../src/lib/ecore/ecore_getopt.c:100
+#, c-format
+msgid "%s [options]\n"
+msgstr "%s·[možnosti]\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:248
+msgid "Copyright:"
+msgstr "Avtorstvo:"
+
+#: ../src/lib/ecore/ecore_getopt.c:259
+msgid "License:"
+msgstr "Licenca:"
+
+#: ../src/lib/ecore/ecore_getopt.c:411
+msgid "Type: "
+msgstr "Vrsta:·"
+
+#: ../src/lib/ecore/ecore_getopt.c:478
+msgid "Default: "
+msgstr "Privzeto:·"
+
+#: ../src/lib/ecore/ecore_getopt.c:501
+msgid "Choices: "
+msgstr "Izbire:·"
+
+#: ../src/lib/ecore/ecore_getopt.c:598
+msgid "Options:\n"
+msgstr "Možnosti:\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:718
+#, c-format
+msgid "ERROR: unknown option --%s.\n"
+msgstr "NAPAKA:·Neznana možnost·--%s.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:720
+#, c-format
+msgid "ERROR: unknown option -%c.\n"
+msgstr "NAPAKA:·neznana možnost·-%c.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:776
+msgid "ERROR: "
+msgstr "NAPAKA:"
+
+#: ../src/lib/ecore/ecore_getopt.c:853 ../src/lib/ecore/ecore_getopt.c:969
+#: ../src/lib/ecore/ecore_getopt.c:982 ../src/lib/ecore/ecore_getopt.c:994
+#: ../src/lib/ecore/ecore_getopt.c:1008 ../src/lib/ecore/ecore_getopt.c:1052
+#: ../src/lib/ecore/ecore_getopt.c:1160 ../src/lib/ecore/ecore_getopt.c:1196
+msgid "value has no pointer set.\n"
+msgstr "vrednost nima nastavljenega kazalnika.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:882 ../src/lib/ecore/ecore_getopt.c:1071
+#, c-format
+msgid "unknown boolean value %s.\n"
+msgstr "neznana Boolova vrednost·%s.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:926 ../src/lib/ecore/ecore_getopt.c:1151
+#, c-format
+msgid "invalid number format %s\n"
+msgstr "napačen·format števila·%s\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1021
+#, c-format
+msgid "invalid choice \"%s\". Valid values are: "
+msgstr "napačna izbira·\"%s\".·Pravilne izbire so:·"
+
+#: ../src/lib/ecore/ecore_getopt.c:1046
+msgid "missing parameter to append.\n"
+msgstr "manjka·parameter·za dodajo.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1141
+msgid "could not parse value.\n"
+msgstr "vrednosti ni bilo možno razčleniti.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1190
+msgid "missing parameter.\n"
+msgstr "manjkajoči·parameter.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1203
+msgid "missing callback function!\n"
+msgstr "manjkajoča povratno-zasilna funkcija !\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1226
+msgid "no version was defined.\n"
+msgstr "definirana ni bila nobena različica.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1240
+msgid "no copyright was defined.\n"
+msgstr "definirano ni bilo nobeno avtorstvo.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1254
+msgid "no license was defined.\n"
+msgstr "definirana ni bila nobena licenca.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1308
+#, c-format
+msgid "ERROR: unknown option --%s, ignored.\n"
+msgstr "NAPAKA:·neznana možnost·--%s,·prezrto.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1341
+#, c-format
+msgid "ERROR: option --%s requires an argument!\n"
+msgstr "NAPAKA:·možnost·--%s·zahteva argument!\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1377
+#, c-format
+msgid "ERROR: unknown option -%c, ignored.\n"
+msgstr "NAPAKA:·neznana možnost·-%c,·prezrto.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1415
+#, c-format
+msgid "ERROR: option -%c requires an argument!\n"
+msgstr "NAPAKA:·možnost·-%c zahteva argument!\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1614
+msgid "ERROR: no parser provided.\n"
+msgstr "NAPAKA:·ni podan razčlenjevalnik.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1619
+msgid "ERROR: no values provided.\n"
+msgstr "NAPAKA::·ni podanih vrednosti.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1628
+msgid "ERROR: no arguments provided.\n"
+msgstr "NAPAKA::·ni podanih argumentov.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1654
+msgid "ERROR: invalid options found."
+msgstr "NAPAKA::·najdene nepravilne možnosti"
+
+#: ../src/lib/ecore/ecore_getopt.c:1660
+#, c-format
+msgid " See --%s.\n"
+msgstr "·Glej·--%s.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1662
+#, c-format
+msgid " See -%c.\n"
+msgstr "·Glej·-%c.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1699
+#, c-format
+msgid "ERROR: incorrect geometry value '%s'\n"
+msgstr "NAPAKA::·nepravilna geometrijska vrednost·'%s'\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1722
+#, c-format
+msgid "ERROR: incorrect size value '%s'\n"
+msgstr "NAPAKA::·nepravilna vrednost velikosti·'%s'\n"
index d39e71f..215545e 100644 (file)
@@ -50,6 +50,7 @@ extern "C" {
 #endif
 
   /**
+   * @file Ecore.h
    * @defgroup Ecore_Group Ecore - Main Loop and Job Functions.
    * @brief The file that provides the program utility, main loop and timer
    *        functions.
@@ -116,6 +117,7 @@ extern "C" {
 
    enum _Ecore_Exe_Flags /* flags for executing a child with its stdin and/or stdout piped back */
      {
+        ECORE_EXE_NONE = 0, /**< No exe flags at all */
         ECORE_EXE_PIPE_READ = 1, /**< Exe Pipe Read mask */
         ECORE_EXE_PIPE_WRITE = 2, /**< Exe Pipe Write mask */
         ECORE_EXE_PIPE_ERROR = 4, /**< Exe Pipe error mask */
@@ -264,9 +266,9 @@ extern "C" {
 
    struct _Ecore_Event_Signal_Exit /** Exit request event */
      {
-        unsigned int   interrupt : 1; /**< Set if the exit request was an interrupt  signal*/
-        unsigned int   quit      : 1; /**< set if the exit request was a quit signal */
-        unsigned int   terminate : 1; /**< Set if the exit request was a terminate singal */
+        Eina_Bool   interrupt : 1; /**< Set if the exit request was an interrupt  signal*/
+        Eina_Bool   quit      : 1; /**< set if the exit request was a quit signal */
+        Eina_Bool   terminate : 1; /**< Set if the exit request was a terminate singal */
         void          *ext_data; /**< Extension data - not used */
 
 #ifndef _WIN32
@@ -304,8 +306,8 @@ extern "C" {
         int           exit_code; /**< The exit code of the process */
         Ecore_Exe    *exe; /**< The handle to the exited process, or NULL if not found */
         int           exit_signal; /** < The signal that caused the process to exit */
-        unsigned int  exited    : 1; /** < set to 1 if the process exited of its own accord */
-        unsigned int  signalled : 1; /** < set to 1 id the process exited due to uncaught signal */
+        Eina_Bool  exited    : 1; /** < set to 1 if the process exited of its own accord */
+        Eina_Bool  signalled : 1; /** < set to 1 id the process exited due to uncaught signal */
         void         *ext_data; /**< Extension data - not used */
 #ifndef _WIN32
         siginfo_t     data; /**< Signal info */
@@ -438,7 +440,7 @@ extern "C" {
    EAPI void              ecore_main_loop_iterate(void);
 
    EAPI void              ecore_main_loop_select_func_set(Ecore_Select_Function func);
-   EAPI void             *ecore_main_loop_select_func_get(void);
+   EAPI Ecore_Select_Function ecore_main_loop_select_func_get(void);
 
    EAPI Eina_Bool         ecore_main_loop_glib_integrate(void);
    EAPI void              ecore_main_loop_glib_always_integrate_disable(void);
index 479beb5..c9e9873 100644 (file)
@@ -61,6 +61,7 @@ struct _Ecore_Fd_Handler
 {
    EINA_INLIST;
    ECORE_MAGIC;
+   Ecore_Fd_Handler        *next_ready;
    int                      fd;
    Ecore_Fd_Handler_Flags   flags;
    Ecore_Fd_Cb              func;
@@ -119,9 +120,9 @@ static Eina_List        *fd_handlers_with_prep = NULL;
 static Eina_List        *fd_handlers_with_buffer = NULL;
 static Eina_List        *fd_handlers_to_delete = NULL;
 
-static Eina_List        *fd_handlers_to_call = NULL;
-static Eina_List        *fd_handlers_to_call_current;
-static Eina_List        *fd_handlers_to_call_current_next;
+/* single linked list of ready fdhs, terminated by loop to self */
+static Ecore_Fd_Handler    *fd_handlers_to_call;
+static Ecore_Fd_Handler    *fd_handlers_to_call_current;
 
 #ifdef _WIN32
 static Ecore_Win32_Handler *win32_handlers = NULL;
@@ -166,6 +167,24 @@ _ecore_fd_valid(void)
 #endif
 }
 
+static inline void
+_ecore_try_add_to_call_list(Ecore_Fd_Handler *fdh)
+{
+   /* check if this fdh is already in the list */
+   if (fdh->next_ready)
+     return;
+   if (fdh->read_active || fdh->write_active || fdh->error_active)
+     {
+        /*
+         * make sure next_ready is non-null by pointing to ourselves
+         * use that to indicate this fdh is in the ready list
+         * insert at the head of the list to avoid trouble
+         */
+        fdh->next_ready = fd_handlers_to_call ? fd_handlers_to_call : fdh;
+        fd_handlers_to_call = fdh;
+     }
+}
+
 #ifdef HAVE_EPOLL
 static inline int
 _ecore_get_epoll_fd(void)
@@ -332,7 +351,6 @@ static inline int _ecore_main_fdh_poll_mark_active(void)
    for (i = 0; i < ret; i++)
      {
         Ecore_Fd_Handler *fdh;
-        Eina_Bool pst, st;
 
         fdh = ev[i].data.ptr;
         if (!ECORE_MAGIC_CHECK(fdh, ECORE_MAGIC_FD_HANDLER))
@@ -346,15 +364,15 @@ static inline int _ecore_main_fdh_poll_mark_active(void)
              ERR("deleted fd in epoll");
              continue;
           }
-        pst = st = fdh->read_active | fdh->write_active | fdh->error_active;
-        if ((ev[i].events & EPOLLIN) && (!fdh->read_active))
-         st = fdh->read_active = EINA_TRUE;
-        if ((ev[i].events & EPOLLOUT) && (!fdh->write_active))
-         st = fdh->write_active = EINA_TRUE;
-        if ((ev[i].events & EPOLLERR) && (!fdh->error_active))
-         st = fdh->error_active = EINA_TRUE;
-        if (pst != st)
-          fd_handlers_to_call = eina_list_append(fd_handlers_to_call, fdh);
+
+        if (ev[i].events & EPOLLIN)
+          fdh->read_active = EINA_TRUE;
+        if (ev[i].events & EPOLLOUT)
+          fdh->write_active = EINA_TRUE;
+        if (ev[i].events & EPOLLERR)
+          fdh->error_active = EINA_TRUE;
+
+        _ecore_try_add_to_call_list(fdh);
      }
 
    return ret;
@@ -365,7 +383,6 @@ static inline int _ecore_main_fdh_poll_mark_active(void)
 static inline int _ecore_main_fdh_poll_mark_active(void)
 {
    Ecore_Fd_Handler *fdh;
-   Eina_Bool pst, st;
    int ret = 0;
 
    /* call the prepare callback for all handlers */
@@ -374,15 +391,15 @@ static inline int _ecore_main_fdh_poll_mark_active(void)
         if (fdh->delete_me)
            continue;
 
-        pst = st = fdh->read_active | fdh->write_active | fdh->error_active;
-        if ((fdh->gfd.revents & G_IO_IN) && (!fdh->read_active))
-         st = fdh->read_active = EINA_TRUE;
-        if ((fdh->gfd.revents & G_IO_OUT) && (!fdh->write_active))
-         st = fdh->write_active = EINA_TRUE;
-        if ((fdh->gfd.revents & G_IO_ERR) && (!fdh->error_active))
-         st = fdh->error_active = EINA_TRUE;
-        if (pst != st)
-          fd_handlers_to_call = eina_list_append(fd_handlers_to_call, fdh);
+        if (fdh->gfd.revents & G_IO_IN)
+           fdh->read_active = EINA_TRUE;
+        if (fdh->gfd.revents & G_IO_OUT)
+           fdh->write_active = EINA_TRUE;
+        if (fdh->gfd.revents & G_IO_ERR)
+           fdh->error_active = EINA_TRUE;
+
+        _ecore_try_add_to_call_list(fdh);
+
         if (fdh->gfd.revents & (G_IO_IN|G_IO_OUT|G_IO_ERR)) ret++;
      }
 
@@ -708,7 +725,7 @@ ecore_main_loop_select_func_set(Ecore_Select_Function func)
  * or the native select function if none was set.
  *
  */
-EAPI void *
+EAPI Ecore_Select_Function
 ecore_main_loop_select_func_get(void)
 {
    return main_loop_select;
@@ -763,11 +780,13 @@ ecore_main_fd_handler_add(int fd, Ecore_Fd_Handler_Flags flags, Ecore_Fd_Cb func
    fdh = calloc(1, sizeof(Ecore_Fd_Handler));
    if (!fdh) return NULL;
    ECORE_MAGIC_SET(fdh, ECORE_MAGIC_FD_HANDLER);
+   fdh->next_ready = NULL;
    fdh->fd = fd;
    fdh->flags = flags;
    if (_ecore_main_fdh_poll_add(fdh) < 0)
      {
-        ERR("Failed to add poll on fd %d (errno = %d)!", fd, errno);
+        int err = errno;
+        ERR("Failed to add poll on fd %d (errno = %d: %s)!", fd, err, strerror(err));
         free(fdh);
         return NULL;
      }
@@ -951,6 +970,8 @@ ecore_main_fd_handler_active_get(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Handler_
 EAPI void
 ecore_main_fd_handler_active_set(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Handler_Flags flags)
 {
+   int ret;
+
    if (!ECORE_MAGIC_CHECK(fd_handler, ECORE_MAGIC_FD_HANDLER))
      {
         ECORE_MAGIC_FAIL(fd_handler, ECORE_MAGIC_FD_HANDLER,
@@ -958,9 +979,10 @@ ecore_main_fd_handler_active_set(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Handler_
         return;
      }
    fd_handler->flags = flags;
-   if (_ecore_main_fdh_poll_modify(fd_handler) < 0)
+   ret = _ecore_main_fdh_poll_modify(fd_handler);
+   if (ret < 0)
      {
-        ERR("Failed to mod epoll fd %d!", fd_handler->fd);
+        ERR("Failed to mod epoll fd %d: %s!", fd_handler->fd, strerror(ret));
      }
 }
 
@@ -998,9 +1020,8 @@ _ecore_main_shutdown(void)
      fd_handlers_with_prep = eina_list_free(fd_handlers_with_prep);
    if (fd_handlers_to_delete)
      fd_handlers_to_delete = eina_list_free(fd_handlers_to_delete);
-   if (fd_handlers_to_call)
-     fd_handlers_to_call = eina_list_free(fd_handlers_to_call);
 
+   fd_handlers_to_call = NULL;
    fd_handlers_to_call_current = NULL;
    fd_handlers_to_delete = NULL;
    fd_handler_current = NULL;
@@ -1139,16 +1160,13 @@ _ecore_main_select(double timeout)
           {
              if (!fdh->delete_me)
                {
-                  Eina_Bool pst, st;
-                  pst = st = fdh->read_active | fdh->write_active | fdh->error_active;
-                  if ((FD_ISSET(fdh->fd, &rfds)) && (!fdh->read_active))
-                   st = fdh->read_active = EINA_TRUE;
-                  if ((FD_ISSET(fdh->fd, &wfds)) && (!fdh->write_active))
-                   st = fdh->write_active = EINA_TRUE;
-                  if ((FD_ISSET(fdh->fd, &exfds)) && (!fdh->error_active))
-                   st = fdh->error_active = EINA_TRUE;
-                  if (pst != st)
-                    fd_handlers_to_call = eina_list_append(fd_handlers_to_call, fdh);
+                  if (FD_ISSET(fdh->fd, &rfds))
+                    fdh->read_active = EINA_TRUE;
+                  if (FD_ISSET(fdh->fd, &wfds))
+                    fdh->write_active = EINA_TRUE;
+                  if (FD_ISSET(fdh->fd, &exfds))
+                    fdh->error_active = EINA_TRUE;
+                  _ecore_try_add_to_call_list(fdh);
                }
           }
 #endif /* HAVE_EPOLL */
@@ -1285,22 +1303,16 @@ _ecore_main_win32_handlers_cleanup(void)
 static void
 _ecore_main_fd_handlers_call(void)
 {
+   /* grab a new list */
    if (!fd_handlers_to_call_current)
      {
-        /* regular main loop, start from head */
         fd_handlers_to_call_current = fd_handlers_to_call;
-        fd_handlers_to_call_current_next = eina_list_next(fd_handlers_to_call_current);
-     }
-   else
-     {
-        /* recursive main loop, continue from where we were */
-        fd_handlers_to_call_current = fd_handlers_to_call_current_next;
-        fd_handlers_to_call_current_next = eina_list_next(fd_handlers_to_call_current);
+        fd_handlers_to_call = NULL;
      }
 
    while (fd_handlers_to_call_current)
      {
-        Ecore_Fd_Handler *fdh = fd_handlers_to_call_current->data;
+        Ecore_Fd_Handler *fdh = fd_handlers_to_call_current;
 
         if (!fdh->delete_me)
           {
@@ -1327,9 +1339,16 @@ _ecore_main_fd_handlers_call(void)
                }
           }
 
-        fd_handlers_to_call = eina_list_remove_list(fd_handlers_to_call, fd_handlers_to_call_current);
-        fd_handlers_to_call_current = fd_handlers_to_call_current_next;
-        fd_handlers_to_call_current_next = eina_list_next(fd_handlers_to_call_current_next);
+        /* stop when we point to ourselves */
+        if (fdh->next_ready == fdh)
+          {
+             fdh->next_ready = NULL;
+             fd_handlers_to_call_current = NULL;
+             break;
+          }
+
+        fd_handlers_to_call_current = fdh->next_ready;
+        fdh->next_ready = NULL;
      }
 }
 
@@ -1354,12 +1373,8 @@ _ecore_main_fd_handlers_buf_call(void)
              if (fdh->buf_func(fdh->buf_data, fdh))
                {
                   ret |= fdh->func(fdh->data, fdh);
-                  if (!fdh->read_active)
-                    {
-                       fdh->read_active = EINA_TRUE;
-                       if ((!fdh->write_active) && (!fdh->error_active))
-                         fd_handlers_to_call = eina_list_append(fd_handlers_to_call, fdh);
-                    }
+                  fdh->read_active = EINA_TRUE;
+                  _ecore_try_add_to_call_list(fdh);
                }
              fdh->references--;
           }
index 6ff8201..ad537a6 100644 (file)
@@ -539,7 +539,7 @@ _ecore_pipe_read(void *data, Ecore_Fd_Handler *fd_handler __UNUSED__)
              else if (ret == 0)
                {
                   if (!p->delete_me)
-                     p->handler((void *)p->data, NULL, 0);                     
+                      p->handler((void *)p->data, NULL, 0);
                   pipe_close(p->fd_read);
                   p->fd_read = PIPE_FD_INVALID;
                   p->fd_handler = NULL;
@@ -547,7 +547,7 @@ _ecore_pipe_read(void *data, Ecore_Fd_Handler *fd_handler __UNUSED__)
                   return ECORE_CALLBACK_CANCEL;
                }
 #ifndef _WIN32
-             else if ((ret == PIPE_FD_ERROR) &&
+             else if ((ret == PIPE_FD_ERROR) && 
                       ((errno == EINTR) || (errno == EAGAIN)))
                {
                   _ecore_pipe_unhandle(p);
@@ -614,8 +614,8 @@ _ecore_pipe_read(void *data, Ecore_Fd_Handler *fd_handler __UNUSED__)
              return ECORE_CALLBACK_CANCEL;
           }
 #ifndef _WIN32
-        else if ((ret == PIPE_FD_ERROR) &&
-                  ((errno == EINTR) || (errno == EAGAIN)))
+        else if ((ret == PIPE_FD_ERROR) && 
+                 ((errno == EINTR) || (errno == EAGAIN)))
            return ECORE_CALLBACK_RENEW;
         else
           {
index f072c06..0053524 100644 (file)
@@ -15,7 +15,6 @@
 /* make mono happy - this is evil though... */
 #undef SIGPWR
 /* valgrind in some versions/setups uses SIGRT's... hmmm */
-#undef SIGRTMIN
 
 typedef void (*Signal_Handler)(int sig, siginfo_t *si, void *foo);
 
@@ -32,10 +31,6 @@ static void _ecore_signal_callback_sigterm(int sig, siginfo_t *si, void *foo);
 static void _ecore_signal_callback_sigpwr(int sig, siginfo_t *si, void *foo);
 #endif
 
-#ifdef SIGRTMIN
-static void _ecore_signal_callback_sigrt(int sig, siginfo_t *si, void *foo);
-#endif
-
 static Eina_Bool _ecore_signal_exe_exit_delay(void *data);
 
 //#define MAXSIGQ 256 // 32k
@@ -52,9 +47,6 @@ static volatile sig_atomic_t sigterm_count = 0;
 #ifdef SIGPWR
 static volatile sig_atomic_t sigpwr_count = 0;
 #endif
-#ifdef SIGRTMIN
-static volatile sig_atomic_t *sigrt_count = NULL;
-#endif
 
 static volatile siginfo_t sigchld_info[MAXSIGQ];
 static volatile siginfo_t sigusr1_info[MAXSIGQ];
@@ -66,17 +58,10 @@ static volatile siginfo_t sigterm_info[MAXSIGQ];
 #ifdef SIGPWR
 static volatile siginfo_t sigpwr_info[MAXSIGQ];
 #endif
-#ifdef SIGRTMIN
-static volatile siginfo_t *sigrt_info[MAXSIGQ];
-#endif
 
 void
 _ecore_signal_shutdown(void)
 {
-#ifdef SIGRTMIN
-   int i, num = SIGRTMAX - SIGRTMIN;
-#endif
-
    _ecore_signal_callback_set(SIGPIPE, (Signal_Handler) SIG_DFL);
    _ecore_signal_callback_set(SIGALRM, (Signal_Handler) SIG_DFL);
    _ecore_signal_callback_set(SIGCHLD, (Signal_Handler) SIG_DFL);
@@ -99,37 +84,11 @@ _ecore_signal_shutdown(void)
    sigterm_count = 0;
    sig_count = 0;
 
-#ifdef SIGRTMIN
-   for (i = 0; i < num; i++)
-     {
-        _ecore_signal_callback_set(SIGRTMIN + i, (Signal_Handler) SIG_DFL);
-        sigrt_count[i] = 0;
-     }
-
-   if (sigrt_count)
-     {
-        free((sig_atomic_t *) sigrt_count);
-        sigrt_count = NULL;
-     }
-
-   for (i = 0; i < MAXSIGQ; i++)
-     {
-        if (sigrt_info[i])
-          {
-             free((siginfo_t *) sigrt_info[i]);
-             sigrt_info[i] = NULL;
-          }
-     }
-#endif
 }
 
 void
 _ecore_signal_init(void)
 {
-#ifdef SIGRTMIN
-   int i, num = SIGRTMAX - SIGRTMIN;
-#endif
-
    _ecore_signal_callback_set(SIGPIPE, _ecore_signal_callback_ignore);
    _ecore_signal_callback_set(SIGALRM, _ecore_signal_callback_ignore);
    _ecore_signal_callback_set(SIGCHLD, _ecore_signal_callback_sigchld);
@@ -142,20 +101,6 @@ _ecore_signal_init(void)
 #ifdef SIGPWR
    _ecore_signal_callback_set(SIGPWR,  _ecore_signal_callback_sigpwr);
 #endif
-
-#ifdef SIGRTMIN
-   sigrt_count = calloc(1, sizeof(sig_atomic_t) * num);
-   assert(sigrt_count);
-
-   for (i = 0; i < MAXSIGQ; i++)
-     {
-        sigrt_info[i] = calloc(1, sizeof(siginfo_t) * num);
-        assert(sigrt_info[i]);
-     }
-
-   for (i = 0; i < num; i++)
-      _ecore_signal_callback_set(SIGRTMIN + i, _ecore_signal_callback_sigrt);
-#endif
 }
 
 int
@@ -167,9 +112,6 @@ _ecore_signal_count_get(void)
 void
 _ecore_signal_call(void)
 {
-#ifdef SIGRTMIN
-   int i, num = SIGRTMAX - SIGRTMIN;
-#endif
    volatile sig_atomic_t n;
    sigset_t oldset, newset;
 
@@ -187,10 +129,6 @@ _ecore_signal_call(void)
 #ifdef SIGPWR
    sigaddset(&newset, SIGPWR);
 #endif
-#ifdef SIGRTMIN
-   for (i = 0; i < num; i++)
-     sigaddset(&newset, SIGRTMIN + i);
-#endif
    sigprocmask(SIG_BLOCK, &newset, &oldset);
    if (sigchld_count > MAXSIGQ)
      WRN("%i SIGCHLD in queue. max queue size %i. losing "
@@ -412,30 +350,6 @@ _ecore_signal_call(void)
    sigpwr_count = 0;
 #endif
 
-#ifdef SIGRTMIN
-   for (i = 0; i < num; i++)
-     {
-        if (sigrt_count[i] > MAXSIGQ)
-          WRN("%i SIGRT%i in queue. max queue size %i. losing "
-              "siginfo for extra signals.", i + 1, sigrt_count[i], MAXSIGQ);
-        for (n = 0; n < sigrt_count[i]; n++)
-          {
-             Ecore_Event_Signal_Realtime *e;
-
-             if ((e = _ecore_event_signal_realtime_new()))
-               {
-                  e->num = i;
-
-                  if ((n < MAXSIGQ) && (sigrt_info[n][i].si_signo))
-                    e->data = sigrt_info[n][i];
-
-                  ecore_event_add(ECORE_EVENT_SIGNAL_REALTIME, e, NULL, NULL);
-               }
-             sig_count--;
-          }
-        sigrt_count[i] = 0;
-     }
-#endif
    sigprocmask(SIG_SETMASK, &oldset, NULL);
 }
 
@@ -586,24 +500,6 @@ _ecore_signal_callback_sigpwr(int sig __UNUSED__, siginfo_t *si, void *foo __UNU
 }
 #endif
 
-#ifdef SIGRTMIN
-static void
-_ecore_signal_callback_sigrt(int sig, siginfo_t *si, void *foo __UNUSED__)
-{
-   volatile sig_atomic_t n;
-   n = sigrt_count[sig - SIGRTMIN];
-   if (n < MAXSIGQ)
-     {
-        if (si)
-          sigrt_info[n][sig - SIGRTMIN] = *si;
-        else
-          sigrt_info[n][sig - SIGRTMIN].si_signo = 0;
-     }
-   sigrt_count[sig - SIGRTMIN]++;
-   sig_count++;
-}
-#endif
-
 static Eina_Bool
 _ecore_signal_exe_exit_delay(void *data)
 {
index 27f6252..49059b8 100644 (file)
@@ -1024,7 +1024,7 @@ ecore_thread_check(Ecore_Thread *thread)
  * @param func_end The function that will be called in the main loop if the thread terminate correctly.
  * @param func_cancel The function that will be called in the main loop if the thread is cancelled.
  * @param data User context data to pass to all callback.
- * @param try_no_queue If you wan't to run outside of the thread pool.
+ * @param try_no_queue If you want to run outside of the thread pool.
  * @return A reference to the newly created thread instance, or NULL if it failed.
  *
  * ecore_thread_feedback_run provide a facility for easily managing heavy task in a
@@ -1032,7 +1032,7 @@ ecore_thread_check(Ecore_Thread *thread)
  * that will do the heavy work in another thread (so you should not use the
  * EFL in it except Eina and Eet if you are careful). The second one, func_notify,
  * will receive the data send from the thread function (func_heavy) by ecore_thread_notify
- * in the main loop (and so, can use all the EFL). Tje third, func_end,
+ * in the main loop (and so, can use all the EFL). The third, func_end,
  * that will be called in Ecore main loop when func_heavy is done. So you
  * can use all the EFL inside this function. The last one, func_cancel, will
  * be called in the main loop also, if the thread is cancelled or could not run at all.
index c8bc237..b8fbad8 100644 (file)
@@ -148,6 +148,12 @@ typedef struct _Ecore_Con_Event_Client_Add Ecore_Con_Event_Client_Add;
 typedef struct _Ecore_Con_Event_Client_Del Ecore_Con_Event_Client_Del;
 
 /**
+ * @typedef Ecore_Con_Event_Client_Error
+ * Used as the @p data param for the corresponding event
+ */
+typedef struct _Ecore_Con_Event_Client_Error Ecore_Con_Event_Client_Error;
+
+/**
  * @typedef Ecore_Con_Event_Server_Add
  * Used as the @p data param for the corresponding event
  */
@@ -160,6 +166,12 @@ typedef struct _Ecore_Con_Event_Server_Add Ecore_Con_Event_Server_Add;
 typedef struct _Ecore_Con_Event_Server_Del Ecore_Con_Event_Server_Del;
 
 /**
+ * @typedef Ecore_Con_Event_Server_Error
+ * Used as the @p data param for the corresponding event
+ */
+typedef struct _Ecore_Con_Event_Server_Error Ecore_Con_Event_Server_Error;
+
+/**
  * @typedef Ecore_Con_Event_Client_Data
  * Used as the @p data param for the corresponding event
  */
@@ -208,6 +220,16 @@ struct _Ecore_Con_Event_Client_Del
 };
 
 /**
+ * @struct _Ecore_Con_Event_Client_Error
+ * Used as the @p data param for the @ref ECORE_CON_EVENT_CLIENT_ERROR event
+ */
+struct _Ecore_Con_Event_Client_Error
+{
+   Ecore_Con_Client *client; /** the client for which an error occurred */
+   char *error; /**< the error string describing what happened */
+};
+
+/**
  * @struct _Ecore_Con_Event_Server_Add
  * Used as the @p data param for the @ref ECORE_CON_EVENT_SERVER_ADD event
  */
@@ -226,6 +248,16 @@ struct _Ecore_Con_Event_Server_Del
 };
 
 /**
+ * @struct _Ecore_Con_Event_Server_Error
+ * Used as the @p data param for the @ref ECORE_CON_EVENT_SERVER_ERROR event
+ */
+struct _Ecore_Con_Event_Server_Error
+{
+   Ecore_Con_Server *server; /** the server for which an error occurred */
+   char *error; /**< the error string describing what happened */
+};
+
+/**
  * @struct _Ecore_Con_Event_Client_Data
  * Used as the @p data param for the @ref ECORE_CON_EVENT_CLIENT_DATA event
  */
@@ -291,10 +323,14 @@ struct _Ecore_Con_Event_Url_Progress
 EAPI extern int ECORE_CON_EVENT_CLIENT_ADD;
 /** A client has disconnected from the server */
 EAPI extern int ECORE_CON_EVENT_CLIENT_DEL;
+/** A client experienced an error */
+EAPI extern int ECORE_CON_EVENT_CLIENT_ERROR;
 /** A server was created */
 EAPI extern int ECORE_CON_EVENT_SERVER_ADD;
 /** A server connection was lost */
 EAPI extern int ECORE_CON_EVENT_SERVER_DEL;
+/** A server experienced an error */
+EAPI extern int ECORE_CON_EVENT_SERVER_ERROR;
 /** A client connected to the server has sent data */
 EAPI extern int ECORE_CON_EVENT_CLIENT_DATA;
 /** A server connection object has data */
@@ -449,6 +485,7 @@ EAPI double            ecore_con_client_uptime_get(Ecore_Con_Client *cl);
 EAPI double            ecore_con_client_timeout_get(Ecore_Con_Client *cl);
 EAPI void              ecore_con_client_timeout_set(Ecore_Con_Client *cl, double timeout);
 EAPI Eina_Bool         ecore_con_client_connected_get(Ecore_Con_Client *cl);
+EAPI int               ecore_con_client_port_get(Ecore_Con_Client *cl);
 
 /**
  * @}
@@ -511,9 +548,7 @@ EAPI Eina_Bool         ecore_con_url_httpauth_set(Ecore_Con_Url *url_con,
 EINA_DEPRECATED EAPI Eina_Bool         ecore_con_url_send(Ecore_Con_Url *url_con,
                                                           const void *data, long length,
                                                           const char *content_type);
-EAPI Eina_Bool         ecore_con_url_get(Ecore_Con_Url *url_con,
-                                          const void *data, long length,
-                                          const char *content_type);
+EAPI Eina_Bool         ecore_con_url_get(Ecore_Con_Url *url_con);
 EAPI Eina_Bool         ecore_con_url_post(Ecore_Con_Url *url_con,
                                           const void *data, long length,
                                           const char *content_type);
@@ -542,6 +577,9 @@ EAPI Eina_Bool         ecore_con_url_cookies_jar_file_set(Ecore_Con_Url *url_con
                                                           const char * const cookiejar_file);
 EAPI void              ecore_con_url_cookies_jar_write(Ecore_Con_Url *url_con);
 
+EAPI void              ecore_con_url_ssl_verify_peer_set(Ecore_Con_Url *url_con,
+                                                         Eina_Bool verify);
+
 /**
  * @}
  */
index 64a0052..dbf1039 100644 (file)
@@ -58,6 +58,7 @@ static void      _ecore_con_cb_udp_listen(void           *data,
 static void      _ecore_con_server_free(Ecore_Con_Server *svr);
 static void      _ecore_con_client_free(Ecore_Con_Client *cl);
 
+static void      _ecore_con_cl_read(Ecore_Con_Server *svr);
 static Eina_Bool _ecore_con_svr_tcp_handler(void             *data,
                                             Ecore_Fd_Handler *fd_handler);
 static Eina_Bool _ecore_con_cl_handler(void             *data,
@@ -74,11 +75,11 @@ static Eina_Bool _ecore_con_svr_cl_handler(void             *data,
 static void _ecore_con_server_flush(Ecore_Con_Server *svr);
 static void _ecore_con_client_flush(Ecore_Con_Client *cl);
 
-static void _ecore_con_event_client_add_free(void *data,
+static void _ecore_con_event_client_add_free(Ecore_Con_Server *svr,
                                              void *ev);
-static void _ecore_con_event_client_del_free(void *data,
+static void _ecore_con_event_client_del_free(Ecore_Con_Server *svr,
                                              void *ev);
-static void _ecore_con_event_client_data_free(void *data,
+static void _ecore_con_event_client_data_free(Ecore_Con_Server *svr,
                                               void *ev);
 static void _ecore_con_event_server_add_free(void *data,
                                              void *ev);
@@ -86,6 +87,10 @@ static void _ecore_con_event_server_del_free(void *data,
                                              void *ev);
 static void _ecore_con_event_server_data_free(void *data,
                                               void *ev);
+static void _ecore_con_event_server_error_free(void *data,
+                                               Ecore_Con_Event_Server_Error *e);
+static void _ecore_con_event_client_error_free(Ecore_Con_Server *svr,
+                                               Ecore_Con_Event_Client_Error *e);
 
 static void _ecore_con_lookup_done(void           *data,
                                    Ecore_Con_Info *infos);
@@ -100,6 +105,8 @@ EAPI int ECORE_CON_EVENT_SERVER_ADD = 0;
 EAPI int ECORE_CON_EVENT_SERVER_DEL = 0;
 EAPI int ECORE_CON_EVENT_CLIENT_DATA = 0;
 EAPI int ECORE_CON_EVENT_SERVER_DATA = 0;
+EAPI int ECORE_CON_EVENT_CLIENT_ERROR = 0;
+EAPI int ECORE_CON_EVENT_SERVER_ERROR = 0;
 
 static Eina_List *servers = NULL;
 static int _ecore_con_init_count = 0;
@@ -148,6 +155,8 @@ ecore_con_init(void)
    ECORE_CON_EVENT_SERVER_DEL = ecore_event_type_new();
    ECORE_CON_EVENT_CLIENT_DATA = ecore_event_type_new();
    ECORE_CON_EVENT_SERVER_DATA = ecore_event_type_new();
+   ECORE_CON_EVENT_CLIENT_ERROR = ecore_event_type_new();
+   ECORE_CON_EVENT_SERVER_ERROR = ecore_event_type_new();
 
 
    eina_magic_string_set(ECORE_MAGIC_CON_SERVER, "Ecore_Con_Server");
@@ -1073,7 +1082,7 @@ ecore_con_client_data_get(Ecore_Con_Client *cl)
 }
 
 /**
- * Gets the IP address of a cleint that has connected.
+ * Gets the IP address of a client that has connected.
  *
  * @param   cl            The given client.
  * @return  A pointer to an internal string that contains the IP address of
@@ -1096,6 +1105,25 @@ ecore_con_client_ip_get(Ecore_Con_Client *cl)
 }
 
 /**
+ * @brief Return the port that the client has connected to
+ * @param cl The client
+ * @return The port that @p cl has connected to, or -1 on error
+ * Use this function to return the port on which a given client has connected.
+ */
+EAPI int
+ecore_con_client_port_get(Ecore_Con_Client *cl)
+{
+   if (!ECORE_MAGIC_CHECK(cl, ECORE_MAGIC_CON_CLIENT))
+     {
+        ECORE_MAGIC_FAIL(cl, ECORE_MAGIC_CON_CLIENT, "ecore_con_client_port_get");
+        return -1;
+     }
+   if (cl->client_addr->sa_family == AF_INET)
+     return ((struct sockaddr_in*)cl->client_addr)->sin_port;
+   return ((struct sockaddr_in6*)cl->client_addr)->sin6_port;
+}
+
+/**
  * @brief Check how long a client has been connected
  * @param cl The client to check
  * @return The total time, in seconds, that the client has been connected to the server
@@ -1134,26 +1162,173 @@ ecore_con_client_flush(Ecore_Con_Client *cl)
  * @}
  */
 
+void
+ecore_con_event_server_add(Ecore_Con_Server *svr)
+{
+    /* we got our server! */
+    Ecore_Con_Event_Server_Add *e;
+
+    e = calloc(1, sizeof(Ecore_Con_Event_Server_Add));
+    EINA_SAFETY_ON_NULL_RETURN(e);
+
+    svr->event_count++;
+    e->server = svr;
+    ecore_event_add(ECORE_CON_EVENT_SERVER_ADD, e,
+                    _ecore_con_event_server_add_free, NULL);
+}
+
+void
+ecore_con_event_server_del(Ecore_Con_Server *svr)
+{
+    Ecore_Con_Event_Server_Del *e;
+
+    e = calloc(1, sizeof(Ecore_Con_Event_Server_Del));
+    EINA_SAFETY_ON_NULL_RETURN(e);
+
+    svr->event_count++;
+    e->server = svr;
+    ecore_event_add(ECORE_CON_EVENT_SERVER_DEL, e,
+                    _ecore_con_event_server_del_free, NULL);
+}
+
+void
+ecore_con_event_server_data(Ecore_Con_Server *svr, unsigned char *buf, int num)
+{
+   Ecore_Con_Event_Server_Data *e;
+   
+   e = malloc(sizeof(Ecore_Con_Event_Server_Data));
+   EINA_SAFETY_ON_NULL_RETURN(e);
+   
+   svr->event_count++;
+   e->server = svr;
+   e->data = malloc(num);
+   if (!e->data)
+     {
+        ERR("alloc!");
+        free(e);
+        return;
+     }
+   memcpy(e->data, buf, num);
+   e->size = num;
+   ecore_event_add(ECORE_CON_EVENT_SERVER_DATA, e,
+                   _ecore_con_event_server_data_free, NULL);
+}
+
+void
+ecore_con_event_client_add(Ecore_Con_Client *cl)
+{
+   Ecore_Con_Event_Client_Add *e;
+
+   e = calloc(1, sizeof(Ecore_Con_Event_Client_Add));
+   EINA_SAFETY_ON_NULL_RETURN(e);
+
+   cl->event_count++;
+   cl->host_server->event_count++;
+   _ecore_con_cl_timer_update(cl);
+   e->client = cl;
+   ecore_event_add(ECORE_CON_EVENT_CLIENT_ADD, e,
+                   (Ecore_End_Cb)_ecore_con_event_client_add_free, cl->host_server);
+
+}
+
+void
+ecore_con_event_client_del(Ecore_Con_Client *cl)
+{
+    Ecore_Con_Event_Client_Del *e;
+
+    e = calloc(1, sizeof(Ecore_Con_Event_Client_Del));
+    EINA_SAFETY_ON_NULL_RETURN(e);
+
+    if (cl)
+      {
+         cl->event_count++;
+         cl->host_server->event_count++;
+         _ecore_con_cl_timer_update(cl);
+      }
+    e->client = cl;
+    ecore_event_add(ECORE_CON_EVENT_CLIENT_DEL, e,
+                    (Ecore_End_Cb)_ecore_con_event_client_del_free, cl->host_server);
+}
+
+void
+ecore_con_event_client_data(Ecore_Con_Client *cl, unsigned char *buf, int num)
+{
+   Ecore_Con_Event_Client_Data *e;
+   e = malloc(sizeof(Ecore_Con_Event_Client_Data));
+   EINA_SAFETY_ON_NULL_RETURN(e);
+
+   cl->host_server->event_count++;
+   cl->event_count++;
+   _ecore_con_cl_timer_update(cl);
+   e->client = cl;
+   e->data = malloc(num);
+   if (!e->data)
+     {
+        free(cl->client_addr);
+        free(cl);
+        return;
+     }
+
+   memcpy(e->data, buf, num);
+   e->size = num;
+   ecore_event_add(ECORE_CON_EVENT_CLIENT_DATA, e,
+                   (Ecore_End_Cb)_ecore_con_event_client_data_free, cl->host_server);
+}
+
+
+void
+ecore_con_server_infos_del(Ecore_Con_Server *svr, void *info)
+{
+   svr->infos = eina_list_remove(svr->infos, info);
+}
+
+void
+ecore_con_event_server_error(Ecore_Con_Server *svr, const char *error)
+{
+   Ecore_Con_Event_Server_Error *e;
+
+   e = calloc(1, sizeof(Ecore_Con_Event_Server_Error));
+   EINA_SAFETY_ON_NULL_RETURN(e);
+
+   e->server = svr;
+   e->error = strdup(error);
+   ERR("%s", error);
+   svr->event_count++;
+   ecore_event_add(ECORE_CON_EVENT_SERVER_ERROR, e, (Ecore_End_Cb)_ecore_con_event_server_error_free, NULL);
+}
+
+void
+ecore_con_event_client_error(Ecore_Con_Client *cl, const char *error)
+{
+   Ecore_Con_Event_Client_Error *e;
+
+   e = calloc(1, sizeof(Ecore_Con_Event_Client_Error));
+   EINA_SAFETY_ON_NULL_RETURN(e);
+
+   e->client = cl;
+   e->error = strdup(error);
+   ERR("%s", error);
+   cl->event_count++;
+   cl->host_server->event_count++;
+   ecore_event_add(ECORE_CON_EVENT_CLIENT_ERROR, e, (Ecore_End_Cb)_ecore_con_event_client_error_free, cl->host_server);
+}
+
 static void
 _ecore_con_server_free(Ecore_Con_Server *svr)
 {
    Ecore_Con_Client *cl;
    double t_start, t;
 
+   while (svr->infos)
+     {
+        ecore_con_info_data_clear(svr->infos->data);
+        svr->infos = eina_list_remove_list(svr->infos, svr->infos);
+     }
    if ((!svr->write_buf) && svr->delete_me && (!svr->dead) && (svr->event_count < 1))
      {
         /* this is a catch-all for cases when a server is not properly killed. */
-
-        Ecore_Con_Event_Server_Del *e;
-
         svr->dead = EINA_TRUE;
-        e = calloc(1, sizeof(Ecore_Con_Event_Server_Del));
-        EINA_SAFETY_ON_NULL_RETURN(e);
-
-        svr->event_count++;
-        e->server = svr;
-        ecore_event_add(ECORE_CON_EVENT_SERVER_DEL, e,
-                        _ecore_con_event_server_del_free, NULL);
+        ecore_con_event_server_del(svr);
         return;
      }
 
@@ -1215,19 +1390,8 @@ _ecore_con_client_free(Ecore_Con_Client *cl)
    if (cl->delete_me && (!cl->dead) && (cl->event_count < 1))
      {
         /* this is a catch-all for cases when a client is not properly killed. */
-
-          /* we lost our client! */
-           Ecore_Con_Event_Client_Del *e;
-
            cl->dead = EINA_TRUE;
-           e = calloc(1, sizeof(Ecore_Con_Event_Client_Del));
-           EINA_SAFETY_ON_NULL_RETURN(e);
-
-           cl->event_count++;
-           _ecore_con_cl_timer_update(cl);
-           e->client = cl;
-           ecore_event_add(ECORE_CON_EVENT_CLIENT_DEL, e,
-                           _ecore_con_event_client_del_free, NULL);
+           ecore_con_event_client_del(cl);
            return;
      }
 
@@ -1274,18 +1438,8 @@ static void
 _ecore_con_server_kill(Ecore_Con_Server *svr)
 {
    if (!svr->delete_me)
-     {
-        Ecore_Con_Event_Server_Del *e;
-
-        e = calloc(1, sizeof(Ecore_Con_Event_Server_Del));
-        EINA_SAFETY_ON_NULL_RETURN(e);
-
-        svr->event_count++;
-        e->server = svr;
-        ecore_event_add(ECORE_CON_EVENT_SERVER_DEL, e,
-                        _ecore_con_event_server_del_free, NULL);
-     }
-
+     ecore_con_event_server_del(svr);
+     
    svr->dead = EINA_TRUE;
    if (svr->fd_handler)
      ecore_main_fd_handler_del(svr->fd_handler);
@@ -1345,46 +1499,69 @@ _ecore_con_cb_tcp_listen(void           *data,
 
    svr = data;
 
-   if (!net_info)
+   if (!net_info) /* error message has already been handled */
      goto error;
 
    svr->fd = socket(net_info->info.ai_family, net_info->info.ai_socktype,
                     net_info->info.ai_protocol);
    if (svr->fd < 0)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
 
    if (fcntl(svr->fd, F_SETFL, O_NONBLOCK) < 0)
-     goto error;
-
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
+     
    if (fcntl(svr->fd, F_SETFD, FD_CLOEXEC) < 0)
-     goto error;
-
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
+     
    lin.l_onoff = 1;
    lin.l_linger = 0;
    if (setsockopt(svr->fd, SOL_SOCKET, SO_LINGER, (const void *)&lin,
                   sizeof(struct linger)) < 0)
-     goto error;
-
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
+     
    if ((svr->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_NODELAY)
      {
         int flag = 1;
 
         if (setsockopt(svr->fd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag,
                        sizeof(int)) < 0)
-          goto error;
+          {
+             ecore_con_event_server_error(svr, strerror(errno));
+             goto error;
+          }
      }
 
    if (bind(svr->fd, net_info->info.ai_addr,
             net_info->info.ai_addrlen) < 0)
-     goto error;
-
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
    if (listen(svr->fd, 4096) < 0)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
 
    svr->fd_handler = ecore_main_fd_handler_add(svr->fd, ECORE_FD_READ,
                                                _ecore_con_svr_tcp_handler, svr, NULL, NULL);
    if (!svr->fd_handler)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, "Memory allocation failure");
+        goto error;
+     }
 
    return;
 
@@ -1407,13 +1584,16 @@ _ecore_con_cb_udp_listen(void           *data,
    type = svr->type;
    type &= ECORE_CON_TYPE;
 
-   if (!net_info)
+   if (!net_info) /* error message has already been handled */
      goto error;
 
    svr->fd = socket(net_info->info.ai_family, net_info->info.ai_socktype,
                     net_info->info.ai_protocol);
    if (svr->fd < 0)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
 
    if (type == ECORE_CON_REMOTE_MCAST)
      {
@@ -1421,45 +1601,69 @@ _ecore_con_cb_udp_listen(void           *data,
           {
              if (!inet_pton(net_info->info.ai_family, net_info->ip,
                             &mreq.imr_multiaddr))
-               goto error;
+               {
+                  ecore_con_event_server_error(svr, strerror(errno));
+                  goto error;
+               }
 
              mreq.imr_interface.s_addr = htonl(INADDR_ANY);
              if (setsockopt(svr->fd, IPPROTO_IP, IP_ADD_MEMBERSHIP,
                             (const void *)&mreq, sizeof(mreq)) != 0)
-               goto error;
+               {
+                  ecore_con_event_server_error(svr, strerror(errno));
+                  goto error;
+               }
           }
         else if (net_info->info.ai_family == AF_INET6)
           {
              if (!inet_pton(net_info->info.ai_family, net_info->ip,
                             &mreq6.ipv6mr_multiaddr))
-               goto error;
-
+               {
+                  ecore_con_event_server_error(svr, strerror(errno));
+                  goto error;
+               }
              mreq6.ipv6mr_interface = htonl(INADDR_ANY);
              if (setsockopt(svr->fd, IPPROTO_IP, IP_ADD_MEMBERSHIP,
                             (const void *)&mreq6, sizeof(mreq6)) != 0)
-               goto error;
+               {
+                  ecore_con_event_server_error(svr, strerror(errno));
+                  goto error;
+               }
           }
+     }
 
-        if (setsockopt(svr->fd, SOL_SOCKET, SO_REUSEADDR, (const void *)&on,
-                       sizeof(on)) != 0)
-          goto error;
+   if (setsockopt(svr->fd, SOL_SOCKET, SO_REUSEADDR, (const void *)&on, sizeof(on)) != 0)
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
      }
 
    if (fcntl(svr->fd, F_SETFL, O_NONBLOCK) < 0)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
 
    if (fcntl(svr->fd, F_SETFD, FD_CLOEXEC) < 0)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
 
-   if (bind(svr->fd, net_info->info.ai_addr,
-            net_info->info.ai_addrlen) < 0)
-     goto error;
+   if (bind(svr->fd, net_info->info.ai_addr, net_info->info.ai_addrlen) < 0)
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
 
    svr->fd_handler =
      ecore_main_fd_handler_add(svr->fd, ECORE_FD_READ,
                                _ecore_con_svr_udp_handler, svr, NULL, NULL);
    if (!svr->fd_handler)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, "Memory allocation failure");
+        goto error;
+     }
 
    svr->ip = eina_stringshare_add(net_info->ip);
 
@@ -1480,31 +1684,44 @@ _ecore_con_cb_tcp_connect(void           *data,
 
    svr = data;
 
-   if (!net_info)
+   if (!net_info) /* error message has already been handled */
      goto error;
 
    svr->fd = socket(net_info->info.ai_family, net_info->info.ai_socktype,
                     net_info->info.ai_protocol);
    if (svr->fd < 0)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
 
    if (fcntl(svr->fd, F_SETFL, O_NONBLOCK) < 0)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
 
    if (fcntl(svr->fd, F_SETFD, FD_CLOEXEC) < 0)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
 
-   if (setsockopt(svr->fd, SOL_SOCKET, SO_REUSEADDR, (const void *)&curstate,
-                  sizeof(curstate)) < 0)
-     goto error;
+   if (setsockopt(svr->fd, SOL_SOCKET, SO_REUSEADDR, (const void *)&curstate, sizeof(curstate)) < 0)
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
 
    if ((svr->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_NODELAY)
      {
         int flag = 1;
 
-        if (setsockopt(svr->fd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag,
-                       sizeof(int)) < 0)
-          goto error;
+        if (setsockopt(svr->fd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(int)) < 0)
+          {
+             ecore_con_event_server_error(svr, strerror(errno));
+             goto error;
+          }
      }
 
    res = connect(svr->fd, net_info->info.ai_addr, net_info->info.ai_addrlen);
@@ -1512,13 +1729,16 @@ _ecore_con_cb_tcp_connect(void           *data,
    if (res == SOCKET_ERROR)
      {
         if (WSAGetLastError() != WSAEINPROGRESS)
-          goto error;
+          goto error; /* FIXME: strerror on windows? */
 
 #else
    if (res < 0)
      {
         if (errno != EINPROGRESS)
-          goto error;
+          {
+             ecore_con_event_server_error(svr, strerror(errno));
+             goto error;
+          }
 
 #endif
         svr->connecting = EINA_TRUE;
@@ -1540,7 +1760,10 @@ _ecore_con_cb_tcp_connect(void           *data,
      }
 
    if (!svr->fd_handler)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, "Memory allocation failure");
+        goto error;
+     }
 
    svr->ip = eina_stringshare_add(net_info->ip);
 
@@ -1560,39 +1783,60 @@ _ecore_con_cb_udp_connect(void           *data,
    int broadcast = 1;
    svr = data;
 
-   if (!net_info)
+   if (!net_info) /* error message has already been handled */
      goto error;
 
    svr->fd = socket(net_info->info.ai_family, net_info->info.ai_socktype,
                     net_info->info.ai_protocol);
    if (svr->fd < 0)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
 
    if (fcntl(svr->fd, F_SETFL, O_NONBLOCK) < 0)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
 
    if (fcntl(svr->fd, F_SETFD, FD_CLOEXEC) < 0)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
 
    if ((svr->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_BROADCAST)
      {
         if (setsockopt(svr->fd, SOL_SOCKET, SO_BROADCAST,
                        (const void *)&broadcast,
                        sizeof(broadcast)) < 0)
-          goto error;
+          {
+             ecore_con_event_server_error(svr, strerror(errno));
+             goto error;
+          }
      }
    else if (setsockopt(svr->fd, SOL_SOCKET, SO_REUSEADDR,
                        (const void *)&curstate, sizeof(curstate)) < 0)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
 
    if (connect(svr->fd, net_info->info.ai_addr, net_info->info.ai_addrlen) < 0)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
 
    svr->fd_handler = ecore_main_fd_handler_add(svr->fd, ECORE_FD_READ | ECORE_FD_WRITE,
                                                _ecore_con_cl_udp_handler, svr, NULL, NULL);
 
    if (!svr->fd_handler)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, "Memory allocation failure");
+        goto error;
+     }
 
    svr->ip = eina_stringshare_add(net_info->ip);
 
@@ -1630,6 +1874,7 @@ svr_try_connect_plain(Ecore_Con_Server *svr)
    if (so_err)
      {
         /* we lost our server! */
+        ecore_con_event_server_error(svr, strerror(errno));
         ERR("Connection lost: %s", strerror(so_err));
         _ecore_con_server_kill(svr);
         return ECORE_CON_DISCONNECTED;
@@ -1637,18 +1882,9 @@ svr_try_connect_plain(Ecore_Con_Server *svr)
 
    if ((!svr->delete_me) && (!svr->handshaking) && svr->connecting)
      {
-        /* we got our server! */
-         Ecore_Con_Event_Server_Add *e;
-
          svr->connecting = EINA_FALSE;
-         e = calloc(1, sizeof(Ecore_Con_Event_Server_Add));
-         EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CON_CONNECTED);
-
-         svr->event_count++;
          svr->start_time = ecore_time_get();
-         e->server = svr;
-         ecore_event_add(ECORE_CON_EVENT_SERVER_ADD, e,
-                         _ecore_con_event_server_add_free, NULL);
+         ecore_con_event_server_add(svr);
      }
 
    if (svr->fd_handler && (!svr->write_buf))
@@ -1686,7 +1922,7 @@ _ecore_con_pretty_ip(struct sockaddr *client_addr,
    if (getnameinfo(client_addr, size, ipbuf, sizeof (ipbuf), NULL, 0, NI_NUMERICHOST))
      return eina_stringshare_add("0.0.0.0");
 
-   ipbuf[sizeof (ipbuf) - 1] = 0;
+   ipbuf[sizeof(ipbuf) - 1] = 0;
    return eina_stringshare_add(ipbuf);
 }
 
@@ -1715,22 +1951,37 @@ _ecore_con_svr_tcp_handler(void                        *data,
    memset(&client_addr, 0, client_addr_len);
    new_fd = accept(svr->fd, (struct sockaddr *)&client_addr, (socklen_t *)&client_addr_len);
    if (new_fd < 0)
-     /* error! */
-     return ECORE_CALLBACK_RENEW;
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        return ECORE_CALLBACK_RENEW;
+     }
 
    if ((svr->client_limit >= 0) && (svr->reject_excess_clients) &&
        (svr->client_count >= (unsigned int)svr->client_limit))
-     goto error;
+     {
+        ecore_con_event_server_error(svr, "Maximum client limit reached");
+        goto error;
+     }
 
    cl = calloc(1, sizeof(Ecore_Con_Client));
    if (!cl)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, "Memory allocation failure when attempting to add a new client");
+        goto error;
+     }
 
-   fcntl(new_fd, F_SETFL, O_NONBLOCK);
-   fcntl(new_fd, F_SETFD, FD_CLOEXEC);
    cl->fd = new_fd;
    cl->host_server = svr;
-
+   if (fcntl(new_fd, F_SETFL, O_NONBLOCK) < 0)
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
+   if (fcntl(new_fd, F_SETFD, FD_CLOEXEC) < 0)
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        goto error;
+     }
    cl->fd_handler = ecore_main_fd_handler_add(cl->fd, ECORE_FD_READ,
                                               _ecore_con_svr_cl_handler, cl, NULL, NULL);
    ECORE_MAGIC_SET(cl, ECORE_MAGIC_CON_CLIENT);
@@ -1745,7 +1996,10 @@ _ecore_con_svr_tcp_handler(void                        *data,
 
    cl->client_addr = malloc(client_addr_len);
    if (!cl->client_addr)
-     goto error;
+     {
+        ecore_con_event_server_error(svr, "Memory allocation failure when attempting to add a new client");
+        return ECORE_CALLBACK_RENEW;
+     }
    cl->client_addr_len = client_addr_len;
    memcpy(cl->client_addr, &client_addr, client_addr_len);
    
@@ -1753,20 +2007,8 @@ _ecore_con_svr_tcp_handler(void                        *data,
    svr->client_count++;
    
    if ((!cl->delete_me) && (!cl->handshaking))
-     {
-        Ecore_Con_Event_Client_Add *e;
-
-        e = calloc(1, sizeof(Ecore_Con_Event_Client_Add));
-        EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CALLBACK_RENEW);
-
-        cl->event_count++;
-        _ecore_con_cl_timer_update(cl);
-        e->client = cl;
-        ecore_event_add(ECORE_CON_EVENT_CLIENT_ADD, e,
-                        _ecore_con_event_client_add_free, NULL);
-
-     }
-
+     ecore_con_event_client_add(cl);
+     
    return ECORE_CALLBACK_RENEW;
 
 error:
@@ -1804,6 +2046,8 @@ _ecore_con_cl_read(Ecore_Con_Server *svr)
         /* 0 is not a valid return value for a tcp socket */
         if ((num > 0) || ((num < 0) && (errno == EAGAIN)))
            lost_server = EINA_FALSE;
+        else if (num < 0)
+          ecore_con_event_server_error(svr, strerror(errno));
      }
    else
      {
@@ -1814,26 +2058,7 @@ _ecore_con_cl_read(Ecore_Con_Server *svr)
      }
    
    if ((!svr->delete_me) && (num > 0))
-     {
-        Ecore_Con_Event_Server_Data *e;
-        
-        e = malloc(sizeof(Ecore_Con_Event_Server_Data));
-        EINA_SAFETY_ON_NULL_RETURN(e);
-        
-        svr->event_count++;
-        e->server = svr;
-        e->data = malloc(num);
-        if (!e->data)
-          {
-             ERR("alloc!");
-             free(e);
-             return;
-          }
-        memcpy(e->data, buf, num);
-        e->size = num;
-        ecore_event_add(ECORE_CON_EVENT_SERVER_DATA, e,
-                        _ecore_con_event_server_data_free, NULL);
-     }
+     ecore_con_event_server_data(svr, buf, num);
 
    if (lost_server)
       _ecore_con_server_kill(svr);
@@ -1872,30 +2097,13 @@ _ecore_con_cl_handler(void             *data,
           {
              ERR("ssl handshaking failed!");
              svr->handshaking = EINA_FALSE;
-             Ecore_Con_Event_Server_Del *e;
-
-             e = calloc(1, sizeof(Ecore_Con_Event_Server_Del));
-             EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CALLBACK_RENEW);
 
-             svr->event_count++;
-             e->server = svr;
-             ecore_event_add(ECORE_CON_EVENT_SERVER_DEL, e,
-                             _ecore_con_event_server_del_free, NULL);
           }
         else if (!svr->ssl_state)
           {
-             /* we got our server! */
-              Ecore_Con_Event_Server_Add *e;
-
               svr->connecting = EINA_FALSE;
-              e = calloc(1, sizeof(Ecore_Con_Event_Server_Add));
-              EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CALLBACK_RENEW);
-
-              svr->event_count++;
               svr->start_time = ecore_time_get();
-              e->server = svr;
-              ecore_event_add(ECORE_CON_EVENT_SERVER_ADD, e,
-                              _ecore_con_event_server_add_free, NULL);
+              ecore_con_event_server_add(svr);
           }
      }
    else if (want_read)
@@ -1915,8 +2123,6 @@ static Eina_Bool
 _ecore_con_cl_udp_handler(void             *data,
                           Ecore_Fd_Handler *fd_handler)
 {
-   Ecore_Con_Event_Server_Data *e;
-   unsigned char *inbuf;
    unsigned char buf[READBUFSIZ];
    int num;
    Ecore_Con_Server *svr;
@@ -1938,25 +2144,13 @@ _ecore_con_cl_udp_handler(void             *data,
    num = read(svr->fd, buf, READBUFSIZ);
 
    if ((!svr->delete_me) && (num > 0))
-     {
-        inbuf = malloc(num);
-        EINA_SAFETY_ON_NULL_RETURN_VAL(inbuf, ECORE_CALLBACK_RENEW);
-
-        memcpy(inbuf, buf, num);
-
-        e = malloc(sizeof(Ecore_Con_Event_Server_Data));
-        EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CALLBACK_RENEW);
-
-        svr->event_count++;
-        e->server = svr;
-        e->data = inbuf;
-        e->size = num;
-        ecore_event_add(ECORE_CON_EVENT_SERVER_DATA, e,
-                        _ecore_con_event_server_data_free, NULL);
-     }
+     ecore_con_event_server_data(svr, buf, num);
 
    if (num < 0 && (errno != EAGAIN) && (errno != EINTR))
-     _ecore_con_server_kill(svr);
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        _ecore_con_server_kill(svr);
+     }
 
    return ECORE_CALLBACK_RENEW;
 }
@@ -2001,19 +2195,11 @@ _ecore_con_svr_udp_handler(void             *data,
 
    if (num < 0 && (errno != EAGAIN) && (errno != EINTR))
      {
+        ecore_con_event_server_error(svr, strerror(errno));
         if (!svr->delete_me)
           {
-              /* we lost our client! */
-              Ecore_Con_Event_Client_Del *e;
-
-              e = calloc(1, sizeof(Ecore_Con_Event_Client_Del));
-              EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CALLBACK_RENEW);
-
-              svr->event_count++;
-              /* be explicit here */
-              e->client = NULL;
-              ecore_event_add(ECORE_CON_EVENT_CLIENT_DEL, e,
-                              _ecore_con_event_client_del_free, NULL);
+             svr->event_count++;
+             ecore_con_event_client_del(NULL);
           }
 
         svr->dead = EINA_TRUE;
@@ -2040,41 +2226,8 @@ _ecore_con_svr_udp_handler(void             *data,
    svr->clients = eina_list_append(svr->clients, cl);
    svr->client_count++;
 
-   { /* indent to keep it all nicely separated */
-      Ecore_Con_Event_Client_Add *add;
-
-      add = malloc(sizeof(Ecore_Con_Event_Client_Add));
-      EINA_SAFETY_ON_NULL_RETURN_VAL(add, ECORE_CALLBACK_RENEW);
-
-      /*cl->event_count++;*/
-      add->client = cl;
-      _ecore_con_cl_timer_update(cl);
-      ecore_event_add(ECORE_CON_EVENT_CLIENT_ADD, add,
-                      _ecore_con_event_client_add_free, NULL);
-   }
-
-
-   {
-      Ecore_Con_Event_Client_Data *e;
-      e = malloc(sizeof(Ecore_Con_Event_Client_Data));
-      EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CALLBACK_RENEW);
-
-      svr->event_count++;
-      _ecore_con_cl_timer_update(cl);
-      e->client = cl;
-      e->data = malloc(num);
-      if (!e->data)
-        {
-           free(cl->client_addr);
-           free(cl);
-           return ECORE_CALLBACK_RENEW;
-        }
-
-      memcpy(e->data, buf, num);
-      e->size = num;
-      ecore_event_add(ECORE_CON_EVENT_CLIENT_DATA, e,
-                      _ecore_con_event_client_data_free, NULL);
-   }
+   ecore_con_event_client_add(cl);
+   ecore_con_event_client_data(cl, buf, num);
 
    return ECORE_CALLBACK_RENEW;
 }
@@ -2104,6 +2257,8 @@ _ecore_con_svr_cl_read(Ecore_Con_Client *cl)
         /* 0 is not a valid return value for a tcp socket */
         if ((num > 0) || ((num < 0) && ((errno == EAGAIN) || (errno == EINTR))))
           lost_client = EINA_FALSE;
+        else if (num < 0)
+          ecore_con_event_client_error(cl, strerror(errno));
      }
    else
      {
@@ -2114,44 +2269,12 @@ _ecore_con_svr_cl_read(Ecore_Con_Client *cl)
      }
 
    if ((!cl->delete_me) && (num > 0))
-     {
-        Ecore_Con_Event_Client_Data *e;
-
-        e = malloc(sizeof(Ecore_Con_Event_Client_Data));
-        EINA_SAFETY_ON_NULL_RETURN(e);
-
-        cl->event_count++;
-        _ecore_con_cl_timer_update(cl);
-        e->client = cl;
-        e->data = malloc(num);
-        if (!e->data)
-          {
-             ERR("alloc!");
-             free(e);
-             return;
-          }
-        memcpy(e->data, buf, num);
-        e->size = num;
-        ecore_event_add(ECORE_CON_EVENT_CLIENT_DATA, e,
-                        _ecore_con_event_client_data_free, NULL);
-     }
+     ecore_con_event_client_data(cl, buf, num);
 
    if (lost_client)
      {
         if (!cl->delete_me)
-          {
-             /* we lost our client! */
-              Ecore_Con_Event_Client_Del *e;
-
-              e = calloc(1, sizeof(Ecore_Con_Event_Client_Del));
-              EINA_SAFETY_ON_NULL_RETURN(e);
-
-              cl->event_count++;
-              _ecore_con_cl_timer_update(cl);
-              e->client = cl;
-              ecore_event_add(ECORE_CON_EVENT_CLIENT_DEL, e,
-                              _ecore_con_event_client_del_free, NULL);
-          }
+          ecore_con_event_client_del(cl);
         INF("Lost client %s", (cl->ip) ? cl->ip : "");
         cl->dead = EINA_TRUE;
         if (cl->fd_handler)
@@ -2181,33 +2304,12 @@ _ecore_con_svr_cl_handler(void             *data,
           {
              ERR("ssl handshaking failed!");
              cl->handshaking = EINA_FALSE;
-             /* we lost our client! */
-             Ecore_Con_Event_Client_Del *e;
-
              cl->dead = EINA_TRUE;
              INF("Lost client %s", (cl->ip) ? cl->ip : "");
-             e = calloc(1, sizeof(Ecore_Con_Event_Client_Del));
-             EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CALLBACK_RENEW);
-
-             cl->event_count++;
-             _ecore_con_cl_timer_update(cl);
-             e->client = cl;
-             ecore_event_add(ECORE_CON_EVENT_CLIENT_DEL, e,
-                             _ecore_con_event_client_del_free, NULL);
+             ecore_con_event_client_del(cl);
           }
         else if (!cl->ssl_state)
-          {
-             Ecore_Con_Event_Client_Add *e;
-
-             e = calloc(1, sizeof(Ecore_Con_Event_Client_Add));
-             EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CALLBACK_RENEW);
-
-             e->client = cl;
-             cl->event_count++;
-             _ecore_con_cl_timer_update(cl);
-             ecore_event_add(ECORE_CON_EVENT_CLIENT_ADD, e,
-                             _ecore_con_event_client_add_free, NULL);
-          }
+          ecore_con_event_client_add(cl);
      }
    else if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_READ))
      _ecore_con_svr_cl_read(cl);
@@ -2224,7 +2326,10 @@ _ecore_con_server_flush(Ecore_Con_Server *svr)
    int count, num;
 
    if (!svr->write_buf)
-     return;
+     {
+        ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_READ);
+        return;
+     }
 
    num = svr->write_buf_size - svr->write_buf_offset;
 
@@ -2253,7 +2358,10 @@ _ecore_con_server_flush(Ecore_Con_Server *svr)
    if (count < 0)
      {
          if ((errno != EAGAIN) && (errno != EINTR))
-           _ecore_con_server_kill(svr);
+           {
+              ecore_con_event_server_error(svr, strerror(errno));
+              _ecore_con_server_kill(svr);
+           }
          return;
      }
 
@@ -2277,7 +2385,10 @@ _ecore_con_client_flush(Ecore_Con_Client *cl)
    int num, count = 0;
 
    if (!cl->buf)
-     return;
+     {
+        ecore_main_fd_handler_active_set(cl->fd_handler, ECORE_FD_READ);
+        return;
+     }
 
    if (cl->handshaking)
      {
@@ -2301,18 +2412,8 @@ _ecore_con_client_flush(Ecore_Con_Client *cl)
      {
         if ((errno != EAGAIN) && (errno != EINTR) && (!cl->delete_me))
           {
-             /* we lost our client! */
-              Ecore_Con_Event_Client_Del *e;
-
-              e = calloc(1, sizeof(Ecore_Con_Event_Client_Del));
-              EINA_SAFETY_ON_NULL_RETURN(e);
-
-              cl->event_count++;
-              _ecore_con_cl_timer_update(cl);
-              e->client = cl;
-              ecore_event_add(ECORE_CON_EVENT_CLIENT_DEL, e,
-                              _ecore_con_event_client_del_free, NULL);
-
+              ecore_con_event_client_error(cl, strerror(errno));
+              ecore_con_event_client_del(cl);
               cl->dead = EINA_TRUE;
               INF("Lost client %s", (cl->ip) ? cl->ip : "");
               if (cl->fd_handler)
@@ -2339,22 +2440,24 @@ _ecore_con_client_flush(Ecore_Con_Client *cl)
 }
 
 static void
-_ecore_con_event_client_add_free(void *data __UNUSED__,
+_ecore_con_event_client_add_free(Ecore_Con_Server *svr,
                                  void      *ev)
 {
    Ecore_Con_Event_Client_Add *e;
 
    e = ev;
    e->client->event_count--;
-   if ((e->client->event_count <= 0) &&
-       (e->client->delete_me))
+   e->client->host_server->event_count--;
+   if ((e->client->event_count <= 0) && (e->client->delete_me))
      ecore_con_client_del(e->client);
+   if ((svr->event_count <= 0) && (svr->delete_me))
+     _ecore_con_server_free(svr);
 
    free(e);
 }
 
 static void
-_ecore_con_event_client_del_free(void *data __UNUSED__,
+_ecore_con_event_client_del_free(Ecore_Con_Server *svr,
                                  void      *ev)
 {
    Ecore_Con_Event_Client_Del *e;
@@ -2363,20 +2466,24 @@ _ecore_con_event_client_del_free(void *data __UNUSED__,
    if (!e->client) return;
 
    e->client->event_count--;
+   e->client->host_server->event_count--;
    if ((e->client->event_count <= 0) && (e->client->delete_me))
      ecore_con_client_del(e->client);
+   if ((svr->event_count <= 0) && (svr->delete_me))
+     _ecore_con_server_free(svr);
 
    free(e);
 }
 
 static void
-_ecore_con_event_client_data_free(void *data __UNUSED__,
+_ecore_con_event_client_data_free(Ecore_Con_Server *svr,
                                   void      *ev)
 {
    Ecore_Con_Event_Client_Data *e;
 
    e = ev;
    e->client->event_count--;
+   e->client->host_server->event_count--;
    if (e->data)
      free(e->data);
 
@@ -2385,6 +2492,8 @@ _ecore_con_event_client_data_free(void *data __UNUSED__,
          ((e->client->host_server->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_UDP ||
           (e->client->host_server->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_MCAST))))
      ecore_con_client_del(e->client);
+   if ((svr->event_count <= 0) && (svr->delete_me))
+     _ecore_con_server_free(svr);
 
    free(e);
 }
@@ -2397,8 +2506,7 @@ _ecore_con_event_server_add_free(void *data __UNUSED__,
 
    e = ev;
    e->server->event_count--;
-   if ((e->server->event_count <= 0) &&
-       (e->server->delete_me))
+   if ((e->server->event_count <= 0) && (e->server->delete_me))
      _ecore_con_server_free(e->server);
 
    free(e);
@@ -2412,8 +2520,7 @@ _ecore_con_event_server_del_free(void *data __UNUSED__,
 
    e = ev;
    e->server->event_count--;
-   if ((e->server->event_count <= 0) &&
-       (e->server->delete_me))
+   if ((e->server->event_count <= 0) && (e->server->delete_me))
      _ecore_con_server_free(e->server);
 
    free(e);
@@ -2430,13 +2537,37 @@ _ecore_con_event_server_data_free(void *data __UNUSED__,
    if (e->data)
      free(e->data);
 
-   if ((e->server->event_count <= 0) &&
-       (e->server->delete_me))
+   if ((e->server->event_count <= 0) && (e->server->delete_me))
      _ecore_con_server_free(e->server);
 
    free(e);
 }
 
+
+static void
+_ecore_con_event_server_error_free(void *data __UNUSED__, Ecore_Con_Event_Server_Error *e)
+{
+   e->server->event_count--;
+   if ((e->server->event_count <= 0) && (e->server->delete_me))
+     _ecore_con_server_free(e->server);
+   if (e->error) free(e->error);
+   free(e);
+}
+
+static void
+_ecore_con_event_client_error_free(Ecore_Con_Server *svr, Ecore_Con_Event_Client_Error *e)
+{
+   e->client->event_count--;
+   e->client->host_server->event_count--;
+   if ((e->client->event_count <= 0) && (e->client->delete_me))
+     _ecore_con_client_free(e->client);
+   if ((svr->event_count <= 0) && (svr->delete_me))
+     _ecore_con_server_free(svr);
+   if (e->error) free(e->error);
+   free(e);
+   
+}
+
 static void
 _ecore_con_lookup_done(void           *data,
                        Ecore_Con_Info *infos)
index fd0d661..ea8ec82 100644 (file)
@@ -302,9 +302,17 @@ ecore_con_info_get(Ecore_Con_Server *svr,
                            cares);
      }
 
+   svr->infos = eina_list_append(svr->infos, cares);
    return 1;
 }
 
+void
+ecore_con_info_data_clear(void *info)
+{
+   Ecore_Con_CAres *cares = info;
+   cares->data = NULL;
+}
+
 static Eina_Bool
 _ecore_con_info_cares_timeout_cb(void *data __UNUSED__)
 {
@@ -515,11 +523,12 @@ _ecore_con_info_ares_host_cb(Ecore_Con_CAres *arg,
       case ARES_ENODATA: /* no data returned */
       case ARES_ECONNREFUSED: /* connection refused */
       case ARES_ETIMEOUT: /* connection timed out */
+        ecore_con_event_server_error(arg->svr, ares_strerror(status));
         goto on_error;
 
       default:
-        ERR("Unknown status returned by c-ares: %i assuming error",
-                status);
+        ERR("Unknown status returned by c-ares: %i assuming error", status);
+        ecore_con_event_server_error(arg->svr, ares_strerror(status));
         goto on_error;
      }
 
@@ -529,7 +538,11 @@ on_mem_error:
    ERR("Not enough memory");
 
 on_error:
-   arg->done_cb(arg->data, NULL);
+   if (arg->data)
+     {
+        ecore_con_server_infos_del(arg->data, arg);
+        arg->done_cb(arg->data, NULL);
+     }
    free(arg);
 }
 
@@ -553,7 +566,7 @@ _ecore_con_info_ares_nameinfo(Ecore_Con_CAres *arg,
         else
           *arg->result->service = '\0';
 
-        arg->done_cb(arg->data, arg->result);
+        if (arg->data) arg->done_cb(arg->data, arg->result);
         break;
 
       case ARES_ENOTIMP:
@@ -561,12 +574,14 @@ _ecore_con_info_ares_nameinfo(Ecore_Con_CAres *arg,
       case ARES_ENOMEM:
       case ARES_EDESTRUCTION:
       case ARES_EBADFLAGS:
-        arg->done_cb(arg->data, NULL);
+        ecore_con_event_server_error(arg->svr, ares_strerror(status));
+        if (arg->data) arg->done_cb(arg->data, NULL);
         break;
      }
 
    free(arg->result->info.ai_addr);
    free(arg->result);
+   if (arg->data) ecore_con_server_infos_del(arg->data, arg);
    free(arg);
 }
 
index 055218f..3cedb05 100644 (file)
@@ -54,6 +54,8 @@ void *alloca(size_t);
 # include <netdb.h>
 #endif
 
+#include <errno.h>
+
 #include "Ecore.h"
 #include "ecore_private.h"
 #include "ecore_con_private.h"
@@ -204,7 +206,10 @@ ecore_con_info_get(Ecore_Con_Server *svr,
    int fd[2];
 
    if (pipe(fd) < 0)
-     return 0;
+     {
+        ecore_con_event_server_error(svr, strerror(errno));
+        return 0;
+     }
 
    cbdata = calloc(1, sizeof(CB_Data));
    if (!cbdata)
@@ -222,6 +227,7 @@ ecore_con_info_get(Ecore_Con_Server *svr,
                                                  cbdata,
                                                  NULL, NULL)))
      {
+        ecore_con_event_server_error(svr, "Memory allocation failure");
         free(cbdata);
         close(fd[0]);
         close(fd[1]);
@@ -306,9 +312,17 @@ ecore_con_info_get(Ecore_Con_Server *svr,
    info_slaves = (CB_Data *)eina_inlist_append(EINA_INLIST_GET(
                                                  info_slaves),
                                                EINA_INLIST_GET(cbdata));
+   svr->infos = eina_list_append(svr->infos, cbdata);
    return 1;
 }
 
+void
+ecore_con_info_data_clear(void *info)
+{
+   CB_Data *cbdata = info;
+   cbdata->data = NULL;
+}
+
 static void
 _ecore_con_info_readdata(CB_Data *cbdata)
 {
@@ -347,15 +361,32 @@ _ecore_con_info_readdata(CB_Data *cbdata)
 
              recv->info.ai_next = NULL;
 
-             cbdata->cb_done(cbdata->data, recv);
+             if (cbdata->data)
+               {
+                  cbdata->cb_done(cbdata->data, recv);
+                  ecore_con_server_infos_del(cbdata->data, cbdata);
+               }
 
              free(torecv);
           }
         else
-          cbdata->cb_done(cbdata->data, NULL);
+          {
+             if (cbdata->data)
+               {
+                  cbdata->cb_done(cbdata->data, NULL);
+                  ecore_con_server_infos_del(cbdata->data, cbdata);
+               }
+          }
      }
    else
-     cbdata->cb_done(cbdata->data, NULL);
+     {
+        if (cbdata->data)
+          {
+             ecore_con_event_server_error(cbdata->data, strerror(errno));
+             cbdata->cb_done(cbdata->data, NULL);
+             ecore_con_server_infos_del(cbdata->data, cbdata);
+          }
+     }
 
    cbdata->cb_done = NULL;
 }
@@ -368,6 +399,7 @@ _ecore_con_info_slave_free(CB_Data *cbdata)
    ecore_main_fd_handler_del(cbdata->fdh);
    ecore_event_handler_del(cbdata->handler);
    close(ecore_main_fd_handler_fd_get(cbdata->fdh));
+   if (cbdata->data) ecore_con_server_infos_del(cbdata->data, cbdata);
    free(cbdata);
 }
 
@@ -385,8 +417,12 @@ _ecore_con_info_data_handler(void             *data,
           _ecore_con_info_readdata(cbdata);
         else
           {
-             cbdata->cb_done(cbdata->data, NULL);
-             cbdata->cb_done = NULL;
+             if (cbdata->data)
+               {
+                  cbdata->cb_done(cbdata->data, NULL);
+                  cbdata->cb_done = NULL;
+                  ecore_con_server_infos_del(cbdata->data, cbdata);
+               }
           }
      }
 
index d4b4a58..0574341 100644 (file)
@@ -127,6 +127,7 @@ struct _Ecore_Con_Server
    int write_buf_size;
    int write_buf_offset;
    unsigned char *write_buf;
+   Eina_List *infos;
    int event_count;
    int client_limit;
    pid_t ppid;
@@ -197,6 +198,11 @@ struct _Ecore_Con_Lookup
    const void *data;
 };
 
+/* from ecore_con.c */
+void ecore_con_server_infos_del(Ecore_Con_Server *svr, void *info);
+void ecore_con_event_server_error(Ecore_Con_Server *svr, const char *error);
+void ecore_con_event_client_error(Ecore_Con_Client *cl, const char *error);
+
 /* from ecore_local.c */
 int ecore_con_local_init(void);
 int ecore_con_local_shutdown(void);
@@ -230,6 +236,8 @@ int                 ecore_con_info_udp_listen(Ecore_Con_Server *svr,
 int                 ecore_con_info_mcast_listen(Ecore_Con_Server *svr,
                                                 Ecore_Con_Info_Cb done_cb,
                                                 void *data);
+void                ecore_con_info_data_clear(void *info);
+
 /* from ecore_con_ssl.c */
 Ecore_Con_Ssl_Error ecore_con_ssl_init(void);
 Ecore_Con_Ssl_Error ecore_con_ssl_shutdown(void);
index c411312..95e22fe 100644 (file)
@@ -46,10 +46,17 @@ static int _client_connected = 0;
 
 #if USE_GNUTLS
 static void
-_gnutls_print_errors(int ret)
-{
-   if (ret)
-     ERR("gnutls returned with error: %s - %s", gnutls_strerror_name(ret), gnutls_strerror(ret));
+_gnutls_print_errors(void *conn, int type, int ret)
+{
+   char buf[1024];
+   
+   if (!ret) return;
+   
+   snprintf(buf, sizeof(buf), "GNUTLS error: %s - %s", gnutls_strerror_name(ret), gnutls_strerror(ret));
+   if (type == ECORE_CON_EVENT_CLIENT_ERROR)
+     ecore_con_event_client_error(conn, buf);
+   else
+     ecore_con_event_server_error(conn, buf);
 }
 
 #ifdef ISCOMFITOR
@@ -108,15 +115,21 @@ SSL_GNUTLS_PRINT_HANDSHAKE_STATUS(gnutls_handshake_description_t status)
 #elif USE_OPENSSL
 
 static void
-_openssl_print_errors(void)
+_openssl_print_errors(void *conn, int type)
 {
+   char buf[1024];
    do
      {
         unsigned long err;
 
         err = ERR_get_error();
         if (!err) break;
-        ERR("openssl error: %s", ERR_reason_error_string(err));
+        snprintf(buf, sizeof(buf), "OpenSSL error: %s", ERR_reason_error_string(err));
+        if (type == ECORE_CON_EVENT_CLIENT_ERROR)
+          ecore_con_event_client_error(conn, buf);
+        else
+          ecore_con_event_server_error(conn, buf);
+        
      } while (1);
 }
 
@@ -480,7 +493,7 @@ _ecore_con_ssl_server_prepare_gnutls(Ecore_Con_Server *svr,
    return ECORE_CON_SSL_ERROR_NONE;
 
 error:
-   _gnutls_print_errors(ret);
+   _gnutls_print_errors(svr, ECORE_CON_EVENT_SERVER_ERROR, ret);
    _ecore_con_ssl_server_shutdown_gnutls(svr);
    return ECORE_CON_SSL_ERROR_SERVER_INIT_FAILED;
 }
@@ -602,7 +615,7 @@ _ecore_con_ssl_server_init_gnutls(Ecore_Con_Server *svr)
    return ECORE_CON_SSL_ERROR_NONE;
 
 error:
-   _gnutls_print_errors(ret);
+   _gnutls_print_errors(svr, ECORE_CON_EVENT_SERVER_ERROR, ret);
    if ((ret == GNUTLS_E_WARNING_ALERT_RECEIVED) || (ret == GNUTLS_E_FATAL_ALERT_RECEIVED))
      ERR("Also received alert: %s", gnutls_alert_get_name(gnutls_alert_get(svr->session)));
    if (svr->session && (svr->ssl_state != ECORE_CON_SSL_STATE_DONE))
@@ -904,7 +917,7 @@ _ecore_con_ssl_client_init_gnutls(Ecore_Con_Client *cl)
    return ECORE_CON_SSL_ERROR_NONE;
 
 error:
-   _gnutls_print_errors(ret);
+   _gnutls_print_errors(cl, ECORE_CON_EVENT_CLIENT_ERROR, ret);
    if ((ret == GNUTLS_E_WARNING_ALERT_RECEIVED) || (ret == GNUTLS_E_FATAL_ALERT_RECEIVED))
      ERR("Also received alert: %s", gnutls_alert_get_name(gnutls_alert_get(cl->session)));
    if (cl->session && (cl->ssl_state != ECORE_CON_SSL_STATE_DONE))
@@ -1096,7 +1109,7 @@ error:
           ERR("openssl error: dh_params could not generate a safe prime!");
      }
    else
-     _openssl_print_errors();
+     _openssl_print_errors(svr, ECORE_CON_EVENT_SERVER_ERROR);
    _ecore_con_ssl_server_shutdown_openssl(svr);
    return ECORE_CON_SSL_ERROR_SERVER_INIT_FAILED;
 }
@@ -1176,7 +1189,7 @@ _ecore_con_ssl_server_init_openssl(Ecore_Con_Server *svr)
    return ECORE_CON_SSL_ERROR_NONE;
 
 error:
-   _openssl_print_errors();
+   _openssl_print_errors(svr, ECORE_CON_EVENT_SERVER_ERROR);
    _ecore_con_ssl_server_shutdown_openssl(svr);
    return ECORE_CON_SSL_ERROR_SERVER_INIT_FAILED;
 }
@@ -1189,7 +1202,7 @@ _ecore_con_ssl_server_cafile_add_openssl(Ecore_Con_Server *svr,
    return EINA_TRUE;
 
 error:
-   _openssl_print_errors();
+   _openssl_print_errors(svr, ECORE_CON_EVENT_SERVER_ERROR);
    return EINA_FALSE;
 }
 
@@ -1213,7 +1226,7 @@ _ecore_con_ssl_server_crl_add_openssl(Ecore_Con_Server *svr,
    return EINA_TRUE;
 
 error:
-   _openssl_print_errors();
+   _openssl_print_errors(svr, ECORE_CON_EVENT_SERVER_ERROR);
    return EINA_FALSE;
 }
 
@@ -1238,7 +1251,7 @@ _ecore_con_ssl_server_privkey_add_openssl(Ecore_Con_Server *svr,
 error:
    if (fp)
      fclose(fp);
-   _openssl_print_errors();
+   _openssl_print_errors(svr, ECORE_CON_EVENT_SERVER_ERROR);
    return EINA_FALSE;
 }
 
@@ -1263,7 +1276,7 @@ _ecore_con_ssl_server_cert_add_openssl(Ecore_Con_Server *svr,
 error:
    if (fp)
      fclose(fp);
-   _openssl_print_errors();
+   _openssl_print_errors(svr, ECORE_CON_EVENT_SERVER_ERROR);
    return EINA_FALSE;
 }
 
@@ -1418,7 +1431,7 @@ _ecore_con_ssl_client_init_openssl(Ecore_Con_Client *cl)
    return ECORE_CON_SSL_ERROR_NONE;
 
 error:
-   _openssl_print_errors();
+   _openssl_print_errors(cl, ECORE_CON_EVENT_CLIENT_ERROR);
    _ecore_con_ssl_client_shutdown_openssl(cl);
    return ECORE_CON_SSL_ERROR_SERVER_INIT_FAILED;
 }
index d110538..075b7f0 100644 (file)
@@ -19,7 +19,7 @@
  *
  * Example Usage 1 (HTTP GET):
  *   ecore_con_url_url_set(url_con, "http://www.google.com");
- *   ecore_con_url_get(url_con, NULL, 0, NULL);
+ *   ecore_con_url_get(url_con);
  *
  * Example usage 2 (HTTP POST):
  *   ecore_con_url_url_set(url_con, "http://www.example.com/post_handler.cgi");
@@ -27,7 +27,7 @@
  *
  * Example Usage 3 (FTP download):
  *   ecore_con_url_url_set(url_con, "ftp://ftp.example.com/pub/myfile");
- *   ecore_con_url_get(url_con, NULL, 0, NULL);
+ *   ecore_con_url_get(url_con);
  *
  * Example Usage 4 (FTP upload as ftp://ftp.example.com/file):
  *   ecore_con_url_url_set(url_con, "ftp://ftp.example.com");
@@ -304,7 +304,7 @@ ecore_con_url_new(const char *url)
    curl_easy_setopt(url_con->curl_easy, CURLOPT_PROGRESSFUNCTION,
                     _ecore_con_url_progress_cb);
    curl_easy_setopt(url_con->curl_easy, CURLOPT_PROGRESSDATA, url_con);
-   curl_easy_setopt(url_con->curl_easy, CURLOPT_NOPROGRESS, EINA_TRUE);
+   curl_easy_setopt(url_con->curl_easy, CURLOPT_NOPROGRESS, EINA_FALSE);
 
    curl_easy_setopt(url_con->curl_easy, CURLOPT_HEADERFUNCTION,
                     _ecore_con_url_header_cb);
@@ -315,7 +315,6 @@ ecore_con_url_new(const char *url)
     * FIXME: Provide a means to change these timeouts
     */
    curl_easy_setopt(url_con->curl_easy, CURLOPT_CONNECTTIMEOUT, 30);
-   curl_easy_setopt(url_con->curl_easy, CURLOPT_TIMEOUT, 300);
    curl_easy_setopt(url_con->curl_easy, CURLOPT_FOLLOWLOCATION, 1);
 
    return url_con;
@@ -415,19 +414,19 @@ ecore_con_url_free(Ecore_Con_Url *url_con)
      {
         // FIXME: For an unknown reason, progress continue to arrive after destruction
         // this prevent any further call to the callback.
-            curl_easy_setopt(url_con->curl_easy, CURLOPT_PROGRESSFUNCTION, NULL);
-
-            if (url_con->active)
-              {
-                 url_con->active = EINA_FALSE;
-
-                 ret = curl_multi_remove_handle(_curlm, url_con->curl_easy);
-                 if (ret != CURLM_OK)
-                   ERR("curl_multi_remove_handle failed: %s",
-                       curl_multi_strerror(ret));
-              }
-
-            curl_easy_cleanup(url_con->curl_easy);
+        curl_easy_setopt(url_con->curl_easy, CURLOPT_PROGRESSFUNCTION, NULL);
+        
+        if (url_con->active)
+          {
+             url_con->active = EINA_FALSE;
+             
+             ret = curl_multi_remove_handle(_curlm, url_con->curl_easy);
+             if (ret != CURLM_OK)
+                ERR("curl_multi_remove_handle failed: %s",
+                    curl_multi_strerror(ret));
+          }
+        
+        curl_easy_cleanup(url_con->curl_easy);
      }
 
    _url_con_list = eina_list_remove(_url_con_list, url_con);
@@ -928,12 +927,7 @@ ecore_con_url_send(Ecore_Con_Url *url_con,
  * Sends a get request.
  *
  * @param url_con Connection object to perform a request on, previously created
- *                with ecore_con_url_new() or ecore_con_url_custom_new().
- * @param data    Payload (data sent on the request)
- * @param length  Payload length. If @c -1, rely on automatic length
- *                calculation via @c strlen() on @p data.
- * @param content_type Content type of the payload (e.g. text/xml)
- *
+ * 
  * @return #EINA_TRUE on success, #EINA_FALSE on error.
  *
  * @see ecore_con_url_custom_new()
@@ -946,12 +940,9 @@ ecore_con_url_send(Ecore_Con_Url *url_con,
  * @see ecore_con_url_post()
  */
 EAPI Eina_Bool
-ecore_con_url_get(Ecore_Con_Url *url_con,
-                   const void    *data,
-                   long           length,
-                   const char    *content_type)
+ecore_con_url_get(Ecore_Con_Url *url_con)
 {
-   return _ecore_con_url_send(url_con, MODE_GET, data, length, content_type);
+   return _ecore_con_url_send(url_con, MODE_GET, NULL, 0, NULL);
 }
 
 /**
@@ -1412,6 +1403,43 @@ ecore_con_url_ftp_use_epsv_set(Ecore_Con_Url *url_con,
 }
 
 /**
+ * Toggle libcurl's verify peer's certificate option.
+ *
+ * If @p verify is @c EINA_TRUE, libcurl will verify
+ * the authenticity of the peer's certificate, otherwise
+ * it will not. Default behavior of libcurl is to check
+ * peer's certificate.
+ *
+ * @param url_con Ecore_Con_Url instance which will be acted upon.
+ * @param verify Whether or not libcurl will check peer's certificate.
+ * @since 1.1.0
+ */
+EAPI void
+ecore_con_url_ssl_verify_peer_set(Ecore_Con_Url *url_con,
+                              Eina_Bool      verify)
+{
+#ifdef HAVE_CURL
+   if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
+     {
+        ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL,
+                         "ecore_con_url_ssl_verify_peer_set");
+        return;
+     }
+
+   if (url_con->active)
+     return;
+
+   if (!url_con->url)
+     return;
+
+   curl_easy_setopt(url_con->curl_easy, CURLOPT_SSL_VERIFYPEER, (int)verify);
+#else
+   (void)url_con;
+   (void)verify;
+#endif
+}
+
+/**
  * @}
  */
 
index ddfc64f..d8b587e 100644 (file)
@@ -1636,7 +1636,7 @@ ecore_config_init_global(const char *name)
        snprintf(buf, PATH_MAX, "%s/.ecore/%s/.global", p, name);
        global = creat(buf, S_IRWXU);
 
-       if (global)
+       if (global >= 0)
           close(global);
 
        free(buf);
index de0c682..54bb215 100644 (file)
@@ -118,7 +118,7 @@ typedef struct _Ecore_Win32_Window Ecore_Win32_Window;
 #endif
 
 #ifndef __ECORE_WINCE_H__
-typedef void Ecore_WinCE_Window;
+typedef struct _Ecore_WinCE_Window Ecore_WinCE_Window;
 #endif
 
 #ifndef _ECORE_EVAS_PRIVATE_H
index 38a4776..bc678ff 100644 (file)
@@ -351,6 +351,7 @@ struct _Ecore_Evas
    unsigned char manual_render : 1;
    unsigned char registered    : 1;
    unsigned char no_comp_sync  : 1;
+   unsigned char semi_sync  : 1;
    int           gl_sync_draw_done; // added by gl77.lee
 };
 
index 62669b2..beb3da9 100644 (file)
@@ -3065,8 +3065,9 @@ _ecore_evas_x_flush_pre(void *data, Evas *e __UNUSED__, void *event_info __UNUSE
              ee->engine.x.sync_val++;
              if (!ee->engine.x.sync_cancel)
                {
-                  ecore_x_sync_counter_val_wait(ee->engine.x.sync_counter,
-                                                ee->engine.x.sync_val);
+                  if (!ee->semi_sync)
+                     ecore_x_sync_counter_val_wait(ee->engine.x.sync_counter,
+                                                   ee->engine.x.sync_val);
                }
           }
      }
@@ -3521,6 +3522,7 @@ ecore_evas_gl_x11_options_new(const char *disp_name, Ecore_X_Window parent,
    ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_x_engine_func;
 
    ee->driver = "opengl_x11";
+   ee->semi_sync = 0; // gl engine doesnt need to sync - its whole swaps
    ee->no_comp_sync = 0; // gl engine doesnt need to sync - its whole swaps
    if (disp_name) ee->name = strdup(disp_name);
 
@@ -3618,8 +3620,8 @@ ecore_evas_gl_x11_new(const char *disp_name __UNUSED__, Ecore_X_Window parent __
    return NULL;
 }
 EAPI Ecore_Evas *
-ecore_evas_gl_x11_options_new(const char *disp_name, Ecore_X_Window parent,
-                              int x, int y, int w, int h, const int *opt)
+ecore_evas_gl_x11_options_new(const char *disp_name __UNUSED__, Ecore_X_Window parent __UNUSED__,
+                              int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__, const int *opt __UNUSED__)
 {
    return NULL;
 }
@@ -3726,7 +3728,7 @@ ecore_evas_gl_x11_pre_post_swap_callback_set(const Ecore_Evas *ee, void *data, v
 }
 #else
 EAPI void
-ecore_evas_gl_x11_pre_post_swap_callback_set(const Ecore_Evas *ee, void *data, void (*pre_cb) (void *data, Evas *e), void (*post_cb) (void *data, Evas *e))
+ecore_evas_gl_x11_pre_post_swap_callback_set(const Ecore_Evas *ee __UNUSED__, void *data __UNUSED__, void (*pre_cb) (void *data, Evas *e) __UNUSED__, void (*post_cb) (void *data, Evas *e) __UNUSED__)
 {
    return;
 }
index 5d2a6a6..8dcd29d 100644 (file)
@@ -121,7 +121,7 @@ static const char *_ecore_fb_btn_syms[128] =
      "0x7e", 
      "0x7f"
 };
-static int _ecore_fb_kbd_fd = 0;
+static int _ecore_fb_kbd_fd = -1;
 static int _ecore_fb_ctrl = 0;
 static int _ecore_fb_alt = 0;
 static int _ecore_fb_shift = 0;
@@ -296,7 +296,7 @@ ecore_fb_kbd_shutdown(void)
    if (_ecore_fb_kbd_fd_handler_handle) 
       ecore_main_fd_handler_del(_ecore_fb_kbd_fd_handler_handle);
    if (_ecore_fb_kbd_fd >= 0) close(_ecore_fb_kbd_fd);
-   _ecore_fb_kbd_fd = 0;
+   _ecore_fb_kbd_fd = -1;
    _ecore_fb_kbd_fd_handler_handle = NULL;
    _ecore_fb_ctrl = 0;
    _ecore_fb_lock = 0;
index 8b843cb..e4b8851 100644 (file)
@@ -44,7 +44,7 @@ extern "C" {
 #endif
 
 /**
- * @defgroup Ecore_File_Group Ecore_File - Files and direcotries convenience functions
+ * @defgroup Ecore_File_Group Ecore_File - Files and directories convenience functions
  *
  * @{
  */
@@ -73,7 +73,8 @@ typedef enum _Ecore_File_Event
    ECORE_FILE_EVENT_DELETED_FILE,      /**< Deleted file event. */
    ECORE_FILE_EVENT_DELETED_DIRECTORY, /**< Deleted directory event. */
    ECORE_FILE_EVENT_DELETED_SELF,      /**< Deleted monitored directory event. */
-   ECORE_FILE_EVENT_MODIFIED           /**< Modified file or directory event. */
+   ECORE_FILE_EVENT_MODIFIED,          /**< Modified file or directory event. */
+   ECORE_FILE_EVENT_CLOSED             /**< Closed file event */
 } Ecore_File_Event;
 
 /**
@@ -89,8 +90,19 @@ typedef void (*Ecore_File_Monitor_Cb)(void *data, Ecore_File_Monitor *em, Ecore_
 typedef void (*Ecore_File_Download_Completion_Cb)(void *data, const char *file, int status);
 
 /**
+ * @typedef Ecore_File_Progress_Return
+ * What to do with the download as a return from the 
+ * Ecore_File_Download_Progress_Cb function, if provided.
+ */
+typedef enum _Ecore_File_Progress_Return
+{
+   ECORE_FILE_PROGRESS_CONTINUE = 0,   /**< Continue the download. */
+   ECORE_FILE_PROGRESS_ABORT = 1       /**< Abort the download. */
+} Ecore_File_Progress_Return;
+
+/**
  * @typedef Ecore_File_Download_Progress_Cb
- * Callback type used when a download is finished.
+ * Callback type used while a download is in progress.
  */
 typedef int (*Ecore_File_Download_Progress_Cb)(void *data,
                                                const char *file,
@@ -155,6 +167,14 @@ EAPI Eina_Bool ecore_file_download(const char *url,
                                    Ecore_File_Download_Progress_Cb progress_cb,
                                    void *data,
                                    Ecore_File_Download_Job **job_ret);
+EAPI Eina_Bool ecore_file_download_full(const char *url,
+                                        const char *dst,
+                                        Ecore_File_Download_Completion_Cb completion_cb,
+                                        Ecore_File_Download_Progress_Cb progress_cb,
+                                        void *data,
+                                        Ecore_File_Download_Job **job_ret,
+                                        Eina_Hash *headers);
+
 EAPI void      ecore_file_download_abort_all(void);
 EAPI void      ecore_file_download_abort(Ecore_File_Download_Job *job);
 EAPI Eina_Bool ecore_file_download_protocol_available(const char *protocol);
index 7fff284..cd29a33 100644 (file)
@@ -24,7 +24,7 @@ static int _ecore_file_init_count = 0;
 /* externally accessible functions */
 
 /**
- * @addtogroup Ecore_File_Group Ecore_File - Files and direcotries convenience functions
+ * @addtogroup Ecore_File_Group Ecore_File - Files and directories convenience functions
  *
  * @{
  */
@@ -767,7 +767,7 @@ ecore_file_can_exec(const char *file)
 /**
  * @brief Get the path pointed by the given link.
  *
- * @param  link The name of the link.
+ * @param  lnk The name of the link.
  * @return The path pointed by link or NULL.
  *
  * This function returns the path pointed by @p link as a newly
@@ -776,12 +776,12 @@ ecore_file_can_exec(const char *file)
  * returned value must be freed.
  */
 EAPI char *
-ecore_file_readlink(const char *link)
+ecore_file_readlink(const char *lnk)
 {
    char buf[PATH_MAX];
    int count;
 
-   if ((count = readlink(link, buf, sizeof(buf) - 1)) < 0) return NULL;
+   if ((count = readlink(lnk, buf, sizeof(buf) - 1)) < 0) return NULL;
    buf[count] = 0;
    return strdup(buf);
 }
index 3c2acfd..ab8294a 100644 (file)
@@ -32,7 +32,8 @@ struct _Ecore_File_Download_Job
 Ecore_File_Download_Job *_ecore_file_download_curl(const char *url, const char *dst,
                                                    Ecore_File_Download_Completion_Cb completion_cb,
                                                    Ecore_File_Download_Progress_Cb progress_cb,
-                                                   void *data);
+                                                   void *data,
+                                                   Eina_Hash *headers);
 
 static Eina_Bool _ecore_file_download_url_complete_cb(void *data, int type, void *event);
 static Eina_Bool _ecore_file_download_url_progress_cb(void *data, int type, void *event);
@@ -77,60 +78,44 @@ ecore_file_download_shutdown(void)
 #endif /* BUILD_ECORE_CON */
 }
 
-/**
- * @addtogroup Ecore_File_Group Ecore_File - Files and direcotries convenience functions
- *
- * @{
- */
+#ifdef BUILD_ECORE_CON
+# ifdef HAVE_CURL
+static Eina_Bool
+_ecore_file_download_headers_foreach_cb(const Eina_Hash *hash __UNUSED__, const void *key, void *data, void *fdata)
+{
+   Ecore_File_Download_Job *job = fdata;
+   ecore_con_url_additional_header_add(job->url_con, key, data);
 
-/**
- * @brief Download the given url to the given destination.
- *
- * @param  url The complete url to download.
- * @param  dst The local file to save the downloaded to.
- * @param  completion_cb A callback called on download complete.
- * @param  progress_cb A callback called during the download operation.
- * @param  data User data passed to both callbacks.
- * @param  job_ret Job used to abort the download.
- * @return EINA_TRUE if the download start or EINA_FALSE on failure
- *
- * This function starts the download of the URL @p url and saves it to
- * @p dst. @p url must provide the protocol, including 'http://',
- * 'ftp://' or 'file://'. Ecore_File must be compiled with CURL to
- * download using http and ftp protocols. If @p dst is ill-formed, or
- * if it already exists, the function returns EINA_FALSE. When the
- * download is complete, the callback @p completion_cb is called and
- * @p data is passed to it. The @p status parameter of @p completion_cb 
- * will be filled with the status of the download (200, 404,...). The
- * @p progress_cb is called during the download operation, each time a
- * packet i received or when CURL wants. It can be used to display the
- * percentage of the downloaded file. The only operations that can be
- * aborted are those with protocol 'http' or 'ftp'. In that case @p job_ret
- * can be filled. It can be used with ecore_file_download_abort() or
- * ecore_file_download_abort_all() to respectively abort one or all
- * download operations. This function returns EINA_TRUE if the
- * download starts, EINA_FALSE otherwise.
- */
-EAPI Eina_Bool
-ecore_file_download(const char *url,
-                    const char *dst,
-                    Ecore_File_Download_Completion_Cb completion_cb,
-                    Ecore_File_Download_Progress_Cb progress_cb,
-                    void *data,
-                    Ecore_File_Download_Job **job_ret)
+   return EINA_TRUE;
+}
+# endif
+#endif
+
+static Eina_Bool
+_ecore_file_download(const char *url,
+                     const char *dst,
+                     Ecore_File_Download_Completion_Cb completion_cb,
+                     Ecore_File_Download_Progress_Cb progress_cb,
+                     void *data,
+                     Ecore_File_Download_Job **job_ret,
+                     Eina_Hash *headers)
 {
 #ifdef BUILD_ECORE_CON
    char *dir = ecore_file_dir_get(dst);
 
    if (!ecore_file_is_dir(dir))
      {
+        EINA_LOG_ERR("%s is not a directory", dir);
         free(dir);
         return EINA_FALSE;
      }
    free(dir);
-   if (ecore_file_exists(dst)) return EINA_FALSE;
+   if (ecore_file_exists(dst))
+     {
+        EINA_LOG_ERR("%s already exists", dst);
+        return EINA_FALSE;
+     }
 
-   /* FIXME: Add handlers for http and ftp! */
    if (!strncmp(url, "file://", 7))
      {
         /* FIXME: Maybe fork? Might take a while to copy.
@@ -143,18 +128,25 @@ ecore_file_download(const char *url,
         return ecore_file_cp(url, dst);
      }
 # ifdef HAVE_CURL
-   else if ((!strncmp(url, "http://", 7)) ||
+   else if ((!strncmp(url, "http://", 7)) || (!strncmp(url, "https://", 8)) ||
             (!strncmp(url, "ftp://", 6)))
      {
         /* download */
         Ecore_File_Download_Job *job;
 
-        job = _ecore_file_download_curl(url, dst, completion_cb, progress_cb, data);
+       job = _ecore_file_download_curl(url, dst, completion_cb, progress_cb, data, headers);
         if(job_ret) *job_ret = job;
+        if(job)
+          return EINA_TRUE;
+        else
+          {
+             EINA_LOG_ERR("no job returned\n");
+             return EINA_FALSE;
+          }
         return job ? EINA_TRUE : EINA_FALSE;
      }
 # else
-   else if ((!strncmp(url, "http://", 7)) ||
+   else if ((!strncmp(url, "http://", 7)) || (!strncmp(url, "https://", 8)) ||
             (!strncmp(url, "ftp://", 6)))
      {
         (void)completion_cb;
@@ -177,6 +169,76 @@ ecore_file_download(const char *url,
 }
 
 /**
+ * @addtogroup Ecore_File_Group Ecore_File - Files and directories convenience functions
+ *
+ * @{
+ */
+
+/**
+ * @brief Download the given url to the given destination.
+ *
+ * @param  url The complete url to download.
+ * @param  dst The local file to save the downloaded to.
+ * @param  completion_cb A callback called on download complete.
+ * @param  progress_cb A callback called during the download operation.
+ * @param  data User data passed to both callbacks.
+ * @param  job_ret Job used to abort the download.
+ * @return EINA_TRUE if the download start or EINA_FALSE on failure
+ *
+ * This function starts the download of the URL @p url and saves it to
+ * @p dst. @p url must provide the protocol, including 'http://',
+ * 'ftp://' or 'file://'. Ecore_File must be compiled with CURL to
+ * download using http and ftp protocols. If @p dst is ill-formed, or
+ * if it already exists, the function returns EINA_FALSE. When the
+ * download is complete, the callback @p completion_cb is called and
+ * @p data is passed to it. The @p status parameter of @p completion_cb 
+ * will be filled with the status of the download (200, 404,...). The
+ * @p progress_cb is called during the download operation, each time a
+ * packet is received or when CURL wants. It can be used to display the
+ * percentage of the downloaded file. Return 0 from this callback, if provided,
+ * to continue the operation or anything else to abort the download. The only
+ * operations that can be aborted are those with protocol 'http' or 'ftp'. In 
+ * that case @p job_ret can be filled. It can be used with
+ * ecore_file_download_abort() or ecore_file_download_abort_all() to
+ * respectively abort one or all download operations. This function returns
+ * EINA_TRUE if the download starts, EINA_FALSE otherwise.
+ */
+EAPI Eina_Bool
+ecore_file_download(const char *url,
+                    const char *dst,
+                    Ecore_File_Download_Completion_Cb completion_cb,
+                    Ecore_File_Download_Progress_Cb progress_cb,
+                    void *data,
+                    Ecore_File_Download_Job **job_ret)
+{
+   return _ecore_file_download(url, dst, completion_cb, progress_cb, data, job_ret, NULL);
+}
+
+/**
+ * @brief Download the given url to the given destination with additional headers.
+ *
+ * @param  url The complete url to download.
+ * @param  dst The local file to save the downloaded to.
+ * @param  completion_cb A callback called on download complete.
+ * @param  progress_cb A callback called during the download operation.
+ * @param  data User data passed to both callbacks.
+ * @param  job_ret Job used to abort the download.
+ * @param  headers pointer of header lists.
+ * @return EINA_TRUE if the download start or EINA_FALSE on failure
+ */
+EAPI Eina_Bool
+ecore_file_download_full(const char *url,
+                         const char *dst,
+                         Ecore_File_Download_Completion_Cb completion_cb,
+                         Ecore_File_Download_Progress_Cb progress_cb,
+                         void *data,
+                         Ecore_File_Download_Job **job_ret,
+                         Eina_Hash *headers)
+{
+   return _ecore_file_download(url, dst, completion_cb, progress_cb, data, job_ret, headers);
+}
+
+/**
  * @brief Check if the given protocol is available.
  *
  * @param  protocol The protocol to check.
@@ -266,7 +328,8 @@ Ecore_File_Download_Job *
 _ecore_file_download_curl(const char *url, const char *dst,
                           Ecore_File_Download_Completion_Cb completion_cb,
                           Ecore_File_Download_Progress_Cb progress_cb,
-                          void *data)
+                          void *data,
+                          Eina_Hash *headers)
 {
    Ecore_File_Download_Job *job;
 
@@ -289,6 +352,7 @@ _ecore_file_download_curl(const char *url, const char *dst,
         return NULL;
      }
 
+   if (headers) eina_hash_foreach(headers, _ecore_file_download_headers_foreach_cb, job);
    ecore_con_url_fd_set(job->url_con, fileno(job->file));
    ecore_con_url_data_set(job->url_con, data);
 
@@ -298,7 +362,7 @@ _ecore_file_download_curl(const char *url, const char *dst,
    job->progress_cb = progress_cb;
    _job_list = eina_list_append(_job_list, job);
 
-   ecore_con_url_get(job->url_con, NULL, 0, NULL);
+   ecore_con_url_get(job->url_con);
 
    return job;
 }
index 15028fa..7c334c0 100644 (file)
@@ -67,7 +67,7 @@ ecore_file_monitor_shutdown(void)
 }
 
 /**
- * @addtogroup Ecore_File_Group Ecore_File - Files and direcotries convenience functions
+ * @addtogroup Ecore_File_Group Ecore_File - Files and directories convenience functions
  *
  * @{
  */
index e9bb595..255ca1b 100644 (file)
@@ -47,6 +47,7 @@ struct _Ecore_File_Monitor_Inotify
 
 static Ecore_Fd_Handler *_fdh = NULL;
 static Ecore_File_Monitor    *_monitors = NULL;
+static pid_t             _inotify_fd_pid = -1;
 
 static Eina_Bool           _ecore_file_monitor_inotify_handler(void *data, Ecore_Fd_Handler *fdh);
 static Ecore_File_Monitor *_ecore_file_monitor_inotify_monitor_find(int wd);
@@ -64,7 +65,7 @@ ecore_file_monitor_inotify_init(void)
    fd = inotify_init();
    if (fd < 0)
      return 0;
-
+   
    _fdh = ecore_main_fd_handler_add(fd, ECORE_FD_READ, _ecore_file_monitor_inotify_handler,
                                     NULL, NULL, NULL);
    if (!_fdh)
@@ -73,6 +74,7 @@ ecore_file_monitor_inotify_init(void)
         return 0;
      }
 
+   _inotify_fd_pid = getpid();
    return 1;
 }
 
@@ -90,6 +92,7 @@ ecore_file_monitor_inotify_shutdown(void)
         ecore_main_fd_handler_del(_fdh);
         close(fd);
      }
+   _inotify_fd_pid = -1;
    return 1;
 }
 
@@ -103,6 +106,14 @@ ecore_file_monitor_inotify_add(const char *path,
    Ecore_File_Monitor *em;
    int len;
 
+   if (_inotify_fd_pid == -1) return NULL;
+
+   if (_inotify_fd_pid != getpid())
+     {
+        ecore_file_monitor_inotify_shutdown();
+        ecore_file_monitor_inotify_init();
+     }
+   
    em = calloc(1, sizeof(Ecore_File_Monitor_Inotify));
    if (!em) return NULL;
 
@@ -207,7 +218,7 @@ _ecore_file_monitor_inotify_events(Ecore_File_Monitor *em, char *file, int mask)
    if (mask & IN_CLOSE_WRITE)
      {
         if (!isdir)
-          em->func(em->data, em, ECORE_FILE_EVENT_MODIFIED, buf);
+          em->func(em->data, em, ECORE_FILE_EVENT_CLOSED, buf);
      }
    if (mask & IN_MODIFY)
      {
index 6990250..d6e5ea6 100644 (file)
@@ -77,7 +77,7 @@ _ecore_file_path_from_env(const char *env)
 }
 
 /**
- * @addtogroup Ecore_File_Group Ecore_File - Files and direcotries convenience functions
+ * @addtogroup Ecore_File_Group Ecore_File - Files and directories convenience functions
  *
  * @{
  */
index 57160a5..5e71c14 100644 (file)
@@ -123,7 +123,7 @@ typedef enum
 
 typedef enum
 {
-   ECORE_IMF_INPUT_PANEL_CAPS_MODE_OFF,            /**< Off */
+   ECORE_IMF_INPUT_PANEL_CAPS_MODE_OFF,     /**< Off */
    ECORE_IMF_INPUT_PANEL_CAPS_MODE_ON,      /**< On */
    ECORE_IMF_INPUT_PANEL_CAPS_MODE_LOCK,    /**< Lock */
 } Ecore_IMF_Input_Panel_Caps_Mode;
@@ -175,6 +175,9 @@ typedef struct _Ecore_IMF_Context                  Ecore_IMF_Context;
 typedef struct _Ecore_IMF_Context_Class            Ecore_IMF_Context_Class;            /**< An Input Method Context class */
 typedef struct _Ecore_IMF_Context_Info             Ecore_IMF_Context_Info;             /**< An Input Method Context info */
 
+/* Preedit attribute info */
+typedef struct _Ecore_IMF_Preedit_Attr             Ecore_IMF_Preedit_Attr;
+
 EAPI extern int ECORE_IMF_EVENT_PREEDIT_START;
 EAPI extern int ECORE_IMF_EVENT_PREEDIT_END;
 EAPI extern int ECORE_IMF_EVENT_PREEDIT_CHANGED;
@@ -229,6 +232,14 @@ typedef enum
    ECORE_IMF_INPUT_MODE_AUTOCAP      = 1 << 30
 } Ecore_IMF_Input_Mode;
 
+typedef enum
+{
+   ECORE_IMF_PREEDIT_TYPE_NONE,
+   ECORE_IMF_PREEDIT_TYPE_SUB1,
+   ECORE_IMF_PREEDIT_TYPE_SUB2,
+   ECORE_IMF_PREEDIT_TYPE_SUB3
+} Ecore_IMF_Preedit_Type;
+
 struct _Ecore_IMF_Event_Preedit_Start
 {
    Ecore_IMF_Context *ctx;
@@ -380,16 +391,6 @@ union _Ecore_IMF_Event
    Ecore_IMF_Event_Key_Up      key_up;
 };
 
-typedef enum
-{
-   ECORE_IMF_PREEDIT_TYPE_NONE = 0,
-   ECORE_IMF_PREEDIT_TYPE_SUB1 = 1,
-   ECORE_IMF_PREEDIT_TYPE_SUB2 = 2,
-   ECORE_IMF_PREEDIT_TYPE_SUB3 = 3
-} Ecore_IMF_Preedit_Type;
-
-typedef struct _Ecore_IMF_Preedit_Attr Ecore_IMF_Preedit_Attr;
-
 struct _Ecore_IMF_Preedit_Attr
 {
    Ecore_IMF_Preedit_Type preedit_type;
@@ -478,11 +479,11 @@ EAPI Ecore_IMF_Context            *ecore_imf_context_add(const char *id);
 EAPI const Ecore_IMF_Context_Info *ecore_imf_context_info_get(Ecore_IMF_Context *ctx);
 EAPI void                          ecore_imf_context_del(Ecore_IMF_Context *ctx);
 EAPI void                          ecore_imf_context_client_window_set(Ecore_IMF_Context *ctx, void *window);
-EAPI void*                         ecore_imf_context_client_window_get(Ecore_IMF_Context *ctx);
+EAPI void                         *ecore_imf_context_client_window_get(Ecore_IMF_Context *ctx);
 EAPI void                          ecore_imf_context_client_canvas_set(Ecore_IMF_Context *ctx, void *canvas);
-EAPI void*                         ecore_imf_context_client_canvas_get(Ecore_IMF_Context *ctx);
-EINA_DEPRECATED EAPI void          ecore_imf_context_show(Ecore_IMF_Context *ctx);
-EINA_DEPRECATED EAPI void          ecore_imf_context_hide(Ecore_IMF_Context *ctx);
+EAPI void                         *ecore_imf_context_client_canvas_get(Ecore_IMF_Context *ctx);
+EAPI void                          ecore_imf_context_show(Ecore_IMF_Context *ctx);
+EAPI void                          ecore_imf_context_hide(Ecore_IMF_Context *ctx);
 EAPI void                          ecore_imf_context_preedit_string_get(Ecore_IMF_Context *ctx, char **str, int *cursor_pos);
 EAPI void                          ecore_imf_context_preedit_string_with_attributes_get(Ecore_IMF_Context *ctx, char **str, Eina_List **attrs, int *cursor_pos);
 EAPI void                          ecore_imf_context_focus_in(Ecore_IMF_Context *ctx);
@@ -491,8 +492,8 @@ EAPI void                          ecore_imf_context_reset(Ecore_IMF_Context *ct
 EAPI void                          ecore_imf_context_cursor_position_set(Ecore_IMF_Context *ctx, int cursor_pos);
 EAPI void                          ecore_imf_context_use_preedit_set(Ecore_IMF_Context *ctx, Eina_Bool use_preedit);
 EAPI void                          ecore_imf_context_retrieve_surrounding_callback_set(Ecore_IMF_Context *ctx, Eina_Bool (*func)(void *data, Ecore_IMF_Context *ctx, char **text, int *cursor_pos), const void *data);
-EINA_DEPRECATED EAPI void          ecore_imf_context_input_mode_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode input_mode);
-EINA_DEPRECATED EAPI Ecore_IMF_Input_Mode          ecore_imf_context_input_mode_get(Ecore_IMF_Context *ctx);
+EAPI void                          ecore_imf_context_input_mode_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode input_mode);
+EAPI Ecore_IMF_Input_Mode          ecore_imf_context_input_mode_get(Ecore_IMF_Context *ctx);
 EAPI Eina_Bool                     ecore_imf_context_filter_event(Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type, Ecore_IMF_Event *event);
 
 /* plugin specific functions */
@@ -526,8 +527,8 @@ EAPI void                          ecore_imf_context_input_panel_reset(Ecore_IMF
 EAPI void                          ecore_imf_context_input_panel_orient_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Orient  orientation);
 EAPI Ecore_IMF_Input_Panel_Orient  ecore_imf_context_input_panel_orient_get(Ecore_IMF_Context *ctx);
 EAPI Ecore_IMF_Input_Panel_State   ecore_imf_context_input_panel_state_get(Ecore_IMF_Context *ctx);
-EAPI void                          ecore_imf_context_input_panel_event_callback_add(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*pEventCallbackFunc) (void *data, Ecore_IMF_Context *ctx, int value), const void *data);
-EAPI void                          ecore_imf_context_input_panel_event_callback_del(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*pEventCallbackFunc) (void *data, Ecore_IMF_Context *ctx, int value));
+EAPI void                          ecore_imf_context_input_panel_event_callback_add(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*func) (void *data, Ecore_IMF_Context *ctx, int value), const void *data);
+EAPI void                          ecore_imf_context_input_panel_event_callback_del(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*func) (void *data, Ecore_IMF_Context *ctx, int value));
 EAPI void                          ecore_imf_context_input_panel_key_disabled_set(Ecore_IMF_Context *ctx, int layout_index, int key_index, Eina_Bool disabled);
 EAPI Eina_List                    *ecore_imf_context_input_panel_key_disabled_list_get(Ecore_IMF_Context *ctx);
 EAPI void                          ecore_imf_context_input_panel_move(Ecore_IMF_Context *ctx, int x, int y);
index bf6fe88..358b4e7 100644 (file)
@@ -1,6 +1,5 @@
 MAINTAINERCLEANFILES = Makefile.in
 
-if BUILD_ECORE_IMF
 AM_CPPFLAGS = \
 -I$(top_srcdir)/src/lib/ecore \
 -DPACKAGE_LIB_DIR=\"$(libdir)\" \
@@ -25,6 +24,5 @@ $(top_builddir)/src/lib/ecore/libecore.la \
 @EVIL_LIBS@
 
 libecore_imf_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
-endif
 
 EXTRA_DIST = ecore_imf_private.h
index e929405..b056df6 100644 (file)
@@ -333,7 +333,7 @@ ecore_imf_context_client_canvas_get(Ecore_IMF_Context *ctx)
  * @param ctx An #Ecore_IMF_Context.
  * @ingroup Ecore_IMF_Context_Group
  */
-EINA_DEPRECATED EAPI void
+EAPI void
 ecore_imf_context_show(Ecore_IMF_Context *ctx)
 {
    if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
@@ -351,7 +351,7 @@ ecore_imf_context_show(Ecore_IMF_Context *ctx)
  * @param ctx An #Ecore_IMF_Context.
  * @ingroup Ecore_IMF_Context_Group
  */
-EINA_DEPRECATED EAPI void
+EAPI void
 ecore_imf_context_hide(Ecore_IMF_Context *ctx)
 {
    if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
@@ -560,7 +560,7 @@ ecore_imf_context_retrieve_surrounding_callback_set(Ecore_IMF_Context *ctx, Eina
  * @param input_mode The input mode to be used by @p ctx.
  * @ingroup Ecore_IMF_Context_Group
  */
-EINA_DEPRECATED EAPI void
+EAPI void
 ecore_imf_context_input_mode_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode input_mode)
 {
    if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
@@ -582,7 +582,7 @@ ecore_imf_context_input_mode_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode in
  * @return The input mode being used by @p ctx.
  * @ingroup Ecore_IMF_Context_Group
  */
-EINA_DEPRECATED EAPI Ecore_IMF_Input_Mode
+EAPI Ecore_IMF_Input_Mode
 ecore_imf_context_input_mode_get(Ecore_IMF_Context *ctx)
 {
    if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
index 8a40f5a..1297275 100644 (file)
@@ -43,8 +43,8 @@ struct _Ecore_IMF_Context
    const Ecore_IMF_Context_Class *klass;
    void                          *data;
    int                            input_mode;
-   void*                          window;
-   void*                          client_canvas;
+   void                          *window;
+   void                          *client_canvas;
    Ecore_IMF_Input_Panel_Layout   input_panel_layout;
    Ecore_IMF_Input_Panel_Lang     input_panel_lang;
    int                            use_effect;
index a44a52b..ef7187a 100644 (file)
@@ -38,6 +38,24 @@ DEFINE_OLEGUID(IID_IUnknown,       0x00000000L, 0, 0);
 
 static int       _ecore_win32_init_count = 0;
 
+static void
+_ecore_win32_size_check(Ecore_Win32_Window *win, int w, int h, int *dx, int *dy)
+{
+   int minimal_width;
+   int minimal_height;
+
+   minimal_width = GetSystemMetrics(SM_CXMIN);
+   minimal_height = GetSystemMetrics(SM_CYMIN);
+   if ((w) < MAX(minimal_width, (int)win->min_width))
+     *dx = 0;
+   if ((w) > (int)win->max_width)
+     *dx = 0;
+   if ((h) < MAX(minimal_height, (int)win->min_height))
+     *dy = 0;
+   if ((h) > (int)win->max_height)
+     *dy = 0;
+}
+
 LRESULT CALLBACK
 _ecore_win32_window_procedure(HWND   window,
                               UINT   message,
@@ -45,7 +63,7 @@ _ecore_win32_window_procedure(HWND   window,
                               LPARAM data_param)
 {
    Ecore_Win32_Callback_Data *data;
-   POINTS                     pt;
+   POINTS                     point;
    DWORD                      coord;
 
    data = (Ecore_Win32_Callback_Data *)malloc(sizeof(Ecore_Win32_Callback_Data));
@@ -57,9 +75,9 @@ _ecore_win32_window_procedure(HWND   window,
    data->data_param = data_param;
    data->time = GetMessageTime();
    coord = GetMessagePos();
-   pt = MAKEPOINTS(coord);
-   data->x = pt.x;
-   data->y = pt.y;
+   point = MAKEPOINTS(coord);
+   data->x = point.x;
+   data->y = point.y;
 
    switch (data->message)
      {
@@ -68,10 +86,10 @@ _ecore_win32_window_procedure(HWND   window,
        INF("keydown message");
        _ecore_win32_event_handle_key_press(data, 1);
        return 0;
-     case WM_CHAR:
-       INF("char message");
-       _ecore_win32_event_handle_key_press(data, 0);
-       return 0;
+     /* case WM_CHAR: */
+     /*   INF("char message"); */
+     /*   _ecore_win32_event_handle_key_press(data, 0); */
+     /*   return 0; */
      case WM_KEYUP:
        INF("keyup message");
        _ecore_win32_event_handle_key_release(data, 1);
@@ -98,9 +116,22 @@ _ecore_win32_window_procedure(HWND   window,
        _ecore_win32_event_handle_button_press(data, 3);
        return 0;
      case WM_LBUTTONUP:
-       INF("left button up message");
-       _ecore_win32_event_handle_button_release(data, 1);
-       return 0;
+       {
+          Ecore_Win32_Window *w = NULL;
+
+          INF("left button up message");
+
+          w = (Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
+          if (w->drag.dragging)
+            {
+               ReleaseCapture();
+               w->drag.dragging = 0;
+               return 0;
+            }
+
+          _ecore_win32_event_handle_button_release(data, 1);
+          return 0;
+       }
      case WM_MBUTTONUP:
        INF("middle button up message");
        _ecore_win32_event_handle_button_release(data, 2);
@@ -111,12 +142,165 @@ _ecore_win32_window_procedure(HWND   window,
        return 0;
      case WM_MOUSEMOVE:
        {
-          RECT                        rect;
-          struct _Ecore_Win32_Window *w = NULL;
+          RECT                rect;
+          Ecore_Win32_Window *w = NULL;
 
           INF("moue move message");
 
-          w = (struct _Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
+          w = (Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
+
+          if (w->drag.dragging)
+            {
+               POINT pt;
+
+               pt.x = GET_X_LPARAM(data_param);
+               pt.y = GET_Y_LPARAM(data_param);
+               if (ClientToScreen(window, &pt))
+                 {
+                    if (w->drag.type == HTCAPTION)
+                      {
+                         int dx;
+                         int dy;
+
+                         dx = pt.x - w->drag.px;
+                         dy = pt.y - w->drag.py;
+                         ecore_win32_window_move(w, w->drag.x + dx, w->drag.y + dy);
+                         w->drag.x += dx;
+                         w->drag.y += dy;
+                         w->drag.px = pt.x;
+                         w->drag.py = pt.y;
+                         return 0;
+                      }
+                    if (w->drag.type == HTLEFT)
+                      {
+                         int dw;
+
+                         dw = pt.x - w->drag.px;
+                         ecore_win32_window_move_resize(w, w->drag.x + dw, w->drag.y, w->drag.w - dw, w->drag.h);
+                         w->drag.x += dw;
+                         w->drag.w -= dw;
+                         w->drag.px = pt.x;
+                         w->drag.py = pt.y;
+                         return 0;
+                      }
+                    if (w->drag.type == HTRIGHT)
+                      {
+                         int dw;
+
+                         dw = pt.x - w->drag.px;
+                         ecore_win32_window_resize(w, w->drag.w + dw, w->drag.h);
+                         w->drag.w += dw;
+                         w->drag.px = pt.x;
+                         w->drag.py = pt.y;
+                         return 0;
+                      }
+                    if (w->drag.type == HTTOP)
+                      {
+                         int dh;
+
+                         dh = pt.y - w->drag.py;
+                         ecore_win32_window_move_resize(w, w->drag.x, w->drag.y + dh, w->drag.w, w->drag.h - dh);
+                         w->drag.y += dh;
+                         w->drag.h -= dh;
+                         w->drag.px = pt.x;
+                         w->drag.py = pt.y;
+                         return 0;
+                      }
+                    if (w->drag.type == HTBOTTOM)
+                      {
+                         int dh;
+
+                         dh = pt.y - w->drag.py;
+                         ecore_win32_window_resize(w, w->drag.w, w->drag.h + dh);
+                         w->drag.h += dh;
+                         w->drag.px = pt.x;
+                         w->drag.py = pt.y;
+                         return 0;
+                      }
+                    if (w->drag.type == HTTOPLEFT)
+                      {
+                         int dx;
+                         int dy;
+                         int dh;
+                         int dw;
+
+                         dw = pt.x - w->drag.px;
+                         dh = pt.y - w->drag.py;
+                         dx = dw;
+                         dy = dh;
+                         _ecore_win32_size_check(w,
+                                                 w->drag.w - dw, w->drag.h - dh,
+                                                 &dx, &dy);
+
+                         ecore_win32_window_move_resize(w, w->drag.x + dx, w->drag.y + dy, w->drag.w - dw, w->drag.h - dh);
+                         w->drag.x += dx;
+                         w->drag.y += dy;
+                         w->drag.w -= dw;
+                         w->drag.h -= dh;
+                         w->drag.px = pt.x;
+                         w->drag.py = pt.y;
+                         return 0;
+                      }
+                    if (w->drag.type == HTTOPRIGHT)
+                      {
+                         int dx;
+                         int dy;
+                         int dh;
+                         int dw;
+
+                         dw = pt.x - w->drag.px;
+                         dh = pt.y - w->drag.py;
+                         dx = dw;
+                         dy = dh;
+                         _ecore_win32_size_check(w,
+                                                 w->drag.w, w->drag.h - dh,
+                                                 &dx, &dy);
+                         ecore_win32_window_move_resize(w, w->drag.x, w->drag.y + dy, w->drag.w, w->drag.h - dh);
+                         w->drag.y += dy;
+                         w->drag.w += dw;
+                         w->drag.h -= dh;
+                         w->drag.px = pt.x;
+                         w->drag.py = pt.y;
+                         return 0;
+                      }
+                    if (w->drag.type == HTBOTTOMLEFT)
+                      {
+                         int dx;
+                         int dy;
+                         int dh;
+                         int dw;
+
+                         dw = pt.x - w->drag.px;
+                         dh = pt.y - w->drag.py;
+                         dx = dw;
+                         dy = dh;
+                         _ecore_win32_size_check(w,
+                                                 w->drag.w - dw, w->drag.h + dh,
+                                                 &dx, &dy);
+                         ecore_win32_window_move_resize(w, w->drag.x + dx, w->drag.y, w->drag.w - dw, w->drag.h + dh);
+                         w->drag.x += dx;
+                         w->drag.w -= dw;
+                         w->drag.h += dh;
+                         w->drag.px = pt.x;
+                         w->drag.py = pt.y;
+                         return 0;
+                      }
+                    if (w->drag.type == HTBOTTOMRIGHT)
+                      {
+                         int dh;
+                         int dw;
+
+                         dw = pt.x - w->drag.px;
+                         dh = pt.y - w->drag.py;
+                         ecore_win32_window_resize(w, w->drag.w + dw, w->drag.h + dh);
+                         w->drag.w += dw;
+                         w->drag.h += dh;
+                         w->drag.px = pt.x;
+                         w->drag.py = pt.y;
+                         return 0;
+                      }
+                 }
+            }
 
           if (GetClientRect(window, &rect))
             {
@@ -219,6 +403,7 @@ _ecore_win32_window_procedure(HWND   window,
        return 0;
      case WM_NCLBUTTONDOWN:
        INF("non client left button down window message");
+
        if (((DWORD)window_param == HTCAPTION) ||
            ((DWORD)window_param == HTBOTTOM) ||
            ((DWORD)window_param == HTBOTTOMLEFT) ||
@@ -233,8 +418,10 @@ _ecore_win32_window_procedure(HWND   window,
 
            w = (Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
            ecore_win32_window_geometry_get(w,
-                                           &w->drag.x, &w->drag.y,
+                                           NULL, NULL,
                                            &w->drag.w, &w->drag.h);
+           SetCapture(window);
+           w->drag.type = (DWORD)window_param;
            w->drag.px = GET_X_LPARAM(data_param);
            w->drag.py = GET_Y_LPARAM(data_param);
            w->drag.dragging = 1;
@@ -242,7 +429,8 @@ _ecore_win32_window_procedure(HWND   window,
          }
        return DefWindowProc(window, message, window_param, data_param);
      case WM_SYSCOMMAND:
-       INF("sys command window message", (int)window_param);
+       INF("sys command window message %d", (int)window_param);
+
        if ((((DWORD)window_param & 0xfff0) == SC_MOVE) ||
            (((DWORD)window_param & 0xfff0) == SC_SIZE))
          {
@@ -255,118 +443,9 @@ _ecore_win32_window_procedure(HWND   window,
            return 0;
          }
        return DefWindowProc(window, message, window_param, data_param);
-     case WM_NCMOUSEMOVE:
-       INF("non client mouse move window message");
-       if ((DWORD)window_param == HTCAPTION)
-         {
-           Ecore_Win32_Window *w;
-
-           w = (Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
-           if (w->drag.dragging)
-             {
-               int dx;
-               int dy;
-
-               dx = GET_X_LPARAM(data_param) - w->drag.px;
-               dy = GET_Y_LPARAM(data_param) - w->drag.py;
-               ecore_win32_window_move(w, w->drag.x + dx, w->drag.y + dy);
-               w->drag.x += dx;
-               w->drag.y += dy;
-               w->drag.px = GET_X_LPARAM(data_param);
-               w->drag.py = GET_Y_LPARAM(data_param);
-               return 0;
-             }
-         }
-       if ((DWORD)window_param == HTLEFT)
-         {
-           Ecore_Win32_Window *w;
-
-           w = (Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
-           if (w->drag.dragging)
-             {
-               int dw;
-               dw = GET_X_LPARAM(data_param) - w->drag.px;
-               ecore_win32_window_move_resize(w, w->drag.x + dw, w->drag.y, w->drag.w - dw, w->drag.h);
-               w->drag.x += dw;
-               w->drag.w -= dw;
-               w->drag.px = GET_X_LPARAM(data_param);
-               w->drag.py = GET_Y_LPARAM(data_param);
-               return 0;
-             }
-         }
-       if ((DWORD)window_param == HTRIGHT)
-         {
-           Ecore_Win32_Window *w;
-
-           w = (Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
-           if (w->drag.dragging)
-             {
-               int dw;
-               dw = GET_X_LPARAM(data_param) - w->drag.px;
-               ecore_win32_window_resize(w, w->drag.w + dw, w->drag.h);
-               w->drag.w += dw;
-               w->drag.px = GET_X_LPARAM(data_param);
-               w->drag.py = GET_Y_LPARAM(data_param);
-               return 0;
-             }
-         }
-       if ((DWORD)window_param == HTTOP)
-         {
-           Ecore_Win32_Window *w;
-
-           w = (Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
-           if (w->drag.dragging)
-             {
-               int dh;
-               dh = GET_Y_LPARAM(data_param) - w->drag.py;
-               ecore_win32_window_move_resize(w, w->drag.x, w->drag.y + dh, w->drag.w, w->drag.h - dh);
-               w->drag.y += dh;
-               w->drag.h -= dh;
-               w->drag.px = GET_X_LPARAM(data_param);
-               w->drag.py = GET_Y_LPARAM(data_param);
-               return 0;
-             }
-         }
-       if ((DWORD)window_param == HTBOTTOM)
-         {
-           Ecore_Win32_Window *w;
-
-           w = (Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
-           if (w->drag.dragging)
-             {
-               int dh;
-               dh = GET_Y_LPARAM(data_param) - w->drag.py;
-               ecore_win32_window_resize(w, w->drag.w, w->drag.h + dh);
-               w->drag.h += dh;
-               w->drag.px = GET_X_LPARAM(data_param);
-               w->drag.py = GET_Y_LPARAM(data_param);
-               return 0;
-             }
-         }
-       return DefWindowProc(window, message, window_param, data_param);
-     case WM_NCLBUTTONUP:
-       INF("non client left button up window message");
-       if (((DWORD)window_param == HTCAPTION) ||
-           ((DWORD)window_param == HTBOTTOM) ||
-           ((DWORD)window_param == HTBOTTOMLEFT) ||
-           ((DWORD)window_param == HTBOTTOMRIGHT) ||
-           ((DWORD)window_param == HTLEFT) ||
-           ((DWORD)window_param == HTRIGHT) ||
-           ((DWORD)window_param == HTTOP) ||
-           ((DWORD)window_param == HTTOPLEFT) ||
-           ((DWORD)window_param == HTTOPRIGHT))
-         {
-           Ecore_Win32_Window *w;
-
-           w = (Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
-           if (w->drag.dragging)
-             {
-               w->drag.dragging = 0;
-               return 0;
-             }
-         }
-       return DefWindowProc(window, message, window_param, data_param);
        /* GDI notifications */
+     case WM_ERASEBKGND:
+       return 1;
      case WM_PAINT:
        {
          RECT rect;
index 7ac1083..a629c8b 100755 (executable)
@@ -185,7 +185,7 @@ EAPI Eina_Bool
 ecore_win32_dnd_register_drop_target(Ecore_Win32_Window                 *window,
                                      Ecore_Win32_Dnd_DropTarget_Callback callback)
 {
-   struct _Ecore_Win32_Window *wnd = (struct _Ecore_Win32_Window *)window;
+   Ecore_Win32_Window *wnd = (Ecore_Win32_Window *)window;
 
    if (!window)
       return EINA_FALSE;
@@ -207,7 +207,7 @@ ecore_win32_dnd_register_drop_target(Ecore_Win32_Window                 *window,
 EAPI void
 ecore_win32_dnd_unregister_drop_target(Ecore_Win32_Window *window)
 {
-   struct _Ecore_Win32_Window *wnd = (struct _Ecore_Win32_Window *)window;
+   Ecore_Win32_Window *wnd = (Ecore_Win32_Window *)window;
 
    if (!window)
       return;
index 6de1035..75e26f5 100644 (file)
@@ -119,7 +119,7 @@ HRESULT DataObject::GetData(FORMATETC *pFormatEtc, STGMEDIUM *pMedium)
    return S_OK;
 }
 
-HRESULT DataObject::GetDataHere(FORMATETC *pFormatEtc, STGMEDIUM *pmedium)
+HRESULT DataObject::GetDataHere(FORMATETC *pFormatEtc __UNUSED__, STGMEDIUM *pmedium __UNUSED__)
 {
    return DATA_E_FORMATETC;
 }
@@ -129,14 +129,14 @@ HRESULT DataObject::QueryGetData(FORMATETC *pFormatEtc)
    return (lookup_format_etc(pFormatEtc) == -1) ? DV_E_FORMATETC : S_OK;
 }
 
-HRESULT DataObject::GetCanonicalFormatEtc(FORMATETC *pFormatEct, FORMATETC *pFormatEtcOut)
+HRESULT DataObject::GetCanonicalFormatEtc(FORMATETC *pFormatEct __UNUSED__, FORMATETC *pFormatEtcOut)
 {
    // Apparently we have to set this field to NULL even though we don't do anything else
    pFormatEtcOut->ptd = NULL;
    return E_NOTIMPL;
 }
 
-HRESULT DataObject::SetData(FORMATETC *pFormatEtc, STGMEDIUM *pMedium,  BOOL fRelease)
+HRESULT DataObject::SetData(FORMATETC *pFormatEtc __UNUSED__, STGMEDIUM *pMedium __UNUSED__,  BOOL fRelease __UNUSED__)
 {
    return E_NOTIMPL;
 }
@@ -157,17 +157,17 @@ HRESULT DataObject::EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppEnumForm
    }
 }
 
-HRESULT DataObject::DAdvise(FORMATETC *pFormatEtc,  DWORD advf, IAdviseSink *, DWORD *)
+HRESULT DataObject::DAdvise(FORMATETC *pFormatEtc __UNUSED__,  DWORD advf __UNUSED__, IAdviseSink *, DWORD *)
 {
    return OLE_E_ADVISENOTSUPPORTED;
 }
 
-HRESULT DataObject::DUnadvise(DWORD dwConnection)
+HRESULT DataObject::DUnadvise(DWORD dwConnection __UNUSED__)
 {
    return OLE_E_ADVISENOTSUPPORTED;
 }
 
-HRESULT DataObject::EnumDAdvise(IEnumSTATDATA **ppEnumAdvise)
+HRESULT DataObject::EnumDAdvise(IEnumSTATDATA **ppEnumAdvise __UNUSED__)
 {
    return OLE_E_ADVISENOTSUPPORTED;
 }
index 065ac6a..bea7736 100644 (file)
@@ -67,7 +67,7 @@ HRESULT DropSource::QueryContinueDrag(BOOL fEscapePressed, DWORD grfKeyState)
     return S_OK;
 }
 
-HRESULT DropSource::GiveFeedback(DWORD dwEffect)
+HRESULT DropSource::GiveFeedback(DWORD dwEffect __UNUSED__)
 {
     return DRAGDROP_S_USEDEFAULTCURSORS;
 }
index 5051316..e19fb5d 100644 (file)
@@ -152,7 +152,7 @@ HRESULT DropTarget::Drop(IDataObject *pDataObject, DWORD grfKeyState, POINTL pt,
 
 // internal helper function
 
-DWORD DropTarget::DropEffect(DWORD grfKeyState, POINTL pt, DWORD dwAllowed)
+DWORD DropTarget::DropEffect(DWORD grfKeyState, POINTL pt __UNUSED__, DWORD dwAllowed)
 {
    DWORD dwEffect = 0;
 
index ed467d3..4d69654 100644 (file)
@@ -802,6 +802,7 @@ _ecore_win32_event_keystroke_get(int    key,
        kn = "space";
        ks = "space";
        kc = "space";
+       break;
      case VK_F1:
        kn = "F1";
        ks = "F1";
index 41b07ca..1b609e5 100644 (file)
@@ -6,6 +6,15 @@
 extern "C" {
 #endif
 
+#ifdef MIN
+# undef MIN
+#endif
+#define MIN(a,b) (((a) < (b)) ? (a) : (b))
+
+#ifdef MAX
+# undef MAX
+#endif
+#define MAX(a,b) (((a) < (b)) ? (b) : (a))
 
 /* logging messages macros */
 extern int _ecore_win32_log_dom_global;
@@ -29,6 +38,11 @@ extern int _ecore_win32_log_dom_global;
 #endif
 #define INF(...) EINA_LOG_DOM_INFO(_ecore_win32_log_dom_global , __VA_ARGS__)
 
+#ifdef WRN
+# undef WRN
+#endif
+#define WRN(...) EINA_LOG_DOM_WARN(_ecore_win32_log_dom_global, __VA_ARGS__)
+
 #define ECORE_WIN32_WINDOW_CLASS "Ecore_Win32_Window_Class"
 
 typedef struct _Ecore_Win32_Callback_Data Ecore_Win32_Callback_Data;
@@ -100,13 +114,14 @@ struct _Ecore_Win32_Window
    } shape;
 
    struct {
-     unsigned int x;
-     unsigned int y;
-     unsigned int w;
-     unsigned int h;
-     unsigned int px;
-     unsigned int py;
-     unsigned int dragging : 1;
+      DWORD        type;
+      int x;
+      int y;
+      int w;
+      int h;
+      int px;
+      int py;
+      unsigned int dragging : 1;
    } drag;
 
    void *dnd_drop_target;
index 6a655fa..20edf81 100644 (file)
@@ -40,12 +40,12 @@ ecore_win32_window_internal_new(Ecore_Win32_Window *parent,
                                 int                 height,
                                 DWORD               style)
 {
-   RECT                        rect;
-   struct _Ecore_Win32_Window *w;
-   int                         minimal_width;
-   int                         minimal_height;
+   RECT                rect;
+   Ecore_Win32_Window *w;
+   int                 minimal_width;
+   int                 minimal_height;
 
-   w = (struct _Ecore_Win32_Window *)calloc(1, sizeof(struct _Ecore_Win32_Window));
+   w = (Ecore_Win32_Window *)calloc(1, sizeof(Ecore_Win32_Window));
    if (!w)
      {
         ERR("malloc() failed");
@@ -56,7 +56,7 @@ ecore_win32_window_internal_new(Ecore_Win32_Window *parent,
    rect.top = 0;
    rect.right = width;
    rect.bottom = height;
-   if (!AdjustWindowRect(&rect, style, FALSE))
+   if (!AdjustWindowRectEx(&rect, style, FALSE, 0))
      {
         ERR("AdjustWindowRect() failed");
         free(w);
@@ -84,7 +84,7 @@ ecore_win32_window_internal_new(Ecore_Win32_Window *parent,
                               x, y,
                               rect.right - rect.left,
                               rect.bottom - rect.top,
-                              parent ? ((struct _Ecore_Win32_Window *)parent)->window : NULL,
+                              parent ? ((Ecore_Win32_Window *)parent)->window : NULL,
                               NULL, _ecore_win32_instance, NULL);
    if (!w->window)
      {
@@ -230,7 +230,7 @@ ecore_win32_window_override_new(Ecore_Win32_Window *parent,
 EAPI void
 ecore_win32_window_free(Ecore_Win32_Window *window)
 {
-   struct _Ecore_Win32_Window *wnd = window;
+   Ecore_Win32_Window *wnd = window;
 
    if (!window) return;
 
@@ -239,7 +239,7 @@ ecore_win32_window_free(Ecore_Win32_Window *window)
    if (wnd->shape.mask)
       free(wnd->shape.mask);
 
-   DestroyWindow(((struct _Ecore_Win32_Window *)window)->window);
+   DestroyWindow(((Ecore_Win32_Window *)window)->window);
    free(window);
 }
 
@@ -256,7 +256,7 @@ ecore_win32_window_hwnd_get(Ecore_Win32_Window *window)
 {
    if (!window) return NULL;
 
-   return ((struct _Ecore_Win32_Window *)window)->window;
+   return ((Ecore_Win32_Window *)window)->window;
 }
 
 /*
@@ -287,7 +287,7 @@ ecore_win32_window_configure(Ecore_Win32_Window        *window,
     default:
       return;
     }
-  SetWindowPos((struct _Ecore_Win32_Window *)window->window, w, x, y, width, height, ???);
+  SetWindowPos((Ecore_Win32_Window *)window->window, w, x, y, width, height, ???);
 }
 */
 
@@ -315,7 +315,7 @@ ecore_win32_window_move(Ecore_Win32_Window *window,
 
    INF("moving window (%dx%d)", x, y);
 
-   w = ((struct _Ecore_Win32_Window *)window)->window;
+   w = ((Ecore_Win32_Window *)window)->window;
    if (!GetWindowRect(w, &rect))
      {
         ERR("GetWindowRect() failed");
@@ -347,18 +347,24 @@ ecore_win32_window_resize(Ecore_Win32_Window *window,
                           int                 width,
                           int                 height)
 {
-   RECT                        rect;
-   struct _Ecore_Win32_Window *w;
-   DWORD                       style;
-   int                         x;
-   int                         y;
+   RECT                rect;
+   Ecore_Win32_Window *w;
+   DWORD               style;
+   int                 x;
+   int                 y;
+   int                 minimal_width;
+   int                 minimal_height;
 
    /* FIXME: on fullscreen, should not resize it */
    if (!window) return;
 
    INF("resizing window (%dx%d)", width, height);
 
-   w = (struct _Ecore_Win32_Window *)window;
+   w = (Ecore_Win32_Window *)window;
+
+   minimal_width = MAX(GetSystemMetrics(SM_CXMIN), (int)w->min_width);
+   minimal_height = MAX(GetSystemMetrics(SM_CYMIN), (int)w->min_height);
+
    if (!GetWindowRect(w->window, &rect))
      {
         ERR("GetWindowRect() failed");
@@ -369,13 +375,10 @@ ecore_win32_window_resize(Ecore_Win32_Window *window,
    y = rect.top;
    rect.left = 0;
    rect.top = 0;
-/*    if (width < w->min_width) width = w->min_width; */
-/*    if (width > w->max_width) width = w->max_width; */
-/*    printf ("ecore_win32_window_resize 1 : %d %d %d\n", w->min_height, w->max_height, height); */
-/*    if (height < w->min_height) height = w->min_height; */
-/*    printf ("ecore_win32_window_resize 2 : %d %d\n", w->max_height, height); */
-/*    if (height > w->max_height) height = w->max_height; */
-/*    printf ("ecore_win32_window_resize 3 : %d %d\n", w->max_height, height); */
+   if (width < minimal_width) width = minimal_width;
+   if (width > (int)w->max_width) width = w->max_width;
+   if (height < minimal_height) height = minimal_height;
+   if (height > (int)w->max_height) height = w->max_height;
    rect.right = width;
    rect.bottom = height;
    if (!(style = GetWindowLong(w->window, GWL_STYLE)))
@@ -418,22 +421,28 @@ ecore_win32_window_move_resize(Ecore_Win32_Window *window,
                                int                 width,
                                int                 height)
 {
-   RECT                        rect;
-   struct _Ecore_Win32_Window *w;
-   DWORD                       style;
+   RECT                rect;
+   Ecore_Win32_Window *w;
+   DWORD               style;
+   int                 minimal_width;
+   int                 minimal_height;
 
    /* FIXME: on fullscreen, should not move/resize it */
    if (!window) return;
 
    INF("moving and resizing window (%dx%d %dx%d)", x, y, width, height);
 
-   w = ((struct _Ecore_Win32_Window *)window);
+   w = ((Ecore_Win32_Window *)window);
+
+   minimal_width = MAX(GetSystemMetrics(SM_CXMIN), (int)w->min_width);
+   minimal_height = MAX(GetSystemMetrics(SM_CYMIN), (int)w->min_height);
+
    rect.left = 0;
    rect.top = 0;
-   if ((unsigned int)width < w->min_width) width = w->min_width;
-   if ((unsigned int)width > w->max_width) width = w->max_width;
-   if ((unsigned int)height < w->min_height) height = w->min_height;
-   if ((unsigned int)height > w->max_height) height = w->max_height;
+   if (width < minimal_width) width = minimal_width;
+   if (width > (int)w->max_width) width = w->max_width;
+   if (height < minimal_height) height = minimal_height;
+   if (height > (int)w->max_height) height = w->max_height;
    rect.right = width;
    rect.bottom = height;
    if (!(style = GetWindowLong(w->window, GWL_STYLE)))
@@ -495,7 +504,7 @@ ecore_win32_window_geometry_get(Ecore_Win32_Window *window,
         return;
      }
 
-   if (!GetClientRect(((struct _Ecore_Win32_Window *)window)->window,
+   if (!GetClientRect(((Ecore_Win32_Window *)window)->window,
                       &rect))
      {
         ERR("GetClientRect() failed");
@@ -511,7 +520,7 @@ ecore_win32_window_geometry_get(Ecore_Win32_Window *window,
    w = rect.right - rect.left;
    h = rect.bottom - rect.top;
 
-   if (!GetWindowRect(((struct _Ecore_Win32_Window *)window)->window,
+   if (!GetWindowRect(((Ecore_Win32_Window *)window)->window,
                       &rect))
      {
         ERR("GetWindowRect() failed");
@@ -561,7 +570,7 @@ ecore_win32_window_size_get(Ecore_Win32_Window *window,
         return;
      }
 
-   if (!GetClientRect(((struct _Ecore_Win32_Window *)window)->window,
+   if (!GetClientRect(((Ecore_Win32_Window *)window)->window,
                       &rect))
      {
         ERR("GetClientRect() failed");
@@ -590,12 +599,12 @@ ecore_win32_window_size_min_set(Ecore_Win32_Window *window,
                                 unsigned int        min_width,
                                 unsigned int        min_height)
 {
-   struct _Ecore_Win32_Window *w;
+   Ecore_Win32_Window *w;
 
    if (!window) return;
 
    printf ("ecore_win32_window_size_min_set : %p  %d %d\n", window, min_width, min_height);
-   w = (struct _Ecore_Win32_Window *)window;
+   w = (Ecore_Win32_Window *)window;
    w->min_width = min_width;
    w->min_height = min_height;
 }
@@ -616,11 +625,11 @@ ecore_win32_window_size_min_get(Ecore_Win32_Window *window,
                                 unsigned int       *min_width,
                                 unsigned int       *min_height)
 {
-   struct _Ecore_Win32_Window *w;
+   Ecore_Win32_Window *w;
 
    if (!window) return;
 
-   w = (struct _Ecore_Win32_Window *)window;
+   w = (Ecore_Win32_Window *)window;
    printf ("ecore_win32_window_size_min_get : %p  %d %d\n", window, w->min_width, w->min_height);
    if (min_width) *min_width = w->min_width;
    if (min_height) *min_height = w->min_height;
@@ -642,12 +651,12 @@ ecore_win32_window_size_max_set(Ecore_Win32_Window *window,
                                 unsigned int        max_width,
                                 unsigned int        max_height)
 {
-   struct _Ecore_Win32_Window *w;
+   Ecore_Win32_Window *w;
 
    if (!window) return;
 
    printf ("ecore_win32_window_size_max_set : %p  %d %d\n", window, max_width, max_height);
-   w = (struct _Ecore_Win32_Window *)window;
+   w = (Ecore_Win32_Window *)window;
    w->max_width = max_width;
    w->max_height = max_height;
 }
@@ -668,11 +677,11 @@ ecore_win32_window_size_max_get(Ecore_Win32_Window *window,
                                 unsigned int       *max_width,
                                 unsigned int       *max_height)
 {
-   struct _Ecore_Win32_Window *w;
+   Ecore_Win32_Window *w;
 
    if (!window) return;
 
-   w = (struct _Ecore_Win32_Window *)window;
+   w = (Ecore_Win32_Window *)window;
    printf ("ecore_win32_window_size_max_get : %p  %d %d\n", window, w->max_width, w->max_height);
    if (max_width) *max_width = w->max_width;
    if (max_height) *max_height = w->max_height;
@@ -694,12 +703,12 @@ ecore_win32_window_size_base_set(Ecore_Win32_Window *window,
                                  unsigned int        base_width,
                                  unsigned int        base_height)
 {
-   struct _Ecore_Win32_Window *w;
+   Ecore_Win32_Window *w;
 
    printf ("ecore_win32_window_size_base_set : %p  %d %d\n", window, base_width, base_height);
    if (!window) return;
 
-   w = (struct _Ecore_Win32_Window *)window;
+   w = (Ecore_Win32_Window *)window;
    w->base_width = base_width;
    w->base_height = base_height;
 }
@@ -720,11 +729,11 @@ ecore_win32_window_size_base_get(Ecore_Win32_Window *window,
                                  unsigned int       *base_width,
                                  unsigned int       *base_height)
 {
-   struct _Ecore_Win32_Window *w;
+   Ecore_Win32_Window *w;
 
    if (!window) return;
 
-   w = (struct _Ecore_Win32_Window *)window;
+   w = (Ecore_Win32_Window *)window;
    printf ("ecore_win32_window_size_base_get : %p  %d %d\n", window, w->base_width, w->base_height);
    if (base_width) *base_width = w->base_width;
    if (base_height) *base_height = w->base_height;
@@ -746,12 +755,12 @@ ecore_win32_window_size_step_set(Ecore_Win32_Window *window,
                                  unsigned int        step_width,
                                  unsigned int        step_height)
 {
-   struct _Ecore_Win32_Window *w;
+   Ecore_Win32_Window *w;
 
    printf ("ecore_win32_window_size_step_set : %p  %d %d\n", window, step_width, step_height);
    if (!window) return;
 
-   w = (struct _Ecore_Win32_Window *)window;
+   w = (Ecore_Win32_Window *)window;
    w->step_width = step_width;
    w->step_height = step_height;
 }
@@ -772,11 +781,11 @@ ecore_win32_window_size_step_get(Ecore_Win32_Window *window,
                                  unsigned int       *step_width,
                                  unsigned int       *step_height)
 {
-   struct _Ecore_Win32_Window *w;
+   Ecore_Win32_Window *w;
 
    if (!window) return;
 
-   w = (struct _Ecore_Win32_Window *)window;
+   w = (Ecore_Win32_Window *)window;
    printf ("ecore_win32_window_size_step_get : %p  %d %d\n", window, w->step_width, w->step_height);
    if (step_width) *step_width = w->step_width;
    if (step_height) *step_height = w->step_height;
@@ -788,7 +797,7 @@ ecore_win32_window_shape_set(Ecore_Win32_Window *window,
                              unsigned short      height,
                              unsigned char      *mask)
 {
-   struct _Ecore_Win32_Window *wnd;
+   Ecore_Win32_Window *wnd;
    HRGN                        rgn;
    int                         x;
    int                         y;
@@ -797,7 +806,7 @@ ecore_win32_window_shape_set(Ecore_Win32_Window *window,
    if (!window)
       return;
 
-   wnd = (struct _Ecore_Win32_Window *)window;
+   wnd = (Ecore_Win32_Window *)window;
 
    if (!mask)
      {
@@ -934,8 +943,8 @@ ecore_win32_window_show(Ecore_Win32_Window *window)
 
    INF("showing window");
 
-   ShowWindow(((struct _Ecore_Win32_Window *)window)->window, SW_SHOWNORMAL);
-   if (!UpdateWindow(((struct _Ecore_Win32_Window *)window)->window))
+   ShowWindow(((Ecore_Win32_Window *)window)->window, SW_SHOWNORMAL);
+   if (!UpdateWindow(((Ecore_Win32_Window *)window)->window))
      {
         ERR("UpdateWindow() failed");
      }
@@ -957,7 +966,7 @@ ecore_win32_window_hide(Ecore_Win32_Window *window)
 
    INF("hiding window");
 
-   ShowWindow(((struct _Ecore_Win32_Window *)window)->window, SW_HIDE);
+   ShowWindow(((Ecore_Win32_Window *)window)->window, SW_HIDE);
 }
 
 /**
@@ -975,7 +984,7 @@ ecore_win32_window_raise(Ecore_Win32_Window *window)
 
    INF("raising window");
 
-   if (!SetWindowPos(((struct _Ecore_Win32_Window *)window)->window,
+   if (!SetWindowPos(((Ecore_Win32_Window *)window)->window,
                      HWND_TOP, 0, 0, 0, 0,
                      SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE))
      {
@@ -998,7 +1007,7 @@ ecore_win32_window_lower(Ecore_Win32_Window *window)
 
    INF("lowering window");
 
-   if (!SetWindowPos(((struct _Ecore_Win32_Window *)window)->window,
+   if (!SetWindowPos(((Ecore_Win32_Window *)window)->window,
                      HWND_BOTTOM, 0, 0, 0, 0,
                      SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE))
      {
@@ -1026,7 +1035,7 @@ ecore_win32_window_title_set(Ecore_Win32_Window *window,
 
    INF("setting window title");
 
-   if (!SetWindowText(((struct _Ecore_Win32_Window *)window)->window, title))
+   if (!SetWindowText(((Ecore_Win32_Window *)window)->window, title))
      {
         ERR("SetWindowText() failed");
      }
@@ -1047,7 +1056,7 @@ ecore_win32_window_focus_set(Ecore_Win32_Window *window)
 
    INF("focusing window");
 
-   if (!SetFocus(((struct _Ecore_Win32_Window *)window)->window))
+   if (!SetFocus(((Ecore_Win32_Window *)window)->window))
      {
         ERR("SetFocus() failed");
      }
@@ -1069,11 +1078,11 @@ EAPI void
 ecore_win32_window_iconified_set(Ecore_Win32_Window *window,
                                  Eina_Bool           on)
 {
-   struct _Ecore_Win32_Window *ew;
+   Ecore_Win32_Window *ew;
 
    if (!window) return;
 
-   ew = (struct _Ecore_Win32_Window *)window;
+   ew = (Ecore_Win32_Window *)window;
    if (((ew->iconified) && (on)) ||
        ((!ew->iconified) && (!on)))
      return;
@@ -1100,14 +1109,14 @@ EAPI void
 ecore_win32_window_borderless_set(Ecore_Win32_Window *window,
                                   Eina_Bool           on)
 {
-   RECT                        rect;
-   DWORD                       style;
-   struct _Ecore_Win32_Window *ew;
-   HWND                        w;
+   RECT                rect;
+   DWORD               style;
+   Ecore_Win32_Window *ew;
+   HWND                w;
 
    if (!window) return;
 
-   ew = (struct _Ecore_Win32_Window *)window;
+   ew = (Ecore_Win32_Window *)window;
    if (((ew->borderless) && (on)) ||
        ((!ew->borderless) && (!on)))
      return;
@@ -1178,12 +1187,12 @@ EAPI void
 ecore_win32_window_fullscreen_set(Ecore_Win32_Window *window,
                                   Eina_Bool           on)
 {
-   struct _Ecore_Win32_Window *ew;
+   Ecore_Win32_Window *ew;
    HWND                        w;
 
    if (!window) return;
 
-   ew = (struct _Ecore_Win32_Window *)window;
+   ew = (Ecore_Win32_Window *)window;
    if (((ew->fullscreen) && (on)) ||
        ((!ew->fullscreen) && (!on)))
      return;
@@ -1276,7 +1285,7 @@ ecore_win32_window_cursor_set(Ecore_Win32_Window *window,
    if (!window || !cursor)
      return;
 
-   if (!SetClassLongPtr(((struct _Ecore_Win32_Window *)window)->window,
+   if (!SetClassLongPtr(((Ecore_Win32_Window *)window)->window,
                      GCL_HCURSOR, (LONG_PTR)cursor))
      {
         ERR("SetClassLong() failed");
@@ -1311,41 +1320,41 @@ ecore_win32_window_state_set(Ecore_Win32_Window       *window,
         switch (state[i])
           {
           case ECORE_WIN32_WINDOW_STATE_ICONIFIED:
-            ((struct _Ecore_Win32_Window *)window)->state.iconified = 1;
+            ((Ecore_Win32_Window *)window)->state.iconified = 1;
             break;
           case ECORE_WIN32_WINDOW_STATE_MODAL:
-            ((struct _Ecore_Win32_Window *)window)->state.modal = 1;
+            ((Ecore_Win32_Window *)window)->state.modal = 1;
             break;
           case ECORE_WIN32_WINDOW_STATE_STICKY:
-            ((struct _Ecore_Win32_Window *)window)->state.sticky = 1;
+            ((Ecore_Win32_Window *)window)->state.sticky = 1;
             break;
           case ECORE_WIN32_WINDOW_STATE_MAXIMIZED_VERT:
-            ((struct _Ecore_Win32_Window *)window)->state.maximized_vert = 1;
+            ((Ecore_Win32_Window *)window)->state.maximized_vert = 1;
             break;
           case ECORE_WIN32_WINDOW_STATE_MAXIMIZED_HORZ:
-            ((struct _Ecore_Win32_Window *)window)->state.maximized_horz = 1;
+            ((Ecore_Win32_Window *)window)->state.maximized_horz = 1;
             break;
           case ECORE_WIN32_WINDOW_STATE_MAXIMIZED:
-            ((struct _Ecore_Win32_Window *)window)->state.maximized_horz = 1;
-            ((struct _Ecore_Win32_Window *)window)->state.maximized_vert = 1;
+            ((Ecore_Win32_Window *)window)->state.maximized_horz = 1;
+            ((Ecore_Win32_Window *)window)->state.maximized_vert = 1;
             break;
           case ECORE_WIN32_WINDOW_STATE_SHADED:
-            ((struct _Ecore_Win32_Window *)window)->state.shaded = 1;
+            ((Ecore_Win32_Window *)window)->state.shaded = 1;
             break;
           case ECORE_WIN32_WINDOW_STATE_HIDDEN:
-            ((struct _Ecore_Win32_Window *)window)->state.hidden = 1;
+            ((Ecore_Win32_Window *)window)->state.hidden = 1;
             break;
           case ECORE_WIN32_WINDOW_STATE_FULLSCREEN:
-            ((struct _Ecore_Win32_Window *)window)->state.fullscreen = 1;
+            ((Ecore_Win32_Window *)window)->state.fullscreen = 1;
             break;
           case ECORE_WIN32_WINDOW_STATE_ABOVE:
-            ((struct _Ecore_Win32_Window *)window)->state.above = 1;
+            ((Ecore_Win32_Window *)window)->state.above = 1;
             break;
           case ECORE_WIN32_WINDOW_STATE_BELOW:
-            ((struct _Ecore_Win32_Window *)window)->state.below = 1;
+            ((Ecore_Win32_Window *)window)->state.below = 1;
             break;
           case ECORE_WIN32_WINDOW_STATE_DEMANDS_ATTENTION:
-            ((struct _Ecore_Win32_Window *)window)->state.demands_attention = 1;
+            ((Ecore_Win32_Window *)window)->state.demands_attention = 1;
             break;
           case ECORE_WIN32_WINDOW_STATE_UNKNOWN:
             /* nothing to be done */
@@ -1372,12 +1381,12 @@ ecore_win32_window_state_request_send(Ecore_Win32_Window      *window,
                                       Ecore_Win32_Window_State state,
                                       unsigned int             set)
 {
-   struct _Ecore_Win32_Window *ew;
-   HWND                        w;
+   Ecore_Win32_Window *ew;
+   HWND                w;
 
    if (!window) return;
 
-   ew = (struct _Ecore_Win32_Window *)window;
+   ew = (Ecore_Win32_Window *)window;
    w = ew->window;
 
    INF("sending cursor state");
@@ -1526,31 +1535,31 @@ ecore_win32_window_type_set(Ecore_Win32_Window      *window,
    switch (type)
      {
      case ECORE_WIN32_WINDOW_TYPE_DESKTOP:
-       ((struct _Ecore_Win32_Window *)window)->type.desktop = 1;
+       ((Ecore_Win32_Window *)window)->type.desktop = 1;
        break;
      case ECORE_WIN32_WINDOW_TYPE_DOCK:
-       ((struct _Ecore_Win32_Window *)window)->type.dock = 1;
+       ((Ecore_Win32_Window *)window)->type.dock = 1;
        break;
      case ECORE_WIN32_WINDOW_TYPE_TOOLBAR:
-       ((struct _Ecore_Win32_Window *)window)->type.toolbar = 1;
+       ((Ecore_Win32_Window *)window)->type.toolbar = 1;
        break;
      case ECORE_WIN32_WINDOW_TYPE_MENU:
-       ((struct _Ecore_Win32_Window *)window)->type.menu = 1;
+       ((Ecore_Win32_Window *)window)->type.menu = 1;
        break;
      case ECORE_WIN32_WINDOW_TYPE_UTILITY:
-       ((struct _Ecore_Win32_Window *)window)->type.utility = 1;
+       ((Ecore_Win32_Window *)window)->type.utility = 1;
        break;
      case ECORE_WIN32_WINDOW_TYPE_SPLASH:
-       ((struct _Ecore_Win32_Window *)window)->type.splash = 1;
+       ((Ecore_Win32_Window *)window)->type.splash = 1;
        break;
      case ECORE_WIN32_WINDOW_TYPE_DIALOG:
-       ((struct _Ecore_Win32_Window *)window)->type.dialog = 1;
+       ((Ecore_Win32_Window *)window)->type.dialog = 1;
        break;
      case ECORE_WIN32_WINDOW_TYPE_NORMAL:
-       ((struct _Ecore_Win32_Window *)window)->type.normal = 1;
+       ((Ecore_Win32_Window *)window)->type.normal = 1;
        break;
      case ECORE_WIN32_WINDOW_TYPE_UNKNOWN:
-       ((struct _Ecore_Win32_Window *)window)->type.normal = 1;
+       ((Ecore_Win32_Window *)window)->type.normal = 1;
        break;
      }
 }
index 6884e17..027c4b4 100644 (file)
@@ -50,9 +50,11 @@ extern "C" {
  */
 
 
-#ifndef _ECORE_EVAS_H
-typedef void Ecore_WinCE_Window;
-#endif
+/**
+ * @typedef Ecore_WinCE_Window
+ * Abstract type for a window.
+ */
+typedef struct _Ecore_WinCE_Window Ecore_WinCE_Window;
 
 
 /**
index 89b7906..5638ad3 100644 (file)
@@ -81,10 +81,10 @@ _ecore_wince_window_procedure(HWND   window,
        break;
      case WM_MOUSEMOVE:
        {
-          RECT                        rect;
-          struct _Ecore_WinCE_Window *w = NULL;
+          RECT                rect;
+          Ecore_WinCE_Window *w = NULL;
 
-          w = (struct _Ecore_WinCE_Window *)GetWindowLong(window, GWL_USERDATA);
+          w = (Ecore_WinCE_Window *)GetWindowLong(window, GWL_USERDATA);
 
           if (GetClientRect(window, &rect))
             {
@@ -141,6 +141,8 @@ _ecore_wince_window_procedure(HWND   window,
        _ecore_wince_event_handle_delete_request(data);
        break;
        /* GDI notifications */
+     case WM_ERASEBKGND:
+       return 1;
      case WM_PAINT:
        {
           PAINTSTRUCT paint;
index bbab07f..d5cda30 100644 (file)
@@ -730,7 +730,7 @@ void
 _ecore_wince_event_handle_focus_in(Ecore_WinCE_Callback_Data *msg)
 {
    Ecore_WinCE_Event_Window_Focus_In *e;
-   struct _Ecore_WinCE_Window        *window;
+   Ecore_WinCE_Window                *window;
 
    INF("focus in");
 
@@ -759,7 +759,7 @@ void
 _ecore_wince_event_handle_focus_out(Ecore_WinCE_Callback_Data *msg)
 {
    Ecore_WinCE_Event_Window_Focus_Out *e;
-   struct _Ecore_WinCE_Window         *window;
+   Ecore_WinCE_Window                 *window;
 
    INF("focus out");
 
index db1af7f..747667d 100644 (file)
@@ -99,13 +99,13 @@ ecore_wince_window_new(Ecore_WinCE_Window *parent,
                        int                 width,
                        int                 height)
 {
-   struct _Ecore_WinCE_Window *w;
-   HWND                        window;
-   RECT                        rect;
+   Ecore_WinCE_Window *w;
+   HWND                window;
+   RECT                rect;
 
    INF("creating window");
 
-   w = (struct _Ecore_WinCE_Window *)calloc(1, sizeof(struct _Ecore_WinCE_Window));
+   w = (Ecore_WinCE_Window *)calloc(1, sizeof(Ecore_WinCE_Window));
    if (!w)
      {
         ERR("malloc() failed");
@@ -129,7 +129,7 @@ ecore_wince_window_new(Ecore_WinCE_Window *parent,
                            WS_CAPTION | WS_SYSMENU | WS_VISIBLE,
                            x, y,
                            rect.right - rect.left, rect.bottom - rect.top,
-                           parent ? ((struct _Ecore_WinCE_Window *)parent)->window : NULL,
+                           parent ? ((Ecore_WinCE_Window *)parent)->window : NULL,
                            NULL, _ecore_wince_instance, NULL);
    if (!window)
      {
@@ -177,7 +177,7 @@ ecore_wince_window_free(Ecore_WinCE_Window *window)
 
    INF("destroying window");
 
-   DestroyWindow(((struct _Ecore_WinCE_Window *)window)->window);
+   DestroyWindow(((Ecore_WinCE_Window *)window)->window);
    free(window);
 }
 
@@ -195,7 +195,7 @@ ecore_wince_window_hwnd_get(Ecore_WinCE_Window *window)
    if (!window)
      return NULL;
 
-   return ((struct _Ecore_WinCE_Window *)window)->window;
+   return ((Ecore_WinCE_Window *)window)->window;
 }
 
 /**
@@ -217,12 +217,12 @@ ecore_wince_window_move(Ecore_WinCE_Window *window,
    RECT rect;
    HWND w;
 
-   if (!window || ((struct _Ecore_WinCE_Window *)window)->fullscreen)
+   if (!window || ((Ecore_WinCE_Window *)window)->fullscreen)
      return;
 
    INF("moving window (%dx%d)", x, y);
 
-   w = ((struct _Ecore_WinCE_Window *)window)->window;
+   w = ((Ecore_WinCE_Window *)window)->window;
    if (!GetWindowRect(w, &rect))
      {
         ERR("GetWindowRect() failed");
@@ -254,19 +254,19 @@ ecore_wince_window_resize(Ecore_WinCE_Window *window,
                           int                 width,
                           int                 height)
 {
-   RECT                        rect;
-   struct _Ecore_WinCE_Window *w;
-   DWORD                       style;
-   DWORD                       exstyle;
-   int                         x;
-   int                         y;
-
-   if (!window || ((struct _Ecore_WinCE_Window *)window)->fullscreen)
+   RECT                rect;
+   Ecore_WinCE_Window *w;
+   DWORD               style;
+   DWORD               exstyle;
+   int                 x;
+   int                 y;
+
+   if (!window || ((Ecore_WinCE_Window *)window)->fullscreen)
      return;
 
    INF("resizing window (%dx%d)", width, height);
 
-   w = (struct _Ecore_WinCE_Window *)window;
+   w = (Ecore_WinCE_Window *)window;
    if (!GetWindowRect(w->window, &rect))
      {
         ERR("GetWindowRect() failed");
@@ -324,17 +324,17 @@ ecore_wince_window_move_resize(Ecore_WinCE_Window *window,
                                int                 width,
                                int                 height)
 {
-   RECT                        rect;
-   struct _Ecore_WinCE_Window *w;
-   DWORD                       style;
-   DWORD                       exstyle;
+   RECT                rect;
+   Ecore_WinCE_Window *w;
+   DWORD               style;
+   DWORD               exstyle;
 
-   if (!window || ((struct _Ecore_WinCE_Window *)window)->fullscreen)
+   if (!window || ((Ecore_WinCE_Window *)window)->fullscreen)
      return;
 
    INF("moving and resizing window (%dx%d %dx%d)", x, y, width, height);
 
-   w = ((struct _Ecore_WinCE_Window *)window);
+   w = ((Ecore_WinCE_Window *)window);
    rect.left = 0;
    rect.top = 0;
    rect.right = width;
@@ -379,16 +379,16 @@ ecore_wince_window_show(Ecore_WinCE_Window *window)
 
    INF("showing window");
 
-   if (!ShowWindow(((struct _Ecore_WinCE_Window *)window)->window, SW_SHOWNORMAL))
+   if (!ShowWindow(((Ecore_WinCE_Window *)window)->window, SW_SHOWNORMAL))
      {
         ERR("ShowWindow() failed");
         return;
      }
-   if (!UpdateWindow(((struct _Ecore_WinCE_Window *)window)->window))
+   if (!UpdateWindow(((Ecore_WinCE_Window *)window)->window))
      {
         ERR("UpdateWindow() failed");
      }
-   if (!SendMessage(((struct _Ecore_WinCE_Window *)window)->window, WM_SHOWWINDOW, 1, 0))
+   if (!SendMessage(((Ecore_WinCE_Window *)window)->window, WM_SHOWWINDOW, 1, 0))
      {
         ERR("SendMessage() failed");
      }
@@ -409,12 +409,12 @@ ecore_wince_window_hide(Ecore_WinCE_Window *window)
 
    INF("hiding window");
 
-   if (!ShowWindow(((struct _Ecore_WinCE_Window *)window)->window, SW_HIDE))
+   if (!ShowWindow(((Ecore_WinCE_Window *)window)->window, SW_HIDE))
      {
         ERR("ShowWindow() failed");
         return;
      }
-   if (!SendMessage(((struct _Ecore_WinCE_Window *)window)->window, WM_SHOWWINDOW, 0, 0))
+   if (!SendMessage(((Ecore_WinCE_Window *)window)->window, WM_SHOWWINDOW, 0, 0))
      {
         ERR("SendMessage() failed");
      }
@@ -445,7 +445,7 @@ ecore_wince_window_title_set(Ecore_WinCE_Window *window,
    wtitle = evil_char_to_wchar(title);
    if (!wtitle) return;
 
-   if (!SetWindowText(((struct _Ecore_WinCE_Window *)window)->window, wtitle))
+   if (!SetWindowText(((Ecore_WinCE_Window *)window)->window, wtitle))
      {
         ERR("SetWindowText() failed");
      }
@@ -477,14 +477,14 @@ EAPI void
 ecore_wince_window_backend_set(Ecore_WinCE_Window *window,
                                int                 backend)
 {
-   struct _Ecore_WinCE_Window *w;
+   Ecore_WinCE_Window *w;
 
    if (!window)
      return;
 
    INF("setting backend");
 
-   w = (struct _Ecore_WinCE_Window *)window;
+   w = (Ecore_WinCE_Window *)window;
    w->backend = backend;
 }
 
@@ -503,14 +503,14 @@ ecore_wince_window_backend_set(Ecore_WinCE_Window *window,
 EAPI void
 ecore_wince_window_suspend_cb_set(Ecore_WinCE_Window *window, int (*suspend_cb)(int))
 {
-   struct _Ecore_WinCE_Window *w;
+   Ecore_WinCE_Window *w;
 
    if (!window)
      return;
 
    INF("setting suspend callback");
 
-   w = (struct _Ecore_WinCE_Window *)window;
+   w = (Ecore_WinCE_Window *)window;
    w->suspend_cb = suspend_cb;
 }
 
@@ -529,14 +529,14 @@ ecore_wince_window_suspend_cb_set(Ecore_WinCE_Window *window, int (*suspend_cb)(
 EAPI void
 ecore_wince_window_resume_cb_set(Ecore_WinCE_Window *window, int (*resume_cb)(int))
 {
-   struct _Ecore_WinCE_Window *w;
+   Ecore_WinCE_Window *w;
 
    if (!window)
      return;
 
    INF("setting resume callback");
 
-   w = (struct _Ecore_WinCE_Window *)window;
+   w = (Ecore_WinCE_Window *)window;
    w->resume_cb = resume_cb;
 }
 
@@ -579,7 +579,7 @@ ecore_wince_window_geometry_get(Ecore_WinCE_Window *window,
         return;
      }
 
-   if (!GetClientRect(((struct _Ecore_WinCE_Window *)window)->window,
+   if (!GetClientRect(((Ecore_WinCE_Window *)window)->window,
                       &rect))
      {
         ERR("GetClientRect() failed");
@@ -595,7 +595,7 @@ ecore_wince_window_geometry_get(Ecore_WinCE_Window *window,
    w = rect.right - rect.left;
    h = rect.bottom - rect.top;
 
-   if (!GetWindowRect(((struct _Ecore_WinCE_Window *)window)->window,
+   if (!GetWindowRect(((Ecore_WinCE_Window *)window)->window,
                       &rect))
      {
         ERR("GetWindowRect() failed");
@@ -645,7 +645,7 @@ ecore_wince_window_size_get(Ecore_WinCE_Window *window,
         return;
      }
 
-   if (!GetClientRect(((struct _Ecore_WinCE_Window *)window)->window,
+   if (!GetClientRect(((Ecore_WinCE_Window *)window)->window,
                       &rect))
      {
         ERR("GetClientRect() failed");
@@ -674,13 +674,13 @@ EAPI void
 ecore_wince_window_fullscreen_set(Ecore_WinCE_Window *window,
                                   Eina_Bool           on)
 {
-   struct _Ecore_WinCE_Window *ew;
-   HWND                        w;
-   HWND                        task_bar;
+   Ecore_WinCE_Window *ew;
+   HWND                w;
+   HWND                task_bar;
 
    if (!window) return;
 
-   ew = (struct _Ecore_WinCE_Window *)window;
+   ew = (Ecore_WinCE_Window *)window;
    if (((ew->fullscreen) && (on)) ||
        ((!ew->fullscreen) && (!on)))
      return;
index 151a61e..10cdfd8 100644 (file)
@@ -282,7 +282,8 @@ ecore_x_image_put(Ecore_X_Image *im,
                   int h)
 {
    Ecore_X_GC tgc = 0;
-   
+
+   LOGFN(__FILE__, __LINE__, __FUNCTION__);
    if (!gc)
      {
         XGCValues gcv;
@@ -292,7 +293,8 @@ ecore_x_image_put(Ecore_X_Image *im,
         gc = tgc;
      }
    if (!im->xim) _ecore_x_image_shm_create(im);
-   XShmPutImage(_ecore_x_disp, draw, gc, im->xim, sx, sy, x, y, w, h, False);
+   if (im->xim) 
+     XShmPutImage(_ecore_x_disp, draw, gc, im->xim, sx, sy, x, y, w, h, False);
    if (tgc) ecore_x_gc_free(tgc);
 } /* ecore_x_image_put */
 
index 3607980..99cfb69 100644 (file)
@@ -406,11 +406,13 @@ ecore_x_randr_mode_info_get(Ecore_X_Window root, Ecore_X_Randr_Mode mode)
                   ret->vTotal = res->modes[i].vTotal;
                   ret->name = NULL;
                   ret->nameLength = 0;
-                  if (res->modes[i].nameLength > 0) 
+                  if (res->modes[i].nameLength > 0)
                     {
                        ret->nameLength = res->modes[i].nameLength;
-                       ret->name = strndup(res->modes[i].name, 
-                                           res->modes[i].nameLength);
+                       ret->name = malloc(res->modes[i].nameLength + 1);
+                       if (ret->name)
+                         memcpy(ret->name, res->modes[i].name,
+                                res->modes[i].nameLength + 1);
                     }
                   ret->modeFlags = res->modes[i].modeFlags;
                   break;
@@ -1902,3 +1904,185 @@ ecore_x_randr_screen_reset(Ecore_X_Window root)
                                          Ecore_X_Randr_Unset);
 #endif
 }
+
+/**
+ * @brief set up the backlight level to the given level.
+ * @param root the window's screen which will be set.
+ * @param level of the backlight between 0 and 1
+ */
+
+EAPI void
+ecore_x_randr_screen_backlight_level_set(Ecore_X_Window root,
+                                         double         level)
+{
+#ifdef ECORE_XRANDR
+   RANDR_CHECK_1_2_RET();
+   Atom _backlight;
+   XRRScreenResources *resources = NULL;
+   Ecore_X_Randr_Output output;
+   int o;
+
+   if ((level < 0) || (level > 1))
+     {
+        ERR("Wrong value for the backlight level. It should be between 0 and 1.");
+        return;
+     }
+
+   /*
+    * To make sure that the _backlight atomic property still exists.
+    */
+   _backlight = XInternAtom(_ecore_x_disp, RANDR_PROPERTY_BACKLIGHT, True);
+   if (_backlight == None)
+     {
+        WRN("Backlight setting is not supported on this server or driver");
+        return;
+     }
+
+   /* get the ressources */
+   resources = _ecore_x_randr_get_screen_resources(_ecore_x_disp, root);
+   if (!resources) return;
+
+   for (o = 0; o < resources->noutput; o++)
+     {
+        output = resources->outputs[o];
+        if (ecore_x_randr_output_backlight_level_get(root, output) >= 0)
+          {
+             ecore_x_randr_output_backlight_level_set(root, output, level);
+          }
+     }
+   XRRFreeScreenResources(resources);
+#endif
+}
+
+/*
+ * @brief get the backlight level of the given output
+ * @param root window which's screen should be queried
+ * @param output from which the backlight level should be retrieved
+ * @return the backlight level
+ */
+
+EAPI double
+ecore_x_randr_output_backlight_level_get(Ecore_X_Window       root,
+                                         Ecore_X_Randr_Output output)
+{
+#ifdef ECORE_XRANDR
+   RANDR_CHECK_1_2_RET(-1);
+   Atom actual_type;
+   Atom _backlight;
+   XRRPropertyInfo *info = NULL;
+   double dvalue;
+   int actual_format;
+   long value, max, min;
+   unsigned long nitems;
+   unsigned long bytes_after;
+   unsigned char *prop = NULL;
+
+   /* set backlight variable if not already done */
+
+   _backlight = XInternAtom(_ecore_x_disp, RANDR_PROPERTY_BACKLIGHT, True);
+   if (_backlight == None)
+     {
+        ERR("Backlight property is not suppported on this server or driver");
+        return -1;
+     }
+
+   if (!_ecore_x_randr_output_validate(root, output))
+     {
+        ERR("Invalid output");
+        return -1;
+     }
+
+   if (XRRGetOutputProperty(_ecore_x_disp, output, _backlight,
+                            0, 4, False, False, None,
+                            &actual_type, &actual_format,
+                            &nitems, &bytes_after, &prop) != Success)
+     {
+        WRN("Backlight not supported on this output");
+        return -1;
+     }
+
+   if ((actual_type != XA_INTEGER) || (nitems != 1) || (actual_format != 32)) return -1;
+
+   value = *((long *)prop);
+   free (prop);
+
+   /* I have the current value of the backlight */
+   /* Now retrieve the min and max intensities of the output */
+   info = XRRQueryOutputProperty(_ecore_x_disp, output, _backlight);
+   if (info)
+     {
+        dvalue = -1;
+        if ((info->range) && (info->num_values == 2))
+          {
+             /* finally convert the current value in the interval [0..1] */
+              min = info->values[0];
+              max = info->values[1];
+              dvalue = ((double)(value - min)) / ((double)(max - min));
+          }
+        free(info);
+        return dvalue;
+     }
+#endif
+   return -1;
+}
+
+/*
+ * @brief set the backlight level of a given output
+ * @param root window which's screen should be queried
+ * @param output that should be set
+ * @param level for which the backlight should be set
+ * @return EINA_TRUE in case of success
+ */
+
+EAPI Eina_Bool
+ecore_x_randr_output_backlight_level_set(Ecore_X_Window       root,
+                                         Ecore_X_Randr_Output output,
+                                         double               level)
+{
+#ifdef ECORE_XRANDR
+   RANDR_CHECK_1_2_RET(EINA_FALSE);
+   Atom _backlight;
+   XRRPropertyInfo *info = NULL;
+   double min, max, tmp;
+   long new;
+
+   if ((level < 0) || (level > 1))
+     {
+        ERR("Backlight level should be between 0 and 1");
+        return EINA_FALSE;
+     }
+
+   if (!_ecore_x_randr_output_validate(root, output))
+     {
+        ERR("Wrong output value");
+        return EINA_FALSE;
+     }
+
+   _backlight = XInternAtom(_ecore_x_disp, RANDR_PROPERTY_BACKLIGHT, True);
+   if (_backlight == None)
+     {
+        WRN("Backlight property is not suppported on this server or driver");
+        return EINA_FALSE;
+     }
+
+   info = XRRQueryOutputProperty(_ecore_x_disp, output, _backlight);
+   if (info)
+     {
+        if ((info->range) && (info->num_values == 2))
+          {
+             min = info->values[0];
+             max = info->values[1];
+             tmp = (level * (max - min)) + min;
+             new = tmp;
+             if (new > max) new = max;
+             if (new < min) new = min;
+             XRRChangeOutputProperty(_ecore_x_disp, output, _backlight, XA_INTEGER, 32,
+                                     PropModeReplace, (unsigned char *)&new, 1);
+             XFlush(_ecore_x_disp);
+          }
+        free(info);
+        return EINA_TRUE;
+     }
+#endif
+   return EINA_FALSE;
+}
diff --git a/win32/MANIFEST.txt b/win32/MANIFEST.txt
deleted file mode 100644 (file)
index 8663237..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-\r
- This folder content:\r
-\r
-   common                       - common sources necessary to build efl with MSVC\r
-     config.h                     - configuration file\r
-\r
-   vs9                          - Visual Studio 9 project files\r
-     ecore.sln                    - Evil MSVC solution\r
-     libecore.vcproj              - libecore project\r
-     libecore_evas.vcproj         - libecore project\r
-     libecore_file.vcproj         - libecore project\r
-     libecore_input.vcproj        - libecore project\r
-     libecore_input_evas.vcproj   - libecore project\r
-     libecore_win32.vcproj        - libecore project\r
-\r
-   start.bat                    - batch script to start work with the solution\r
-   MANIFEST.txt                 - this file\r
-   README.txt                   - about this folder\r
diff --git a/win32/README.txt b/win32/README.txt
deleted file mode 100644 (file)
index 27b3994..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
- This folder contains Microsoft Visual Studio projects and some sources for\r
- building Evil.\r
-\r
-Important:\r
-\r
- Do not launch manually any solutions or projects in the folder, to start\r
- a solution run the start.bat script, it will setup environment for\r
- projects and will check system requirements. start.bat will detect\r
- automatically the version of Visual Studio which is installed. It\r
- currently supports Visual Studio 2008, Visual Studio 2010 should convert\r
- the files.\r
-\r
- Before start make sure that the EXT_DIR variable points to proper\r
- extern directory. Extern directory layout and content (may be different, but\r
- this is guaranteed to be enough):\r
-\r
-  extern\r
-    bin\r
-      freetype6.dll\r
-      iconv.dll\r
-      jpeg62.dll\r
-      libpng14.dll\r
-      libtiff3.dll\r
-      libungif4.dll\r
-      zlib1.dll\r
-\r
-    include\r
-      freetype\r
-        ... (freetype includes)\r
-      sys\r
-        param.h\r
-\r
-      ft2build.h\r
-      gif_lib.h\r
-      iconv.h\r
-      jconfig.h\r
-      jerror.h\r
-      jmorecfg.h\r
-      jpeglib.h\r
-      png.h\r
-      pngconf.h\r
-      tiff.h\r
-      tiffconf.h\r
-      tiffio.h\r
-      tiffvers.h\r
-      zconf.h\r
-      zlib.h\r
-\r
-    lib\r
-      freetype.lib\r
-      iconv.lib\r
-      jpeg.lib\r
-      libpng.lib\r
-      libtiff.lib\r
-      libungif.lib\r
-      zlib.lib\r
diff --git a/win32/common/config.h b/win32/common/config.h
deleted file mode 100644 (file)
index 2bc604f..0000000
+++ /dev/null
@@ -1,417 +0,0 @@
-/* config.h.  Generated from config.h.in by configure.  */
-/* config.h.in.  Generated from configure.ac by autoheader.  */
-
-/* Define if building universal (internal helper macro) */
-/* #undef AC_APPLE_UNIVERSAL_BUILD */
-
-/* Build Ecore_Cocoa Module */
-/* #undef BUILD_ECORE_COCOA */
-
-/* Build Ecore_Con Module */
-/* #undef BUILD_ECORE_CON */
-
-/* Build Ecore_DirectFB Module */
-/* #undef BUILD_ECORE_DIRECTFB */
-
-/* Build Ecore_Evas Module */
-#define BUILD_ECORE_EVAS 1
-
-/* Support for Cocoa Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_COCOA */
-
-/* Support for Direct3d Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_DIRECT3D */
-
-/* Support for DirectFB Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_DIRECTFB */
-
-/* Support for Linux Framebuffer Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_FB */
-
-/* Support for Glew OpenGL Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_OPENGL_GLEW */
-
-/* Support for OpenGL SDL Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_OPENGL_SDL */
-
-/* Support for OpenGL Xlib Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_OPENGL_X11 */
-
-/* Support for SVN SDL */
-/* #undef BUILD_ECORE_EVAS_SDL_130 */
-
-/* Support for 16 bpp Software DirectDraw Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_SOFTWARE_16_DDRAW */
-
-/* Support for 16 bpp Software Windows CE Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_SOFTWARE_16_WINCE */
-
-/* Support for Software Xlib 16 bits Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_SOFTWARE_16_X11 */
-
-/* Support for Software 8bit X11 Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_SOFTWARE_8_X11 */
-
-/* Support for Software Buffer Engine in Ecore_Evas */
-#define BUILD_ECORE_EVAS_SOFTWARE_BUFFER 1
-
-/* Support for Software DirectDraw Engine in Ecore_Evas */
-#define BUILD_ECORE_EVAS_SOFTWARE_DDRAW 1
-
-/* Support for Software GDI Engine in Ecore_Evas */
-#define BUILD_ECORE_EVAS_SOFTWARE_GDI 1
-
-/* Support for Software SDL Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_SOFTWARE_SDL */
-
-/* Support for Software X11 Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_SOFTWARE_X11 */
-
-/* Evas Software XCB Engine Support */
-/* #undef BUILD_ECORE_EVAS_SOFTWARE_XCB */
-
-/* Evas Software Xlib Engine Support */
-/* #undef BUILD_ECORE_EVAS_SOFTWARE_XLIB */
-
-/* Support for Win32 Engine in Ecore_Evas */
-#define BUILD_ECORE_EVAS_WIN32 1
-
-/* Support for X Window Engines in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_X11 */
-
-/* Support for XRender Xlib Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_XRENDER_X11 */
-
-/* Support for XRender XCB Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_XRENDER_XCB */
-
-/* Build Ecore_FB Module */
-/* #undef BUILD_ECORE_FB */
-
-/* Build Ecore_File Module */
-#define BUILD_ECORE_FILE 1
-
-/* Build Ecore_Imf Module */
-#define BUILD_ECORE_IMF 1
-
-/* Build Ecore_Imf_Evas Module */
-#define BUILD_ECORE_IMF_EVAS 1
-
-/* Build Ecore_Input Module */
-#define BUILD_ECORE_INPUT 1
-
-/* Build Ecore_Input_Evas Module */
-#define BUILD_ECORE_INPUT_EVAS 1
-
-/* Build Ecore_Ipc Module */
-/* #undef BUILD_ECORE_IPC */
-
-/* Build Ecore_Sdl Module */
-/* #undef BUILD_ECORE_SDL */
-
-/* Build Ecore_Win32 Module */
-#define BUILD_ECORE_WIN32 1
-
-/* Build Ecore_WinCE Module */
-/* #undef BUILD_ECORE_WINCE */
-
-/* Build Ecore_X Module */
-/* #undef BUILD_ECORE_X */
-
-/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
-   systems. This function is required for `alloca.c' support on those systems.
-   */
-/* #undef CRAY_STACKSEG_END */
-
-/* Define to 1 if using `alloca.c'. */
-/* #undef C_ALLOCA */
-
-/* Build support for XCB composite */
-/* #undef ECORE_XCB_COMPOSITE */
-
-/* Build support for XCB damage */
-/* #undef ECORE_XCB_DAMAGE */
-
-/* Build support for XCB dpms */
-/* #undef ECORE_XCB_DPMS */
-
-/* Build support for XCB xfixes */
-/* #undef ECORE_XCB_FIXES */
-
-/* Build support for XCB randr */
-/* #undef ECORE_XCB_RANDR */
-
-/* Build support for XCB render */
-/* #undef ECORE_XCB_RENDER */
-
-/* Build support for XCB screensaver */
-/* #undef ECORE_XCB_SCREENSAVER */
-
-/* Build support for XCB shape */
-/* #undef ECORE_XCB_SHAPE */
-
-/* Build support for XCB sync */
-/* #undef ECORE_XCB_SYNC */
-
-/* Build support for XCB xinerama */
-/* #undef ECORE_XCB_XINERAMA */
-
-/* Build support for XCB xprint */
-/* #undef ECORE_XCB_XPRINT */
-
-/* Build support for XCB xtest */
-/* #undef ECORE_XCB_XTEST */
-
-/* Build support for Xcomposite */
-/* #undef ECORE_XCOMPOSITE */
-
-/* Build support for Xcursor */
-/* #undef ECORE_XCURSOR */
-
-/* Build support for Xdamage */
-/* #undef ECORE_XDAMAGE */
-
-/* Build support for Xdpms */
-/* #undef ECORE_XDPMS */
-
-/* Build support for Xfixes */
-/* #undef ECORE_XFIXES */
-
-/* Build support for Xi2 */
-/* #undef ECORE_XI2 */
-
-/* Build support for Xinerama */
-/* #undef ECORE_XINERAMA */
-
-/* Build support for Xkb */
-/* #undef ECORE_XKB */
-
-/* Build support for Xprint */
-/* #undef ECORE_XPRINT */
-
-/* Build support for Xrandr */
-/* #undef ECORE_XRANDR */
-
-/* Build support for Xrender */
-/* #undef ECORE_XRENDER */
-
-/* Build support for Xss */
-/* #undef ECORE_XSS */
-
-/* Build support for Xtest */
-/* #undef ECORE_XTEST */
-
-/* Define to mention that POSIX threads are supported */
-/* #define EFL_HAVE_PTHREAD 1 */
-
-/* Define to mention that POSIX threads spinlocks are supported */
-/* #undef EFL_HAVE_PTHREAD_SPINLOCK */
-
-/* if set, logging is limited to this amount. */
-/* #undef EINA_LOG_LEVEL_MAXIMUM */
-
-/* Enable X Input Method */
-#define ENABLE_XIM 1
-
-/* Always integrate glib if support compiled */
-/* #undef GLIB_INTEGRATION_ALWAYS */
-
-/* Have abstract sockets namespace */
-#define HAVE_ABSTRACT_SOCKETS 1
-
-/* Define to 1 if you have `alloca', as a function or macro. */
-#define HAVE_ALLOCA 1
-
-/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
-   */
-/* #undef HAVE_ALLOCA_H */
-
-/* Define to 1 if you have the <arpa/inet.h> header file. */
-/* #undef HAVE_ARPA_INET_H */
-
-/* Define to 1 if you have the <arpa/nameser.h> header file. */
-/* #undef HAVE_ARPA_NAMESER_H */
-
-/* mkdirat exists */
-/* #undef HAVE_ATFILE_SOURCE */
-
-/* Build Ecore_Con_Info with c-ares support */
-/* #undef HAVE_CARES */
-
-/* Downloading with CURL */
-/* #undef HAVE_CURL */
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#define HAVE_DLFCN_H 1
-
-/* Defined to 1 if XCB is enabled. */
-/* #undef HAVE_ECORE_X_XCB */
-
-/* Defined to 1 if Xlib is enabled. */
-/* #undef HAVE_ECORE_X_XLIB */
-
-/* Set to 1 if Evil library is installed */
-#define HAVE_EVIL 1
-
-/* Define to 1 if you have the <features.h> header file. */
-/* #undef HAVE_FEATURES_H */
-
-/* Define to 1 if you have the `gettimeofday' function. */
-#define HAVE_GETTIMEOFDAY 1
-
-/* Have GLib */
-/* #undef HAVE_GLIB */
-
-/* File monitoring with Inotify */
-/* #undef HAVE_INOTIFY */
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#define HAVE_INTTYPES_H 1
-
-/* Define to 1 if you have the <langinfo.h> header file. */
-/* #undef HAVE_LANGINFO_H */
-
-/* Define to 1 if you have the <locale.h> header file. */
-/* #undef HAVE_LOCALE_H */
-
-/* Gather memory statistic */
-/* #undef HAVE_MALLINFO */
-
-/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the `mkdirat' function. */
-/* #undef HAVE_MKDIRAT */
-
-/* Define to 1 if you have the <netdb.h> header file. */
-/* #undef HAVE_NETDB_H */
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-/* #undef HAVE_NETINET_IN_H */
-
-/* Define to 1 if you have the <netinet/tcp.h> header file. */
-/* #undef HAVE_NETINET_TCP_H */
-
-/* File monitoring with Windows notification */
-#define HAVE_NOTIFY_WIN32 1
-
-/* File monitoring with polling */
-#define HAVE_POLL 1
-
-/* Define to 1 if you have the <signal.h> header file. */
-/* #undef HAVE_SIGNAL_H */
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#define HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the `strlcpy' function. */
-/* #undef HAVE_STRLCPY */
-
-/* Define to 1 if you have the <sys/epoll.h> header file. */
-/* #undef HAVE_SYS_EPOLL_H */
-
-/* File monitoring with Inotify - sys/inotify.h */
-/* #undef HAVE_SYS_INOTIFY */
-
-/* Define to 1 if you have the <sys/mman.h> header file. */
-#define HAVE_SYS_MMAN_H 1
-
-/* Define to 1 if you have the <sys/resource.h> header file. */
-/* #undef HAVE_SYS_RESOURCE_H */
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-/* #undef HAVE_SYS_SOCKET_H */
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#define HAVE_SYS_TIME_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the <sys/un.h> header file. */
-/* #undef HAVE_SYS_UN_H */
-
-/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
-/* #undef HAVE_SYS_WAIT_H */
-
-/* Build Ecore_FB Touchscreen Code */
-/* #undef HAVE_TSLIB */
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define to 1 if you have the <ws2tcpip.h> header file. */
-#define HAVE_WS2TCPIP_H 1
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
-#define LT_OBJDIR ".libs/"
-
-/* Name of package */
-#define PACKAGE "ecore"
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "enlightenment-devel@lists.sourceforge.net"
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "ecore"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "ecore 1.0.0"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "ecore"
-
-/* Define to the home page for this package. */
-#define PACKAGE_URL ""
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "1.0.0"
-
-/* default value since PATH_MAX is not defined */
-/* #undef PATH_MAX */
-
-/* The size of `int', as computed by sizeof. */
-#define SIZEOF_INT 4
-
-/* The size of `long', as computed by sizeof. */
-#define SIZEOF_LONG 4
-
-/* If using the C implementation of alloca, define if you know the
-   direction of stack growth for your system; otherwise it will be
-   automatically deduced at runtime.
-       STACK_DIRECTION > 0 => grows toward higher addresses
-       STACK_DIRECTION < 0 => grows toward lower addresses
-       STACK_DIRECTION = 0 => direction of growth unknown */
-/* #undef STACK_DIRECTION */
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-
-/* Version number of package */
-#define VERSION "1.0.0"
-
-/* Major version */
-#define VERS_MAJ 1
-
-/* Micro version */
-#define VERS_MIC 0
-
-/* Minor version */
-#define VERS_MIN 0
-
-/* Revison */
-#define VERS_REV 0
diff --git a/win32/start.bat b/win32/start.bat
deleted file mode 100644 (file)
index 478c4a9..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-@echo off\r
-\r
-rem Set external libraries directory.\r
-set EXT_DIR=%cd%\..\..\..\extern\r
-\r
-if not exist %EXT_DIR% (\r
-       set EXT_DIR=\r
-       echo ERROR: External libs dir is not set.\r
-       pause\r
-       goto END\r
-)\r
-\r
-if "%DXSDK_DIR%" == "" (\r
-       echo ERROR: Microsoft DirectX SDK is not installed.\r
-       pause\r
-       goto END\r
-)\r
-\r
-rem Check for basic requirements for Visual Studio 2008\r
-if "%VS90COMNTOOLS%" == "" (\r
-       echo ERROR: Microsoft Visual Studio 2008 is not installed.\r
-       echo ERROR: Try to launch Microsoft Visual Studio 2005.\r
-       pause\r
-       goto NOVS9\r
-)\r
-\r
-set PROJECT_TYPE=vs9\r
-set VSCOMMONTOOLS=%VS90COMNTOOLS%vsvars32.bat\r
-\r
-goto STARTVS\r
-\r
-:NOVS9\r
-\r
-rem Check for basic requirements for Visual Studio 2005\r
-if "%VS80COMNTOOLS%" == "" (\r
-       echo ERROR: Microsoft Visual Studio 2005 is not installed.\r
-       pause\r
-       goto END\r
-)\r
-\r
-set PROJECT_TYPE=vs8\r
-set VSCOMMONTOOLS=%VS80COMNTOOLS%vsvars32.bat\r
-\r
-rem Patching Eina\r
-patch.exe --binary -p1 < %cd%\patch\eina.diff\r
-echo INFO: Eina patched.\r
-\r
-pause\r
-\r
-:STARTVS\r
-\r
-rem Setup common Win32 environment variables\r
-\r
-rem Add DirectX includes and libraries dirs.\r
-set INCLUDE=%DXSDK_DIR%Include;%INCLUDE%\r
-set LIB=%DXSDK_DIR%Lib\x86;%LIB%\r
-\r
-rem Add Evil lib path\r
-set EvilInclude=%cd%\..\..\evil\src\lib\r
-set EvilCommon=%cd%\..\..\evil\win32\common\r
-set EvilOut=%cd%\..\..\evil\win32\%PROJECT_TYPE%\out\r
-\r
-set INCLUDE=%EvilCommon%;%EvilInclude%;%EvilInclude%\dlfcn;%INCLUDE%\r
-set LIB=%EvilOut%;%LIB%\r
-\r
-rem Add Eina lib path\r
-set EinaInclude=%cd%\..\..\eina\src\include\r
-set EinaCommon=%cd%\..\..\eina\win32\common\r
-set EinaOut=%cd%\..\..\eina\win32\%PROJECT_TYPE%\out\r
-\r
-set INCLUDE=%EinaInclude%;%EinaCommon%;%INCLUDE%\r
-set LIB=%EinaOut%;%LIB%\r
-\r
-rem Add Eet lib path\r
-set EetInclude=%cd%\..\..\eet\src\lib\r
-set EetOut=%cd%\..\..\eet\win32\%PROJECT_TYPE%\out\r
-\r
-set INCLUDE=%EetInclude%;%INCLUDE%\r
-set LIB=%EetOut%;%LIB%\r
-\r
-rem Add Evas lib path\r
-set EvasInclude=%cd%\..\..\evas\src\lib;%cd%\..\..\evas\src\modules\engines\buffer;%cd%\..\..\evas\src\modules\engines\software_gdi;%cd%\..\..\evas\src\modules\engines\software_ddraw\r
-set EvasOut=%cd%\..\..\evas\win32\%PROJECT_TYPE%\out\r
-\r
-set INCLUDE=%EvasInclude%;%INCLUDE%\r
-set LIB=%EvasOut%;%LIB%\r
-\r
-rem Add installation directory pathes.\r
-set INCLUDE=%EXT_DIR%\include;%INCLUDE%\r
-set LIB=%EXT_DIR%\lib;%LIB%\r
-\r
-set INCLUDE=%cd%\common;%cd%\..\src\lib\ecore;%cd%\..\src\lib\ecore_input;%cd%\..\src\lib\ecore_input_evas;%cd%\..\src\lib\ecore_win32;%INCLUDE%\r
-\r
-set SolutionDirectory=%cd%\%PROJECT_TYPE%\r
-set DebugOutputDirectory=%SolutionDirectory%\out\r
-set ReleaseOutputDirectory=%SolutionDirectory%\out\r
-set DebugLibraryDirectory=%SolutionDirectory%\out\r
-set ReleaseLibraryDirectory=%SolutionDirectory%\out\r
-set TemporaryDirectory=%SolutionDirectory%\temp\r
-\r
-rem Setting environment for using Microsoft Visual Studio x86 tools.\r
-call "%VSCOMMONTOOLS%"\r
-\r
-%PROJECT_TYPE%\ecore.sln\r
-\r
-:END\r
diff --git a/win32/vs9/ecore.sln b/win32/vs9/ecore.sln
deleted file mode 100644 (file)
index bf713fe..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-\r
-Microsoft Visual Studio Solution File, Format Version 10.00\r
-# Visual Studio 2008\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libecore", "libecore.vcproj", "{689B4F2B-666D-439F-9BF3-1203D813DE3F}"\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libecore_win32", "libecore_win32.vcproj", "{3266A791-E050-48C1-A114-798B98CAB12C}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {689B4F2B-666D-439F-9BF3-1203D813DE3F} = {689B4F2B-666D-439F-9BF3-1203D813DE3F}\r
-               {1EA2B2BF-E021-4611-AEEC-5EED621347B6} = {1EA2B2BF-E021-4611-AEEC-5EED621347B6}\r
-       EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libecore_evas", "libecore_evas.vcproj", "{DE0016EC-1096-42FF-A2BA-BDCFD3A95E50}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {689B4F2B-666D-439F-9BF3-1203D813DE3F} = {689B4F2B-666D-439F-9BF3-1203D813DE3F}\r
-               {3F8D2B53-364C-40A4-9F0E-18C134010223} = {3F8D2B53-364C-40A4-9F0E-18C134010223}\r
-               {3266A791-E050-48C1-A114-798B98CAB12C} = {3266A791-E050-48C1-A114-798B98CAB12C}\r
-       EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libecore_file", "libecore_file.vcproj", "{EAD9796F-A372-4505-8BF6-520AA6686F27}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {689B4F2B-666D-439F-9BF3-1203D813DE3F} = {689B4F2B-666D-439F-9BF3-1203D813DE3F}\r
-       EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libecore_input", "libecore_input.vcproj", "{1EA2B2BF-E021-4611-AEEC-5EED621347B6}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {689B4F2B-666D-439F-9BF3-1203D813DE3F} = {689B4F2B-666D-439F-9BF3-1203D813DE3F}\r
-       EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libecore_input_evas", "libecore_input_evas.vcproj", "{3F8D2B53-364C-40A4-9F0E-18C134010223}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {1EA2B2BF-E021-4611-AEEC-5EED621347B6} = {1EA2B2BF-E021-4611-AEEC-5EED621347B6}\r
-       EndProjectSection\r
-EndProject\r
-Global\r
-       GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
-               Debug|Win32 = Debug|Win32\r
-               Release|Win32 = Release|Win32\r
-       EndGlobalSection\r
-       GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
-               {689B4F2B-666D-439F-9BF3-1203D813DE3F}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {689B4F2B-666D-439F-9BF3-1203D813DE3F}.Debug|Win32.Build.0 = Debug|Win32\r
-               {689B4F2B-666D-439F-9BF3-1203D813DE3F}.Release|Win32.ActiveCfg = Release|Win32\r
-               {689B4F2B-666D-439F-9BF3-1203D813DE3F}.Release|Win32.Build.0 = Release|Win32\r
-               {3266A791-E050-48C1-A114-798B98CAB12C}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {3266A791-E050-48C1-A114-798B98CAB12C}.Debug|Win32.Build.0 = Debug|Win32\r
-               {3266A791-E050-48C1-A114-798B98CAB12C}.Release|Win32.ActiveCfg = Release|Win32\r
-               {3266A791-E050-48C1-A114-798B98CAB12C}.Release|Win32.Build.0 = Release|Win32\r
-               {DE0016EC-1096-42FF-A2BA-BDCFD3A95E50}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {DE0016EC-1096-42FF-A2BA-BDCFD3A95E50}.Debug|Win32.Build.0 = Debug|Win32\r
-               {DE0016EC-1096-42FF-A2BA-BDCFD3A95E50}.Release|Win32.ActiveCfg = Release|Win32\r
-               {DE0016EC-1096-42FF-A2BA-BDCFD3A95E50}.Release|Win32.Build.0 = Release|Win32\r
-               {EAD9796F-A372-4505-8BF6-520AA6686F27}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {EAD9796F-A372-4505-8BF6-520AA6686F27}.Debug|Win32.Build.0 = Debug|Win32\r
-               {EAD9796F-A372-4505-8BF6-520AA6686F27}.Release|Win32.ActiveCfg = Release|Win32\r
-               {EAD9796F-A372-4505-8BF6-520AA6686F27}.Release|Win32.Build.0 = Release|Win32\r
-               {1EA2B2BF-E021-4611-AEEC-5EED621347B6}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {1EA2B2BF-E021-4611-AEEC-5EED621347B6}.Debug|Win32.Build.0 = Debug|Win32\r
-               {1EA2B2BF-E021-4611-AEEC-5EED621347B6}.Release|Win32.ActiveCfg = Release|Win32\r
-               {1EA2B2BF-E021-4611-AEEC-5EED621347B6}.Release|Win32.Build.0 = Release|Win32\r
-               {3F8D2B53-364C-40A4-9F0E-18C134010223}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {3F8D2B53-364C-40A4-9F0E-18C134010223}.Debug|Win32.Build.0 = Debug|Win32\r
-               {3F8D2B53-364C-40A4-9F0E-18C134010223}.Release|Win32.ActiveCfg = Release|Win32\r
-               {3F8D2B53-364C-40A4-9F0E-18C134010223}.Release|Win32.Build.0 = Release|Win32\r
-       EndGlobalSection\r
-       GlobalSection(SolutionProperties) = preSolution\r
-               HideSolutionNode = FALSE\r
-       EndGlobalSection\r
-EndGlobal\r
diff --git a/win32/vs9/libecore.vcproj b/win32/vs9/libecore.vcproj
deleted file mode 100644 (file)
index 33f1aeb..0000000
+++ /dev/null
@@ -1,290 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="9,00"\r
-       Name="libecore"\r
-       ProjectGUID="{689B4F2B-666D-439F-9BF3-1203D813DE3F}"\r
-       RootNamespace="libecore"\r
-       Keyword="Win32Proj"\r
-       TargetFrameworkVersion="131072"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       OutputDirectory="$(DebugOutputDirectory)"\r
-                       IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       CharacterSet="0"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               AdditionalIncludeDirectories="$(INCLUDE)"\r
-                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EFL_ECORE_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=_stricmp;finite=_finite;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__=;_CRT_SECURE_NO_WARNINGS;HAVE_GETTIMEOFDAY;EFL_HAVE_THREADS;EFL_HAVE_WIN32_THREADS"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="4"\r
-                               CompileAs="0"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               IgnoreImportLibrary="false"\r
-                               LinkLibraryDependencies="true"\r
-                               UseLibraryDependencyInputs="false"\r
-                               AdditionalDependencies="libeina.lib libevil.lib ws2_32.lib"\r
-                               OutputFile="$(OutDir)\libecore.dll"\r
-                               LinkIncremental="2"\r
-                               AdditionalLibraryDirectories="$(LIB); $(DebugLibraryDirectory)"\r
-                               AddModuleNamesToAssembly=""\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="2"\r
-                               RandomizedBaseAddress="1"\r
-                               DataExecutionPrevention="0"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       OutputDirectory="$(ReleaseOutputDirectory)"\r
-                       IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       CharacterSet="0"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               AdditionalIncludeDirectories="$(INCLUDE)"\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;EFL_ECORE_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=_stricmp;finite=_finite;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__=;_CRT_SECURE_NO_WARNINGS;HAVE_GETTIMEOFDAY;EFL_HAVE_THREADS;EFL_HAVE_WIN32_THREADS"\r
-                               RuntimeLibrary="2"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="0"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               IgnoreImportLibrary="false"\r
-                               LinkLibraryDependencies="true"\r
-                               UseLibraryDependencyInputs="false"\r
-                               AdditionalDependencies="libeina.lib libevil.lib ws2_32.lib"\r
-                               OutputFile="$(OutDir)\libecore.dll"\r
-                               LinkIncremental="1"\r
-                               AdditionalLibraryDirectories="$(LIB); $(ReleaseLibraryDirectory)"\r
-                               AddModuleNamesToAssembly=""\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="2"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               RandomizedBaseAddress="1"\r
-                               DataExecutionPrevention="0"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-               <Filter\r
-                       Name="Header Files"\r
-                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
-                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
-                       >\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\Ecore.h"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\Ecore_Getopt.h"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\ecore_private.h"\r
-                               >\r
-                       </File>\r
-               </Filter>\r
-               <Filter\r
-                       Name="Resource Files"\r
-                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
-                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
-                       >\r
-               </Filter>\r
-               <Filter\r
-                       Name="Source Files"\r
-                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
-                       >\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\ecore.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\ecore_anim.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\ecore_app.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\ecore_events.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\ecore_exe_win32.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\ecore_getopt.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\ecore_glib.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\ecore_idle_enterer.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\ecore_idle_exiter.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\ecore_idler.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\ecore_job.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\ecore_main.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\ecore_pipe.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\ecore_poll.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\ecore_thread.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\ecore_time.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore\ecore_timer.c"\r
-                               >\r
-                       </File>\r
-               </Filter>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r
diff --git a/win32/vs9/libecore_evas.vcproj b/win32/vs9/libecore_evas.vcproj
deleted file mode 100644 (file)
index 692b8ce..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="9,00"\r
-       Name="libecore_evas"\r
-       ProjectGUID="{DE0016EC-1096-42FF-A2BA-BDCFD3A95E50}"\r
-       RootNamespace="libecore_evas"\r
-       Keyword="Win32Proj"\r
-       TargetFrameworkVersion="131072"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       OutputDirectory="$(DebugOutputDirectory)"\r
-                       IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       CharacterSet="0"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               AdditionalIncludeDirectories="$(INCLUDE)"\r
-                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EFL_ECORE_EVAS_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=stricmp;HAVE_CONFIG_H;HAVE_EVIL;BUILD_ECORE_WIN32;__UNUSED__=;_CRT_SECURE_NO_WARNINGS"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="4"\r
-                               CompileAs="0"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               IgnoreImportLibrary="false"\r
-                               LinkLibraryDependencies="true"\r
-                               UseLibraryDependencyInputs="false"\r
-                               AdditionalDependencies="libevas.lib libeina.lib libevil.lib"\r
-                               OutputFile="$(OutDir)\libecore_evas.dll"\r
-                               LinkIncremental="2"\r
-                               AdditionalLibraryDirectories="$(LIB); $(DebugLibraryDirectory)"\r
-                               AddModuleNamesToAssembly=""\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="2"\r
-                               RandomizedBaseAddress="1"\r
-                               DataExecutionPrevention="0"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       OutputDirectory="$(ReleaseOutputDirectory)"\r
-                       IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       CharacterSet="0"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               AdditionalIncludeDirectories="$(INCLUDE)"\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;EFL_ECORE_EVAS_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=stricmp;HAVE_CONFIG_H;HAVE_EVIL;BUILD_ECORE_WIN32;__UNUSED__=;_CRT_SECURE_NO_WARNINGS"\r
-                               RuntimeLibrary="2"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="0"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               IgnoreImportLibrary="false"\r
-                               LinkLibraryDependencies="true"\r
-                               UseLibraryDependencyInputs="false"\r
-                               AdditionalDependencies="libevas.lib libeina.lib libevil.lib"\r
-                               OutputFile="$(OutDir)\libecore_evas.dll"\r
-                               LinkIncremental="1"\r
-                               AdditionalLibraryDirectories="$(LIB); $(ReleaseLibraryDirectory)"\r
-                               AddModuleNamesToAssembly=""\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="2"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               RandomizedBaseAddress="1"\r
-                               DataExecutionPrevention="0"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-               <Filter\r
-                       Name="Header Files"\r
-                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
-                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
-                       >\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_evas\Ecore_Evas.h"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_evas\ecore_evas_private.h"\r
-                               >\r
-                       </File>\r
-               </Filter>\r
-               <Filter\r
-                       Name="Resource Files"\r
-                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
-                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
-                       >\r
-               </Filter>\r
-               <Filter\r
-                       Name="Source Files"\r
-                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
-                       >\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_evas\ecore_evas.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_evas\ecore_evas_buffer.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_evas\ecore_evas_win32.c"\r
-                               >\r
-                       </File>\r
-               </Filter>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r
diff --git a/win32/vs9/libecore_file.vcproj b/win32/vs9/libecore_file.vcproj
deleted file mode 100644 (file)
index 66ec7d4..0000000
+++ /dev/null
@@ -1,242 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="9,00"\r
-       Name="libecore_file"\r
-       ProjectGUID="{EAD9796F-A372-4505-8BF6-520AA6686F27}"\r
-       RootNamespace="libecore_file"\r
-       Keyword="Win32Proj"\r
-       TargetFrameworkVersion="131072"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       OutputDirectory="$(DebugOutputDirectory)"\r
-                       IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       CharacterSet="0"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               AdditionalIncludeDirectories="$(INCLUDE)"\r
-                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EFL_ECORE_FILE_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=stricmp;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__="\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="4"\r
-                               CompileAs="0"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               IgnoreImportLibrary="false"\r
-                               LinkLibraryDependencies="true"\r
-                               UseLibraryDependencyInputs="false"\r
-                               AdditionalDependencies="libecore.lib libeina.lib libevil.lib"\r
-                               OutputFile="$(OutDir)\libecore_file.dll"\r
-                               LinkIncremental="2"\r
-                               AdditionalLibraryDirectories="$(LIB); $(DebugLibraryDirectory)"\r
-                               AddModuleNamesToAssembly=""\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="2"\r
-                               RandomizedBaseAddress="1"\r
-                               DataExecutionPrevention="0"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       OutputDirectory="$(ReleaseOutputDirectory)"\r
-                       IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       CharacterSet="0"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               AdditionalIncludeDirectories="$(INCLUDE)"\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;EFL_ECORE_FILE_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=stricmp;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__="\r
-                               RuntimeLibrary="2"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="0"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               IgnoreImportLibrary="false"\r
-                               LinkLibraryDependencies="true"\r
-                               UseLibraryDependencyInputs="false"\r
-                               AdditionalDependencies="libecore.lib libeina.lib libevil.lib"\r
-                               OutputFile="$(OutDir)\libecore_file.dll"\r
-                               LinkIncremental="1"\r
-                               AdditionalLibraryDirectories="$(LIB); $(ReleaseLibraryDirectory)"\r
-                               AddModuleNamesToAssembly=""\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="2"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               RandomizedBaseAddress="1"\r
-                               DataExecutionPrevention="0"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-               <Filter\r
-                       Name="Header Files"\r
-                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
-                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
-                       >\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_file\Ecore_File.h"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_file\ecore_file_private.h"\r
-                               >\r
-                       </File>\r
-               </Filter>\r
-               <Filter\r
-                       Name="Resource Files"\r
-                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
-                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
-                       >\r
-               </Filter>\r
-               <Filter\r
-                       Name="Source Files"\r
-                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
-                       >\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_file\ecore_file.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_file\ecore_file_download.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_file\ecore_file_monitor.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_file\ecore_file_monitor_poll.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_file\ecore_file_monitor_win32.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_file\ecore_file_path.c"\r
-                               >\r
-                       </File>\r
-               </Filter>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r
diff --git a/win32/vs9/libecore_input.vcproj b/win32/vs9/libecore_input.vcproj
deleted file mode 100644 (file)
index de42faa..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="9,00"\r
-       Name="libecore_input"\r
-       ProjectGUID="{1EA2B2BF-E021-4611-AEEC-5EED621347B6}"\r
-       RootNamespace="libecore_input"\r
-       Keyword="Win32Proj"\r
-       TargetFrameworkVersion="196613"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       OutputDirectory="$(DebugOutputDirectory)"\r
-                       IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       CharacterSet="0"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               AdditionalIncludeDirectories="$(INCLUDE)"\r
-                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EFL_ECORE_INPUT_BUILD;DLL_EXPORT;inline=__inline;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__="\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="4"\r
-                               CompileAs="0"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               IgnoreImportLibrary="false"\r
-                               LinkLibraryDependencies="true"\r
-                               UseLibraryDependencyInputs="false"\r
-                               AdditionalDependencies="libecore.lib libeina.lib"\r
-                               OutputFile="$(OutDir)\libecore_input.dll"\r
-                               LinkIncremental="2"\r
-                               AdditionalLibraryDirectories="$(LIB); $(DebugLibraryDirectory)"\r
-                               AddModuleNamesToAssembly=""\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="2"\r
-                               RandomizedBaseAddress="1"\r
-                               DataExecutionPrevention="0"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       OutputDirectory="$(ReleaseOutputDirectory)"\r
-                       IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       CharacterSet="0"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               AdditionalIncludeDirectories="$(INCLUDE)"\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;EFL_ECORE_INPUT_BUILD;DLL_EXPORT;inline=__inline;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__="\r
-                               RuntimeLibrary="2"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="0"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               IgnoreImportLibrary="false"\r
-                               LinkLibraryDependencies="true"\r
-                               UseLibraryDependencyInputs="false"\r
-                               AdditionalDependencies="libecore.lib libeina.lib"\r
-                               OutputFile="$(OutDir)\libecore_input.dll"\r
-                               LinkIncremental="1"\r
-                               AdditionalLibraryDirectories="$(LIB); $(ReleaseLibraryDirectory)"\r
-                               AddModuleNamesToAssembly=""\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="2"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               RandomizedBaseAddress="1"\r
-                               DataExecutionPrevention="0"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-               <Filter\r
-                       Name="Fichiers sources"\r
-                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
-                       >\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_input\ecore_input.c"\r
-                               >\r
-                       </File>\r
-               </Filter>\r
-               <Filter\r
-                       Name="Fichiers d&apos;en-tête"\r
-                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
-                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
-                       >\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_input\Ecore_Input.h"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_input\ecore_input_private.h"\r
-                               >\r
-                       </File>\r
-               </Filter>\r
-               <Filter\r
-                       Name="Fichiers de ressources"\r
-                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
-                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
-                       >\r
-               </Filter>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r
diff --git a/win32/vs9/libecore_input_evas.vcproj b/win32/vs9/libecore_input_evas.vcproj
deleted file mode 100644 (file)
index 3fa8c41..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="9,00"\r
-       Name="libecore_input_evas"\r
-       ProjectGUID="{3F8D2B53-364C-40A4-9F0E-18C134010223}"\r
-       RootNamespace="libecore_input_evas"\r
-       Keyword="Win32Proj"\r
-       TargetFrameworkVersion="196613"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       OutputDirectory="$(DebugOutputDirectory)"\r
-                       IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       CharacterSet="0"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               AdditionalIncludeDirectories="$(INCLUDE)"\r
-                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EFL_ECORE_INPUT_EVAS_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=stricmp;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__=;_CRT_SECURE_NO_WARNINGS"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="4"\r
-                               CompileAs="0"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               IgnoreImportLibrary="false"\r
-                               LinkLibraryDependencies="true"\r
-                               UseLibraryDependencyInputs="false"\r
-                               AdditionalDependencies="libecore.lib libecore_input.lib libevas.lib libeina.lib"\r
-                               OutputFile="$(OutDir)\libecore_input_evas.dll"\r
-                               LinkIncremental="2"\r
-                               AdditionalLibraryDirectories="$(LIB); $(DebugLibraryDirectory)"\r
-                               AddModuleNamesToAssembly=""\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="2"\r
-                               RandomizedBaseAddress="1"\r
-                               DataExecutionPrevention="0"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       OutputDirectory="$(ReleaseOutputDirectory)"\r
-                       IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       CharacterSet="0"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               AdditionalIncludeDirectories="$(INCLUDE)"\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;EFL_ECORE_INPUT_EVAS_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=stricmp;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__=;_CRT_SECURE_NO_WARNINGS"\r
-                               RuntimeLibrary="2"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="0"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               IgnoreImportLibrary="false"\r
-                               LinkLibraryDependencies="true"\r
-                               UseLibraryDependencyInputs="false"\r
-                               AdditionalDependencies="libecore.lib libecore_input.lib libevas.lib libeina.lib"\r
-                               OutputFile="$(OutDir)\libecore_input_evas.dll"\r
-                               LinkIncremental="1"\r
-                               AdditionalLibraryDirectories="$(LIB); $(ReleaseLibraryDirectory)"\r
-                               AddModuleNamesToAssembly=""\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="2"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               RandomizedBaseAddress="1"\r
-                               DataExecutionPrevention="0"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-               <Filter\r
-                       Name="Fichiers sources"\r
-                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
-                       >\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_input_evas\ecore_input_evas.c"\r
-                               >\r
-                       </File>\r
-               </Filter>\r
-               <Filter\r
-                       Name="Fichiers d&apos;en-tête"\r
-                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
-                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
-                       >\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_input_evas\Ecore_Input_Evas.h"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_input_evas\ecore_input_evas_private.h"\r
-                               >\r
-                       </File>\r
-               </Filter>\r
-               <Filter\r
-                       Name="Fichiers de ressources"\r
-                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
-                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
-                       >\r
-               </Filter>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r
diff --git a/win32/vs9/libecore_win32.vcproj b/win32/vs9/libecore_win32.vcproj
deleted file mode 100644 (file)
index 9900ea7..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="9,00"\r
-       Name="libecore_win32"\r
-       ProjectGUID="{3266A791-E050-48C1-A114-798B98CAB12C}"\r
-       RootNamespace="libecore_win32"\r
-       Keyword="Win32Proj"\r
-       TargetFrameworkVersion="131072"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       OutputDirectory="$(DebugOutputDirectory)"\r
-                       IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       CharacterSet="0"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               AdditionalIncludeDirectories="$(INCLUDE)"\r
-                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EFL_ECORE_WIN32_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=stricmp;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__=;_CRT_SECURE_NO_WARNINGS"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="4"\r
-                               CompileAs="0"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               IgnoreImportLibrary="false"\r
-                               LinkLibraryDependencies="true"\r
-                               UseLibraryDependencyInputs="false"\r
-                               AdditionalDependencies="libeina.lib"\r
-                               OutputFile="$(OutDir)\libecore_win32.dll"\r
-                               LinkIncremental="2"\r
-                               AdditionalLibraryDirectories="$(LIB); $(DebugLibraryDirectory)"\r
-                               AddModuleNamesToAssembly=""\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="2"\r
-                               RandomizedBaseAddress="1"\r
-                               DataExecutionPrevention="0"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       OutputDirectory="$(ReleaseOutputDirectory)"\r
-                       IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       CharacterSet="0"\r
-                       WholeProgramOptimization="1"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               AdditionalIncludeDirectories="$(INCLUDE)"\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;EFL_ECORE_WIN32_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=stricmp;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__=;_CRT_SECURE_NO_WARNINGS"\r
-                               RuntimeLibrary="2"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="3"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="3"\r
-                               CompileAs="0"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               IgnoreImportLibrary="false"\r
-                               LinkLibraryDependencies="true"\r
-                               UseLibraryDependencyInputs="false"\r
-                               AdditionalDependencies="libeina.lib"\r
-                               OutputFile="$(OutDir)\libecore_win32.dll"\r
-                               LinkIncremental="1"\r
-                               AdditionalLibraryDirectories="$(LIB); $(ReleaseLibraryDirectory)"\r
-                               AddModuleNamesToAssembly=""\r
-                               GenerateDebugInformation="true"\r
-                               SubSystem="2"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               RandomizedBaseAddress="1"\r
-                               DataExecutionPrevention="0"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-               <Filter\r
-                       Name="Header Files"\r
-                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
-                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
-                       >\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_win32\Ecore_Win32.h"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_win32\ecore_win32_dnd_data_object.h"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_win32\ecore_win32_dnd_drop_source.h"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_win32\ecore_win32_dnd_drop_target.h"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_win32\ecore_win32_dnd_enumformatetc.h"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_win32\ecore_win32_private.h"\r
-                               >\r
-                       </File>\r
-               </Filter>\r
-               <Filter\r
-                       Name="Resource Files"\r
-                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
-                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
-                       >\r
-               </Filter>\r
-               <Filter\r
-                       Name="Source Files"\r
-                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
-                       >\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_win32\ecore_win32.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_win32\ecore_win32_cursor.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_win32\ecore_win32_dnd.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_win32\ecore_win32_dnd_data_object.cpp"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_win32\ecore_win32_dnd_drop_source.cpp"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_win32\ecore_win32_dnd_drop_target.cpp"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_win32\ecore_win32_dnd_enumformatetc.cpp"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_win32\ecore_win32_event.c"\r
-                               >\r
-                       </File>\r
-                       <File\r
-                               RelativePath="..\..\src\lib\ecore_win32\ecore_win32_window.c"\r
-                               >\r
-                       </File>\r
-               </Filter>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r