aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/eina
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/eina')
-rw-r--r--libraries/eina/AUTHORS2
-rw-r--r--libraries/eina/ChangeLog43
-rw-r--r--libraries/eina/Makefile.am44
-rw-r--r--libraries/eina/Makefile.in82
-rw-r--r--libraries/eina/NEWS14
-rw-r--r--libraries/eina/README3
-rw-r--r--libraries/eina/aclocal.m490
-rwxr-xr-xlibraries/eina/autogen.sh2
-rwxr-xr-xlibraries/eina/config.guess149
-rw-r--r--libraries/eina/config.h.in14
-rwxr-xr-xlibraries/eina/config.sub47
-rwxr-xr-xlibraries/eina/configure960
-rw-r--r--libraries/eina/configure.ac55
-rw-r--r--libraries/eina/doc/Makefile.am3
-rw-r--r--libraries/eina/doc/Makefile.in41
-rw-r--r--libraries/eina/eina.pc6
-rw-r--r--libraries/eina/eina.spec2
-rwxr-xr-xlibraries/eina/ltmain.sh4
-rw-r--r--libraries/eina/src/Makefile.in38
-rw-r--r--libraries/eina/src/examples/Makefile.am28
-rw-r--r--libraries/eina/src/examples/Makefile.in180
-rw-r--r--libraries/eina/src/examples/eina_accessor_01.c2
-rw-r--r--libraries/eina/src/examples/eina_array_01.c2
-rw-r--r--libraries/eina/src/examples/eina_array_02.c2
-rw-r--r--libraries/eina/src/examples/eina_error_01.c4
-rw-r--r--libraries/eina/src/examples/eina_file_01.c2
-rw-r--r--libraries/eina/src/examples/eina_hash_01.c3
-rw-r--r--libraries/eina/src/examples/eina_hash_02.c3
-rw-r--r--libraries/eina/src/examples/eina_hash_03.c3
-rw-r--r--libraries/eina/src/examples/eina_hash_04.c3
-rw-r--r--libraries/eina/src/examples/eina_hash_05.c3
-rw-r--r--libraries/eina/src/examples/eina_hash_06.c3
-rw-r--r--libraries/eina/src/examples/eina_hash_07.c3
-rw-r--r--libraries/eina/src/examples/eina_hash_08.c3
-rw-r--r--libraries/eina/src/examples/eina_inlist_01.c3
-rw-r--r--libraries/eina/src/examples/eina_inlist_02.c3
-rw-r--r--libraries/eina/src/examples/eina_inlist_03.c3
-rw-r--r--libraries/eina/src/examples/eina_iterator_01.c2
-rw-r--r--libraries/eina/src/examples/eina_list_01.c2
-rw-r--r--libraries/eina/src/examples/eina_list_02.c2
-rw-r--r--libraries/eina/src/examples/eina_list_03.c2
-rw-r--r--libraries/eina/src/examples/eina_list_04.c2
-rw-r--r--libraries/eina/src/examples/eina_tiler_01.c2
-rw-r--r--libraries/eina/src/include/Eina.h44
-rw-r--r--libraries/eina/src/include/Makefile.am3
-rw-r--r--libraries/eina/src/include/Makefile.in48
-rw-r--r--libraries/eina/src/include/eina_array.h2
-rw-r--r--libraries/eina/src/include/eina_config.h9
-rw-r--r--libraries/eina/src/include/eina_config.h.in9
-rw-r--r--libraries/eina/src/include/eina_error.h2
-rw-r--r--libraries/eina/src/include/eina_file.h51
-rw-r--r--libraries/eina/src/include/eina_inarray.h148
-rw-r--r--libraries/eina/src/include/eina_inline_lock_win32.x70
-rw-r--r--libraries/eina/src/include/eina_inline_stringshare.x4
-rw-r--r--libraries/eina/src/include/eina_inline_value.x281
-rw-r--r--libraries/eina/src/include/eina_list.h6
-rw-r--r--libraries/eina/src/include/eina_stringshare.h43
-rw-r--r--libraries/eina/src/include/eina_types.h32
-rw-r--r--libraries/eina/src/include/eina_value.h511
-rw-r--r--libraries/eina/src/lib/Makefile.am5
-rw-r--r--libraries/eina/src/lib/Makefile.in94
-rw-r--r--libraries/eina/src/lib/eina_binshare.c69
-rw-r--r--libraries/eina/src/lib/eina_file.c232
-rw-r--r--libraries/eina/src/lib/eina_file_win32.c2235
-rw-r--r--libraries/eina/src/lib/eina_inlist.c5
-rw-r--r--libraries/eina/src/lib/eina_list.c15
-rw-r--r--libraries/eina/src/lib/eina_magic.c5
-rw-r--r--libraries/eina/src/lib/eina_main.c5
-rw-r--r--libraries/eina/src/lib/eina_matrixsparse.c2
-rw-r--r--libraries/eina/src/lib/eina_module.c4
-rw-r--r--libraries/eina/src/lib/eina_prefix.c22
-rw-r--r--libraries/eina/src/lib/eina_private.h2
-rw-r--r--libraries/eina/src/lib/eina_rbtree.c365
-rw-r--r--libraries/eina/src/lib/eina_sched.c19
-rw-r--r--libraries/eina/src/lib/eina_share_common.c42
-rw-r--r--libraries/eina/src/lib/eina_share_common.h21
-rw-r--r--libraries/eina/src/lib/eina_stringshare.c77
-rw-r--r--libraries/eina/src/lib/eina_unicode.c55
-rw-r--r--libraries/eina/src/lib/eina_ustringshare.c69
-rw-r--r--libraries/eina/src/lib/eina_value.c453
-rw-r--r--libraries/eina/src/modules/Makefile.in38
-rw-r--r--libraries/eina/src/modules/mp/Makefile.in38
-rw-r--r--libraries/eina/src/modules/mp/buddy/Makefile.am1
-rw-r--r--libraries/eina/src/modules/mp/buddy/Makefile.in39
-rw-r--r--libraries/eina/src/modules/mp/chained_pool/Makefile.am1
-rw-r--r--libraries/eina/src/modules/mp/chained_pool/Makefile.in39
-rw-r--r--libraries/eina/src/modules/mp/chained_pool/eina_chained_mempool.c2
-rw-r--r--libraries/eina/src/modules/mp/ememoa_fixed/Makefile.am1
-rw-r--r--libraries/eina/src/modules/mp/ememoa_fixed/Makefile.in39
-rw-r--r--libraries/eina/src/modules/mp/ememoa_unknown/Makefile.am1
-rw-r--r--libraries/eina/src/modules/mp/ememoa_unknown/Makefile.in39
-rw-r--r--libraries/eina/src/modules/mp/fixed_bitmap/Makefile.am1
-rw-r--r--libraries/eina/src/modules/mp/fixed_bitmap/Makefile.in39
-rw-r--r--libraries/eina/src/modules/mp/one_big/Makefile.am1
-rw-r--r--libraries/eina/src/modules/mp/one_big/Makefile.in39
-rw-r--r--libraries/eina/src/modules/mp/one_big/eina_one_big.c2
-rw-r--r--libraries/eina/src/modules/mp/pass_through/Makefile.am1
-rw-r--r--libraries/eina/src/modules/mp/pass_through/Makefile.in39
-rw-r--r--libraries/eina/src/tests/Makefile.am3
-rw-r--r--libraries/eina/src/tests/Makefile.in48
-rw-r--r--libraries/eina/src/tests/eina_suite.c3
-rw-r--r--libraries/eina/src/tests/eina_suite.h1
-rw-r--r--libraries/eina/src/tests/eina_test_clist.c2
-rw-r--r--libraries/eina/src/tests/eina_test_counter.c92
-rw-r--r--libraries/eina/src/tests/eina_test_error.c184
-rw-r--r--libraries/eina/src/tests/eina_test_file.c54
-rw-r--r--libraries/eina/src/tests/eina_test_inlist.c171
-rw-r--r--libraries/eina/src/tests/eina_test_list.c40
-rw-r--r--libraries/eina/src/tests/eina_test_log.c217
-rw-r--r--libraries/eina/src/tests/eina_test_magic.c110
-rw-r--r--libraries/eina/src/tests/eina_test_simple_xml_parser.c6
-rw-r--r--libraries/eina/src/tests/eina_test_ustr.c130
-rw-r--r--libraries/eina/src/tests/eina_test_value.c109
113 files changed, 5744 insertions, 2709 deletions
diff --git a/libraries/eina/AUTHORS b/libraries/eina/AUTHORS
index c146e20..6091910 100644
--- a/libraries/eina/AUTHORS
+++ b/libraries/eina/AUTHORS
@@ -21,3 +21,5 @@ Youness Alaoui <kakaroto@kakaroto.homelinux.net>
21billiob (Boris Faure) <billiob@gmail.com> 21billiob (Boris Faure) <billiob@gmail.com>
22Sung W. Park <sungwoo@gmail.com> 22Sung W. Park <sungwoo@gmail.com>
23Guillaume Friloux <guillaume.friloux@asp64.com> 23Guillaume Friloux <guillaume.friloux@asp64.com>
24Jonas M. Gastal <jgastal@profusion.mobi>
25Raphael Kubo da Costa <rakuco@freebsd.org>
diff --git a/libraries/eina/ChangeLog b/libraries/eina/ChangeLog
index dfecb61..1237697 100644
--- a/libraries/eina/ChangeLog
+++ b/libraries/eina/ChangeLog
@@ -198,3 +198,46 @@
1982012-01-19 Shinwoo Kim 1982012-01-19 Shinwoo Kim
199 199
200 * Fix compilation of eina_semaphore_lock() (Windows port) 200 * Fix compilation of eina_semaphore_lock() (Windows port)
201
2022012-01-20 Gustavo Barbieri
203
204 * Add eina_model data type (generic hierarchy data access).
205
2062011-12-30 Vincent Torri
207
208 * Fix Eina_RWLock code on Windows > XP.
209
2102012-01-29 Tom Hacohen
211
212 * Added EINA_C_ARRAY_LENGTH, a macro that returns the length of a
213 standard C array.
214
2152012-01-31 Tom Hacohen
216
217 * Added an Eina_Stringshare type. It's just a typedef of "const char"
218 this is a same kind of visual hint for the purpose of the pointer,
219 but again, the two types are interchangeable.
220
2212012-02-17 Cedric Bail
222
223 * Fix forgotten initialization of eina list count during eina_list_split_list.
224
2252012-02-22 Cedric Bail
226
227 * Add eina_file_stat.
228
2292012-02-27 Alexandre Becoulet
230
231 * Add faster implementation of Eina_Rbtree.
232
2332012-03-07 Cedric Bail
234
235 * Fix leak of Eina_File.
236
2372012-03-14 Cedric Bail
238
239 * Fix a dead lock in Eina_File.
240
2412012-03-16 Raphael Kubo da Costa
242
243 * Adjust Valgrind's CFLAGS to fix the build when it is in a non-default location.
diff --git a/libraries/eina/Makefile.am b/libraries/eina/Makefile.am
index 7778fd8..501653c 100644
--- a/libraries/eina/Makefile.am
+++ b/libraries/eina/Makefile.am
@@ -1,6 +1,6 @@
1## Process this file with automake to produce Makefile.in 1## Process this file with automake to produce Makefile.in
2 2
3ACLOCAL_AMFLAGS = -I m4 3ACLOCAL_AMFLAGS = -I m4 -I m4/common -I m4/eina
4 4
5SUBDIRS = src doc 5SUBDIRS = src doc
6 6
@@ -38,18 +38,18 @@ autogen.sh \
38eina.pc.in \ 38eina.pc.in \
39eina.spec \ 39eina.spec \
40eina.spec.in \ 40eina.spec.in \
41m4/efl_attribute.m4 \ 41m4/common/efl_attribute.m4 \
42m4/efl_benchmark.m4 \ 42m4/common/efl_benchmark.m4 \
43m4/efl_compiler_flag.m4 \ 43m4/common/efl_compiler_flag.m4 \
44m4/efl_coverage.m4 \ 44m4/common/efl_coverage.m4 \
45m4/efl_cpu.m4 \ 45m4/common/efl_cpu.m4 \
46m4/efl_doxygen.m4 \ 46m4/common/efl_doxygen.m4 \
47m4/efl_fnmatch.m4 \ 47m4/common/efl_fnmatch.m4 \
48m4/efl_tests.m4 \ 48m4/common/efl_tests.m4 \
49m4/efl_threads.m4 \ 49m4/common/efl_threads.m4 \
50m4/eina_bench.m4 \ 50m4/common/efl_path_max.m4 \
51m4/eina_check.m4 \ 51m4/eina/eina_bench.m4 \
52m4/efl_path_max.m4 52m4/eina/eina_check.m4
53 53
54.PHONY: doc coverage benchmark 54.PHONY: doc coverage benchmark
55 55
@@ -77,18 +77,16 @@ endif
77 77
78if EFL_ENABLE_COVERAGE 78if EFL_ENABLE_COVERAGE
79lcov-reset: 79lcov-reset:
80 @rm -rf coverage 80 @rm -rf $(top_builddir)/coverage
81 @find . -name "*.gcda" -exec rm {} \; 81 @find $(top_builddir) -name "*.gcda" -delete
82 @lcov --directory . --zerocounters 82 @lcov --zerocounters --directory $(top_builddir)
83 83
84lcov-report: 84lcov-report:
85 @mkdir coverage 85 @mkdir $(top_builddir)/coverage
86 @lcov --compat-libtool --directory $(top_srcdir)/src --capture --output-file coverage/coverage.info 86 lcov --capture --compat-libtool --output-file $(top_builddir)/coverage/coverage.info --directory $(top_builddir)
87 @lcov -l coverage/coverage.info |grep "\\.h" |cut -d " " -f 2 > coverage/remove 87 lcov --remove $(top_builddir)/coverage/coverage.info '*.h' --output-file $(top_builddir)/coverage/coverage.cleaned.info
88 @lcov -r coverage/coverage.info `cat coverage/remove` > coverage/coverage.cleaned.info 88 genhtml -t "$(PACKAGE_STRING)" -o $(top_builddir)/coverage/html $(top_builddir)/coverage/coverage.cleaned.info
89 @rm coverage/remove 89 @echo "Coverage Report at $(top_builddir)/coverage/html"
90 @mv coverage/coverage.cleaned.info coverage/coverage.info
91 @genhtml -t "$(PACKAGE_STRING)" -o coverage coverage/coverage.info
92 90
93coverage: 91coverage:
94 @$(MAKE) lcov-reset 92 @$(MAKE) lcov-reset
diff --git a/libraries/eina/Makefile.in b/libraries/eina/Makefile.in
index 423f4da..f72c62f 100644
--- a/libraries/eina/Makefile.in
+++ b/libraries/eina/Makefile.in
@@ -42,20 +42,24 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
42 INSTALL NEWS config.guess config.sub depcomp install-sh \ 42 INSTALL NEWS config.guess config.sub depcomp install-sh \
43 ltmain.sh missing 43 ltmain.sh missing
44ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 44ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
45am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 45am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \
46 $(top_srcdir)/m4/efl_benchmark.m4 \ 46 $(top_srcdir)/m4/eina/eina_check.m4 \
47 $(top_srcdir)/m4/efl_compiler_flag.m4 \ 47 $(top_srcdir)/m4/common/efl_attribute.m4 \
48 $(top_srcdir)/m4/efl_coverage.m4 $(top_srcdir)/m4/efl_cpu.m4 \ 48 $(top_srcdir)/m4/common/efl_benchmark.m4 \
49 $(top_srcdir)/m4/efl_doxygen.m4 \ 49 $(top_srcdir)/m4/common/efl_compiler_flag.m4 \
50 $(top_srcdir)/m4/efl_examples.m4 \ 50 $(top_srcdir)/m4/common/efl_coverage.m4 \
51 $(top_srcdir)/m4/efl_fnmatch.m4 \ 51 $(top_srcdir)/m4/common/efl_cpu.m4 \
52 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 52 $(top_srcdir)/m4/common/efl_doxygen.m4 \
53 $(top_srcdir)/m4/efl_threads.m4 \ 53 $(top_srcdir)/m4/common/efl_examples.m4 \
54 $(top_srcdir)/m4/efl_voltron.m4 $(top_srcdir)/m4/eina_bench.m4 \ 54 $(top_srcdir)/m4/common/efl_fnmatch.m4 \
55 $(top_srcdir)/m4/eina_check.m4 $(top_srcdir)/m4/libtool.m4 \ 55 $(top_srcdir)/m4/common/efl_path_max.m4 \
56 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 56 $(top_srcdir)/m4/common/efl_tests.m4 \
57 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 57 $(top_srcdir)/m4/common/efl_threads.m4 \
58 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac 58 $(top_srcdir)/m4/common/efl_voltron.m4 \
59 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
60 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
61 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
62 $(top_srcdir)/configure.ac
59am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 63am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
60 $(ACLOCAL_M4) 64 $(ACLOCAL_M4)
61am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ 65am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
@@ -191,13 +195,13 @@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
191EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ 195EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
192EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 196EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
193EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ 197EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
198EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@
194EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 199EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
195EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 200EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
196EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 201EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
197EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ 202EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@
198EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ 203EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@
199EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ 204EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@
200EINA_CPPFLAGS = @EINA_CPPFLAGS@
201EINA_LIBS = @EINA_LIBS@ 205EINA_LIBS = @EINA_LIBS@
202EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ 206EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@
203EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ 207EMEMOA_CFLAGS = @EMEMOA_CFLAGS@
@@ -207,6 +211,8 @@ ESCAPE_LIBS = @ESCAPE_LIBS@
207EVIL_CFLAGS = @EVIL_CFLAGS@ 211EVIL_CFLAGS = @EVIL_CFLAGS@
208EVIL_LIBS = @EVIL_LIBS@ 212EVIL_LIBS = @EVIL_LIBS@
209EXEEXT = @EXEEXT@ 213EXEEXT = @EXEEXT@
214EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
215EXOTIC_LIBS = @EXOTIC_LIBS@
210FGREP = @FGREP@ 216FGREP = @FGREP@
211GLIB_CFLAGS = @GLIB_CFLAGS@ 217GLIB_CFLAGS = @GLIB_CFLAGS@
212GLIB_LIBS = @GLIB_LIBS@ 218GLIB_LIBS = @GLIB_LIBS@
@@ -242,6 +248,8 @@ PACKAGE_URL = @PACKAGE_URL@
242PACKAGE_VERSION = @PACKAGE_VERSION@ 248PACKAGE_VERSION = @PACKAGE_VERSION@
243PATH_SEPARATOR = @PATH_SEPARATOR@ 249PATH_SEPARATOR = @PATH_SEPARATOR@
244PKG_CONFIG = @PKG_CONFIG@ 250PKG_CONFIG = @PKG_CONFIG@
251PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
252PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
245RANLIB = @RANLIB@ 253RANLIB = @RANLIB@
246SED = @SED@ 254SED = @SED@
247SET_MAKE = @SET_MAKE@ 255SET_MAKE = @SET_MAKE@
@@ -315,7 +323,7 @@ top_build_prefix = @top_build_prefix@
315top_builddir = @top_builddir@ 323top_builddir = @top_builddir@
316top_srcdir = @top_srcdir@ 324top_srcdir = @top_srcdir@
317version_info = @version_info@ 325version_info = @version_info@
318ACLOCAL_AMFLAGS = -I m4 326ACLOCAL_AMFLAGS = -I m4 -I m4/common -I m4/eina
319SUBDIRS = src doc 327SUBDIRS = src doc
320MAINTAINERCLEANFILES = \ 328MAINTAINERCLEANFILES = \
321Makefile.in \ 329Makefile.in \
@@ -350,18 +358,18 @@ autogen.sh \
350eina.pc.in \ 358eina.pc.in \
351eina.spec \ 359eina.spec \
352eina.spec.in \ 360eina.spec.in \
353m4/efl_attribute.m4 \ 361m4/common/efl_attribute.m4 \
354m4/efl_benchmark.m4 \ 362m4/common/efl_benchmark.m4 \
355m4/efl_compiler_flag.m4 \ 363m4/common/efl_compiler_flag.m4 \
356m4/efl_coverage.m4 \ 364m4/common/efl_coverage.m4 \
357m4/efl_cpu.m4 \ 365m4/common/efl_cpu.m4 \
358m4/efl_doxygen.m4 \ 366m4/common/efl_doxygen.m4 \
359m4/efl_fnmatch.m4 \ 367m4/common/efl_fnmatch.m4 \
360m4/efl_tests.m4 \ 368m4/common/efl_tests.m4 \
361m4/efl_threads.m4 \ 369m4/common/efl_threads.m4 \
362m4/eina_bench.m4 \ 370m4/common/efl_path_max.m4 \
363m4/eina_check.m4 \ 371m4/eina/eina_bench.m4 \
364m4/efl_path_max.m4 372m4/eina/eina_check.m4
365 373
366all: config.h 374all: config.h
367 $(MAKE) $(AM_MAKEFLAGS) all-recursive 375 $(MAKE) $(AM_MAKEFLAGS) all-recursive
@@ -908,18 +916,16 @@ doc:
908# Coverage report 916# Coverage report
909 917
910@EFL_ENABLE_COVERAGE_TRUE@lcov-reset: 918@EFL_ENABLE_COVERAGE_TRUE@lcov-reset:
911@EFL_ENABLE_COVERAGE_TRUE@ @rm -rf coverage 919@EFL_ENABLE_COVERAGE_TRUE@ @rm -rf $(top_builddir)/coverage
912@EFL_ENABLE_COVERAGE_TRUE@ @find . -name "*.gcda" -exec rm {} \; 920@EFL_ENABLE_COVERAGE_TRUE@ @find $(top_builddir) -name "*.gcda" -delete
913@EFL_ENABLE_COVERAGE_TRUE@ @lcov --directory . --zerocounters 921@EFL_ENABLE_COVERAGE_TRUE@ @lcov --zerocounters --directory $(top_builddir)
914 922
915@EFL_ENABLE_COVERAGE_TRUE@lcov-report: 923@EFL_ENABLE_COVERAGE_TRUE@lcov-report:
916@EFL_ENABLE_COVERAGE_TRUE@ @mkdir coverage 924@EFL_ENABLE_COVERAGE_TRUE@ @mkdir $(top_builddir)/coverage
917@EFL_ENABLE_COVERAGE_TRUE@ @lcov --compat-libtool --directory $(top_srcdir)/src --capture --output-file coverage/coverage.info 925@EFL_ENABLE_COVERAGE_TRUE@ lcov --capture --compat-libtool --output-file $(top_builddir)/coverage/coverage.info --directory $(top_builddir)
918@EFL_ENABLE_COVERAGE_TRUE@ @lcov -l coverage/coverage.info |grep "\\.h" |cut -d " " -f 2 > coverage/remove 926@EFL_ENABLE_COVERAGE_TRUE@ lcov --remove $(top_builddir)/coverage/coverage.info '*.h' --output-file $(top_builddir)/coverage/coverage.cleaned.info
919@EFL_ENABLE_COVERAGE_TRUE@ @lcov -r coverage/coverage.info `cat coverage/remove` > coverage/coverage.cleaned.info 927@EFL_ENABLE_COVERAGE_TRUE@ genhtml -t "$(PACKAGE_STRING)" -o $(top_builddir)/coverage/html $(top_builddir)/coverage/coverage.cleaned.info
920@EFL_ENABLE_COVERAGE_TRUE@ @rm coverage/remove 928@EFL_ENABLE_COVERAGE_TRUE@ @echo "Coverage Report at $(top_builddir)/coverage/html"
921@EFL_ENABLE_COVERAGE_TRUE@ @mv coverage/coverage.cleaned.info coverage/coverage.info
922@EFL_ENABLE_COVERAGE_TRUE@ @genhtml -t "$(PACKAGE_STRING)" -o coverage coverage/coverage.info
923 929
924@EFL_ENABLE_COVERAGE_TRUE@coverage: 930@EFL_ENABLE_COVERAGE_TRUE@coverage:
925@EFL_ENABLE_COVERAGE_TRUE@ @$(MAKE) lcov-reset 931@EFL_ENABLE_COVERAGE_TRUE@ @$(MAKE) lcov-reset
diff --git a/libraries/eina/NEWS b/libraries/eina/NEWS
index 8669aa7..b118535 100644
--- a/libraries/eina/NEWS
+++ b/libraries/eina/NEWS
@@ -14,8 +14,20 @@ Additions:
14 * Deprecated eina_array_count_get(), use eina_array_count() instead. 14 * Deprecated eina_array_count_get(), use eina_array_count() instead.
15 * Added eina_inarray data type 15 * Added eina_inarray data type
16 * Added eina_value data type (generic value storage) 16 * Added eina_value data type (generic value storage)
17 * Added eina_model data type (generic hierarchy data access)
18 * Add eina_file_stat.
17 19
18Eina 1.1.0 20Fixes:
21
22 * compilation errors in Eina_RWLock code when building code on Windows > XP
23 * stop leaking Eina_File.
24 * remove dead lock in Eina_File.
25
26Improvements:
27
28 * faster implementation of Eina_Rbtree.
29
30Eina 1.1.0 (2011-12-02)
19 31
20Changes since Eina 1.0.0: 32Changes since Eina 1.0.0:
21------------------------- 33-------------------------
diff --git a/libraries/eina/README b/libraries/eina/README
index 6ff84c8..cb8b0c6 100644
--- a/libraries/eina/README
+++ b/libraries/eina/README
@@ -1,4 +1,4 @@
1Eina 1.1.0 1Eina 1.2.0
2 2
3****************************************************************************** 3******************************************************************************
4 4
@@ -11,7 +11,6 @@ Requirements:
11------------- 11-------------
12Must have: 12Must have:
13 libc (pthread or windows threading support, iconv support) 13 libc (pthread or windows threading support, iconv support)
14 libm
15 14
16Eina is a library providing data structure utilities for EFL that are meant 15Eina is a library providing data structure utilities for EFL that are meant
17to be lean, efficient and tailored to EFL's needs. This saves each 16to be lean, efficient and tailored to EFL's needs. This saves each
diff --git a/libraries/eina/aclocal.m4 b/libraries/eina/aclocal.m4
index f26e3d1..d87f7d0 100644
--- a/libraries/eina/aclocal.m4
+++ b/libraries/eina/aclocal.m4
@@ -13,13 +13,14 @@
13 13
14m4_ifndef([AC_AUTOCONF_VERSION], 14m4_ifndef([AC_AUTOCONF_VERSION],
15 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl 15 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
16m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],, 16m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],,
17[m4_warning([this file was generated for autoconf 2.65. 17[m4_warning([this file was generated for autoconf 2.67.
18You have another version of autoconf. It may work, but is not guaranteed to. 18You have another version of autoconf. It may work, but is not guaranteed to.
19If you have problems, you may need to regenerate the build system entirely. 19If you have problems, you may need to regenerate the build system entirely.
20To do so, use the procedure documented by the package, typically `autoreconf'.])]) 20To do so, use the procedure documented by the package, typically `autoreconf'.])])
21 21
22# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- 22# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
23# serial 1 (pkg-config-0.24)
23# 24#
24# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. 25# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
25# 26#
@@ -47,7 +48,10 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
47AC_DEFUN([PKG_PROG_PKG_CONFIG], 48AC_DEFUN([PKG_PROG_PKG_CONFIG],
48[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) 49[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
49m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) 50m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
50AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl 51AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
52AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
53AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
54
51if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 55if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
52 AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) 56 AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
53fi 57fi
@@ -60,7 +64,6 @@ if test -n "$PKG_CONFIG"; then
60 AC_MSG_RESULT([no]) 64 AC_MSG_RESULT([no])
61 PKG_CONFIG="" 65 PKG_CONFIG=""
62 fi 66 fi
63
64fi[]dnl 67fi[]dnl
65])# PKG_PROG_PKG_CONFIG 68])# PKG_PROG_PKG_CONFIG
66 69
@@ -69,34 +72,31 @@ fi[]dnl
69# Check to see whether a particular set of modules exists. Similar 72# Check to see whether a particular set of modules exists. Similar
70# to PKG_CHECK_MODULES(), but does not set variables or print errors. 73# to PKG_CHECK_MODULES(), but does not set variables or print errors.
71# 74#
72# 75# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
73# Similar to PKG_CHECK_MODULES, make sure that the first instance of 76# only at the first occurence in configure.ac, so if the first place
74# this or PKG_CHECK_MODULES is called, or make sure to call 77# it's called might be skipped (such as if it is within an "if", you
75# PKG_CHECK_EXISTS manually 78# have to call PKG_CHECK_EXISTS manually
76# -------------------------------------------------------------- 79# --------------------------------------------------------------
77AC_DEFUN([PKG_CHECK_EXISTS], 80AC_DEFUN([PKG_CHECK_EXISTS],
78[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 81[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
79if test -n "$PKG_CONFIG" && \ 82if test -n "$PKG_CONFIG" && \
80 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then 83 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
81 m4_ifval([$2], [$2], [:]) 84 m4_default([$2], [:])
82m4_ifvaln([$3], [else 85m4_ifvaln([$3], [else
83 $3])dnl 86 $3])dnl
84fi]) 87fi])
85 88
86
87# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) 89# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
88# --------------------------------------------- 90# ---------------------------------------------
89m4_define([_PKG_CONFIG], 91m4_define([_PKG_CONFIG],
90[if test -n "$PKG_CONFIG"; then 92[if test -n "$$1"; then
91 if test -n "$$1"; then 93 pkg_cv_[]$1="$$1"
92 pkg_cv_[]$1="$$1" 94 elif test -n "$PKG_CONFIG"; then
93 else 95 PKG_CHECK_EXISTS([$3],
94 PKG_CHECK_EXISTS([$3], 96 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
95 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], 97 [pkg_failed=yes])
96 [pkg_failed=yes]) 98 else
97 fi 99 pkg_failed=untried
98else
99 pkg_failed=untried
100fi[]dnl 100fi[]dnl
101])# _PKG_CONFIG 101])# _PKG_CONFIG
102 102
@@ -138,16 +138,17 @@ and $1[]_LIBS to avoid the need to call pkg-config.
138See the pkg-config man page for more details.]) 138See the pkg-config man page for more details.])
139 139
140if test $pkg_failed = yes; then 140if test $pkg_failed = yes; then
141 AC_MSG_RESULT([no])
141 _PKG_SHORT_ERRORS_SUPPORTED 142 _PKG_SHORT_ERRORS_SUPPORTED
142 if test $_pkg_short_errors_supported = yes; then 143 if test $_pkg_short_errors_supported = yes; then
143 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` 144 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
144 else 145 else
145 $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` 146 $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
146 fi 147 fi
147 # Put the nasty error message in config.log where it belongs 148 # Put the nasty error message in config.log where it belongs
148 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD 149 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
149 150
150 ifelse([$4], , [AC_MSG_ERROR(dnl 151 m4_default([$4], [AC_MSG_ERROR(
151[Package requirements ($2) were not met: 152[Package requirements ($2) were not met:
152 153
153$$1_PKG_ERRORS 154$$1_PKG_ERRORS
@@ -155,25 +156,24 @@ $$1_PKG_ERRORS
155Consider adjusting the PKG_CONFIG_PATH environment variable if you 156Consider adjusting the PKG_CONFIG_PATH environment variable if you
156installed software in a non-standard prefix. 157installed software in a non-standard prefix.
157 158
158_PKG_TEXT 159_PKG_TEXT])[]dnl
159])], 160 ])
160 [AC_MSG_RESULT([no])
161 $4])
162elif test $pkg_failed = untried; then 161elif test $pkg_failed = untried; then
163 ifelse([$4], , [AC_MSG_FAILURE(dnl 162 AC_MSG_RESULT([no])
163 m4_default([$4], [AC_MSG_FAILURE(
164[The pkg-config script could not be found or is too old. Make sure it 164[The pkg-config script could not be found or is too old. Make sure it
165is in your PATH or set the PKG_CONFIG environment variable to the full 165is in your PATH or set the PKG_CONFIG environment variable to the full
166path to pkg-config. 166path to pkg-config.
167 167
168_PKG_TEXT 168_PKG_TEXT
169 169
170To get pkg-config, see <http://pkg-config.freedesktop.org/>.])], 170To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
171 [$4]) 171 ])
172else 172else
173 $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS 173 $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
174 $1[]_LIBS=$pkg_cv_[]$1[]_LIBS 174 $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
175 AC_MSG_RESULT([yes]) 175 AC_MSG_RESULT([yes])
176 ifelse([$3], , :, [$3]) 176 $3
177fi[]dnl 177fi[]dnl
178])# PKG_CHECK_MODULES 178])# PKG_CHECK_MODULES
179 179
@@ -1134,20 +1134,20 @@ AC_SUBST([am__tar])
1134AC_SUBST([am__untar]) 1134AC_SUBST([am__untar])
1135]) # _AM_PROG_TAR 1135]) # _AM_PROG_TAR
1136 1136
1137m4_include([m4/efl_attribute.m4]) 1137m4_include([m4/eina/eina_bench.m4])
1138m4_include([m4/efl_benchmark.m4]) 1138m4_include([m4/eina/eina_check.m4])
1139m4_include([m4/efl_compiler_flag.m4]) 1139m4_include([m4/common/efl_attribute.m4])
1140m4_include([m4/efl_coverage.m4]) 1140m4_include([m4/common/efl_benchmark.m4])
1141m4_include([m4/efl_cpu.m4]) 1141m4_include([m4/common/efl_compiler_flag.m4])
1142m4_include([m4/efl_doxygen.m4]) 1142m4_include([m4/common/efl_coverage.m4])
1143m4_include([m4/efl_examples.m4]) 1143m4_include([m4/common/efl_cpu.m4])
1144m4_include([m4/efl_fnmatch.m4]) 1144m4_include([m4/common/efl_doxygen.m4])
1145m4_include([m4/efl_path_max.m4]) 1145m4_include([m4/common/efl_examples.m4])
1146m4_include([m4/efl_tests.m4]) 1146m4_include([m4/common/efl_fnmatch.m4])
1147m4_include([m4/efl_threads.m4]) 1147m4_include([m4/common/efl_path_max.m4])
1148m4_include([m4/efl_voltron.m4]) 1148m4_include([m4/common/efl_tests.m4])
1149m4_include([m4/eina_bench.m4]) 1149m4_include([m4/common/efl_threads.m4])
1150m4_include([m4/eina_check.m4]) 1150m4_include([m4/common/efl_voltron.m4])
1151m4_include([m4/libtool.m4]) 1151m4_include([m4/libtool.m4])
1152m4_include([m4/ltoptions.m4]) 1152m4_include([m4/ltoptions.m4])
1153m4_include([m4/ltsugar.m4]) 1153m4_include([m4/ltsugar.m4])
diff --git a/libraries/eina/autogen.sh b/libraries/eina/autogen.sh
index 00116ea..25b7c2f 100755
--- a/libraries/eina/autogen.sh
+++ b/libraries/eina/autogen.sh
@@ -6,7 +6,7 @@ rm -f aclocal.m4 ltmain.sh
6touch README 6touch README
7touch ABOUT-NLS 7touch ABOUT-NLS
8 8
9echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS -I m4 || exit 1 9echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS -I m4 -I m4/common -I m4/eina || exit 1
10echo "Running autoheader..." ; autoheader || exit 1 10echo "Running autoheader..." ; autoheader || exit 1
11echo "Running autoconf..." ; autoconf || exit 1 11echo "Running autoconf..." ; autoconf || exit 1
12echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --automake) || exit 1 12echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --automake) || exit 1
diff --git a/libraries/eina/config.guess b/libraries/eina/config.guess
index e3a2116..c2246a4 100755
--- a/libraries/eina/config.guess
+++ b/libraries/eina/config.guess
@@ -1,10 +1,10 @@
1#! /bin/sh 1#! /bin/sh
2# Attempt to guess a canonical system name. 2# Attempt to guess a canonical system name.
3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 4# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5# Free Software Foundation, Inc. 5# Free Software Foundation, Inc.
6 6
7timestamp='2009-06-10' 7timestamp='2009-12-30'
8 8
9# This file is free software; you can redistribute it and/or modify it 9# This file is free software; you can redistribute it and/or modify it
10# under the terms of the GNU General Public License as published by 10# under the terms of the GNU General Public License as published by
@@ -27,16 +27,16 @@ timestamp='2009-06-10'
27# the same distribution terms that you use for the rest of that program. 27# the same distribution terms that you use for the rest of that program.
28 28
29 29
30# Originally written by Per Bothner <per@bothner.com>. 30# Originally written by Per Bothner. Please send patches (context
31# Please send patches to <config-patches@gnu.org>. Submit a context 31# diff format) to <config-patches@gnu.org> and include a ChangeLog
32# diff and a properly formatted ChangeLog entry. 32# entry.
33# 33#
34# This script attempts to guess a canonical system name similar to 34# This script attempts to guess a canonical system name similar to
35# config.sub. If it succeeds, it prints the system name on stdout, and 35# config.sub. If it succeeds, it prints the system name on stdout, and
36# exits with 0. Otherwise, it exits with 1. 36# exits with 0. Otherwise, it exits with 1.
37# 37#
38# The plan is that this can be called by configure scripts if you 38# You can get the latest version of this script from:
39# don't specify an explicit build system type. 39# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
40 40
41me=`echo "$0" | sed -e 's,.*/,,'` 41me=`echo "$0" | sed -e 's,.*/,,'`
42 42
@@ -56,8 +56,9 @@ version="\
56GNU config.guess ($timestamp) 56GNU config.guess ($timestamp)
57 57
58Originally written by Per Bothner. 58Originally written by Per Bothner.
59Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 59Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
602002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 602001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
61Software Foundation, Inc.
61 62
62This is free software; see the source for copying conditions. There is NO 63This is free software; see the source for copying conditions. There is NO
63warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 64warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -333,6 +334,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
333 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) 334 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
334 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 335 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
335 exit ;; 336 exit ;;
337 i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
338 echo i386-pc-auroraux${UNAME_RELEASE}
339 exit ;;
336 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) 340 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
337 eval $set_cc_for_build 341 eval $set_cc_for_build
338 SUN_ARCH="i386" 342 SUN_ARCH="i386"
@@ -807,12 +811,12 @@ EOF
807 i*:PW*:*) 811 i*:PW*:*)
808 echo ${UNAME_MACHINE}-pc-pw32 812 echo ${UNAME_MACHINE}-pc-pw32
809 exit ;; 813 exit ;;
810 *:Interix*:[3456]*) 814 *:Interix*:*)
811 case ${UNAME_MACHINE} in 815 case ${UNAME_MACHINE} in
812 x86) 816 x86)
813 echo i586-pc-interix${UNAME_RELEASE} 817 echo i586-pc-interix${UNAME_RELEASE}
814 exit ;; 818 exit ;;
815 EM64T | authenticamd | genuineintel) 819 authenticamd | genuineintel | EM64T)
816 echo x86_64-unknown-interix${UNAME_RELEASE} 820 echo x86_64-unknown-interix${UNAME_RELEASE}
817 exit ;; 821 exit ;;
818 IA64) 822 IA64)
@@ -854,6 +858,20 @@ EOF
854 i*86:Minix:*:*) 858 i*86:Minix:*:*)
855 echo ${UNAME_MACHINE}-pc-minix 859 echo ${UNAME_MACHINE}-pc-minix
856 exit ;; 860 exit ;;
861 alpha:Linux:*:*)
862 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
863 EV5) UNAME_MACHINE=alphaev5 ;;
864 EV56) UNAME_MACHINE=alphaev56 ;;
865 PCA56) UNAME_MACHINE=alphapca56 ;;
866 PCA57) UNAME_MACHINE=alphapca56 ;;
867 EV6) UNAME_MACHINE=alphaev6 ;;
868 EV67) UNAME_MACHINE=alphaev67 ;;
869 EV68*) UNAME_MACHINE=alphaev68 ;;
870 esac
871 objdump --private-headers /bin/sh | grep -q ld.so.1
872 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
873 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
874 exit ;;
857 arm*:Linux:*:*) 875 arm*:Linux:*:*)
858 eval $set_cc_for_build 876 eval $set_cc_for_build
859 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ 877 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
@@ -876,6 +894,17 @@ EOF
876 frv:Linux:*:*) 894 frv:Linux:*:*)
877 echo frv-unknown-linux-gnu 895 echo frv-unknown-linux-gnu
878 exit ;; 896 exit ;;
897 i*86:Linux:*:*)
898 LIBC=gnu
899 eval $set_cc_for_build
900 sed 's/^ //' << EOF >$dummy.c
901 #ifdef __dietlibc__
902 LIBC=dietlibc
903 #endif
904EOF
905 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
906 echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
907 exit ;;
879 ia64:Linux:*:*) 908 ia64:Linux:*:*)
880 echo ${UNAME_MACHINE}-unknown-linux-gnu 909 echo ${UNAME_MACHINE}-unknown-linux-gnu
881 exit ;; 910 exit ;;
@@ -901,39 +930,18 @@ EOF
901 #endif 930 #endif
902 #endif 931 #endif
903EOF 932EOF
904 eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' 933 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
905 /^CPU/{
906 s: ::g
907 p
908 }'`"
909 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } 934 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
910 ;; 935 ;;
911 or32:Linux:*:*) 936 or32:Linux:*:*)
912 echo or32-unknown-linux-gnu 937 echo or32-unknown-linux-gnu
913 exit ;; 938 exit ;;
914 ppc:Linux:*:*)
915 echo powerpc-unknown-linux-gnu
916 exit ;;
917 ppc64:Linux:*:*)
918 echo powerpc64-unknown-linux-gnu
919 exit ;;
920 alpha:Linux:*:*)
921 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
922 EV5) UNAME_MACHINE=alphaev5 ;;
923 EV56) UNAME_MACHINE=alphaev56 ;;
924 PCA56) UNAME_MACHINE=alphapca56 ;;
925 PCA57) UNAME_MACHINE=alphapca56 ;;
926 EV6) UNAME_MACHINE=alphaev6 ;;
927 EV67) UNAME_MACHINE=alphaev67 ;;
928 EV68*) UNAME_MACHINE=alphaev68 ;;
929 esac
930 objdump --private-headers /bin/sh | grep -q ld.so.1
931 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
932 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
933 exit ;;
934 padre:Linux:*:*) 939 padre:Linux:*:*)
935 echo sparc-unknown-linux-gnu 940 echo sparc-unknown-linux-gnu
936 exit ;; 941 exit ;;
942 parisc64:Linux:*:* | hppa64:Linux:*:*)
943 echo hppa64-unknown-linux-gnu
944 exit ;;
937 parisc:Linux:*:* | hppa:Linux:*:*) 945 parisc:Linux:*:* | hppa:Linux:*:*)
938 # Look for CPU level 946 # Look for CPU level
939 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in 947 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -942,8 +950,11 @@ EOF
942 *) echo hppa-unknown-linux-gnu ;; 950 *) echo hppa-unknown-linux-gnu ;;
943 esac 951 esac
944 exit ;; 952 exit ;;
945 parisc64:Linux:*:* | hppa64:Linux:*:*) 953 ppc64:Linux:*:*)
946 echo hppa64-unknown-linux-gnu 954 echo powerpc64-unknown-linux-gnu
955 exit ;;
956 ppc:Linux:*:*)
957 echo powerpc-unknown-linux-gnu
947 exit ;; 958 exit ;;
948 s390:Linux:*:* | s390x:Linux:*:*) 959 s390:Linux:*:* | s390x:Linux:*:*)
949 echo ${UNAME_MACHINE}-ibm-linux 960 echo ${UNAME_MACHINE}-ibm-linux
@@ -966,58 +977,6 @@ EOF
966 xtensa*:Linux:*:*) 977 xtensa*:Linux:*:*)
967 echo ${UNAME_MACHINE}-unknown-linux-gnu 978 echo ${UNAME_MACHINE}-unknown-linux-gnu
968 exit ;; 979 exit ;;
969 i*86:Linux:*:*)
970 # The BFD linker knows what the default object file format is, so
971 # first see if it will tell us. cd to the root directory to prevent
972 # problems with other programs or directories called `ld' in the path.
973 # Set LC_ALL=C to ensure ld outputs messages in English.
974 ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
975 | sed -ne '/supported targets:/!d
976 s/[ ][ ]*/ /g
977 s/.*supported targets: *//
978 s/ .*//
979 p'`
980 case "$ld_supported_targets" in
981 elf32-i386)
982 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
983 ;;
984 esac
985 # Determine whether the default compiler is a.out or elf
986 eval $set_cc_for_build
987 sed 's/^ //' << EOF >$dummy.c
988 #include <features.h>
989 #ifdef __ELF__
990 # ifdef __GLIBC__
991 # if __GLIBC__ >= 2
992 LIBC=gnu
993 # else
994 LIBC=gnulibc1
995 # endif
996 # else
997 LIBC=gnulibc1
998 # endif
999 #else
1000 #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
1001 LIBC=gnu
1002 #else
1003 LIBC=gnuaout
1004 #endif
1005 #endif
1006 #ifdef __dietlibc__
1007 LIBC=dietlibc
1008 #endif
1009EOF
1010 eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
1011 /^LIBC/{
1012 s: ::g
1013 p
1014 }'`"
1015 test x"${LIBC}" != x && {
1016 echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
1017 exit
1018 }
1019 test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
1020 ;;
1021 i*86:DYNIX/ptx:4*:*) 980 i*86:DYNIX/ptx:4*:*)
1022 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. 981 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1023 # earlier versions are messed up and put the nodename in both 982 # earlier versions are messed up and put the nodename in both
@@ -1247,6 +1206,16 @@ EOF
1247 *:Darwin:*:*) 1206 *:Darwin:*:*)
1248 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown 1207 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1249 case $UNAME_PROCESSOR in 1208 case $UNAME_PROCESSOR in
1209 i386)
1210 eval $set_cc_for_build
1211 if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1212 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1213 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1214 grep IS_64BIT_ARCH >/dev/null
1215 then
1216 UNAME_PROCESSOR="x86_64"
1217 fi
1218 fi ;;
1250 unknown) UNAME_PROCESSOR=powerpc ;; 1219 unknown) UNAME_PROCESSOR=powerpc ;;
1251 esac 1220 esac
1252 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} 1221 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
diff --git a/libraries/eina/config.h.in b/libraries/eina/config.h.in
index 9bd97a1..09db082 100644
--- a/libraries/eina/config.h.in
+++ b/libraries/eina/config.h.in
@@ -110,6 +110,12 @@
110 */ 110 */
111#undef HAVE_ALLOCA_H 111#undef HAVE_ALLOCA_H
112 112
113/* Define to 1 if you have the `backtrace' function. */
114#undef HAVE_BACKTRACE
115
116/* Define to 1 if you have the `backtrace_symbols' function. */
117#undef HAVE_BACKTRACE_SYMBOLS
118
113/* Define to 1 if you have a valid <dirent.h> header file. */ 119/* Define to 1 if you have a valid <dirent.h> header file. */
114#undef HAVE_DIRENT_H 120#undef HAVE_DIRENT_H
115 121
@@ -125,15 +131,21 @@
125/* Define to 1 if you have the `dlopen' function. */ 131/* Define to 1 if you have the `dlopen' function. */
126#undef HAVE_DLOPEN 132#undef HAVE_DLOPEN
127 133
128/* Set to 1 if evil package is installed */ 134/* Set to 1 if Escape package is installed */
129#undef HAVE_ESCAPE 135#undef HAVE_ESCAPE
130 136
131/* Set to 1 if evil package is installed */ 137/* Set to 1 if evil package is installed */
132#undef HAVE_EVIL 138#undef HAVE_EVIL
133 139
140/* Define to 1 if you have the <execinfo.h> header file. */
141#undef HAVE_EXECINFO_H
142
134/* Define to 1 if you have the `execvp' function. */ 143/* Define to 1 if you have the `execvp' function. */
135#undef HAVE_EXECVP 144#undef HAVE_EXECVP
136 145
146/* Define to 1 if you have Exotic. */
147#undef HAVE_EXOTIC_H
148
137/* Define to 1 if you have the `fpathconf' function. */ 149/* Define to 1 if you have the `fpathconf' function. */
138#undef HAVE_FPATHCONF 150#undef HAVE_FPATHCONF
139 151
diff --git a/libraries/eina/config.sub b/libraries/eina/config.sub
index eb0389a..c2d1257 100755
--- a/libraries/eina/config.sub
+++ b/libraries/eina/config.sub
@@ -1,10 +1,10 @@
1#! /bin/sh 1#! /bin/sh
2# Configuration validation subroutine script. 2# Configuration validation subroutine script.
3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 4# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5# Free Software Foundation, Inc. 5# Free Software Foundation, Inc.
6 6
7timestamp='2009-06-11' 7timestamp='2010-01-22'
8 8
9# This file is (in principle) common to ALL GNU software. 9# This file is (in principle) common to ALL GNU software.
10# The presence of a machine in this file suggests that SOME GNU software 10# The presence of a machine in this file suggests that SOME GNU software
@@ -32,13 +32,16 @@ timestamp='2009-06-11'
32 32
33 33
34# Please send patches to <config-patches@gnu.org>. Submit a context 34# Please send patches to <config-patches@gnu.org>. Submit a context
35# diff and a properly formatted ChangeLog entry. 35# diff and a properly formatted GNU ChangeLog entry.
36# 36#
37# Configuration subroutine to validate and canonicalize a configuration type. 37# Configuration subroutine to validate and canonicalize a configuration type.
38# Supply the specified configuration type as an argument. 38# Supply the specified configuration type as an argument.
39# If it is invalid, we print an error message on stderr and exit with code 1. 39# If it is invalid, we print an error message on stderr and exit with code 1.
40# Otherwise, we print the canonical config type on stdout and succeed. 40# Otherwise, we print the canonical config type on stdout and succeed.
41 41
42# You can get the latest version of this script from:
43# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
44
42# This file is supposed to be the same for all GNU packages 45# This file is supposed to be the same for all GNU packages
43# and recognize all the CPU types, system types and aliases 46# and recognize all the CPU types, system types and aliases
44# that are meaningful with *any* GNU software. 47# that are meaningful with *any* GNU software.
@@ -72,8 +75,9 @@ Report bugs and patches to <config-patches@gnu.org>."
72version="\ 75version="\
73GNU config.sub ($timestamp) 76GNU config.sub ($timestamp)
74 77
75Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 78Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
762002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 792001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
80Software Foundation, Inc.
77 81
78This is free software; see the source for copying conditions. There is NO 82This is free software; see the source for copying conditions. There is NO
79warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 83warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -149,7 +153,7 @@ case $os in
149 -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ 153 -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
150 -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ 154 -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
151 -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ 155 -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
152 -apple | -axis | -knuth | -cray) 156 -apple | -axis | -knuth | -cray | -microblaze)
153 os= 157 os=
154 basic_machine=$1 158 basic_machine=$1
155 ;; 159 ;;
@@ -284,6 +288,7 @@ case $basic_machine in
284 | pdp10 | pdp11 | pj | pjl \ 288 | pdp10 | pdp11 | pj | pjl \
285 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ 289 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
286 | pyramid \ 290 | pyramid \
291 | rx \
287 | score \ 292 | score \
288 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ 293 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
289 | sh64 | sh64le \ 294 | sh64 | sh64le \
@@ -291,13 +296,14 @@ case $basic_machine in
291 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ 296 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
292 | spu | strongarm \ 297 | spu | strongarm \
293 | tahoe | thumb | tic4x | tic80 | tron \ 298 | tahoe | thumb | tic4x | tic80 | tron \
299 | ubicom32 \
294 | v850 | v850e \ 300 | v850 | v850e \
295 | we32k \ 301 | we32k \
296 | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ 302 | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
297 | z8k | z80) 303 | z8k | z80)
298 basic_machine=$basic_machine-unknown 304 basic_machine=$basic_machine-unknown
299 ;; 305 ;;
300 m6811 | m68hc11 | m6812 | m68hc12) 306 m6811 | m68hc11 | m6812 | m68hc12 | picochip)
301 # Motorola 68HC11/12. 307 # Motorola 68HC11/12.
302 basic_machine=$basic_machine-unknown 308 basic_machine=$basic_machine-unknown
303 os=-none 309 os=-none
@@ -340,7 +346,7 @@ case $basic_machine in
340 | lm32-* \ 346 | lm32-* \
341 | m32c-* | m32r-* | m32rle-* \ 347 | m32c-* | m32r-* | m32rle-* \
342 | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ 348 | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
343 | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ 349 | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
344 | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ 350 | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
345 | mips16-* \ 351 | mips16-* \
346 | mips64-* | mips64el-* \ 352 | mips64-* | mips64el-* \
@@ -368,15 +374,17 @@ case $basic_machine in
368 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ 374 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
369 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ 375 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
370 | pyramid-* \ 376 | pyramid-* \
371 | romp-* | rs6000-* \ 377 | romp-* | rs6000-* | rx-* \
372 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ 378 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
373 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ 379 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
374 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ 380 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
375 | sparclite-* \ 381 | sparclite-* \
376 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ 382 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
377 | tahoe-* | thumb-* \ 383 | tahoe-* | thumb-* \
378 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ 384 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
385 | tile-* | tilegx-* \
379 | tron-* \ 386 | tron-* \
387 | ubicom32-* \
380 | v850-* | v850e-* | vax-* \ 388 | v850-* | v850e-* | vax-* \
381 | we32k-* \ 389 | we32k-* \
382 | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ 390 | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
@@ -726,6 +734,9 @@ case $basic_machine in
726 basic_machine=ns32k-utek 734 basic_machine=ns32k-utek
727 os=-sysv 735 os=-sysv
728 ;; 736 ;;
737 microblaze)
738 basic_machine=microblaze-xilinx
739 ;;
729 mingw32) 740 mingw32)
730 basic_machine=i386-pc 741 basic_machine=i386-pc
731 os=-mingw32 742 os=-mingw32
@@ -1076,6 +1087,11 @@ case $basic_machine in
1076 basic_machine=tic6x-unknown 1087 basic_machine=tic6x-unknown
1077 os=-coff 1088 os=-coff
1078 ;; 1089 ;;
1090 # This must be matched before tile*.
1091 tilegx*)
1092 basic_machine=tilegx-unknown
1093 os=-linux-gnu
1094 ;;
1079 tile*) 1095 tile*)
1080 basic_machine=tile-unknown 1096 basic_machine=tile-unknown
1081 os=-linux-gnu 1097 os=-linux-gnu
@@ -1247,6 +1263,9 @@ case $os in
1247 # First match some system type aliases 1263 # First match some system type aliases
1248 # that might get confused with valid system types. 1264 # that might get confused with valid system types.
1249 # -solaris* is a basic system type, with this one exception. 1265 # -solaris* is a basic system type, with this one exception.
1266 -auroraux)
1267 os=-auroraux
1268 ;;
1250 -solaris1 | -solaris1.*) 1269 -solaris1 | -solaris1.*)
1251 os=`echo $os | sed -e 's|solaris1|sunos4|'` 1270 os=`echo $os | sed -e 's|solaris1|sunos4|'`
1252 ;; 1271 ;;
@@ -1268,8 +1287,8 @@ case $os in
1268 # -sysv* is not here because it comes later, after sysvr4. 1287 # -sysv* is not here because it comes later, after sysvr4.
1269 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ 1288 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1270 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ 1289 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1271 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ 1290 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1272 | -kopensolaris* \ 1291 | -sym* | -kopensolaris* \
1273 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ 1292 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1274 | -aos* | -aros* \ 1293 | -aos* | -aros* \
1275 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ 1294 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
@@ -1290,7 +1309,7 @@ case $os in
1290 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ 1309 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1291 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ 1310 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1292 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ 1311 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1293 | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) 1312 | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
1294 # Remember, each alternative MUST END IN *, to match a version number. 1313 # Remember, each alternative MUST END IN *, to match a version number.
1295 ;; 1314 ;;
1296 -qnx*) 1315 -qnx*)
@@ -1423,6 +1442,8 @@ case $os in
1423 -dicos*) 1442 -dicos*)
1424 os=-dicos 1443 os=-dicos
1425 ;; 1444 ;;
1445 -nacl*)
1446 ;;
1426 -none) 1447 -none)
1427 ;; 1448 ;;
1428 *) 1449 *)
diff --git a/libraries/eina/configure b/libraries/eina/configure
index d3c2f30..ef62c1d 100755
--- a/libraries/eina/configure
+++ b/libraries/eina/configure
@@ -1,13 +1,13 @@
1#! /bin/sh 1#! /bin/sh
2# Guess values for system-dependent variables and create Makefiles. 2# Guess values for system-dependent variables and create Makefiles.
3# Generated by GNU Autoconf 2.65 for eina 1.1.99.67344. 3# Generated by GNU Autoconf 2.67 for eina 1.2.0-alpha.
4# 4#
5# Report bugs to <enlightenment-devel@lists.sourceforge.net>. 5# Report bugs to <enlightenment-devel@lists.sourceforge.net>.
6# 6#
7# 7#
8# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 8# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
9# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, 9# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
10# Inc. 10# Foundation, Inc.
11# 11#
12# 12#
13# This configure script is free software; the Free Software Foundation 13# This configure script is free software; the Free Software Foundation
@@ -319,7 +319,7 @@ $as_echo X"$as_dir" |
319 test -d "$as_dir" && break 319 test -d "$as_dir" && break
320 done 320 done
321 test -z "$as_dirs" || eval "mkdir $as_dirs" 321 test -z "$as_dirs" || eval "mkdir $as_dirs"
322 } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" 322 } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
323 323
324 324
325} # as_fn_mkdir_p 325} # as_fn_mkdir_p
@@ -359,19 +359,19 @@ else
359fi # as_fn_arith 359fi # as_fn_arith
360 360
361 361
362# as_fn_error ERROR [LINENO LOG_FD] 362# as_fn_error STATUS ERROR [LINENO LOG_FD]
363# --------------------------------- 363# ----------------------------------------
364# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are 364# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
365# provided, also output the error to LOG_FD, referencing LINENO. Then exit the 365# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
366# script with status $?, using 1 if that was 0. 366# script with STATUS, using 1 if that was 0.
367as_fn_error () 367as_fn_error ()
368{ 368{
369 as_status=$?; test $as_status -eq 0 && as_status=1 369 as_status=$1; test $as_status -eq 0 && as_status=1
370 if test "$3"; then 370 if test "$4"; then
371 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 371 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
372 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 372 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
373 fi 373 fi
374 $as_echo "$as_me: error: $1" >&2 374 $as_echo "$as_me: error: $2" >&2
375 as_fn_exit $as_status 375 as_fn_exit $as_status
376} # as_fn_error 376} # as_fn_error
377 377
@@ -682,7 +682,7 @@ test -n "$DJDIR" || exec 7<&0 </dev/null
682exec 6>&1 682exec 6>&1
683 683
684# Name of the host. 684# Name of the host.
685# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, 685# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
686# so uname gets run too. 686# so uname gets run too.
687ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` 687ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
688 688
@@ -701,8 +701,8 @@ MAKEFLAGS=
701# Identity of this package. 701# Identity of this package.
702PACKAGE_NAME='eina' 702PACKAGE_NAME='eina'
703PACKAGE_TARNAME='eina' 703PACKAGE_TARNAME='eina'
704PACKAGE_VERSION='1.1.99.67344' 704PACKAGE_VERSION='1.2.0-alpha'
705PACKAGE_STRING='eina 1.1.99.67344' 705PACKAGE_STRING='eina 1.2.0-alpha'
706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net' 706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net'
707PACKAGE_URL='' 707PACKAGE_URL=''
708 708
@@ -810,9 +810,13 @@ EINA_CONFIGURE_HAVE_INTTYPES_H
810lt_enable_auto_import 810lt_enable_auto_import
811EINA_LIBS 811EINA_LIBS
812EINA_CFLAGS 812EINA_CFLAGS
813EINA_CPPFLAGS
814ESCAPE_LIBS 813ESCAPE_LIBS
815ESCAPE_CFLAGS 814ESCAPE_CFLAGS
815EINA_CONFIGURE_HAVE_EXOTIC
816EINA_HAVE_EXOTIC_FALSE
817EINA_HAVE_EXOTIC_TRUE
818EXOTIC_LIBS
819EXOTIC_CFLAGS
816EINA_HAVE_WIN32_FALSE 820EINA_HAVE_WIN32_FALSE
817EINA_HAVE_WIN32_TRUE 821EINA_HAVE_WIN32_TRUE
818EINA_HAVE_WINCE_FALSE 822EINA_HAVE_WINCE_FALSE
@@ -833,6 +837,8 @@ EFL_BUILD_DOC_TRUE
833efl_doxygen 837efl_doxygen
834efl_have_doxygen 838efl_have_doxygen
835pkgconfig_requires_private 839pkgconfig_requires_private
840PKG_CONFIG_LIBDIR
841PKG_CONFIG_PATH
836PKG_CONFIG 842PKG_CONFIG
837CXXCPP 843CXXCPP
838am__fastdepCXX_FALSE 844am__fastdepCXX_FALSE
@@ -1039,6 +1045,8 @@ CXXFLAGS
1039CCC 1045CCC
1040CXXCPP 1046CXXCPP
1041PKG_CONFIG 1047PKG_CONFIG
1048PKG_CONFIG_PATH
1049PKG_CONFIG_LIBDIR
1042VALGRIND_CFLAGS 1050VALGRIND_CFLAGS
1043VALGRIND_LIBS 1051VALGRIND_LIBS
1044EVIL_CFLAGS 1052EVIL_CFLAGS
@@ -1047,6 +1055,8 @@ EMEMOA_CFLAGS
1047EMEMOA_LIBS 1055EMEMOA_LIBS
1048ECORE_EVAS_CFLAGS 1056ECORE_EVAS_CFLAGS
1049ECORE_EVAS_LIBS 1057ECORE_EVAS_LIBS
1058EXOTIC_CFLAGS
1059EXOTIC_LIBS
1050ESCAPE_CFLAGS 1060ESCAPE_CFLAGS
1051ESCAPE_LIBS 1061ESCAPE_LIBS
1052CHECK_CFLAGS 1062CHECK_CFLAGS
@@ -1115,8 +1125,9 @@ do
1115 fi 1125 fi
1116 1126
1117 case $ac_option in 1127 case $ac_option in
1118 *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; 1128 *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
1119 *) ac_optarg=yes ;; 1129 *=) ac_optarg= ;;
1130 *) ac_optarg=yes ;;
1120 esac 1131 esac
1121 1132
1122 # Accept the important Cygnus configure options, so we can diagnose typos. 1133 # Accept the important Cygnus configure options, so we can diagnose typos.
@@ -1161,7 +1172,7 @@ do
1161 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` 1172 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
1162 # Reject names that are not valid shell variable names. 1173 # Reject names that are not valid shell variable names.
1163 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1174 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1164 as_fn_error "invalid feature name: $ac_useropt" 1175 as_fn_error $? "invalid feature name: $ac_useropt"
1165 ac_useropt_orig=$ac_useropt 1176 ac_useropt_orig=$ac_useropt
1166 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1177 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1167 case $ac_user_opts in 1178 case $ac_user_opts in
@@ -1187,7 +1198,7 @@ do
1187 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` 1198 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
1188 # Reject names that are not valid shell variable names. 1199 # Reject names that are not valid shell variable names.
1189 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1200 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1190 as_fn_error "invalid feature name: $ac_useropt" 1201 as_fn_error $? "invalid feature name: $ac_useropt"
1191 ac_useropt_orig=$ac_useropt 1202 ac_useropt_orig=$ac_useropt
1192 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1203 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1193 case $ac_user_opts in 1204 case $ac_user_opts in
@@ -1391,7 +1402,7 @@ do
1391 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` 1402 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
1392 # Reject names that are not valid shell variable names. 1403 # Reject names that are not valid shell variable names.
1393 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1404 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1394 as_fn_error "invalid package name: $ac_useropt" 1405 as_fn_error $? "invalid package name: $ac_useropt"
1395 ac_useropt_orig=$ac_useropt 1406 ac_useropt_orig=$ac_useropt
1396 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1407 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1397 case $ac_user_opts in 1408 case $ac_user_opts in
@@ -1407,7 +1418,7 @@ do
1407 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` 1418 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
1408 # Reject names that are not valid shell variable names. 1419 # Reject names that are not valid shell variable names.
1409 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1420 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1410 as_fn_error "invalid package name: $ac_useropt" 1421 as_fn_error $? "invalid package name: $ac_useropt"
1411 ac_useropt_orig=$ac_useropt 1422 ac_useropt_orig=$ac_useropt
1412 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1423 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1413 case $ac_user_opts in 1424 case $ac_user_opts in
@@ -1437,8 +1448,8 @@ do
1437 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) 1448 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
1438 x_libraries=$ac_optarg ;; 1449 x_libraries=$ac_optarg ;;
1439 1450
1440 -*) as_fn_error "unrecognized option: \`$ac_option' 1451 -*) as_fn_error $? "unrecognized option: \`$ac_option'
1441Try \`$0 --help' for more information." 1452Try \`$0 --help' for more information"
1442 ;; 1453 ;;
1443 1454
1444 *=*) 1455 *=*)
@@ -1446,7 +1457,7 @@ Try \`$0 --help' for more information."
1446 # Reject names that are not valid shell variable names. 1457 # Reject names that are not valid shell variable names.
1447 case $ac_envvar in #( 1458 case $ac_envvar in #(
1448 '' | [0-9]* | *[!_$as_cr_alnum]* ) 1459 '' | [0-9]* | *[!_$as_cr_alnum]* )
1449 as_fn_error "invalid variable name: \`$ac_envvar'" ;; 1460 as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
1450 esac 1461 esac
1451 eval $ac_envvar=\$ac_optarg 1462 eval $ac_envvar=\$ac_optarg
1452 export $ac_envvar ;; 1463 export $ac_envvar ;;
@@ -1464,13 +1475,13 @@ done
1464 1475
1465if test -n "$ac_prev"; then 1476if test -n "$ac_prev"; then
1466 ac_option=--`echo $ac_prev | sed 's/_/-/g'` 1477 ac_option=--`echo $ac_prev | sed 's/_/-/g'`
1467 as_fn_error "missing argument to $ac_option" 1478 as_fn_error $? "missing argument to $ac_option"
1468fi 1479fi
1469 1480
1470if test -n "$ac_unrecognized_opts"; then 1481if test -n "$ac_unrecognized_opts"; then
1471 case $enable_option_checking in 1482 case $enable_option_checking in
1472 no) ;; 1483 no) ;;
1473 fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; 1484 fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
1474 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; 1485 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
1475 esac 1486 esac
1476fi 1487fi
@@ -1493,7 +1504,7 @@ do
1493 [\\/$]* | ?:[\\/]* ) continue;; 1504 [\\/$]* | ?:[\\/]* ) continue;;
1494 NONE | '' ) case $ac_var in *prefix ) continue;; esac;; 1505 NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
1495 esac 1506 esac
1496 as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" 1507 as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
1497done 1508done
1498 1509
1499# There might be people who depend on the old broken behavior: `$host' 1510# There might be people who depend on the old broken behavior: `$host'
@@ -1507,8 +1518,8 @@ target=$target_alias
1507if test "x$host_alias" != x; then 1518if test "x$host_alias" != x; then
1508 if test "x$build_alias" = x; then 1519 if test "x$build_alias" = x; then
1509 cross_compiling=maybe 1520 cross_compiling=maybe
1510 $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. 1521 $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
1511 If a cross compiler is detected then cross compile mode will be used." >&2 1522 If a cross compiler is detected then cross compile mode will be used" >&2
1512 elif test "x$build_alias" != "x$host_alias"; then 1523 elif test "x$build_alias" != "x$host_alias"; then
1513 cross_compiling=yes 1524 cross_compiling=yes
1514 fi 1525 fi
@@ -1523,9 +1534,9 @@ test "$silent" = yes && exec 6>/dev/null
1523ac_pwd=`pwd` && test -n "$ac_pwd" && 1534ac_pwd=`pwd` && test -n "$ac_pwd" &&
1524ac_ls_di=`ls -di .` && 1535ac_ls_di=`ls -di .` &&
1525ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || 1536ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
1526 as_fn_error "working directory cannot be determined" 1537 as_fn_error $? "working directory cannot be determined"
1527test "X$ac_ls_di" = "X$ac_pwd_ls_di" || 1538test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
1528 as_fn_error "pwd does not report name of working directory" 1539 as_fn_error $? "pwd does not report name of working directory"
1529 1540
1530 1541
1531# Find the source files, if location was not specified. 1542# Find the source files, if location was not specified.
@@ -1564,11 +1575,11 @@ else
1564fi 1575fi
1565if test ! -r "$srcdir/$ac_unique_file"; then 1576if test ! -r "$srcdir/$ac_unique_file"; then
1566 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." 1577 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
1567 as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" 1578 as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
1568fi 1579fi
1569ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" 1580ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
1570ac_abs_confdir=`( 1581ac_abs_confdir=`(
1571 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" 1582 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
1572 pwd)` 1583 pwd)`
1573# When building in place, set srcdir=. 1584# When building in place, set srcdir=.
1574if test "$ac_abs_confdir" = "$ac_pwd"; then 1585if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1594,7 +1605,7 @@ if test "$ac_init_help" = "long"; then
1594 # Omit some internal or obsolete options to make the list less imposing. 1605 # Omit some internal or obsolete options to make the list less imposing.
1595 # This message is too long to be a string in the A/UX 3.1 sh. 1606 # This message is too long to be a string in the A/UX 3.1 sh.
1596 cat <<_ACEOF 1607 cat <<_ACEOF
1597\`configure' configures eina 1.1.99.67344 to adapt to many kinds of systems. 1608\`configure' configures eina 1.2.0-alpha to adapt to many kinds of systems.
1598 1609
1599Usage: $0 [OPTION]... [VAR=VALUE]... 1610Usage: $0 [OPTION]... [VAR=VALUE]...
1600 1611
@@ -1608,7 +1619,7 @@ Configuration:
1608 --help=short display options specific to this package 1619 --help=short display options specific to this package
1609 --help=recursive display the short help of all the included packages 1620 --help=recursive display the short help of all the included packages
1610 -V, --version display version information and exit 1621 -V, --version display version information and exit
1611 -q, --quiet, --silent do not print \`checking...' messages 1622 -q, --quiet, --silent do not print \`checking ...' messages
1612 --cache-file=FILE cache test results in FILE [disabled] 1623 --cache-file=FILE cache test results in FILE [disabled]
1613 -C, --config-cache alias for \`--cache-file=config.cache' 1624 -C, --config-cache alias for \`--cache-file=config.cache'
1614 -n, --no-create do not create output files 1625 -n, --no-create do not create output files
@@ -1664,7 +1675,7 @@ fi
1664 1675
1665if test -n "$ac_init_help"; then 1676if test -n "$ac_init_help"; then
1666 case $ac_init_help in 1677 case $ac_init_help in
1667 short | recursive ) echo "Configuration of eina 1.1.99.67344:";; 1678 short | recursive ) echo "Configuration of eina 1.2.0-alpha:";;
1668 esac 1679 esac
1669 cat <<\_ACEOF 1680 cat <<\_ACEOF
1670 1681
@@ -1772,6 +1783,10 @@ Some influential environment variables:
1772 CXXFLAGS C++ compiler flags 1783 CXXFLAGS C++ compiler flags
1773 CXXCPP C++ preprocessor 1784 CXXCPP C++ preprocessor
1774 PKG_CONFIG path to pkg-config utility 1785 PKG_CONFIG path to pkg-config utility
1786 PKG_CONFIG_PATH
1787 directories to add to pkg-config's search path
1788 PKG_CONFIG_LIBDIR
1789 path overriding pkg-config's built-in search path
1775 VALGRIND_CFLAGS 1790 VALGRIND_CFLAGS
1776 C compiler flags for VALGRIND, overriding pkg-config 1791 C compiler flags for VALGRIND, overriding pkg-config
1777 VALGRIND_LIBS 1792 VALGRIND_LIBS
@@ -1785,6 +1800,9 @@ Some influential environment variables:
1785 C compiler flags for ECORE_EVAS, overriding pkg-config 1800 C compiler flags for ECORE_EVAS, overriding pkg-config
1786 ECORE_EVAS_LIBS 1801 ECORE_EVAS_LIBS
1787 linker flags for ECORE_EVAS, overriding pkg-config 1802 linker flags for ECORE_EVAS, overriding pkg-config
1803 EXOTIC_CFLAGS
1804 C compiler flags for EXOTIC, overriding pkg-config
1805 EXOTIC_LIBS linker flags for EXOTIC, overriding pkg-config
1788 ESCAPE_CFLAGS 1806 ESCAPE_CFLAGS
1789 C compiler flags for ESCAPE, overriding pkg-config 1807 C compiler flags for ESCAPE, overriding pkg-config
1790 ESCAPE_LIBS linker flags for ESCAPE, overriding pkg-config 1808 ESCAPE_LIBS linker flags for ESCAPE, overriding pkg-config
@@ -1860,10 +1878,10 @@ fi
1860test -n "$ac_init_help" && exit $ac_status 1878test -n "$ac_init_help" && exit $ac_status
1861if $ac_init_version; then 1879if $ac_init_version; then
1862 cat <<\_ACEOF 1880 cat <<\_ACEOF
1863eina configure 1.1.99.67344 1881eina configure 1.2.0-alpha
1864generated by GNU Autoconf 2.65 1882generated by GNU Autoconf 2.67
1865 1883
1866Copyright (C) 2009 Free Software Foundation, Inc. 1884Copyright (C) 2010 Free Software Foundation, Inc.
1867This configure script is free software; the Free Software Foundation 1885This configure script is free software; the Free Software Foundation
1868gives unlimited permission to copy, distribute and modify it. 1886gives unlimited permission to copy, distribute and modify it.
1869_ACEOF 1887_ACEOF
@@ -1933,7 +1951,7 @@ $as_echo "$ac_try_echo"; } >&5
1933 mv -f conftest.er1 conftest.err 1951 mv -f conftest.er1 conftest.err
1934 fi 1952 fi
1935 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 1953 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1936 test $ac_status = 0; } >/dev/null && { 1954 test $ac_status = 0; } > conftest.i && {
1937 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || 1955 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
1938 test ! -s conftest.err 1956 test ! -s conftest.err
1939 }; then : 1957 }; then :
@@ -1957,10 +1975,10 @@ fi
1957ac_fn_c_check_header_mongrel () 1975ac_fn_c_check_header_mongrel ()
1958{ 1976{
1959 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 1977 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1960 if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 1978 if eval "test \"\${$3+set}\"" = set; then :
1961 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 1979 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
1962$as_echo_n "checking for $2... " >&6; } 1980$as_echo_n "checking for $2... " >&6; }
1963if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 1981if eval "test \"\${$3+set}\"" = set; then :
1964 $as_echo_n "(cached) " >&6 1982 $as_echo_n "(cached) " >&6
1965fi 1983fi
1966eval ac_res=\$$3 1984eval ac_res=\$$3
@@ -1996,7 +2014,7 @@ if ac_fn_c_try_cpp "$LINENO"; then :
1996else 2014else
1997 ac_header_preproc=no 2015 ac_header_preproc=no
1998fi 2016fi
1999rm -f conftest.err conftest.$ac_ext 2017rm -f conftest.err conftest.i conftest.$ac_ext
2000{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 2018{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
2001$as_echo "$ac_header_preproc" >&6; } 2019$as_echo "$ac_header_preproc" >&6; }
2002 2020
@@ -2019,17 +2037,15 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
2019$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} 2037$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
2020 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 2038 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
2021$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} 2039$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
2022( cat <<\_ASBOX 2040( $as_echo "## -------------------------------------------------------- ##
2023## -------------------------------------------------------- ##
2024## Report this to enlightenment-devel@lists.sourceforge.net ## 2041## Report this to enlightenment-devel@lists.sourceforge.net ##
2025## -------------------------------------------------------- ## 2042## -------------------------------------------------------- ##"
2026_ASBOX
2027 ) | sed "s/^/$as_me: WARNING: /" >&2 2043 ) | sed "s/^/$as_me: WARNING: /" >&2
2028 ;; 2044 ;;
2029esac 2045esac
2030 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2046 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2031$as_echo_n "checking for $2... " >&6; } 2047$as_echo_n "checking for $2... " >&6; }
2032if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 2048if eval "test \"\${$3+set}\"" = set; then :
2033 $as_echo_n "(cached) " >&6 2049 $as_echo_n "(cached) " >&6
2034else 2050else
2035 eval "$3=\$ac_header_compiler" 2051 eval "$3=\$ac_header_compiler"
@@ -2093,7 +2109,7 @@ ac_fn_c_check_header_compile ()
2093 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2109 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2094 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2110 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2095$as_echo_n "checking for $2... " >&6; } 2111$as_echo_n "checking for $2... " >&6; }
2096if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 2112if eval "test \"\${$3+set}\"" = set; then :
2097 $as_echo_n "(cached) " >&6 2113 $as_echo_n "(cached) " >&6
2098else 2114else
2099 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 2115 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2169,7 +2185,7 @@ ac_fn_c_check_func ()
2169 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2185 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2170 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2186 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2171$as_echo_n "checking for $2... " >&6; } 2187$as_echo_n "checking for $2... " >&6; }
2172if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 2188if eval "test \"\${$3+set}\"" = set; then :
2173 $as_echo_n "(cached) " >&6 2189 $as_echo_n "(cached) " >&6
2174else 2190else
2175 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 2191 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2287,7 +2303,7 @@ $as_echo "$ac_try_echo"; } >&5
2287 mv -f conftest.er1 conftest.err 2303 mv -f conftest.er1 conftest.err
2288 fi 2304 fi
2289 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 2305 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2290 test $ac_status = 0; } >/dev/null && { 2306 test $ac_status = 0; } > conftest.i && {
2291 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || 2307 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
2292 test ! -s conftest.err 2308 test ! -s conftest.err
2293 }; then : 2309 }; then :
@@ -2536,7 +2552,7 @@ ac_fn_c_check_type ()
2536 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2552 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2537 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2553 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2538$as_echo_n "checking for $2... " >&6; } 2554$as_echo_n "checking for $2... " >&6; }
2539if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 2555if eval "test \"\${$3+set}\"" = set; then :
2540 $as_echo_n "(cached) " >&6 2556 $as_echo_n "(cached) " >&6
2541else 2557else
2542 eval "$3=no" 2558 eval "$3=no"
@@ -2584,8 +2600,8 @@ cat >config.log <<_ACEOF
2584This file contains any messages produced by compilers while 2600This file contains any messages produced by compilers while
2585running configure, to aid debugging if configure makes a mistake. 2601running configure, to aid debugging if configure makes a mistake.
2586 2602
2587It was created by eina $as_me 1.1.99.67344, which was 2603It was created by eina $as_me 1.2.0-alpha, which was
2588generated by GNU Autoconf 2.65. Invocation command line was 2604generated by GNU Autoconf 2.67. Invocation command line was
2589 2605
2590 $ $0 $@ 2606 $ $0 $@
2591 2607
@@ -2695,11 +2711,9 @@ trap 'exit_status=$?
2695 { 2711 {
2696 echo 2712 echo
2697 2713
2698 cat <<\_ASBOX 2714 $as_echo "## ---------------- ##
2699## ---------------- ##
2700## Cache variables. ## 2715## Cache variables. ##
2701## ---------------- ## 2716## ---------------- ##"
2702_ASBOX
2703 echo 2717 echo
2704 # The following way of writing the cache mishandles newlines in values, 2718 # The following way of writing the cache mishandles newlines in values,
2705( 2719(
@@ -2733,11 +2747,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2733) 2747)
2734 echo 2748 echo
2735 2749
2736 cat <<\_ASBOX 2750 $as_echo "## ----------------- ##
2737## ----------------- ##
2738## Output variables. ## 2751## Output variables. ##
2739## ----------------- ## 2752## ----------------- ##"
2740_ASBOX
2741 echo 2753 echo
2742 for ac_var in $ac_subst_vars 2754 for ac_var in $ac_subst_vars
2743 do 2755 do
@@ -2750,11 +2762,9 @@ _ASBOX
2750 echo 2762 echo
2751 2763
2752 if test -n "$ac_subst_files"; then 2764 if test -n "$ac_subst_files"; then
2753 cat <<\_ASBOX 2765 $as_echo "## ------------------- ##
2754## ------------------- ##
2755## File substitutions. ## 2766## File substitutions. ##
2756## ------------------- ## 2767## ------------------- ##"
2757_ASBOX
2758 echo 2768 echo
2759 for ac_var in $ac_subst_files 2769 for ac_var in $ac_subst_files
2760 do 2770 do
@@ -2768,11 +2778,9 @@ _ASBOX
2768 fi 2778 fi
2769 2779
2770 if test -s confdefs.h; then 2780 if test -s confdefs.h; then
2771 cat <<\_ASBOX 2781 $as_echo "## ----------- ##
2772## ----------- ##
2773## confdefs.h. ## 2782## confdefs.h. ##
2774## ----------- ## 2783## ----------- ##"
2775_ASBOX
2776 echo 2784 echo
2777 cat confdefs.h 2785 cat confdefs.h
2778 echo 2786 echo
@@ -2827,7 +2835,12 @@ _ACEOF
2827ac_site_file1=NONE 2835ac_site_file1=NONE
2828ac_site_file2=NONE 2836ac_site_file2=NONE
2829if test -n "$CONFIG_SITE"; then 2837if test -n "$CONFIG_SITE"; then
2830 ac_site_file1=$CONFIG_SITE 2838 # We do not want a PATH search for config.site.
2839 case $CONFIG_SITE in #((
2840 -*) ac_site_file1=./$CONFIG_SITE;;
2841 */*) ac_site_file1=$CONFIG_SITE;;
2842 *) ac_site_file1=./$CONFIG_SITE;;
2843 esac
2831elif test "x$prefix" != xNONE; then 2844elif test "x$prefix" != xNONE; then
2832 ac_site_file1=$prefix/share/config.site 2845 ac_site_file1=$prefix/share/config.site
2833 ac_site_file2=$prefix/etc/config.site 2846 ac_site_file2=$prefix/etc/config.site
@@ -2842,7 +2855,11 @@ do
2842 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 2855 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
2843$as_echo "$as_me: loading site script $ac_site_file" >&6;} 2856$as_echo "$as_me: loading site script $ac_site_file" >&6;}
2844 sed 's/^/| /' "$ac_site_file" >&5 2857 sed 's/^/| /' "$ac_site_file" >&5
2845 . "$ac_site_file" 2858 . "$ac_site_file" \
2859 || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
2860$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
2861as_fn_error $? "failed to load site script $ac_site_file
2862See \`config.log' for more details" "$LINENO" 5 ; }
2846 fi 2863 fi
2847done 2864done
2848 2865
@@ -2918,7 +2935,7 @@ if $ac_cache_corrupted; then
2918$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 2935$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
2919 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 2936 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
2920$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} 2937$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
2921 as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 2938 as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
2922fi 2939fi
2923## -------------------- ## 2940## -------------------- ##
2924## Main body of script. ## 2941## Main body of script. ##
@@ -2944,16 +2961,22 @@ am__api_version='1.11'
2944 2961
2945ac_aux_dir= 2962ac_aux_dir=
2946for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do 2963for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
2947 for ac_t in install-sh install.sh shtool; do 2964 if test -f "$ac_dir/install-sh"; then
2948 if test -f "$ac_dir/$ac_t"; then 2965 ac_aux_dir=$ac_dir
2949 ac_aux_dir=$ac_dir 2966 ac_install_sh="$ac_aux_dir/install-sh -c"
2950 ac_install_sh="$ac_aux_dir/$ac_t -c" 2967 break
2951 break 2 2968 elif test -f "$ac_dir/install.sh"; then
2952 fi 2969 ac_aux_dir=$ac_dir
2953 done 2970 ac_install_sh="$ac_aux_dir/install.sh -c"
2971 break
2972 elif test -f "$ac_dir/shtool"; then
2973 ac_aux_dir=$ac_dir
2974 ac_install_sh="$ac_aux_dir/shtool install -c"
2975 break
2976 fi
2954done 2977done
2955if test -z "$ac_aux_dir"; then 2978if test -z "$ac_aux_dir"; then
2956 as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 2979 as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
2957fi 2980fi
2958 2981
2959# These three variables are undocumented and unsupported, 2982# These three variables are undocumented and unsupported,
@@ -3069,11 +3092,11 @@ am_lf='
3069' 3092'
3070case `pwd` in 3093case `pwd` in
3071 *[\\\"\#\$\&\'\`$am_lf]*) 3094 *[\\\"\#\$\&\'\`$am_lf]*)
3072 as_fn_error "unsafe absolute working directory name" "$LINENO" 5;; 3095 as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;;
3073esac 3096esac
3074case $srcdir in 3097case $srcdir in
3075 *[\\\"\#\$\&\'\`$am_lf\ \ ]*) 3098 *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
3076 as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; 3099 as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;;
3077esac 3100esac
3078 3101
3079# Do `set' in a subshell so we don't clobber the current shell's 3102# Do `set' in a subshell so we don't clobber the current shell's
@@ -3095,7 +3118,7 @@ if (
3095 # if, for instance, CONFIG_SHELL is bash and it inherits a 3118 # if, for instance, CONFIG_SHELL is bash and it inherits a
3096 # broken ls alias from the environment. This has actually 3119 # broken ls alias from the environment. This has actually
3097 # happened. Such a system could not be considered "sane". 3120 # happened. Such a system could not be considered "sane".
3098 as_fn_error "ls -t appears to fail. Make sure there is not a broken 3121 as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
3099alias in your environment" "$LINENO" 5 3122alias in your environment" "$LINENO" 5
3100 fi 3123 fi
3101 3124
@@ -3105,7 +3128,7 @@ then
3105 # Ok. 3128 # Ok.
3106 : 3129 :
3107else 3130else
3108 as_fn_error "newly created file is older than distributed files! 3131 as_fn_error $? "newly created file is older than distributed files!
3109Check your system clock" "$LINENO" 5 3132Check your system clock" "$LINENO" 5
3110fi 3133fi
3111{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 3134{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -3343,7 +3366,7 @@ done
3343$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } 3366$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
3344set x ${MAKE-make} 3367set x ${MAKE-make}
3345ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` 3368ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
3346if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : 3369if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
3347 $as_echo_n "(cached) " >&6 3370 $as_echo_n "(cached) " >&6
3348else 3371else
3349 cat >conftest.make <<\_ACEOF 3372 cat >conftest.make <<\_ACEOF
@@ -3351,7 +3374,7 @@ SHELL = /bin/sh
3351all: 3374all:
3352 @echo '@@@%%%=$(MAKE)=@@@%%%' 3375 @echo '@@@%%%=$(MAKE)=@@@%%%'
3353_ACEOF 3376_ACEOF
3354# GNU make sometimes prints "make[1]: Entering...", which would confuse us. 3377# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
3355case `${MAKE-make} -f conftest.make 2>/dev/null` in 3378case `${MAKE-make} -f conftest.make 2>/dev/null` in
3356 *@@@%%%=?*=@@@%%%*) 3379 *@@@%%%=?*=@@@%%%*)
3357 eval ac_cv_prog_make_${ac_make}_set=yes;; 3380 eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -3385,7 +3408,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
3385 am__isrc=' -I$(srcdir)' 3408 am__isrc=' -I$(srcdir)'
3386 # test to see if srcdir already configured 3409 # test to see if srcdir already configured
3387 if test -f $srcdir/config.status; then 3410 if test -f $srcdir/config.status; then
3388 as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 3411 as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
3389 fi 3412 fi
3390fi 3413fi
3391 3414
@@ -3401,7 +3424,7 @@ fi
3401 3424
3402# Define the identity of the package. 3425# Define the identity of the package.
3403 PACKAGE='eina' 3426 PACKAGE='eina'
3404 VERSION='1.1.99.67344' 3427 VERSION='1.2.0-alpha'
3405 3428
3406 3429
3407cat >>confdefs.h <<_ACEOF 3430cat >>confdefs.h <<_ACEOF
@@ -3816,8 +3839,8 @@ fi
3816 3839
3817test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3840test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3818$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3841$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3819as_fn_error "no acceptable C compiler found in \$PATH 3842as_fn_error $? "no acceptable C compiler found in \$PATH
3820See \`config.log' for more details." "$LINENO" 5; } 3843See \`config.log' for more details" "$LINENO" 5 ; }
3821 3844
3822# Provide some information about the compiler. 3845# Provide some information about the compiler.
3823$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 3846$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -3931,9 +3954,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
3931 3954
3932{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3955{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3933$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3956$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3934{ as_fn_set_status 77 3957as_fn_error 77 "C compiler cannot create executables
3935as_fn_error "C compiler cannot create executables 3958See \`config.log' for more details" "$LINENO" 5 ; }
3936See \`config.log' for more details." "$LINENO" 5; }; }
3937else 3959else
3938 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 3960 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
3939$as_echo "yes" >&6; } 3961$as_echo "yes" >&6; }
@@ -3975,8 +3997,8 @@ done
3975else 3997else
3976 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3998 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3977$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3999$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3978as_fn_error "cannot compute suffix of executables: cannot compile and link 4000as_fn_error $? "cannot compute suffix of executables: cannot compile and link
3979See \`config.log' for more details." "$LINENO" 5; } 4001See \`config.log' for more details" "$LINENO" 5 ; }
3980fi 4002fi
3981rm -f conftest conftest$ac_cv_exeext 4003rm -f conftest conftest$ac_cv_exeext
3982{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 4004{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -4033,9 +4055,9 @@ $as_echo "$ac_try_echo"; } >&5
4033 else 4055 else
4034 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4056 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4035$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4057$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4036as_fn_error "cannot run C compiled programs. 4058as_fn_error $? "cannot run C compiled programs.
4037If you meant to cross compile, use \`--host'. 4059If you meant to cross compile, use \`--host'.
4038See \`config.log' for more details." "$LINENO" 5; } 4060See \`config.log' for more details" "$LINENO" 5 ; }
4039 fi 4061 fi
4040 fi 4062 fi
4041fi 4063fi
@@ -4086,8 +4108,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
4086 4108
4087{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4109{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4088$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4110$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4089as_fn_error "cannot compute suffix of object files: cannot compile 4111as_fn_error $? "cannot compute suffix of object files: cannot compile
4090See \`config.log' for more details." "$LINENO" 5; } 4112See \`config.log' for more details" "$LINENO" 5 ; }
4091fi 4113fi
4092rm -f conftest.$ac_cv_objext conftest.$ac_ext 4114rm -f conftest.$ac_cv_objext conftest.$ac_ext
4093fi 4115fi
@@ -4477,7 +4499,7 @@ else
4477 # Broken: fails on valid input. 4499 # Broken: fails on valid input.
4478continue 4500continue
4479fi 4501fi
4480rm -f conftest.err conftest.$ac_ext 4502rm -f conftest.err conftest.i conftest.$ac_ext
4481 4503
4482 # OK, works on sane cases. Now check whether nonexistent headers 4504 # OK, works on sane cases. Now check whether nonexistent headers
4483 # can be detected and how. 4505 # can be detected and how.
@@ -4493,11 +4515,11 @@ else
4493ac_preproc_ok=: 4515ac_preproc_ok=:
4494break 4516break
4495fi 4517fi
4496rm -f conftest.err conftest.$ac_ext 4518rm -f conftest.err conftest.i conftest.$ac_ext
4497 4519
4498done 4520done
4499# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 4521# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
4500rm -f conftest.err conftest.$ac_ext 4522rm -f conftest.i conftest.err conftest.$ac_ext
4501if $ac_preproc_ok; then : 4523if $ac_preproc_ok; then :
4502 break 4524 break
4503fi 4525fi
@@ -4536,7 +4558,7 @@ else
4536 # Broken: fails on valid input. 4558 # Broken: fails on valid input.
4537continue 4559continue
4538fi 4560fi
4539rm -f conftest.err conftest.$ac_ext 4561rm -f conftest.err conftest.i conftest.$ac_ext
4540 4562
4541 # OK, works on sane cases. Now check whether nonexistent headers 4563 # OK, works on sane cases. Now check whether nonexistent headers
4542 # can be detected and how. 4564 # can be detected and how.
@@ -4552,18 +4574,18 @@ else
4552ac_preproc_ok=: 4574ac_preproc_ok=:
4553break 4575break
4554fi 4576fi
4555rm -f conftest.err conftest.$ac_ext 4577rm -f conftest.err conftest.i conftest.$ac_ext
4556 4578
4557done 4579done
4558# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 4580# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
4559rm -f conftest.err conftest.$ac_ext 4581rm -f conftest.i conftest.err conftest.$ac_ext
4560if $ac_preproc_ok; then : 4582if $ac_preproc_ok; then :
4561 4583
4562else 4584else
4563 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4585 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4564$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4586$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4565as_fn_error "C preprocessor \"$CPP\" fails sanity check 4587as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
4566See \`config.log' for more details." "$LINENO" 5; } 4588See \`config.log' for more details" "$LINENO" 5 ; }
4567fi 4589fi
4568 4590
4569ac_ext=c 4591ac_ext=c
@@ -4624,7 +4646,7 @@ esac
4624 done 4646 done
4625IFS=$as_save_IFS 4647IFS=$as_save_IFS
4626 if test -z "$ac_cv_path_GREP"; then 4648 if test -z "$ac_cv_path_GREP"; then
4627 as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 4649 as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
4628 fi 4650 fi
4629else 4651else
4630 ac_cv_path_GREP=$GREP 4652 ac_cv_path_GREP=$GREP
@@ -4690,7 +4712,7 @@ esac
4690 done 4712 done
4691IFS=$as_save_IFS 4713IFS=$as_save_IFS
4692 if test -z "$ac_cv_path_EGREP"; then 4714 if test -z "$ac_cv_path_EGREP"; then
4693 as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 4715 as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
4694 fi 4716 fi
4695else 4717else
4696 ac_cv_path_EGREP=$EGREP 4718 ac_cv_path_EGREP=$EGREP
@@ -4822,8 +4844,7 @@ do :
4822 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 4844 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
4823ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default 4845ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
4824" 4846"
4825eval as_val=\$$as_ac_Header 4847if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
4826 if test "x$as_val" = x""yes; then :
4827 cat >>confdefs.h <<_ACEOF 4848 cat >>confdefs.h <<_ACEOF
4828#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 4849#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
4829_ACEOF 4850_ACEOF
@@ -5096,7 +5117,7 @@ fi
5096 5117
5097# Make sure we can run config.sub. 5118# Make sure we can run config.sub.
5098$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || 5119$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
5099 as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 5120 as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
5100 5121
5101{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 5122{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
5102$as_echo_n "checking build system type... " >&6; } 5123$as_echo_n "checking build system type... " >&6; }
@@ -5107,16 +5128,16 @@ else
5107test "x$ac_build_alias" = x && 5128test "x$ac_build_alias" = x &&
5108 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` 5129 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
5109test "x$ac_build_alias" = x && 5130test "x$ac_build_alias" = x &&
5110 as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 5131 as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
5111ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || 5132ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
5112 as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 5133 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
5113 5134
5114fi 5135fi
5115{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 5136{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
5116$as_echo "$ac_cv_build" >&6; } 5137$as_echo "$ac_cv_build" >&6; }
5117case $ac_cv_build in 5138case $ac_cv_build in
5118*-*-*) ;; 5139*-*-*) ;;
5119*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; 5140*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
5120esac 5141esac
5121build=$ac_cv_build 5142build=$ac_cv_build
5122ac_save_IFS=$IFS; IFS='-' 5143ac_save_IFS=$IFS; IFS='-'
@@ -5141,7 +5162,7 @@ else
5141 ac_cv_host=$ac_cv_build 5162 ac_cv_host=$ac_cv_build
5142else 5163else
5143 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || 5164 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
5144 as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 5165 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
5145fi 5166fi
5146 5167
5147fi 5168fi
@@ -5149,7 +5170,7 @@ fi
5149$as_echo "$ac_cv_host" >&6; } 5170$as_echo "$ac_cv_host" >&6; }
5150case $ac_cv_host in 5171case $ac_cv_host in
5151*-*-*) ;; 5172*-*-*) ;;
5152*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; 5173*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
5153esac 5174esac
5154host=$ac_cv_host 5175host=$ac_cv_host
5155ac_save_IFS=$IFS; IFS='-' 5176ac_save_IFS=$IFS; IFS='-'
@@ -5550,7 +5571,7 @@ esac
5550 done 5571 done
5551IFS=$as_save_IFS 5572IFS=$as_save_IFS
5552 if test -z "$ac_cv_path_SED"; then 5573 if test -z "$ac_cv_path_SED"; then
5553 as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 5574 as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
5554 fi 5575 fi
5555else 5576else
5556 ac_cv_path_SED=$SED 5577 ac_cv_path_SED=$SED
@@ -5629,7 +5650,7 @@ esac
5629 done 5650 done
5630IFS=$as_save_IFS 5651IFS=$as_save_IFS
5631 if test -z "$ac_cv_path_FGREP"; then 5652 if test -z "$ac_cv_path_FGREP"; then
5632 as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 5653 as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
5633 fi 5654 fi
5634else 5655else
5635 ac_cv_path_FGREP=$FGREP 5656 ac_cv_path_FGREP=$FGREP
@@ -5745,7 +5766,7 @@ else
5745 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 5766 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5746$as_echo "no" >&6; } 5767$as_echo "no" >&6; }
5747fi 5768fi
5748test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 5769test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
5749{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 5770{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
5750$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } 5771$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
5751if test "${lt_cv_prog_gnu_ld+set}" = set; then : 5772if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -5947,13 +5968,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
5947else 5968else
5948 lt_cv_nm_interface="BSD nm" 5969 lt_cv_nm_interface="BSD nm"
5949 echo "int some_variable = 0;" > conftest.$ac_ext 5970 echo "int some_variable = 0;" > conftest.$ac_ext
5950 (eval echo "\"\$as_me:5950: $ac_compile\"" >&5) 5971 (eval echo "\"\$as_me:5971: $ac_compile\"" >&5)
5951 (eval "$ac_compile" 2>conftest.err) 5972 (eval "$ac_compile" 2>conftest.err)
5952 cat conftest.err >&5 5973 cat conftest.err >&5
5953 (eval echo "\"\$as_me:5953: $NM \\\"conftest.$ac_objext\\\"\"" >&5) 5974 (eval echo "\"\$as_me:5974: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
5954 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) 5975 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
5955 cat conftest.err >&5 5976 cat conftest.err >&5
5956 (eval echo "\"\$as_me:5956: output\"" >&5) 5977 (eval echo "\"\$as_me:5977: output\"" >&5)
5957 cat conftest.out >&5 5978 cat conftest.out >&5
5958 if $GREP 'External.*some_variable' conftest.out > /dev/null; then 5979 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
5959 lt_cv_nm_interface="MS dumpbin" 5980 lt_cv_nm_interface="MS dumpbin"
@@ -7155,7 +7176,7 @@ ia64-*-hpux*)
7155 ;; 7176 ;;
7156*-*-irix6*) 7177*-*-irix6*)
7157 # Find out which ABI we are using. 7178 # Find out which ABI we are using.
7158 echo '#line 7158 "configure"' > conftest.$ac_ext 7179 echo '#line 7179 "configure"' > conftest.$ac_ext
7159 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 7180 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
7160 (eval $ac_compile) 2>&5 7181 (eval $ac_compile) 2>&5
7161 ac_status=$? 7182 ac_status=$?
@@ -8415,11 +8436,11 @@ else
8415 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8436 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8416 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8437 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8417 -e 's:$: $lt_compiler_flag:'` 8438 -e 's:$: $lt_compiler_flag:'`
8418 (eval echo "\"\$as_me:8418: $lt_compile\"" >&5) 8439 (eval echo "\"\$as_me:8439: $lt_compile\"" >&5)
8419 (eval "$lt_compile" 2>conftest.err) 8440 (eval "$lt_compile" 2>conftest.err)
8420 ac_status=$? 8441 ac_status=$?
8421 cat conftest.err >&5 8442 cat conftest.err >&5
8422 echo "$as_me:8422: \$? = $ac_status" >&5 8443 echo "$as_me:8443: \$? = $ac_status" >&5
8423 if (exit $ac_status) && test -s "$ac_outfile"; then 8444 if (exit $ac_status) && test -s "$ac_outfile"; then
8424 # The compiler can only warn and ignore the option if not recognized 8445 # The compiler can only warn and ignore the option if not recognized
8425 # So say no if there are warnings other than the usual output. 8446 # So say no if there are warnings other than the usual output.
@@ -8754,11 +8775,11 @@ else
8754 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8775 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8755 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8776 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8756 -e 's:$: $lt_compiler_flag:'` 8777 -e 's:$: $lt_compiler_flag:'`
8757 (eval echo "\"\$as_me:8757: $lt_compile\"" >&5) 8778 (eval echo "\"\$as_me:8778: $lt_compile\"" >&5)
8758 (eval "$lt_compile" 2>conftest.err) 8779 (eval "$lt_compile" 2>conftest.err)
8759 ac_status=$? 8780 ac_status=$?
8760 cat conftest.err >&5 8781 cat conftest.err >&5
8761 echo "$as_me:8761: \$? = $ac_status" >&5 8782 echo "$as_me:8782: \$? = $ac_status" >&5
8762 if (exit $ac_status) && test -s "$ac_outfile"; then 8783 if (exit $ac_status) && test -s "$ac_outfile"; then
8763 # The compiler can only warn and ignore the option if not recognized 8784 # The compiler can only warn and ignore the option if not recognized
8764 # So say no if there are warnings other than the usual output. 8785 # So say no if there are warnings other than the usual output.
@@ -8859,11 +8880,11 @@ else
8859 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8880 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8860 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8881 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8861 -e 's:$: $lt_compiler_flag:'` 8882 -e 's:$: $lt_compiler_flag:'`
8862 (eval echo "\"\$as_me:8862: $lt_compile\"" >&5) 8883 (eval echo "\"\$as_me:8883: $lt_compile\"" >&5)
8863 (eval "$lt_compile" 2>out/conftest.err) 8884 (eval "$lt_compile" 2>out/conftest.err)
8864 ac_status=$? 8885 ac_status=$?
8865 cat out/conftest.err >&5 8886 cat out/conftest.err >&5
8866 echo "$as_me:8866: \$? = $ac_status" >&5 8887 echo "$as_me:8887: \$? = $ac_status" >&5
8867 if (exit $ac_status) && test -s out/conftest2.$ac_objext 8888 if (exit $ac_status) && test -s out/conftest2.$ac_objext
8868 then 8889 then
8869 # The compiler can only warn and ignore the option if not recognized 8890 # The compiler can only warn and ignore the option if not recognized
@@ -8914,11 +8935,11 @@ else
8914 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 8935 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
8915 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 8936 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
8916 -e 's:$: $lt_compiler_flag:'` 8937 -e 's:$: $lt_compiler_flag:'`
8917 (eval echo "\"\$as_me:8917: $lt_compile\"" >&5) 8938 (eval echo "\"\$as_me:8938: $lt_compile\"" >&5)
8918 (eval "$lt_compile" 2>out/conftest.err) 8939 (eval "$lt_compile" 2>out/conftest.err)
8919 ac_status=$? 8940 ac_status=$?
8920 cat out/conftest.err >&5 8941 cat out/conftest.err >&5
8921 echo "$as_me:8921: \$? = $ac_status" >&5 8942 echo "$as_me:8942: \$? = $ac_status" >&5
8922 if (exit $ac_status) && test -s out/conftest2.$ac_objext 8943 if (exit $ac_status) && test -s out/conftest2.$ac_objext
8923 then 8944 then
8924 # The compiler can only warn and ignore the option if not recognized 8945 # The compiler can only warn and ignore the option if not recognized
@@ -11298,7 +11319,7 @@ else
11298 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 11319 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
11299 lt_status=$lt_dlunknown 11320 lt_status=$lt_dlunknown
11300 cat > conftest.$ac_ext <<_LT_EOF 11321 cat > conftest.$ac_ext <<_LT_EOF
11301#line 11301 "configure" 11322#line 11322 "configure"
11302#include "confdefs.h" 11323#include "confdefs.h"
11303 11324
11304#if HAVE_DLFCN_H 11325#if HAVE_DLFCN_H
@@ -11394,7 +11415,7 @@ else
11394 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 11415 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
11395 lt_status=$lt_dlunknown 11416 lt_status=$lt_dlunknown
11396 cat > conftest.$ac_ext <<_LT_EOF 11417 cat > conftest.$ac_ext <<_LT_EOF
11397#line 11397 "configure" 11418#line 11418 "configure"
11398#include "confdefs.h" 11419#include "confdefs.h"
11399 11420
11400#if HAVE_DLFCN_H 11421#if HAVE_DLFCN_H
@@ -11633,20 +11654,20 @@ _ACEOF
11633 11654
11634 11655
11635cat >>confdefs.h <<_ACEOF 11656cat >>confdefs.h <<_ACEOF
11636#define VMIN 1 11657#define VMIN 2
11637_ACEOF 11658_ACEOF
11638 11659
11639 11660
11640cat >>confdefs.h <<_ACEOF 11661cat >>confdefs.h <<_ACEOF
11641#define VMIC 99 11662#define VMIC 0
11642_ACEOF 11663_ACEOF
11643 11664
11644 11665
11645cat >>confdefs.h <<_ACEOF 11666cat >>confdefs.h <<_ACEOF
11646#define VREV 67344 11667#define VREV 0
11647_ACEOF 11668_ACEOF
11648 11669
11649version_info="2:99:1" 11670version_info="3:0:2"
11650release_info="" 11671release_info=""
11651 11672
11652 11673
@@ -11668,7 +11689,7 @@ case "$host_os" in
11668 MODULE_ARCH="$host_os-$host_cpu" 11689 MODULE_ARCH="$host_os-$host_cpu"
11669 ;; 11690 ;;
11670 *) 11691 *)
11671 MODULE_ARCH="$host_os-$host_cpu-1.1.99" 11692 MODULE_ARCH="$host_os-$host_cpu-1.2.0"
11672 ;; 11693 ;;
11673esac 11694esac
11674 11695
@@ -12166,7 +12187,7 @@ if test "x${_efl_enable_win32_threads}" = "xyes" ; then
12166 mingw*) 12187 mingw*)
12167 ;; 12188 ;;
12168 *) 12189 *)
12169 as_fn_error "Win32 threads support requested but non Windows system found." "$LINENO" 5 12190 as_fn_error $? "Win32 threads support requested but non Windows system found." "$LINENO" 5
12170 ;; 12191 ;;
12171 esac 12192 esac
12172fi 12193fi
@@ -12174,7 +12195,7 @@ fi
12174if test "x${_efl_enable_posix_threads}" = "xyes" ; then 12195if test "x${_efl_enable_posix_threads}" = "xyes" ; then
12175 case "$host_os" in 12196 case "$host_os" in
12176 mingw*) 12197 mingw*)
12177 as_fn_error "POSIX threads support requested but Windows system found." "$LINENO" 5 12198 as_fn_error $? "POSIX threads support requested but Windows system found." "$LINENO" 5
12178 ;; 12199 ;;
12179 *) 12200 *)
12180 ;; 12201 ;;
@@ -12237,7 +12258,7 @@ $as_echo_n "checking whether system support POSIX threads... " >&6; }
12237{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_have_posix_threads}" >&5 12258{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_have_posix_threads}" >&5
12238$as_echo "${_efl_have_posix_threads}" >&6; } 12259$as_echo "${_efl_have_posix_threads}" >&6; }
12239if test "$x{_efl_enable_posix_threads}" = "xyes" && test "x${_efl_have_posix_threads}" = "xno"; then 12260if test "$x{_efl_enable_posix_threads}" = "xyes" && test "x${_efl_have_posix_threads}" = "xno"; then
12240 as_fn_error "POSIX threads support requested but not found." "$LINENO" 5 12261 as_fn_error $? "POSIX threads support requested but not found." "$LINENO" 5
12241fi 12262fi
12242 12263
12243EFL_PTHREAD_CFLAGS="" 12264EFL_PTHREAD_CFLAGS=""
@@ -12498,7 +12519,7 @@ _ACEOF
12498 12519
12499 with_max_log_level="${withval}" 12520 with_max_log_level="${withval}"
12500 else 12521 else
12501 as_fn_error "--with-internal-maximum-log-level takes a decimal number, got \"${withval}\" instead." "$LINENO" 5 12522 as_fn_error $? "--with-internal-maximum-log-level takes a decimal number, got \"${withval}\" instead." "$LINENO" 5
12502 fi 12523 fi
12503 fi 12524 fi
12504 12525
@@ -12912,8 +12933,8 @@ fi
12912 12933
12913test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 12934test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
12914$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 12935$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
12915as_fn_error "no acceptable C compiler found in \$PATH 12936as_fn_error $? "no acceptable C compiler found in \$PATH
12916See \`config.log' for more details." "$LINENO" 5; } 12937See \`config.log' for more details" "$LINENO" 5 ; }
12917 12938
12918# Provide some information about the compiler. 12939# Provide some information about the compiler.
12919$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 12940$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -14089,7 +14110,7 @@ else
14089 # Broken: fails on valid input. 14110 # Broken: fails on valid input.
14090continue 14111continue
14091fi 14112fi
14092rm -f conftest.err conftest.$ac_ext 14113rm -f conftest.err conftest.i conftest.$ac_ext
14093 14114
14094 # OK, works on sane cases. Now check whether nonexistent headers 14115 # OK, works on sane cases. Now check whether nonexistent headers
14095 # can be detected and how. 14116 # can be detected and how.
@@ -14105,11 +14126,11 @@ else
14105ac_preproc_ok=: 14126ac_preproc_ok=:
14106break 14127break
14107fi 14128fi
14108rm -f conftest.err conftest.$ac_ext 14129rm -f conftest.err conftest.i conftest.$ac_ext
14109 14130
14110done 14131done
14111# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 14132# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
14112rm -f conftest.err conftest.$ac_ext 14133rm -f conftest.i conftest.err conftest.$ac_ext
14113if $ac_preproc_ok; then : 14134if $ac_preproc_ok; then :
14114 break 14135 break
14115fi 14136fi
@@ -14148,7 +14169,7 @@ else
14148 # Broken: fails on valid input. 14169 # Broken: fails on valid input.
14149continue 14170continue
14150fi 14171fi
14151rm -f conftest.err conftest.$ac_ext 14172rm -f conftest.err conftest.i conftest.$ac_ext
14152 14173
14153 # OK, works on sane cases. Now check whether nonexistent headers 14174 # OK, works on sane cases. Now check whether nonexistent headers
14154 # can be detected and how. 14175 # can be detected and how.
@@ -14164,11 +14185,11 @@ else
14164ac_preproc_ok=: 14185ac_preproc_ok=:
14165break 14186break
14166fi 14187fi
14167rm -f conftest.err conftest.$ac_ext 14188rm -f conftest.err conftest.i conftest.$ac_ext
14168 14189
14169done 14190done
14170# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. 14191# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
14171rm -f conftest.err conftest.$ac_ext 14192rm -f conftest.i conftest.err conftest.$ac_ext
14172if $ac_preproc_ok; then : 14193if $ac_preproc_ok; then :
14173 14194
14174else 14195else
@@ -14397,7 +14418,7 @@ else
14397 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 14418 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14398$as_echo "no" >&6; } 14419$as_echo "no" >&6; }
14399fi 14420fi
14400test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 14421test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
14401{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 14422{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
14402$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } 14423$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
14403if test "${lt_cv_prog_gnu_ld+set}" = set; then : 14424if test "${lt_cv_prog_gnu_ld+set}" = set; then :
@@ -15938,11 +15959,11 @@ else
15938 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 15959 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
15939 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 15960 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
15940 -e 's:$: $lt_compiler_flag:'` 15961 -e 's:$: $lt_compiler_flag:'`
15941 (eval echo "\"\$as_me:15941: $lt_compile\"" >&5) 15962 (eval echo "\"\$as_me:15962: $lt_compile\"" >&5)
15942 (eval "$lt_compile" 2>conftest.err) 15963 (eval "$lt_compile" 2>conftest.err)
15943 ac_status=$? 15964 ac_status=$?
15944 cat conftest.err >&5 15965 cat conftest.err >&5
15945 echo "$as_me:15945: \$? = $ac_status" >&5 15966 echo "$as_me:15966: \$? = $ac_status" >&5
15946 if (exit $ac_status) && test -s "$ac_outfile"; then 15967 if (exit $ac_status) && test -s "$ac_outfile"; then
15947 # The compiler can only warn and ignore the option if not recognized 15968 # The compiler can only warn and ignore the option if not recognized
15948 # So say no if there are warnings other than the usual output. 15969 # So say no if there are warnings other than the usual output.
@@ -16037,11 +16058,11 @@ else
16037 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 16058 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
16038 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 16059 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
16039 -e 's:$: $lt_compiler_flag:'` 16060 -e 's:$: $lt_compiler_flag:'`
16040 (eval echo "\"\$as_me:16040: $lt_compile\"" >&5) 16061 (eval echo "\"\$as_me:16061: $lt_compile\"" >&5)
16041 (eval "$lt_compile" 2>out/conftest.err) 16062 (eval "$lt_compile" 2>out/conftest.err)
16042 ac_status=$? 16063 ac_status=$?
16043 cat out/conftest.err >&5 16064 cat out/conftest.err >&5
16044 echo "$as_me:16044: \$? = $ac_status" >&5 16065 echo "$as_me:16065: \$? = $ac_status" >&5
16045 if (exit $ac_status) && test -s out/conftest2.$ac_objext 16066 if (exit $ac_status) && test -s out/conftest2.$ac_objext
16046 then 16067 then
16047 # The compiler can only warn and ignore the option if not recognized 16068 # The compiler can only warn and ignore the option if not recognized
@@ -16089,11 +16110,11 @@ else
16089 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ 16110 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
16090 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ 16111 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
16091 -e 's:$: $lt_compiler_flag:'` 16112 -e 's:$: $lt_compiler_flag:'`
16092 (eval echo "\"\$as_me:16092: $lt_compile\"" >&5) 16113 (eval echo "\"\$as_me:16113: $lt_compile\"" >&5)
16093 (eval "$lt_compile" 2>out/conftest.err) 16114 (eval "$lt_compile" 2>out/conftest.err)
16094 ac_status=$? 16115 ac_status=$?
16095 cat out/conftest.err >&5 16116 cat out/conftest.err >&5
16096 echo "$as_me:16096: \$? = $ac_status" >&5 16117 echo "$as_me:16117: \$? = $ac_status" >&5
16097 if (exit $ac_status) && test -s out/conftest2.$ac_objext 16118 if (exit $ac_status) && test -s out/conftest2.$ac_objext
16098 then 16119 then
16099 # The compiler can only warn and ignore the option if not recognized 16120 # The compiler can only warn and ignore the option if not recognized
@@ -17041,6 +17062,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
17041# pkg-config 17062# pkg-config
17042 17063
17043 17064
17065
17066
17067
17068
17044if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 17069if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
17045 if test -n "$ac_tool_prefix"; then 17070 if test -n "$ac_tool_prefix"; then
17046 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. 17071 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -17153,7 +17178,6 @@ $as_echo "yes" >&6; }
17153$as_echo "no" >&6; } 17178$as_echo "no" >&6; }
17154 PKG_CONFIG="" 17179 PKG_CONFIG=""
17155 fi 17180 fi
17156
17157fi 17181fi
17158 17182
17159# Check whether pkg-config supports Requires.private 17183# Check whether pkg-config supports Requires.private
@@ -17349,11 +17373,10 @@ pkg_failed=no
17349{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND" >&5 17373{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND" >&5
17350$as_echo_n "checking for VALGRIND... " >&6; } 17374$as_echo_n "checking for VALGRIND... " >&6; }
17351 17375
17352if test -n "$PKG_CONFIG"; then 17376if test -n "$VALGRIND_CFLAGS"; then
17353 if test -n "$VALGRIND_CFLAGS"; then 17377 pkg_cv_VALGRIND_CFLAGS="$VALGRIND_CFLAGS"
17354 pkg_cv_VALGRIND_CFLAGS="$VALGRIND_CFLAGS" 17378 elif test -n "$PKG_CONFIG"; then
17355 else 17379 if test -n "$PKG_CONFIG" && \
17356 if test -n "$PKG_CONFIG" && \
17357 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= 2.4.0\""; } >&5 17380 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= 2.4.0\""; } >&5
17358 ($PKG_CONFIG --exists --print-errors "valgrind >= 2.4.0") 2>&5 17381 ($PKG_CONFIG --exists --print-errors "valgrind >= 2.4.0") 2>&5
17359 ac_status=$? 17382 ac_status=$?
@@ -17363,15 +17386,13 @@ if test -n "$PKG_CONFIG"; then
17363else 17386else
17364 pkg_failed=yes 17387 pkg_failed=yes
17365fi 17388fi
17366 fi 17389 else
17367else 17390 pkg_failed=untried
17368 pkg_failed=untried
17369fi 17391fi
17370if test -n "$PKG_CONFIG"; then 17392if test -n "$VALGRIND_LIBS"; then
17371 if test -n "$VALGRIND_LIBS"; then 17393 pkg_cv_VALGRIND_LIBS="$VALGRIND_LIBS"
17372 pkg_cv_VALGRIND_LIBS="$VALGRIND_LIBS" 17394 elif test -n "$PKG_CONFIG"; then
17373 else 17395 if test -n "$PKG_CONFIG" && \
17374 if test -n "$PKG_CONFIG" && \
17375 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= 2.4.0\""; } >&5 17396 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= 2.4.0\""; } >&5
17376 ($PKG_CONFIG --exists --print-errors "valgrind >= 2.4.0") 2>&5 17397 ($PKG_CONFIG --exists --print-errors "valgrind >= 2.4.0") 2>&5
17377 ac_status=$? 17398 ac_status=$?
@@ -17381,14 +17402,15 @@ if test -n "$PKG_CONFIG"; then
17381else 17402else
17382 pkg_failed=yes 17403 pkg_failed=yes
17383fi 17404fi
17384 fi 17405 else
17385else 17406 pkg_failed=untried
17386 pkg_failed=untried
17387fi 17407fi
17388 17408
17389 17409
17390 17410
17391if test $pkg_failed = yes; then 17411if test $pkg_failed = yes; then
17412 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17413$as_echo "no" >&6; }
17392 17414
17393if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 17415if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
17394 _pkg_short_errors_supported=yes 17416 _pkg_short_errors_supported=yes
@@ -17396,30 +17418,30 @@ else
17396 _pkg_short_errors_supported=no 17418 _pkg_short_errors_supported=no
17397fi 17419fi
17398 if test $_pkg_short_errors_supported = yes; then 17420 if test $_pkg_short_errors_supported = yes; then
17399 VALGRIND_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "valgrind >= 2.4.0"` 17421 VALGRIND_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "valgrind >= 2.4.0" 2>&1`
17400 else 17422 else
17401 VALGRIND_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "valgrind >= 2.4.0"` 17423 VALGRIND_PKG_ERRORS=`$PKG_CONFIG --print-errors "valgrind >= 2.4.0" 2>&1`
17402 fi 17424 fi
17403 # Put the nasty error message in config.log where it belongs 17425 # Put the nasty error message in config.log where it belongs
17404 echo "$VALGRIND_PKG_ERRORS" >&5 17426 echo "$VALGRIND_PKG_ERRORS" >&5
17405 17427
17406 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17407$as_echo "no" >&6; }
17408 17428
17409 17429
17410$as_echo "#define NVALGRIND 1" >>confdefs.h 17430$as_echo "#define NVALGRIND 1" >>confdefs.h
17411 17431
17412 if test "x${want_valgrind}" = "xyes"; then 17432 if test "x${want_valgrind}" = "xyes"; then
17413 as_fn_error "Valgrind >= 2.4.0 is required" "$LINENO" 5 17433 as_fn_error $? "Valgrind >= 2.4.0 is required" "$LINENO" 5
17414 fi 17434 fi
17415 17435
17416elif test $pkg_failed = untried; then 17436elif test $pkg_failed = untried; then
17437 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17438$as_echo "no" >&6; }
17417 17439
17418 17440
17419$as_echo "#define NVALGRIND 1" >>confdefs.h 17441$as_echo "#define NVALGRIND 1" >>confdefs.h
17420 17442
17421 if test "x${want_valgrind}" = "xyes"; then 17443 if test "x${want_valgrind}" = "xyes"; then
17422 as_fn_error "Valgrind >= 2.4.0 is required" "$LINENO" 5 17444 as_fn_error $? "Valgrind >= 2.4.0 is required" "$LINENO" 5
17423 fi 17445 fi
17424 17446
17425else 17447else
@@ -17449,11 +17471,10 @@ pkg_failed=no
17449{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5 17471{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5
17450$as_echo_n "checking for EVIL... " >&6; } 17472$as_echo_n "checking for EVIL... " >&6; }
17451 17473
17452if test -n "$PKG_CONFIG"; then 17474if test -n "$EVIL_CFLAGS"; then
17453 if test -n "$EVIL_CFLAGS"; then 17475 pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS"
17454 pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS" 17476 elif test -n "$PKG_CONFIG"; then
17455 else 17477 if test -n "$PKG_CONFIG" && \
17456 if test -n "$PKG_CONFIG" && \
17457 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 17478 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5
17458 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 17479 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5
17459 ac_status=$? 17480 ac_status=$?
@@ -17463,15 +17484,13 @@ if test -n "$PKG_CONFIG"; then
17463else 17484else
17464 pkg_failed=yes 17485 pkg_failed=yes
17465fi 17486fi
17466 fi 17487 else
17467else 17488 pkg_failed=untried
17468 pkg_failed=untried
17469fi 17489fi
17470if test -n "$PKG_CONFIG"; then 17490if test -n "$EVIL_LIBS"; then
17471 if test -n "$EVIL_LIBS"; then 17491 pkg_cv_EVIL_LIBS="$EVIL_LIBS"
17472 pkg_cv_EVIL_LIBS="$EVIL_LIBS" 17492 elif test -n "$PKG_CONFIG"; then
17473 else 17493 if test -n "$PKG_CONFIG" && \
17474 if test -n "$PKG_CONFIG" && \
17475 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 17494 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5
17476 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 17495 ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5
17477 ac_status=$? 17496 ac_status=$?
@@ -17481,14 +17500,15 @@ if test -n "$PKG_CONFIG"; then
17481else 17500else
17482 pkg_failed=yes 17501 pkg_failed=yes
17483fi 17502fi
17484 fi 17503 else
17485else 17504 pkg_failed=untried
17486 pkg_failed=untried
17487fi 17505fi
17488 17506
17489 17507
17490 17508
17491if test $pkg_failed = yes; then 17509if test $pkg_failed = yes; then
17510 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17511$as_echo "no" >&6; }
17492 17512
17493if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 17513if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
17494 _pkg_short_errors_supported=yes 17514 _pkg_short_errors_supported=yes
@@ -17496,14 +17516,14 @@ else
17496 _pkg_short_errors_supported=no 17516 _pkg_short_errors_supported=no
17497fi 17517fi
17498 if test $_pkg_short_errors_supported = yes; then 17518 if test $_pkg_short_errors_supported = yes; then
17499 EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evil >= 1.0.0"` 17519 EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "evil >= 1.0.0" 2>&1`
17500 else 17520 else
17501 EVIL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evil >= 1.0.0"` 17521 EVIL_PKG_ERRORS=`$PKG_CONFIG --print-errors "evil >= 1.0.0" 2>&1`
17502 fi 17522 fi
17503 # Put the nasty error message in config.log where it belongs 17523 # Put the nasty error message in config.log where it belongs
17504 echo "$EVIL_PKG_ERRORS" >&5 17524 echo "$EVIL_PKG_ERRORS" >&5
17505 17525
17506 as_fn_error "Package requirements (evil >= 1.0.0) were not met: 17526 as_fn_error $? "Package requirements (evil >= 1.0.0) were not met:
17507 17527
17508$EVIL_PKG_ERRORS 17528$EVIL_PKG_ERRORS
17509 17529
@@ -17512,12 +17532,13 @@ installed software in a non-standard prefix.
17512 17532
17513Alternatively, you may set the environment variables EVIL_CFLAGS 17533Alternatively, you may set the environment variables EVIL_CFLAGS
17514and EVIL_LIBS to avoid the need to call pkg-config. 17534and EVIL_LIBS to avoid the need to call pkg-config.
17515See the pkg-config man page for more details. 17535See the pkg-config man page for more details." "$LINENO" 5
17516" "$LINENO" 5
17517elif test $pkg_failed = untried; then 17536elif test $pkg_failed = untried; then
17537 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17538$as_echo "no" >&6; }
17518 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 17539 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
17519$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 17540$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
17520as_fn_error "The pkg-config script could not be found or is too old. Make sure it 17541as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
17521is in your PATH or set the PKG_CONFIG environment variable to the full 17542is in your PATH or set the PKG_CONFIG environment variable to the full
17522path to pkg-config. 17543path to pkg-config.
17523 17544
@@ -17526,18 +17547,18 @@ and EVIL_LIBS to avoid the need to call pkg-config.
17526See the pkg-config man page for more details. 17547See the pkg-config man page for more details.
17527 17548
17528To get pkg-config, see <http://pkg-config.freedesktop.org/>. 17549To get pkg-config, see <http://pkg-config.freedesktop.org/>.
17529See \`config.log' for more details." "$LINENO" 5; } 17550See \`config.log' for more details" "$LINENO" 5 ; }
17530else 17551else
17531 EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS 17552 EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS
17532 EVIL_LIBS=$pkg_cv_EVIL_LIBS 17553 EVIL_LIBS=$pkg_cv_EVIL_LIBS
17533 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 17554 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
17534$as_echo "yes" >&6; } 17555$as_echo "yes" >&6; }
17535 : 17556
17536fi 17557fi
17537 17558
17538$as_echo "#define HAVE_EVIL 1" >>confdefs.h 17559$as_echo "#define HAVE_EVIL 1" >>confdefs.h
17539 17560
17540 requirement_eina="evil" 17561 requirement_eina="${requirement_eina} evil"
17541 EFL_EINA_BUILD="-DEFL_EINA_BUILD" 17562 EFL_EINA_BUILD="-DEFL_EINA_BUILD"
17542 ;; 17563 ;;
17543esac 17564esac
@@ -17570,11 +17591,10 @@ pkg_failed=no
17570{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMEMOA" >&5 17591{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMEMOA" >&5
17571$as_echo_n "checking for EMEMOA... " >&6; } 17592$as_echo_n "checking for EMEMOA... " >&6; }
17572 17593
17573if test -n "$PKG_CONFIG"; then 17594if test -n "$EMEMOA_CFLAGS"; then
17574 if test -n "$EMEMOA_CFLAGS"; then 17595 pkg_cv_EMEMOA_CFLAGS="$EMEMOA_CFLAGS"
17575 pkg_cv_EMEMOA_CFLAGS="$EMEMOA_CFLAGS" 17596 elif test -n "$PKG_CONFIG"; then
17576 else 17597 if test -n "$PKG_CONFIG" && \
17577 if test -n "$PKG_CONFIG" && \
17578 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ememoa >= 0.0.26 \""; } >&5 17598 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ememoa >= 0.0.26 \""; } >&5
17579 ($PKG_CONFIG --exists --print-errors "ememoa >= 0.0.26 ") 2>&5 17599 ($PKG_CONFIG --exists --print-errors "ememoa >= 0.0.26 ") 2>&5
17580 ac_status=$? 17600 ac_status=$?
@@ -17584,15 +17604,13 @@ if test -n "$PKG_CONFIG"; then
17584else 17604else
17585 pkg_failed=yes 17605 pkg_failed=yes
17586fi 17606fi
17587 fi 17607 else
17588else 17608 pkg_failed=untried
17589 pkg_failed=untried
17590fi 17609fi
17591if test -n "$PKG_CONFIG"; then 17610if test -n "$EMEMOA_LIBS"; then
17592 if test -n "$EMEMOA_LIBS"; then 17611 pkg_cv_EMEMOA_LIBS="$EMEMOA_LIBS"
17593 pkg_cv_EMEMOA_LIBS="$EMEMOA_LIBS" 17612 elif test -n "$PKG_CONFIG"; then
17594 else 17613 if test -n "$PKG_CONFIG" && \
17595 if test -n "$PKG_CONFIG" && \
17596 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ememoa >= 0.0.26 \""; } >&5 17614 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ememoa >= 0.0.26 \""; } >&5
17597 ($PKG_CONFIG --exists --print-errors "ememoa >= 0.0.26 ") 2>&5 17615 ($PKG_CONFIG --exists --print-errors "ememoa >= 0.0.26 ") 2>&5
17598 ac_status=$? 17616 ac_status=$?
@@ -17602,14 +17620,15 @@ if test -n "$PKG_CONFIG"; then
17602else 17620else
17603 pkg_failed=yes 17621 pkg_failed=yes
17604fi 17622fi
17605 fi 17623 else
17606else 17624 pkg_failed=untried
17607 pkg_failed=untried
17608fi 17625fi
17609 17626
17610 17627
17611 17628
17612if test $pkg_failed = yes; then 17629if test $pkg_failed = yes; then
17630 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17631$as_echo "no" >&6; }
17613 17632
17614if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 17633if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
17615 _pkg_short_errors_supported=yes 17634 _pkg_short_errors_supported=yes
@@ -17617,17 +17636,17 @@ else
17617 _pkg_short_errors_supported=no 17636 _pkg_short_errors_supported=no
17618fi 17637fi
17619 if test $_pkg_short_errors_supported = yes; then 17638 if test $_pkg_short_errors_supported = yes; then
17620 EMEMOA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "ememoa >= 0.0.26 "` 17639 EMEMOA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ememoa >= 0.0.26 " 2>&1`
17621 else 17640 else
17622 EMEMOA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "ememoa >= 0.0.26 "` 17641 EMEMOA_PKG_ERRORS=`$PKG_CONFIG --print-errors "ememoa >= 0.0.26 " 2>&1`
17623 fi 17642 fi
17624 # Put the nasty error message in config.log where it belongs 17643 # Put the nasty error message in config.log where it belongs
17625 echo "$EMEMOA_PKG_ERRORS" >&5 17644 echo "$EMEMOA_PKG_ERRORS" >&5
17626 17645
17627 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 17646 enable_ememoa="no"
17628$as_echo "no" >&6; }
17629 enable_ememoa="no"
17630elif test $pkg_failed = untried; then 17647elif test $pkg_failed = untried; then
17648 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17649$as_echo "no" >&6; }
17631 enable_ememoa="no" 17650 enable_ememoa="no"
17632else 17651else
17633 EMEMOA_CFLAGS=$pkg_cv_EMEMOA_CFLAGS 17652 EMEMOA_CFLAGS=$pkg_cv_EMEMOA_CFLAGS
@@ -17643,11 +17662,10 @@ pkg_failed=no
17643{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_EVAS" >&5 17662{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_EVAS" >&5
17644$as_echo_n "checking for ECORE_EVAS... " >&6; } 17663$as_echo_n "checking for ECORE_EVAS... " >&6; }
17645 17664
17646if test -n "$PKG_CONFIG"; then 17665if test -n "$ECORE_EVAS_CFLAGS"; then
17647 if test -n "$ECORE_EVAS_CFLAGS"; then 17666 pkg_cv_ECORE_EVAS_CFLAGS="$ECORE_EVAS_CFLAGS"
17648 pkg_cv_ECORE_EVAS_CFLAGS="$ECORE_EVAS_CFLAGS" 17667 elif test -n "$PKG_CONFIG"; then
17649 else 17668 if test -n "$PKG_CONFIG" && \
17650 if test -n "$PKG_CONFIG" && \
17651 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas ecore evas\""; } >&5 17669 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas ecore evas\""; } >&5
17652 ($PKG_CONFIG --exists --print-errors "ecore-evas ecore evas") 2>&5 17670 ($PKG_CONFIG --exists --print-errors "ecore-evas ecore evas") 2>&5
17653 ac_status=$? 17671 ac_status=$?
@@ -17657,15 +17675,13 @@ if test -n "$PKG_CONFIG"; then
17657else 17675else
17658 pkg_failed=yes 17676 pkg_failed=yes
17659fi 17677fi
17660 fi 17678 else
17661else 17679 pkg_failed=untried
17662 pkg_failed=untried
17663fi 17680fi
17664if test -n "$PKG_CONFIG"; then 17681if test -n "$ECORE_EVAS_LIBS"; then
17665 if test -n "$ECORE_EVAS_LIBS"; then 17682 pkg_cv_ECORE_EVAS_LIBS="$ECORE_EVAS_LIBS"
17666 pkg_cv_ECORE_EVAS_LIBS="$ECORE_EVAS_LIBS" 17683 elif test -n "$PKG_CONFIG"; then
17667 else 17684 if test -n "$PKG_CONFIG" && \
17668 if test -n "$PKG_CONFIG" && \
17669 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas ecore evas\""; } >&5 17685 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas ecore evas\""; } >&5
17670 ($PKG_CONFIG --exists --print-errors "ecore-evas ecore evas") 2>&5 17686 ($PKG_CONFIG --exists --print-errors "ecore-evas ecore evas") 2>&5
17671 ac_status=$? 17687 ac_status=$?
@@ -17675,14 +17691,15 @@ if test -n "$PKG_CONFIG"; then
17675else 17691else
17676 pkg_failed=yes 17692 pkg_failed=yes
17677fi 17693fi
17678 fi 17694 else
17679else 17695 pkg_failed=untried
17680 pkg_failed=untried
17681fi 17696fi
17682 17697
17683 17698
17684 17699
17685if test $pkg_failed = yes; then 17700if test $pkg_failed = yes; then
17701 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17702$as_echo "no" >&6; }
17686 17703
17687if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 17704if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
17688 _pkg_short_errors_supported=yes 17705 _pkg_short_errors_supported=yes
@@ -17690,17 +17707,17 @@ else
17690 _pkg_short_errors_supported=no 17707 _pkg_short_errors_supported=no
17691fi 17708fi
17692 if test $_pkg_short_errors_supported = yes; then 17709 if test $_pkg_short_errors_supported = yes; then
17693 ECORE_EVAS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "ecore-evas ecore evas"` 17710 ECORE_EVAS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ecore-evas ecore evas" 2>&1`
17694 else 17711 else
17695 ECORE_EVAS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "ecore-evas ecore evas"` 17712 ECORE_EVAS_PKG_ERRORS=`$PKG_CONFIG --print-errors "ecore-evas ecore evas" 2>&1`
17696 fi 17713 fi
17697 # Put the nasty error message in config.log where it belongs 17714 # Put the nasty error message in config.log where it belongs
17698 echo "$ECORE_EVAS_PKG_ERRORS" >&5 17715 echo "$ECORE_EVAS_PKG_ERRORS" >&5
17699 17716
17700 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 17717 build_tiler_example="no"
17701$as_echo "no" >&6; }
17702 build_tiler_example="no"
17703elif test $pkg_failed = untried; then 17718elif test $pkg_failed = untried; then
17719 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17720$as_echo "no" >&6; }
17704 build_tiler_example="no" 17721 build_tiler_example="no"
17705else 17722else
17706 ECORE_EVAS_CFLAGS=$pkg_cv_ECORE_EVAS_CFLAGS 17723 ECORE_EVAS_CFLAGS=$pkg_cv_ECORE_EVAS_CFLAGS
@@ -18020,8 +18037,8 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
18020 18037
18021 ;; #( 18038 ;; #(
18022 *) 18039 *)
18023 as_fn_error "unknown endianness 18040 as_fn_error $? "unknown endianness
18024 presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; 18041 presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
18025 esac 18042 esac
18026 18043
18027{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 18044{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
@@ -18398,17 +18415,14 @@ fi
18398 18415
18399have_wince="no" 18416have_wince="no"
18400have_win32="no" 18417have_win32="no"
18401EINA_CPPFLAGS=""
18402EINA_CFLAGS="" 18418EINA_CFLAGS=""
18403case "$host_os" in 18419case "$host_os" in
18404 mingw32ce*) 18420 mingw32ce*)
18405 EINA_CPPFLAGS="-D_WIN32_WCE=0x0420"
18406 EINA_CFLAGS="${EVIL_CFLAGS}" 18421 EINA_CFLAGS="${EVIL_CFLAGS}"
18407 have_win32="yes" 18422 have_win32="yes"
18408 have_wince="yes" 18423 have_wince="yes"
18409 ;; 18424 ;;
18410 mingw*) 18425 mingw*)
18411 EINA_CPPFLAGS="-D_WIN32_WINNT=0x0501"
18412 EINA_CFLAGS="${EVIL_CFLAGS}" 18426 EINA_CFLAGS="${EVIL_CFLAGS}"
18413 have_win32="yes" 18427 have_win32="yes"
18414 ;; 18428 ;;
@@ -18569,6 +18583,98 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
18569 18583
18570 18584
18571 18585
18586### Checks for portability layer
18587
18588
18589pkg_failed=no
18590{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EXOTIC" >&5
18591$as_echo_n "checking for EXOTIC... " >&6; }
18592
18593if test -n "$EXOTIC_CFLAGS"; then
18594 pkg_cv_EXOTIC_CFLAGS="$EXOTIC_CFLAGS"
18595 elif test -n "$PKG_CONFIG"; then
18596 if test -n "$PKG_CONFIG" && \
18597 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"exotic\""; } >&5
18598 ($PKG_CONFIG --exists --print-errors "exotic") 2>&5
18599 ac_status=$?
18600 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
18601 test $ac_status = 0; }; then
18602 pkg_cv_EXOTIC_CFLAGS=`$PKG_CONFIG --cflags "exotic" 2>/dev/null`
18603else
18604 pkg_failed=yes
18605fi
18606 else
18607 pkg_failed=untried
18608fi
18609if test -n "$EXOTIC_LIBS"; then
18610 pkg_cv_EXOTIC_LIBS="$EXOTIC_LIBS"
18611 elif test -n "$PKG_CONFIG"; then
18612 if test -n "$PKG_CONFIG" && \
18613 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"exotic\""; } >&5
18614 ($PKG_CONFIG --exists --print-errors "exotic") 2>&5
18615 ac_status=$?
18616 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
18617 test $ac_status = 0; }; then
18618 pkg_cv_EXOTIC_LIBS=`$PKG_CONFIG --libs "exotic" 2>/dev/null`
18619else
18620 pkg_failed=yes
18621fi
18622 else
18623 pkg_failed=untried
18624fi
18625
18626
18627
18628if test $pkg_failed = yes; then
18629 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18630$as_echo "no" >&6; }
18631
18632if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
18633 _pkg_short_errors_supported=yes
18634else
18635 _pkg_short_errors_supported=no
18636fi
18637 if test $_pkg_short_errors_supported = yes; then
18638 EXOTIC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "exotic" 2>&1`
18639 else
18640 EXOTIC_PKG_ERRORS=`$PKG_CONFIG --print-errors "exotic" 2>&1`
18641 fi
18642 # Put the nasty error message in config.log where it belongs
18643 echo "$EXOTIC_PKG_ERRORS" >&5
18644
18645 enable_exotic="no"
18646elif test $pkg_failed = untried; then
18647 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18648$as_echo "no" >&6; }
18649 enable_exotic="no"
18650else
18651 EXOTIC_CFLAGS=$pkg_cv_EXOTIC_CFLAGS
18652 EXOTIC_LIBS=$pkg_cv_EXOTIC_LIBS
18653 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
18654$as_echo "yes" >&6; }
18655 enable_exotic="yes"
18656fi
18657
18658if test "x${enable_exotic}" = "xyes"; then
18659 requirement_eina="exotic ${requirement_eina}"
18660 EINA_CFLAGS="${EINA_CFLAGS} ${EXOTIC_CFLAGS}"
18661 EINA_LIBS="${EXOTIC_LIBS}"
18662
18663 EINA_CONFIGURE_HAVE_EXOTIC="#define EINA_HAVE_EXOTIC"
18664
18665$as_echo "#define HAVE_EXOTIC_H 1" >>confdefs.h
18666
18667fi
18668 if test "x${enable_exotic}" = "xyes"; then
18669 EINA_HAVE_EXOTIC_TRUE=
18670 EINA_HAVE_EXOTIC_FALSE='#'
18671else
18672 EINA_HAVE_EXOTIC_TRUE='#'
18673 EINA_HAVE_EXOTIC_FALSE=
18674fi
18675
18676
18677
18572case "$host_vendor" in 18678case "$host_vendor" in
18573 ps3*) 18679 ps3*)
18574 18680
@@ -18576,11 +18682,10 @@ pkg_failed=no
18576{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ESCAPE" >&5 18682{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ESCAPE" >&5
18577$as_echo_n "checking for ESCAPE... " >&6; } 18683$as_echo_n "checking for ESCAPE... " >&6; }
18578 18684
18579if test -n "$PKG_CONFIG"; then 18685if test -n "$ESCAPE_CFLAGS"; then
18580 if test -n "$ESCAPE_CFLAGS"; then 18686 pkg_cv_ESCAPE_CFLAGS="$ESCAPE_CFLAGS"
18581 pkg_cv_ESCAPE_CFLAGS="$ESCAPE_CFLAGS" 18687 elif test -n "$PKG_CONFIG"; then
18582 else 18688 if test -n "$PKG_CONFIG" && \
18583 if test -n "$PKG_CONFIG" && \
18584 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"escape\""; } >&5 18689 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"escape\""; } >&5
18585 ($PKG_CONFIG --exists --print-errors "escape") 2>&5 18690 ($PKG_CONFIG --exists --print-errors "escape") 2>&5
18586 ac_status=$? 18691 ac_status=$?
@@ -18590,15 +18695,13 @@ if test -n "$PKG_CONFIG"; then
18590else 18695else
18591 pkg_failed=yes 18696 pkg_failed=yes
18592fi 18697fi
18593 fi 18698 else
18594else 18699 pkg_failed=untried
18595 pkg_failed=untried
18596fi 18700fi
18597if test -n "$PKG_CONFIG"; then 18701if test -n "$ESCAPE_LIBS"; then
18598 if test -n "$ESCAPE_LIBS"; then 18702 pkg_cv_ESCAPE_LIBS="$ESCAPE_LIBS"
18599 pkg_cv_ESCAPE_LIBS="$ESCAPE_LIBS" 18703 elif test -n "$PKG_CONFIG"; then
18600 else 18704 if test -n "$PKG_CONFIG" && \
18601 if test -n "$PKG_CONFIG" && \
18602 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"escape\""; } >&5 18705 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"escape\""; } >&5
18603 ($PKG_CONFIG --exists --print-errors "escape") 2>&5 18706 ($PKG_CONFIG --exists --print-errors "escape") 2>&5
18604 ac_status=$? 18707 ac_status=$?
@@ -18608,14 +18711,15 @@ if test -n "$PKG_CONFIG"; then
18608else 18711else
18609 pkg_failed=yes 18712 pkg_failed=yes
18610fi 18713fi
18611 fi 18714 else
18612else 18715 pkg_failed=untried
18613 pkg_failed=untried
18614fi 18716fi
18615 18717
18616 18718
18617 18719
18618if test $pkg_failed = yes; then 18720if test $pkg_failed = yes; then
18721 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18722$as_echo "no" >&6; }
18619 18723
18620if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 18724if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
18621 _pkg_short_errors_supported=yes 18725 _pkg_short_errors_supported=yes
@@ -18623,14 +18727,14 @@ else
18623 _pkg_short_errors_supported=no 18727 _pkg_short_errors_supported=no
18624fi 18728fi
18625 if test $_pkg_short_errors_supported = yes; then 18729 if test $_pkg_short_errors_supported = yes; then
18626 ESCAPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "escape"` 18730 ESCAPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "escape" 2>&1`
18627 else 18731 else
18628 ESCAPE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "escape"` 18732 ESCAPE_PKG_ERRORS=`$PKG_CONFIG --print-errors "escape" 2>&1`
18629 fi 18733 fi
18630 # Put the nasty error message in config.log where it belongs 18734 # Put the nasty error message in config.log where it belongs
18631 echo "$ESCAPE_PKG_ERRORS" >&5 18735 echo "$ESCAPE_PKG_ERRORS" >&5
18632 18736
18633 as_fn_error "Package requirements (escape) were not met: 18737 as_fn_error $? "Package requirements (escape) were not met:
18634 18738
18635$ESCAPE_PKG_ERRORS 18739$ESCAPE_PKG_ERRORS
18636 18740
@@ -18639,12 +18743,13 @@ installed software in a non-standard prefix.
18639 18743
18640Alternatively, you may set the environment variables ESCAPE_CFLAGS 18744Alternatively, you may set the environment variables ESCAPE_CFLAGS
18641and ESCAPE_LIBS to avoid the need to call pkg-config. 18745and ESCAPE_LIBS to avoid the need to call pkg-config.
18642See the pkg-config man page for more details. 18746See the pkg-config man page for more details." "$LINENO" 5
18643" "$LINENO" 5
18644elif test $pkg_failed = untried; then 18747elif test $pkg_failed = untried; then
18748 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
18749$as_echo "no" >&6; }
18645 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 18750 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
18646$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 18751$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
18647as_fn_error "The pkg-config script could not be found or is too old. Make sure it 18752as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
18648is in your PATH or set the PKG_CONFIG environment variable to the full 18753is in your PATH or set the PKG_CONFIG environment variable to the full
18649path to pkg-config. 18754path to pkg-config.
18650 18755
@@ -18653,48 +18758,46 @@ and ESCAPE_LIBS to avoid the need to call pkg-config.
18653See the pkg-config man page for more details. 18758See the pkg-config man page for more details.
18654 18759
18655To get pkg-config, see <http://pkg-config.freedesktop.org/>. 18760To get pkg-config, see <http://pkg-config.freedesktop.org/>.
18656See \`config.log' for more details." "$LINENO" 5; } 18761See \`config.log' for more details" "$LINENO" 5 ; }
18657else 18762else
18658 ESCAPE_CFLAGS=$pkg_cv_ESCAPE_CFLAGS 18763 ESCAPE_CFLAGS=$pkg_cv_ESCAPE_CFLAGS
18659 ESCAPE_LIBS=$pkg_cv_ESCAPE_LIBS 18764 ESCAPE_LIBS=$pkg_cv_ESCAPE_LIBS
18660 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 18765 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
18661$as_echo "yes" >&6; } 18766$as_echo "yes" >&6; }
18662 : 18767
18663fi 18768fi
18664 18769
18665$as_echo "#define HAVE_ESCAPE 1" >>confdefs.h 18770$as_echo "#define HAVE_ESCAPE 1" >>confdefs.h
18666 18771
18667 requirement_eina="escape" 18772 requirement_eina="${requirement_eina} escape"
18668 EINA_CFLAGS="${ESCAPE_CFLAGS} ${EINA_CFLAGS}" 18773 EINA_CFLAGS="${ESCAPE_CFLAGS} ${EINA_CFLAGS}"
18669 ;; 18774 ;;
18670esac 18775esac
18671 18776
18672 18777
18673 18778
18674
18675
18676### Checks for linker characteristics 18779### Checks for linker characteristics
18677EINA_LIBS= 18780EINA_LIBS=
18678lt_enable_auto_import="" 18781lt_enable_auto_import=""
18679case "${host_os}" in 18782case "${host_os}" in
18680 mingw*) 18783 mingw*)
18681 EINA_LIBS="-ldl ${EVIL_LIBS} -lm" 18784 EINA_LIBS="${EINA_LIBS} -ldl ${EVIL_LIBS} -lm"
18682 lt_enable_auto_import="-Wl,--enable-auto-import" 18785 lt_enable_auto_import="-Wl,--enable-auto-import"
18683 ;; 18786 ;;
18684 dragonfly*|openbsd*) 18787 dragonfly*|openbsd*)
18685 EINA_LIBS="-lm" 18788 EINA_LIBS="${EINA_LIBS} -lm"
18686 ;; 18789 ;;
18687 freebsd*|netbsd*) 18790 freebsd*|netbsd*)
18688 EINA_LIBS="-lrt -lm" 18791 EINA_LIBS="${EINA_LIBS} -lrt -lm"
18689 ;; 18792 ;;
18690 darwin*) 18793 darwin*)
18691 EINA_LIBS="-lm" 18794 EINA_LIBS="${EINA_LIBS} -lm"
18692 ;; 18795 ;;
18693 cygwin*) 18796 cygwin*)
18694 EINA_LIBS="-ldl -lm" 18797 EINA_LIBS="${EINA_LIBS} -ldl -lm"
18695 ;; 18798 ;;
18696 *) 18799 *)
18697 EINA_LIBS="-ldl -lrt -lm" 18800 EINA_LIBS="${EINA_LIBS} -lrt -ldl -lm"
18698 ;; 18801 ;;
18699esac 18802esac
18700case "$host_vendor" in 18803case "$host_vendor" in
@@ -18866,12 +18969,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
18866 18969
18867 18970
18868 18971
18869for ac_header in unistd.h libgen.h inttypes.h stdint.h sys/types.h siginfo.h strings.h sys/mman.h 18972for ac_header in unistd.h libgen.h inttypes.h stdint.h sys/types.h siginfo.h strings.h sys/mman.h execinfo.h
18870do : 18973do :
18871 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 18974 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
18872ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 18975ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
18873eval as_val=\$$as_ac_Header 18976if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
18874 if test "x$as_val" = x""yes; then :
18875 cat >>confdefs.h <<_ACEOF 18977 cat >>confdefs.h <<_ACEOF
18876#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 18978#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
18877_ACEOF 18979_ACEOF
@@ -18914,9 +19016,8 @@ else
18914 if test "$ac_cv_type_wchar_t" = yes; then 19016 if test "$ac_cv_type_wchar_t" = yes; then
18915 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 19017 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
18916$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 19018$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
18917{ as_fn_set_status 77 19019as_fn_error 77 "cannot compute sizeof (wchar_t)
18918as_fn_error "cannot compute sizeof (wchar_t) 19020See \`config.log' for more details" "$LINENO" 5 ; }
18919See \`config.log' for more details." "$LINENO" 5; }; }
18920 else 19021 else
18921 ac_cv_sizeof_wchar_t=0 19022 ac_cv_sizeof_wchar_t=0
18922 fi 19023 fi
@@ -19160,8 +19261,7 @@ if test $ac_cv_os_cray = yes; then
19160 for ac_func in _getb67 GETB67 getb67; do 19261 for ac_func in _getb67 GETB67 getb67; do
19161 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 19262 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
19162ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 19263ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
19163eval as_val=\$$as_ac_var 19264if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
19164 if test "x$as_val" = x""yes; then :
19165 19265
19166cat >>confdefs.h <<_ACEOF 19266cat >>confdefs.h <<_ACEOF
19167#define CRAY_STACKSEG_END $ac_func 19267#define CRAY_STACKSEG_END $ac_func
@@ -19223,12 +19323,11 @@ _ACEOF
19223 19323
19224fi 19324fi
19225 19325
19226for ac_func in strlcpy openat fstatat fpathconf execvp 19326for ac_func in strlcpy openat fstatat fpathconf execvp backtrace backtrace_symbols
19227do : 19327do :
19228 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 19328 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
19229ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 19329ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
19230eval as_val=\$$as_ac_var 19330if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
19231 if test "x$as_val" = x""yes; then :
19232 cat >>confdefs.h <<_ACEOF 19331 cat >>confdefs.h <<_ACEOF
19233#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 19332#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
19234_ACEOF 19333_ACEOF
@@ -20366,11 +20465,10 @@ pkg_failed=no
20366{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5 20465{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5
20367$as_echo_n "checking for CHECK... " >&6; } 20466$as_echo_n "checking for CHECK... " >&6; }
20368 20467
20369if test -n "$PKG_CONFIG"; then 20468if test -n "$CHECK_CFLAGS"; then
20370 if test -n "$CHECK_CFLAGS"; then 20469 pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS"
20371 pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS" 20470 elif test -n "$PKG_CONFIG"; then
20372 else 20471 if test -n "$PKG_CONFIG" && \
20373 if test -n "$PKG_CONFIG" && \
20374 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5 20472 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5
20375 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5 20473 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5
20376 ac_status=$? 20474 ac_status=$?
@@ -20380,15 +20478,13 @@ if test -n "$PKG_CONFIG"; then
20380else 20478else
20381 pkg_failed=yes 20479 pkg_failed=yes
20382fi 20480fi
20383 fi 20481 else
20384else 20482 pkg_failed=untried
20385 pkg_failed=untried
20386fi 20483fi
20387if test -n "$PKG_CONFIG"; then 20484if test -n "$CHECK_LIBS"; then
20388 if test -n "$CHECK_LIBS"; then 20485 pkg_cv_CHECK_LIBS="$CHECK_LIBS"
20389 pkg_cv_CHECK_LIBS="$CHECK_LIBS" 20486 elif test -n "$PKG_CONFIG"; then
20390 else 20487 if test -n "$PKG_CONFIG" && \
20391 if test -n "$PKG_CONFIG" && \
20392 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5 20488 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5
20393 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5 20489 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5
20394 ac_status=$? 20490 ac_status=$?
@@ -20398,14 +20494,15 @@ if test -n "$PKG_CONFIG"; then
20398else 20494else
20399 pkg_failed=yes 20495 pkg_failed=yes
20400fi 20496fi
20401 fi 20497 else
20402else 20498 pkg_failed=untried
20403 pkg_failed=untried
20404fi 20499fi
20405 20500
20406 20501
20407 20502
20408if test $pkg_failed = yes; then 20503if test $pkg_failed = yes; then
20504 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20505$as_echo "no" >&6; }
20409 20506
20410if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 20507if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20411 _pkg_short_errors_supported=yes 20508 _pkg_short_errors_supported=yes
@@ -20413,17 +20510,17 @@ else
20413 _pkg_short_errors_supported=no 20510 _pkg_short_errors_supported=no
20414fi 20511fi
20415 if test $_pkg_short_errors_supported = yes; then 20512 if test $_pkg_short_errors_supported = yes; then
20416 CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "check >= 0.9.5"` 20513 CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "check >= 0.9.5" 2>&1`
20417 else 20514 else
20418 CHECK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "check >= 0.9.5"` 20515 CHECK_PKG_ERRORS=`$PKG_CONFIG --print-errors "check >= 0.9.5" 2>&1`
20419 fi 20516 fi
20420 # Put the nasty error message in config.log where it belongs 20517 # Put the nasty error message in config.log where it belongs
20421 echo "$CHECK_PKG_ERRORS" >&5 20518 echo "$CHECK_PKG_ERRORS" >&5
20422 20519
20423 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 20520 _efl_enable_tests="no"
20424$as_echo "no" >&6; }
20425 _efl_enable_tests="no"
20426elif test $pkg_failed = untried; then 20521elif test $pkg_failed = untried; then
20522 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20523$as_echo "no" >&6; }
20427 _efl_enable_tests="no" 20524 _efl_enable_tests="no"
20428else 20525else
20429 CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS 20526 CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS
@@ -20618,11 +20715,10 @@ pkg_failed=no
20618{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5 20715{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5
20619$as_echo_n "checking for GLIB... " >&6; } 20716$as_echo_n "checking for GLIB... " >&6; }
20620 20717
20621if test -n "$PKG_CONFIG"; then 20718if test -n "$GLIB_CFLAGS"; then
20622 if test -n "$GLIB_CFLAGS"; then 20719 pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS"
20623 pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS" 20720 elif test -n "$PKG_CONFIG"; then
20624 else 20721 if test -n "$PKG_CONFIG" && \
20625 if test -n "$PKG_CONFIG" && \
20626 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5 20722 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5
20627 ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5 20723 ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
20628 ac_status=$? 20724 ac_status=$?
@@ -20632,15 +20728,13 @@ if test -n "$PKG_CONFIG"; then
20632else 20728else
20633 pkg_failed=yes 20729 pkg_failed=yes
20634fi 20730fi
20635 fi 20731 else
20636else 20732 pkg_failed=untried
20637 pkg_failed=untried
20638fi 20733fi
20639if test -n "$PKG_CONFIG"; then 20734if test -n "$GLIB_LIBS"; then
20640 if test -n "$GLIB_LIBS"; then 20735 pkg_cv_GLIB_LIBS="$GLIB_LIBS"
20641 pkg_cv_GLIB_LIBS="$GLIB_LIBS" 20736 elif test -n "$PKG_CONFIG"; then
20642 else 20737 if test -n "$PKG_CONFIG" && \
20643 if test -n "$PKG_CONFIG" && \
20644 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5 20738 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5
20645 ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5 20739 ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
20646 ac_status=$? 20740 ac_status=$?
@@ -20650,14 +20744,15 @@ if test -n "$PKG_CONFIG"; then
20650else 20744else
20651 pkg_failed=yes 20745 pkg_failed=yes
20652fi 20746fi
20653 fi 20747 else
20654else 20748 pkg_failed=untried
20655 pkg_failed=untried
20656fi 20749fi
20657 20750
20658 20751
20659 20752
20660if test $pkg_failed = yes; then 20753if test $pkg_failed = yes; then
20754 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20755$as_echo "no" >&6; }
20661 20756
20662if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 20757if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
20663 _pkg_short_errors_supported=yes 20758 _pkg_short_errors_supported=yes
@@ -20665,17 +20760,17 @@ else
20665 _pkg_short_errors_supported=no 20760 _pkg_short_errors_supported=no
20666fi 20761fi
20667 if test $_pkg_short_errors_supported = yes; then 20762 if test $_pkg_short_errors_supported = yes; then
20668 GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glib-2.0"` 20763 GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0" 2>&1`
20669 else 20764 else
20670 GLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glib-2.0"` 20765 GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0" 2>&1`
20671 fi 20766 fi
20672 # Put the nasty error message in config.log where it belongs 20767 # Put the nasty error message in config.log where it belongs
20673 echo "$GLIB_PKG_ERRORS" >&5 20768 echo "$GLIB_PKG_ERRORS" >&5
20674 20769
20675 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 20770 have_module="no"
20676$as_echo "no" >&6; }
20677 have_module="no"
20678elif test $pkg_failed = untried; then 20771elif test $pkg_failed = untried; then
20772 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
20773$as_echo "no" >&6; }
20679 have_module="no" 20774 have_module="no"
20680else 20775else
20681 GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS 20776 GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS
@@ -20884,6 +20979,7 @@ DEFS=-DHAVE_CONFIG_H
20884 20979
20885ac_libobjs= 20980ac_libobjs=
20886ac_ltlibobjs= 20981ac_ltlibobjs=
20982U=
20887for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue 20983for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
20888 # 1. Remove the extension, and $U if already installed. 20984 # 1. Remove the extension, and $U if already installed.
20889 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' 20985 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -20907,148 +21003,152 @@ else
20907fi 21003fi
20908 21004
20909if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then 21005if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
20910 as_fn_error "conditional \"AMDEP\" was never defined. 21006 as_fn_error $? "conditional \"AMDEP\" was never defined.
20911Usually this means the macro was only invoked conditionally." "$LINENO" 5 21007Usually this means the macro was only invoked conditionally." "$LINENO" 5
20912fi 21008fi
20913if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 21009if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
20914 as_fn_error "conditional \"am__fastdepCC\" was never defined. 21010 as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
20915Usually this means the macro was only invoked conditionally." "$LINENO" 5 21011Usually this means the macro was only invoked conditionally." "$LINENO" 5
20916fi 21012fi
20917if test -z "${EINA_HAVE_THREADS_TRUE}" && test -z "${EINA_HAVE_THREADS_FALSE}"; then 21013if test -z "${EINA_HAVE_THREADS_TRUE}" && test -z "${EINA_HAVE_THREADS_FALSE}"; then
20918 as_fn_error "conditional \"EINA_HAVE_THREADS\" was never defined. 21014 as_fn_error $? "conditional \"EINA_HAVE_THREADS\" was never defined.
20919Usually this means the macro was only invoked conditionally." "$LINENO" 5 21015Usually this means the macro was only invoked conditionally." "$LINENO" 5
20920fi 21016fi
20921if test -z "${EINA_DEBUG_THREADS_TRUE}" && test -z "${EINA_DEBUG_THREADS_FALSE}"; then 21017if test -z "${EINA_DEBUG_THREADS_TRUE}" && test -z "${EINA_DEBUG_THREADS_FALSE}"; then
20922 as_fn_error "conditional \"EINA_DEBUG_THREADS\" was never defined. 21018 as_fn_error $? "conditional \"EINA_DEBUG_THREADS\" was never defined.
20923Usually this means the macro was only invoked conditionally." "$LINENO" 5 21019Usually this means the macro was only invoked conditionally." "$LINENO" 5
20924fi 21020fi
20925if test -z "${EINA_ON_OFF_THREADS_TRUE}" && test -z "${EINA_ON_OFF_THREADS_FALSE}"; then 21021if test -z "${EINA_ON_OFF_THREADS_TRUE}" && test -z "${EINA_ON_OFF_THREADS_FALSE}"; then
20926 as_fn_error "conditional \"EINA_ON_OFF_THREADS\" was never defined. 21022 as_fn_error $? "conditional \"EINA_ON_OFF_THREADS\" was never defined.
20927Usually this means the macro was only invoked conditionally." "$LINENO" 5 21023Usually this means the macro was only invoked conditionally." "$LINENO" 5
20928fi 21024fi
20929if test -z "${SAFETY_CHECKS_TRUE}" && test -z "${SAFETY_CHECKS_FALSE}"; then 21025if test -z "${SAFETY_CHECKS_TRUE}" && test -z "${SAFETY_CHECKS_FALSE}"; then
20930 as_fn_error "conditional \"SAFETY_CHECKS\" was never defined. 21026 as_fn_error $? "conditional \"SAFETY_CHECKS\" was never defined.
20931Usually this means the macro was only invoked conditionally." "$LINENO" 5 21027Usually this means the macro was only invoked conditionally." "$LINENO" 5
20932fi 21028fi
20933if test -z "${EINA_AMALGAMATION_TRUE}" && test -z "${EINA_AMALGAMATION_FALSE}"; then 21029if test -z "${EINA_AMALGAMATION_TRUE}" && test -z "${EINA_AMALGAMATION_FALSE}"; then
20934 as_fn_error "conditional \"EINA_AMALGAMATION\" was never defined. 21030 as_fn_error $? "conditional \"EINA_AMALGAMATION\" was never defined.
20935Usually this means the macro was only invoked conditionally." "$LINENO" 5 21031Usually this means the macro was only invoked conditionally." "$LINENO" 5
20936fi 21032fi
20937if test -z "${EINA_ENABLE_BENCHMARK_E17_TRUE}" && test -z "${EINA_ENABLE_BENCHMARK_E17_FALSE}"; then 21033if test -z "${EINA_ENABLE_BENCHMARK_E17_TRUE}" && test -z "${EINA_ENABLE_BENCHMARK_E17_FALSE}"; then
20938 as_fn_error "conditional \"EINA_ENABLE_BENCHMARK_E17\" was never defined. 21034 as_fn_error $? "conditional \"EINA_ENABLE_BENCHMARK_E17\" was never defined.
20939Usually this means the macro was only invoked conditionally." "$LINENO" 5 21035Usually this means the macro was only invoked conditionally." "$LINENO" 5
20940fi 21036fi
20941if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 21037if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
20942 as_fn_error "conditional \"am__fastdepCC\" was never defined. 21038 as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
20943Usually this means the macro was only invoked conditionally." "$LINENO" 5 21039Usually this means the macro was only invoked conditionally." "$LINENO" 5
20944fi 21040fi
20945if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then 21041if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
20946 as_fn_error "conditional \"am__fastdepCXX\" was never defined. 21042 as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
20947Usually this means the macro was only invoked conditionally." "$LINENO" 5 21043Usually this means the macro was only invoked conditionally." "$LINENO" 5
20948fi 21044fi
20949if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then 21045if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
20950 as_fn_error "conditional \"am__fastdepCXX\" was never defined. 21046 as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
20951Usually this means the macro was only invoked conditionally." "$LINENO" 5 21047Usually this means the macro was only invoked conditionally." "$LINENO" 5
20952fi 21048fi
20953if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then 21049if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then
20954 as_fn_error "conditional \"EFL_BUILD_DOC\" was never defined. 21050 as_fn_error $? "conditional \"EFL_BUILD_DOC\" was never defined.
20955Usually this means the macro was only invoked conditionally." "$LINENO" 5 21051Usually this means the macro was only invoked conditionally." "$LINENO" 5
20956fi 21052fi
20957if test -z "${BUILD_TILER_EXAMPLE_TRUE}" && test -z "${BUILD_TILER_EXAMPLE_FALSE}"; then 21053if test -z "${BUILD_TILER_EXAMPLE_TRUE}" && test -z "${BUILD_TILER_EXAMPLE_FALSE}"; then
20958 as_fn_error "conditional \"BUILD_TILER_EXAMPLE\" was never defined. 21054 as_fn_error $? "conditional \"BUILD_TILER_EXAMPLE\" was never defined.
20959Usually this means the macro was only invoked conditionally." "$LINENO" 5 21055Usually this means the macro was only invoked conditionally." "$LINENO" 5
20960fi 21056fi
20961 21057
20962if test -z "${EINA_HAVE_WINCE_TRUE}" && test -z "${EINA_HAVE_WINCE_FALSE}"; then 21058if test -z "${EINA_HAVE_WINCE_TRUE}" && test -z "${EINA_HAVE_WINCE_FALSE}"; then
20963 as_fn_error "conditional \"EINA_HAVE_WINCE\" was never defined. 21059 as_fn_error $? "conditional \"EINA_HAVE_WINCE\" was never defined.
20964Usually this means the macro was only invoked conditionally." "$LINENO" 5 21060Usually this means the macro was only invoked conditionally." "$LINENO" 5
20965fi 21061fi
20966if test -z "${EINA_HAVE_WIN32_TRUE}" && test -z "${EINA_HAVE_WIN32_FALSE}"; then 21062if test -z "${EINA_HAVE_WIN32_TRUE}" && test -z "${EINA_HAVE_WIN32_FALSE}"; then
20967 as_fn_error "conditional \"EINA_HAVE_WIN32\" was never defined. 21063 as_fn_error $? "conditional \"EINA_HAVE_WIN32\" was never defined.
21064Usually this means the macro was only invoked conditionally." "$LINENO" 5
21065fi
21066if test -z "${EINA_HAVE_EXOTIC_TRUE}" && test -z "${EINA_HAVE_EXOTIC_FALSE}"; then
21067 as_fn_error $? "conditional \"EINA_HAVE_EXOTIC\" was never defined.
20968Usually this means the macro was only invoked conditionally." "$LINENO" 5 21068Usually this means the macro was only invoked conditionally." "$LINENO" 5
20969fi 21069fi
20970if test -z "${EINA_BUILD_CHAINED_POOL_TRUE}" && test -z "${EINA_BUILD_CHAINED_POOL_FALSE}"; then 21070if test -z "${EINA_BUILD_CHAINED_POOL_TRUE}" && test -z "${EINA_BUILD_CHAINED_POOL_FALSE}"; then
20971 as_fn_error "conditional \"EINA_BUILD_CHAINED_POOL\" was never defined. 21071 as_fn_error $? "conditional \"EINA_BUILD_CHAINED_POOL\" was never defined.
20972Usually this means the macro was only invoked conditionally." "$LINENO" 5 21072Usually this means the macro was only invoked conditionally." "$LINENO" 5
20973fi 21073fi
20974if test -z "${EINA_STATIC_BUILD_CHAINED_POOL_TRUE}" && test -z "${EINA_STATIC_BUILD_CHAINED_POOL_FALSE}"; then 21074if test -z "${EINA_STATIC_BUILD_CHAINED_POOL_TRUE}" && test -z "${EINA_STATIC_BUILD_CHAINED_POOL_FALSE}"; then
20975 as_fn_error "conditional \"EINA_STATIC_BUILD_CHAINED_POOL\" was never defined. 21075 as_fn_error $? "conditional \"EINA_STATIC_BUILD_CHAINED_POOL\" was never defined.
20976Usually this means the macro was only invoked conditionally." "$LINENO" 5 21076Usually this means the macro was only invoked conditionally." "$LINENO" 5
20977fi 21077fi
20978if test -z "${EINA_BUILD_EMEMOA_FIXED_TRUE}" && test -z "${EINA_BUILD_EMEMOA_FIXED_FALSE}"; then 21078if test -z "${EINA_BUILD_EMEMOA_FIXED_TRUE}" && test -z "${EINA_BUILD_EMEMOA_FIXED_FALSE}"; then
20979 as_fn_error "conditional \"EINA_BUILD_EMEMOA_FIXED\" was never defined. 21079 as_fn_error $? "conditional \"EINA_BUILD_EMEMOA_FIXED\" was never defined.
20980Usually this means the macro was only invoked conditionally." "$LINENO" 5 21080Usually this means the macro was only invoked conditionally." "$LINENO" 5
20981fi 21081fi
20982if test -z "${EINA_STATIC_BUILD_EMEMOA_FIXED_TRUE}" && test -z "${EINA_STATIC_BUILD_EMEMOA_FIXED_FALSE}"; then 21082if test -z "${EINA_STATIC_BUILD_EMEMOA_FIXED_TRUE}" && test -z "${EINA_STATIC_BUILD_EMEMOA_FIXED_FALSE}"; then
20983 as_fn_error "conditional \"EINA_STATIC_BUILD_EMEMOA_FIXED\" was never defined. 21083 as_fn_error $? "conditional \"EINA_STATIC_BUILD_EMEMOA_FIXED\" was never defined.
20984Usually this means the macro was only invoked conditionally." "$LINENO" 5 21084Usually this means the macro was only invoked conditionally." "$LINENO" 5
20985fi 21085fi
20986if test -z "${EINA_BUILD_EMEMOA_UNKNOWN_TRUE}" && test -z "${EINA_BUILD_EMEMOA_UNKNOWN_FALSE}"; then 21086if test -z "${EINA_BUILD_EMEMOA_UNKNOWN_TRUE}" && test -z "${EINA_BUILD_EMEMOA_UNKNOWN_FALSE}"; then
20987 as_fn_error "conditional \"EINA_BUILD_EMEMOA_UNKNOWN\" was never defined. 21087 as_fn_error $? "conditional \"EINA_BUILD_EMEMOA_UNKNOWN\" was never defined.
20988Usually this means the macro was only invoked conditionally." "$LINENO" 5 21088Usually this means the macro was only invoked conditionally." "$LINENO" 5
20989fi 21089fi
20990if test -z "${EINA_STATIC_BUILD_EMEMOA_UNKNOWN_TRUE}" && test -z "${EINA_STATIC_BUILD_EMEMOA_UNKNOWN_FALSE}"; then 21090if test -z "${EINA_STATIC_BUILD_EMEMOA_UNKNOWN_TRUE}" && test -z "${EINA_STATIC_BUILD_EMEMOA_UNKNOWN_FALSE}"; then
20991 as_fn_error "conditional \"EINA_STATIC_BUILD_EMEMOA_UNKNOWN\" was never defined. 21091 as_fn_error $? "conditional \"EINA_STATIC_BUILD_EMEMOA_UNKNOWN\" was never defined.
20992Usually this means the macro was only invoked conditionally." "$LINENO" 5 21092Usually this means the macro was only invoked conditionally." "$LINENO" 5
20993fi 21093fi
20994if test -z "${EINA_BUILD_FIXED_BITMAP_TRUE}" && test -z "${EINA_BUILD_FIXED_BITMAP_FALSE}"; then 21094if test -z "${EINA_BUILD_FIXED_BITMAP_TRUE}" && test -z "${EINA_BUILD_FIXED_BITMAP_FALSE}"; then
20995 as_fn_error "conditional \"EINA_BUILD_FIXED_BITMAP\" was never defined. 21095 as_fn_error $? "conditional \"EINA_BUILD_FIXED_BITMAP\" was never defined.
20996Usually this means the macro was only invoked conditionally." "$LINENO" 5 21096Usually this means the macro was only invoked conditionally." "$LINENO" 5
20997fi 21097fi
20998if test -z "${EINA_STATIC_BUILD_FIXED_BITMAP_TRUE}" && test -z "${EINA_STATIC_BUILD_FIXED_BITMAP_FALSE}"; then 21098if test -z "${EINA_STATIC_BUILD_FIXED_BITMAP_TRUE}" && test -z "${EINA_STATIC_BUILD_FIXED_BITMAP_FALSE}"; then
20999 as_fn_error "conditional \"EINA_STATIC_BUILD_FIXED_BITMAP\" was never defined. 21099 as_fn_error $? "conditional \"EINA_STATIC_BUILD_FIXED_BITMAP\" was never defined.
21000Usually this means the macro was only invoked conditionally." "$LINENO" 5 21100Usually this means the macro was only invoked conditionally." "$LINENO" 5
21001fi 21101fi
21002if test -z "${EINA_BUILD_PASS_THROUGH_TRUE}" && test -z "${EINA_BUILD_PASS_THROUGH_FALSE}"; then 21102if test -z "${EINA_BUILD_PASS_THROUGH_TRUE}" && test -z "${EINA_BUILD_PASS_THROUGH_FALSE}"; then
21003 as_fn_error "conditional \"EINA_BUILD_PASS_THROUGH\" was never defined. 21103 as_fn_error $? "conditional \"EINA_BUILD_PASS_THROUGH\" was never defined.
21004Usually this means the macro was only invoked conditionally." "$LINENO" 5 21104Usually this means the macro was only invoked conditionally." "$LINENO" 5
21005fi 21105fi
21006if test -z "${EINA_STATIC_BUILD_PASS_THROUGH_TRUE}" && test -z "${EINA_STATIC_BUILD_PASS_THROUGH_FALSE}"; then 21106if test -z "${EINA_STATIC_BUILD_PASS_THROUGH_TRUE}" && test -z "${EINA_STATIC_BUILD_PASS_THROUGH_FALSE}"; then
21007 as_fn_error "conditional \"EINA_STATIC_BUILD_PASS_THROUGH\" was never defined. 21107 as_fn_error $? "conditional \"EINA_STATIC_BUILD_PASS_THROUGH\" was never defined.
21008Usually this means the macro was only invoked conditionally." "$LINENO" 5 21108Usually this means the macro was only invoked conditionally." "$LINENO" 5
21009fi 21109fi
21010if test -z "${EINA_BUILD_BUDDY_TRUE}" && test -z "${EINA_BUILD_BUDDY_FALSE}"; then 21110if test -z "${EINA_BUILD_BUDDY_TRUE}" && test -z "${EINA_BUILD_BUDDY_FALSE}"; then
21011 as_fn_error "conditional \"EINA_BUILD_BUDDY\" was never defined. 21111 as_fn_error $? "conditional \"EINA_BUILD_BUDDY\" was never defined.
21012Usually this means the macro was only invoked conditionally." "$LINENO" 5 21112Usually this means the macro was only invoked conditionally." "$LINENO" 5
21013fi 21113fi
21014if test -z "${EINA_STATIC_BUILD_BUDDY_TRUE}" && test -z "${EINA_STATIC_BUILD_BUDDY_FALSE}"; then 21114if test -z "${EINA_STATIC_BUILD_BUDDY_TRUE}" && test -z "${EINA_STATIC_BUILD_BUDDY_FALSE}"; then
21015 as_fn_error "conditional \"EINA_STATIC_BUILD_BUDDY\" was never defined. 21115 as_fn_error $? "conditional \"EINA_STATIC_BUILD_BUDDY\" was never defined.
21016Usually this means the macro was only invoked conditionally." "$LINENO" 5 21116Usually this means the macro was only invoked conditionally." "$LINENO" 5
21017fi 21117fi
21018if test -z "${EINA_BUILD_ONE_BIG_TRUE}" && test -z "${EINA_BUILD_ONE_BIG_FALSE}"; then 21118if test -z "${EINA_BUILD_ONE_BIG_TRUE}" && test -z "${EINA_BUILD_ONE_BIG_FALSE}"; then
21019 as_fn_error "conditional \"EINA_BUILD_ONE_BIG\" was never defined. 21119 as_fn_error $? "conditional \"EINA_BUILD_ONE_BIG\" was never defined.
21020Usually this means the macro was only invoked conditionally." "$LINENO" 5 21120Usually this means the macro was only invoked conditionally." "$LINENO" 5
21021fi 21121fi
21022if test -z "${EINA_STATIC_BUILD_ONE_BIG_TRUE}" && test -z "${EINA_STATIC_BUILD_ONE_BIG_FALSE}"; then 21122if test -z "${EINA_STATIC_BUILD_ONE_BIG_TRUE}" && test -z "${EINA_STATIC_BUILD_ONE_BIG_FALSE}"; then
21023 as_fn_error "conditional \"EINA_STATIC_BUILD_ONE_BIG\" was never defined. 21123 as_fn_error $? "conditional \"EINA_STATIC_BUILD_ONE_BIG\" was never defined.
21024Usually this means the macro was only invoked conditionally." "$LINENO" 5 21124Usually this means the macro was only invoked conditionally." "$LINENO" 5
21025fi 21125fi
21026if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then 21126if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then
21027 as_fn_error "conditional \"EFL_ENABLE_TESTS\" was never defined. 21127 as_fn_error $? "conditional \"EFL_ENABLE_TESTS\" was never defined.
21028Usually this means the macro was only invoked conditionally." "$LINENO" 5 21128Usually this means the macro was only invoked conditionally." "$LINENO" 5
21029fi 21129fi
21030if test -z "${EFL_ENABLE_COVERAGE_TRUE}" && test -z "${EFL_ENABLE_COVERAGE_FALSE}"; then 21130if test -z "${EFL_ENABLE_COVERAGE_TRUE}" && test -z "${EFL_ENABLE_COVERAGE_FALSE}"; then
21031 as_fn_error "conditional \"EFL_ENABLE_COVERAGE\" was never defined. 21131 as_fn_error $? "conditional \"EFL_ENABLE_COVERAGE\" was never defined.
21032Usually this means the macro was only invoked conditionally." "$LINENO" 5 21132Usually this means the macro was only invoked conditionally." "$LINENO" 5
21033fi 21133fi
21034if test -z "${EFL_ENABLE_BENCHMARK_TRUE}" && test -z "${EFL_ENABLE_BENCHMARK_FALSE}"; then 21134if test -z "${EFL_ENABLE_BENCHMARK_TRUE}" && test -z "${EFL_ENABLE_BENCHMARK_FALSE}"; then
21035 as_fn_error "conditional \"EFL_ENABLE_BENCHMARK\" was never defined. 21135 as_fn_error $? "conditional \"EFL_ENABLE_BENCHMARK\" was never defined.
21036Usually this means the macro was only invoked conditionally." "$LINENO" 5 21136Usually this means the macro was only invoked conditionally." "$LINENO" 5
21037fi 21137fi
21038if test -z "${EINA_HAVE_GLIB_TRUE}" && test -z "${EINA_HAVE_GLIB_FALSE}"; then 21138if test -z "${EINA_HAVE_GLIB_TRUE}" && test -z "${EINA_HAVE_GLIB_FALSE}"; then
21039 as_fn_error "conditional \"EINA_HAVE_GLIB\" was never defined. 21139 as_fn_error $? "conditional \"EINA_HAVE_GLIB\" was never defined.
21040Usually this means the macro was only invoked conditionally." "$LINENO" 5 21140Usually this means the macro was only invoked conditionally." "$LINENO" 5
21041fi 21141fi
21042if test -z "${CITYHASH_BENCH_TRUE}" && test -z "${CITYHASH_BENCH_FALSE}"; then 21142if test -z "${CITYHASH_BENCH_TRUE}" && test -z "${CITYHASH_BENCH_FALSE}"; then
21043 as_fn_error "conditional \"CITYHASH_BENCH\" was never defined. 21143 as_fn_error $? "conditional \"CITYHASH_BENCH\" was never defined.
21044Usually this means the macro was only invoked conditionally." "$LINENO" 5 21144Usually this means the macro was only invoked conditionally." "$LINENO" 5
21045fi 21145fi
21046if test -z "${EFL_BUILD_EXAMPLES_TRUE}" && test -z "${EFL_BUILD_EXAMPLES_FALSE}"; then 21146if test -z "${EFL_BUILD_EXAMPLES_TRUE}" && test -z "${EFL_BUILD_EXAMPLES_FALSE}"; then
21047 as_fn_error "conditional \"EFL_BUILD_EXAMPLES\" was never defined. 21147 as_fn_error $? "conditional \"EFL_BUILD_EXAMPLES\" was never defined.
21048Usually this means the macro was only invoked conditionally." "$LINENO" 5 21148Usually this means the macro was only invoked conditionally." "$LINENO" 5
21049fi 21149fi
21050if test -z "${EFL_INSTALL_EXAMPLES_TRUE}" && test -z "${EFL_INSTALL_EXAMPLES_FALSE}"; then 21150if test -z "${EFL_INSTALL_EXAMPLES_TRUE}" && test -z "${EFL_INSTALL_EXAMPLES_FALSE}"; then
21051 as_fn_error "conditional \"EFL_INSTALL_EXAMPLES\" was never defined. 21151 as_fn_error $? "conditional \"EFL_INSTALL_EXAMPLES\" was never defined.
21052Usually this means the macro was only invoked conditionally." "$LINENO" 5 21152Usually this means the macro was only invoked conditionally." "$LINENO" 5
21053fi 21153fi
21054 21154
@@ -21198,19 +21298,19 @@ export LANGUAGE
21198(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 21298(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
21199 21299
21200 21300
21201# as_fn_error ERROR [LINENO LOG_FD] 21301# as_fn_error STATUS ERROR [LINENO LOG_FD]
21202# --------------------------------- 21302# ----------------------------------------
21203# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are 21303# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
21204# provided, also output the error to LOG_FD, referencing LINENO. Then exit the 21304# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
21205# script with status $?, using 1 if that was 0. 21305# script with STATUS, using 1 if that was 0.
21206as_fn_error () 21306as_fn_error ()
21207{ 21307{
21208 as_status=$?; test $as_status -eq 0 && as_status=1 21308 as_status=$1; test $as_status -eq 0 && as_status=1
21209 if test "$3"; then 21309 if test "$4"; then
21210 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 21310 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
21211 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 21311 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
21212 fi 21312 fi
21213 $as_echo "$as_me: error: $1" >&2 21313 $as_echo "$as_me: error: $2" >&2
21214 as_fn_exit $as_status 21314 as_fn_exit $as_status
21215} # as_fn_error 21315} # as_fn_error
21216 21316
@@ -21406,7 +21506,7 @@ $as_echo X"$as_dir" |
21406 test -d "$as_dir" && break 21506 test -d "$as_dir" && break
21407 done 21507 done
21408 test -z "$as_dirs" || eval "mkdir $as_dirs" 21508 test -z "$as_dirs" || eval "mkdir $as_dirs"
21409 } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" 21509 } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
21410 21510
21411 21511
21412} # as_fn_mkdir_p 21512} # as_fn_mkdir_p
@@ -21459,8 +21559,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
21459# report actual input values of CONFIG_FILES etc. instead of their 21559# report actual input values of CONFIG_FILES etc. instead of their
21460# values after options handling. 21560# values after options handling.
21461ac_log=" 21561ac_log="
21462This file was extended by eina $as_me 1.1.99.67344, which was 21562This file was extended by eina $as_me 1.2.0-alpha, which was
21463generated by GNU Autoconf 2.65. Invocation command line was 21563generated by GNU Autoconf 2.67. Invocation command line was
21464 21564
21465 CONFIG_FILES = $CONFIG_FILES 21565 CONFIG_FILES = $CONFIG_FILES
21466 CONFIG_HEADERS = $CONFIG_HEADERS 21566 CONFIG_HEADERS = $CONFIG_HEADERS
@@ -21525,11 +21625,11 @@ _ACEOF
21525cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 21625cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
21526ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" 21626ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
21527ac_cs_version="\\ 21627ac_cs_version="\\
21528eina config.status 1.1.99.67344 21628eina config.status 1.2.0-alpha
21529configured by $0, generated by GNU Autoconf 2.65, 21629configured by $0, generated by GNU Autoconf 2.67,
21530 with options \\"\$ac_cs_config\\" 21630 with options \\"\$ac_cs_config\\"
21531 21631
21532Copyright (C) 2009 Free Software Foundation, Inc. 21632Copyright (C) 2010 Free Software Foundation, Inc.
21533This config.status script is free software; the Free Software Foundation 21633This config.status script is free software; the Free Software Foundation
21534gives unlimited permission to copy, distribute and modify it." 21634gives unlimited permission to copy, distribute and modify it."
21535 21635
@@ -21547,11 +21647,16 @@ ac_need_defaults=:
21547while test $# != 0 21647while test $# != 0
21548do 21648do
21549 case $1 in 21649 case $1 in
21550 --*=*) 21650 --*=?*)
21551 ac_option=`expr "X$1" : 'X\([^=]*\)='` 21651 ac_option=`expr "X$1" : 'X\([^=]*\)='`
21552 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` 21652 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
21553 ac_shift=: 21653 ac_shift=:
21554 ;; 21654 ;;
21655 --*=)
21656 ac_option=`expr "X$1" : 'X\([^=]*\)='`
21657 ac_optarg=
21658 ac_shift=:
21659 ;;
21555 *) 21660 *)
21556 ac_option=$1 21661 ac_option=$1
21557 ac_optarg=$2 21662 ac_optarg=$2
@@ -21573,6 +21678,7 @@ do
21573 $ac_shift 21678 $ac_shift
21574 case $ac_optarg in 21679 case $ac_optarg in
21575 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; 21680 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
21681 '') as_fn_error $? "missing file argument" ;;
21576 esac 21682 esac
21577 as_fn_append CONFIG_FILES " '$ac_optarg'" 21683 as_fn_append CONFIG_FILES " '$ac_optarg'"
21578 ac_need_defaults=false;; 21684 ac_need_defaults=false;;
@@ -21585,7 +21691,7 @@ do
21585 ac_need_defaults=false;; 21691 ac_need_defaults=false;;
21586 --he | --h) 21692 --he | --h)
21587 # Conflict between --help and --header 21693 # Conflict between --help and --header
21588 as_fn_error "ambiguous option: \`$1' 21694 as_fn_error $? "ambiguous option: \`$1'
21589Try \`$0 --help' for more information.";; 21695Try \`$0 --help' for more information.";;
21590 --help | --hel | -h ) 21696 --help | --hel | -h )
21591 $as_echo "$ac_cs_usage"; exit ;; 21697 $as_echo "$ac_cs_usage"; exit ;;
@@ -21594,7 +21700,7 @@ Try \`$0 --help' for more information.";;
21594 ac_cs_silent=: ;; 21700 ac_cs_silent=: ;;
21595 21701
21596 # This is an error. 21702 # This is an error.
21597 -*) as_fn_error "unrecognized option: \`$1' 21703 -*) as_fn_error $? "unrecognized option: \`$1'
21598Try \`$0 --help' for more information." ;; 21704Try \`$0 --help' for more information." ;;
21599 21705
21600 *) as_fn_append ac_config_targets " $1" 21706 *) as_fn_append ac_config_targets " $1"
@@ -22024,7 +22130,7 @@ do
22024 "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;; 22130 "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;;
22025 "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;; 22131 "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;;
22026 22132
22027 *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; 22133 *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
22028 esac 22134 esac
22029done 22135done
22030 22136
@@ -22062,7 +22168,7 @@ $debug ||
22062{ 22168{
22063 tmp=./conf$$-$RANDOM 22169 tmp=./conf$$-$RANDOM
22064 (umask 077 && mkdir "$tmp") 22170 (umask 077 && mkdir "$tmp")
22065} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 22171} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
22066 22172
22067# Set up the scripts for CONFIG_FILES section. 22173# Set up the scripts for CONFIG_FILES section.
22068# No need to generate them if there are no CONFIG_FILES. 22174# No need to generate them if there are no CONFIG_FILES.
@@ -22079,7 +22185,7 @@ if test "x$ac_cr" = x; then
22079fi 22185fi
22080ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` 22186ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
22081if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then 22187if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
22082 ac_cs_awk_cr='\r' 22188 ac_cs_awk_cr='\\r'
22083else 22189else
22084 ac_cs_awk_cr=$ac_cr 22190 ac_cs_awk_cr=$ac_cr
22085fi 22191fi
@@ -22093,18 +22199,18 @@ _ACEOF
22093 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && 22199 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
22094 echo "_ACEOF" 22200 echo "_ACEOF"
22095} >conf$$subs.sh || 22201} >conf$$subs.sh ||
22096 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 22202 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
22097ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` 22203ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
22098ac_delim='%!_!# ' 22204ac_delim='%!_!# '
22099for ac_last_try in false false false false false :; do 22205for ac_last_try in false false false false false :; do
22100 . ./conf$$subs.sh || 22206 . ./conf$$subs.sh ||
22101 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 22207 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
22102 22208
22103 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` 22209 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
22104 if test $ac_delim_n = $ac_delim_num; then 22210 if test $ac_delim_n = $ac_delim_num; then
22105 break 22211 break
22106 elif $ac_last_try; then 22212 elif $ac_last_try; then
22107 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 22213 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
22108 else 22214 else
22109 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 22215 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
22110 fi 22216 fi
@@ -22193,20 +22299,28 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
22193else 22299else
22194 cat 22300 cat
22195fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ 22301fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
22196 || as_fn_error "could not setup config files machinery" "$LINENO" 5 22302 || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
22197_ACEOF 22303_ACEOF
22198 22304
22199# VPATH may cause trouble with some makes, so we remove $(srcdir), 22305# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
22200# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and 22306# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
22201# trailing colons and then remove the whole line if VPATH becomes empty 22307# trailing colons and then remove the whole line if VPATH becomes empty
22202# (actually we leave an empty line to preserve line numbers). 22308# (actually we leave an empty line to preserve line numbers).
22203if test "x$srcdir" = x.; then 22309if test "x$srcdir" = x.; then
22204 ac_vpsub='/^[ ]*VPATH[ ]*=/{ 22310 ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
22205s/:*\$(srcdir):*/:/ 22311h
22206s/:*\${srcdir}:*/:/ 22312s///
22207s/:*@srcdir@:*/:/ 22313s/^/:/
22208s/^\([^=]*=[ ]*\):*/\1/ 22314s/[ ]*$/:/
22315s/:\$(srcdir):/:/g
22316s/:\${srcdir}:/:/g
22317s/:@srcdir@:/:/g
22318s/^:*//
22209s/:*$// 22319s/:*$//
22320x
22321s/\(=[ ]*\).*/\1/
22322G
22323s/\n//
22210s/^[^=]*=[ ]*$// 22324s/^[^=]*=[ ]*$//
22211}' 22325}'
22212fi 22326fi
@@ -22234,7 +22348,7 @@ for ac_last_try in false false :; do
22234 if test -z "$ac_t"; then 22348 if test -z "$ac_t"; then
22235 break 22349 break
22236 elif $ac_last_try; then 22350 elif $ac_last_try; then
22237 as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 22351 as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
22238 else 22352 else
22239 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 22353 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
22240 fi 22354 fi
@@ -22319,7 +22433,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
22319_ACAWK 22433_ACAWK
22320_ACEOF 22434_ACEOF
22321cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 22435cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
22322 as_fn_error "could not setup config headers machinery" "$LINENO" 5 22436 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
22323fi # test -n "$CONFIG_HEADERS" 22437fi # test -n "$CONFIG_HEADERS"
22324 22438
22325 22439
@@ -22332,7 +22446,7 @@ do
22332 esac 22446 esac
22333 case $ac_mode$ac_tag in 22447 case $ac_mode$ac_tag in
22334 :[FHL]*:*);; 22448 :[FHL]*:*);;
22335 :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; 22449 :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
22336 :[FH]-) ac_tag=-:-;; 22450 :[FH]-) ac_tag=-:-;;
22337 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; 22451 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
22338 esac 22452 esac
@@ -22360,7 +22474,7 @@ do
22360 [\\/$]*) false;; 22474 [\\/$]*) false;;
22361 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; 22475 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
22362 esac || 22476 esac ||
22363 as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; 22477 as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
22364 esac 22478 esac
22365 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac 22479 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
22366 as_fn_append ac_file_inputs " '$ac_f'" 22480 as_fn_append ac_file_inputs " '$ac_f'"
@@ -22387,7 +22501,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
22387 22501
22388 case $ac_tag in 22502 case $ac_tag in
22389 *:-:* | *:-) cat >"$tmp/stdin" \ 22503 *:-:* | *:-) cat >"$tmp/stdin" \
22390 || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; 22504 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
22391 esac 22505 esac
22392 ;; 22506 ;;
22393 esac 22507 esac
@@ -22524,22 +22638,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t
22524$ac_datarootdir_hack 22638$ac_datarootdir_hack
22525" 22639"
22526eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ 22640eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
22527 || as_fn_error "could not create $ac_file" "$LINENO" 5 22641 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
22528 22642
22529test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && 22643test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
22530 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && 22644 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
22531 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && 22645 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
22532 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' 22646 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
22533which seems to be undefined. Please make sure it is defined." >&5 22647which seems to be undefined. Please make sure it is defined" >&5
22534$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' 22648$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
22535which seems to be undefined. Please make sure it is defined." >&2;} 22649which seems to be undefined. Please make sure it is defined" >&2;}
22536 22650
22537 rm -f "$tmp/stdin" 22651 rm -f "$tmp/stdin"
22538 case $ac_file in 22652 case $ac_file in
22539 -) cat "$tmp/out" && rm -f "$tmp/out";; 22653 -) cat "$tmp/out" && rm -f "$tmp/out";;
22540 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; 22654 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
22541 esac \ 22655 esac \
22542 || as_fn_error "could not create $ac_file" "$LINENO" 5 22656 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
22543 ;; 22657 ;;
22544 :H) 22658 :H)
22545 # 22659 #
@@ -22550,19 +22664,19 @@ which seems to be undefined. Please make sure it is defined." >&2;}
22550 $as_echo "/* $configure_input */" \ 22664 $as_echo "/* $configure_input */" \
22551 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" 22665 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
22552 } >"$tmp/config.h" \ 22666 } >"$tmp/config.h" \
22553 || as_fn_error "could not create $ac_file" "$LINENO" 5 22667 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
22554 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then 22668 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
22555 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 22669 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
22556$as_echo "$as_me: $ac_file is unchanged" >&6;} 22670$as_echo "$as_me: $ac_file is unchanged" >&6;}
22557 else 22671 else
22558 rm -f "$ac_file" 22672 rm -f "$ac_file"
22559 mv "$tmp/config.h" "$ac_file" \ 22673 mv "$tmp/config.h" "$ac_file" \
22560 || as_fn_error "could not create $ac_file" "$LINENO" 5 22674 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
22561 fi 22675 fi
22562 else 22676 else
22563 $as_echo "/* $configure_input */" \ 22677 $as_echo "/* $configure_input */" \
22564 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ 22678 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
22565 || as_fn_error "could not create -" "$LINENO" 5 22679 || as_fn_error $? "could not create -" "$LINENO" 5
22566 fi 22680 fi
22567# Compute "$ac_file"'s index in $config_headers. 22681# Compute "$ac_file"'s index in $config_headers.
22568_am_arg="$ac_file" 22682_am_arg="$ac_file"
@@ -23520,7 +23634,7 @@ _ACEOF
23520ac_clean_files=$ac_clean_files_save 23634ac_clean_files=$ac_clean_files_save
23521 23635
23522test $ac_write_fail = 0 || 23636test $ac_write_fail = 0 ||
23523 as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 23637 as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
23524 23638
23525 23639
23526# configure is writing to config.log, and then calls config.status. 23640# configure is writing to config.log, and then calls config.status.
@@ -23541,7 +23655,7 @@ if test "$no_create" != yes; then
23541 exec 5>>config.log 23655 exec 5>>config.log
23542 # Use ||, not &&, to avoid exiting from the if with $? = 1, which 23656 # Use ||, not &&, to avoid exiting from the if with $? = 1, which
23543 # would make configure fail if this is the last instruction. 23657 # would make configure fail if this is the last instruction.
23544 $ac_cs_success || as_fn_exit $? 23658 $ac_cs_success || as_fn_exit 1
23545fi 23659fi
23546if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then 23660if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
23547 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 23661 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
diff --git a/libraries/eina/configure.ac b/libraries/eina/configure.ac
index 367ffe1..38fb13d 100644
--- a/libraries/eina/configure.ac
+++ b/libraries/eina/configure.ac
@@ -1,12 +1,12 @@
1##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## 1##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## 2##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
3m4_define([v_maj], [1]) 3m4_define([v_maj], [1])
4m4_define([v_min], [1]) 4m4_define([v_min], [2])
5m4_define([v_mic], [99]) 5m4_define([v_mic], [0])
6m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v '\(export\|Unversioned directory\)' || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n'])) 6m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v '\(export\|Unversioned directory\)' || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n']))
7m4_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']))]) 7m4_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']))])
8##-- When released, remove the dnl on the below line 8##-- When released, remove the dnl on the below line
9dnl m4_undefine([v_rev]) 9m4_undefine([v_rev])
10##-- When doing snapshots - change soname. remove dnl on below line 10##-- When doing snapshots - change soname. remove dnl on below line
11dnl m4_define([relname], [ver-pre-svn-07]) 11dnl m4_define([relname], [ver-pre-svn-07])
12dnl m4_define([v_rel], [-release relname]) 12dnl m4_define([v_rel], [-release relname])
@@ -18,7 +18,7 @@ m4_define([lt_age], v_min)
18##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## 18##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
19##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## 19##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
20 20
21AC_INIT([eina], [v_ver], [enlightenment-devel@lists.sourceforge.net]) 21AC_INIT([eina], [v_ver]-alpha, [enlightenment-devel@lists.sourceforge.net])
22AC_PREREQ([2.59]) 22AC_PREREQ([2.59])
23AC_CONFIG_SRCDIR([configure.ac]) 23AC_CONFIG_SRCDIR([configure.ac])
24AC_CONFIG_MACRO_DIR([m4]) 24AC_CONFIG_MACRO_DIR([m4])
@@ -316,7 +316,7 @@ case "$host_os" in
316 mingw*) 316 mingw*)
317 PKG_CHECK_MODULES([EVIL], [evil >= 1.0.0]) 317 PKG_CHECK_MODULES([EVIL], [evil >= 1.0.0])
318 AC_DEFINE([HAVE_EVIL], [1], [Set to 1 if evil package is installed]) 318 AC_DEFINE([HAVE_EVIL], [1], [Set to 1 if evil package is installed])
319 requirement_eina="evil" 319 requirement_eina="${requirement_eina} evil"
320 EFL_EINA_BUILD="-DEFL_EINA_BUILD" 320 EFL_EINA_BUILD="-DEFL_EINA_BUILD"
321 ;; 321 ;;
322esac 322esac
@@ -361,17 +361,14 @@ EFL_ATTRIBUTE_UNUSED
361 361
362have_wince="no" 362have_wince="no"
363have_win32="no" 363have_win32="no"
364EINA_CPPFLAGS=""
365EINA_CFLAGS="" 364EINA_CFLAGS=""
366case "$host_os" in 365case "$host_os" in
367 mingw32ce*) 366 mingw32ce*)
368 EINA_CPPFLAGS="-D_WIN32_WCE=0x0420"
369 EINA_CFLAGS="${EVIL_CFLAGS}" 367 EINA_CFLAGS="${EVIL_CFLAGS}"
370 have_win32="yes" 368 have_win32="yes"
371 have_wince="yes" 369 have_wince="yes"
372 ;; 370 ;;
373 mingw*) 371 mingw*)
374 EINA_CPPFLAGS="-D_WIN32_WINNT=0x0501"
375 EINA_CFLAGS="${EVIL_CFLAGS}" 372 EINA_CFLAGS="${EVIL_CFLAGS}"
376 have_win32="yes" 373 have_win32="yes"
377 ;; 374 ;;
@@ -387,41 +384,57 @@ m4_ifdef([v_mic],
387 384
388EFL_COMPILER_FLAG([-Wshadow]) 385EFL_COMPILER_FLAG([-Wshadow])
389 386
387### Checks for portability layer
388
389PKG_CHECK_MODULES([EXOTIC],
390 [exotic],
391 [enable_exotic="yes"],
392 [enable_exotic="no"])
393
394if test "x${enable_exotic}" = "xyes"; then
395 requirement_eina="exotic ${requirement_eina}"
396 EINA_CFLAGS="${EINA_CFLAGS} ${EXOTIC_CFLAGS}"
397 EINA_LIBS="${EXOTIC_LIBS}"
398
399 EINA_CONFIGURE_HAVE_EXOTIC="#define EINA_HAVE_EXOTIC"
400 AC_DEFINE([HAVE_EXOTIC_H], [1], [Define to 1 if you have Exotic.])
401fi
402AM_CONDITIONAL([EINA_HAVE_EXOTIC], [test "x${enable_exotic}" = "xyes"])
403AC_SUBST([EINA_CONFIGURE_HAVE_EXOTIC])
404
390case "$host_vendor" in 405case "$host_vendor" in
391 ps3*) 406 ps3*)
392 PKG_CHECK_MODULES([ESCAPE], [escape]) 407 PKG_CHECK_MODULES([ESCAPE], [escape])
393 AC_DEFINE(HAVE_ESCAPE, 1, [Set to 1 if evil package is installed]) 408 AC_DEFINE(HAVE_ESCAPE, 1, [Set to 1 if Escape package is installed])
394 requirement_eina="escape" 409 requirement_eina="${requirement_eina} escape"
395 EINA_CFLAGS="${ESCAPE_CFLAGS} ${EINA_CFLAGS}" 410 EINA_CFLAGS="${ESCAPE_CFLAGS} ${EINA_CFLAGS}"
396 ;; 411 ;;
397esac 412esac
398 413
399AC_SUBST([EINA_CPPFLAGS])
400AC_SUBST([EINA_CFLAGS]) 414AC_SUBST([EINA_CFLAGS])
401 415
402
403### Checks for linker characteristics 416### Checks for linker characteristics
404EINA_LIBS= 417EINA_LIBS=
405lt_enable_auto_import="" 418lt_enable_auto_import=""
406case "${host_os}" in 419case "${host_os}" in
407 mingw*) 420 mingw*)
408 EINA_LIBS="-ldl ${EVIL_LIBS} -lm" 421 EINA_LIBS="${EINA_LIBS} -ldl ${EVIL_LIBS} -lm"
409 lt_enable_auto_import="-Wl,--enable-auto-import" 422 lt_enable_auto_import="-Wl,--enable-auto-import"
410 ;; 423 ;;
411 dragonfly*|openbsd*) 424 dragonfly*|openbsd*)
412 EINA_LIBS="-lm" 425 EINA_LIBS="${EINA_LIBS} -lm"
413 ;; 426 ;;
414 freebsd*|netbsd*) 427 freebsd*|netbsd*)
415 EINA_LIBS="-lrt -lm" 428 EINA_LIBS="${EINA_LIBS} -lrt -lm"
416 ;; 429 ;;
417 darwin*) 430 darwin*)
418 EINA_LIBS="-lm" 431 EINA_LIBS="${EINA_LIBS} -lm"
419 ;; 432 ;;
420 cygwin*) 433 cygwin*)
421 EINA_LIBS="-ldl -lm" 434 EINA_LIBS="${EINA_LIBS} -ldl -lm"
422 ;; 435 ;;
423 *) 436 *)
424 EINA_LIBS="-ldl -lrt -lm" 437 EINA_LIBS="${EINA_LIBS} -lrt -ldl -lm"
425 ;; 438 ;;
426esac 439esac
427case "$host_vendor" in 440case "$host_vendor" in
@@ -443,7 +456,7 @@ LIBS="${LIBS} ${EINA_LIBS}"
443AC_HEADER_ASSERT 456AC_HEADER_ASSERT
444AC_HEADER_TIME 457AC_HEADER_TIME
445EFL_CHECK_PATH_MAX 458EFL_CHECK_PATH_MAX
446AC_CHECK_HEADERS([unistd.h libgen.h inttypes.h stdint.h sys/types.h siginfo.h strings.h sys/mman.h]) 459AC_CHECK_HEADERS([unistd.h libgen.h inttypes.h stdint.h sys/types.h siginfo.h strings.h sys/mman.h execinfo.h])
447 460
448if test "x${ac_cv_header_inttypes_h}" = "xyes" ; then 461if test "x${ac_cv_header_inttypes_h}" = "xyes" ; then
449 EINA_CONFIGURE_HAVE_INTTYPES_H="#define EINA_HAVE_INTTYPES_H" 462 EINA_CONFIGURE_HAVE_INTTYPES_H="#define EINA_HAVE_INTTYPES_H"
@@ -484,7 +497,7 @@ AC_SUBST([EINA_CONFIGURE_HAVE_DIRENT_H])
484### Checks for library functions 497### Checks for library functions
485AC_ISC_POSIX 498AC_ISC_POSIX
486AC_FUNC_ALLOCA 499AC_FUNC_ALLOCA
487AC_CHECK_FUNCS([strlcpy openat fstatat fpathconf execvp]) 500AC_CHECK_FUNCS([strlcpy openat fstatat fpathconf execvp backtrace backtrace_symbols])
488 501
489AC_MSG_CHECKING([for dirfd]) 502AC_MSG_CHECKING([for dirfd])
490AC_LINK_IFELSE( 503AC_LINK_IFELSE(
@@ -785,7 +798,7 @@ if test -n "$CXX" && test "x$enable_benchmark" = "xyes" ; then
785fi 798fi
786AM_CONDITIONAL([CITYHASH_BENCH], [test -n "$CXX" && test "x$enable_benchmark" = "xyes"]) 799AM_CONDITIONAL([CITYHASH_BENCH], [test -n "$CXX" && test "x$enable_benchmark" = "xyes"])
787 800
788AC_SUBST(requirement_eina) 801AC_SUBST([requirement_eina])
789 802
790### Build and install examples 803### Build and install examples
791EFL_CHECK_BUILD_EXAMPLES([enable_build_examples="yes"], [enable_build_examples="no"]) 804EFL_CHECK_BUILD_EXAMPLES([enable_build_examples="yes"], [enable_build_examples="no"])
diff --git a/libraries/eina/doc/Makefile.am b/libraries/eina/doc/Makefile.am
index 7856c13..33a2c9b 100644
--- a/libraries/eina/doc/Makefile.am
+++ b/libraries/eina/doc/Makefile.am
@@ -20,7 +20,8 @@ doc: all
20 bzip2 -9 $(PACKAGE_DOCNAME).tar 20 bzip2 -9 $(PACKAGE_DOCNAME).tar
21 rm -rf $(PACKAGE_DOCNAME)/ 21 rm -rf $(PACKAGE_DOCNAME)/
22 mv $(PACKAGE_DOCNAME).tar.bz2 $(top_builddir) 22 mv $(PACKAGE_DOCNAME).tar.bz2 $(top_builddir)
23 @echo "Documentation Package: $(top_builddir)/$(PACKAGE_DOCNAME).tar.bz2" 23 @echo "Documentation Package: doc/$(PACKAGE_DOCNAME).tar.bz2"
24 @echo "Documentation HTML: doc/html"
24 25
25clean-local: doc-clean 26clean-local: doc-clean
26 27
diff --git a/libraries/eina/doc/Makefile.in b/libraries/eina/doc/Makefile.in
index 7331cf1..d2de754 100644
--- a/libraries/eina/doc/Makefile.in
+++ b/libraries/eina/doc/Makefile.in
@@ -37,20 +37,24 @@ subdir = doc
37DIST_COMMON = $(srcdir)/Doxyfile.in $(srcdir)/Makefile.am \ 37DIST_COMMON = $(srcdir)/Doxyfile.in $(srcdir)/Makefile.am \
38 $(srcdir)/Makefile.in 38 $(srcdir)/Makefile.in
39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 40am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \
41 $(top_srcdir)/m4/efl_benchmark.m4 \ 41 $(top_srcdir)/m4/eina/eina_check.m4 \
42 $(top_srcdir)/m4/efl_compiler_flag.m4 \ 42 $(top_srcdir)/m4/common/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 $(top_srcdir)/m4/efl_cpu.m4 \ 43 $(top_srcdir)/m4/common/efl_benchmark.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \ 44 $(top_srcdir)/m4/common/efl_compiler_flag.m4 \
45 $(top_srcdir)/m4/efl_examples.m4 \ 45 $(top_srcdir)/m4/common/efl_coverage.m4 \
46 $(top_srcdir)/m4/efl_fnmatch.m4 \ 46 $(top_srcdir)/m4/common/efl_cpu.m4 \
47 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 47 $(top_srcdir)/m4/common/efl_doxygen.m4 \
48 $(top_srcdir)/m4/efl_threads.m4 \ 48 $(top_srcdir)/m4/common/efl_examples.m4 \
49 $(top_srcdir)/m4/efl_voltron.m4 $(top_srcdir)/m4/eina_bench.m4 \ 49 $(top_srcdir)/m4/common/efl_fnmatch.m4 \
50 $(top_srcdir)/m4/eina_check.m4 $(top_srcdir)/m4/libtool.m4 \ 50 $(top_srcdir)/m4/common/efl_path_max.m4 \
51 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 51 $(top_srcdir)/m4/common/efl_tests.m4 \
52 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 52 $(top_srcdir)/m4/common/efl_threads.m4 \
53 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac 53 $(top_srcdir)/m4/common/efl_voltron.m4 \
54 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
55 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
56 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
57 $(top_srcdir)/configure.ac
54am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 58am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
55 $(ACLOCAL_M4) 59 $(ACLOCAL_M4)
56mkinstalldirs = $(install_sh) -d 60mkinstalldirs = $(install_sh) -d
@@ -111,13 +115,13 @@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
111EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ 115EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
112EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 116EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
113EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ 117EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
118EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@
114EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 119EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
115EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 120EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
116EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 121EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
117EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ 122EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@
118EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ 123EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@
119EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ 124EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@
120EINA_CPPFLAGS = @EINA_CPPFLAGS@
121EINA_LIBS = @EINA_LIBS@ 125EINA_LIBS = @EINA_LIBS@
122EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ 126EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@
123EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ 127EMEMOA_CFLAGS = @EMEMOA_CFLAGS@
@@ -127,6 +131,8 @@ ESCAPE_LIBS = @ESCAPE_LIBS@
127EVIL_CFLAGS = @EVIL_CFLAGS@ 131EVIL_CFLAGS = @EVIL_CFLAGS@
128EVIL_LIBS = @EVIL_LIBS@ 132EVIL_LIBS = @EVIL_LIBS@
129EXEEXT = @EXEEXT@ 133EXEEXT = @EXEEXT@
134EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
135EXOTIC_LIBS = @EXOTIC_LIBS@
130FGREP = @FGREP@ 136FGREP = @FGREP@
131GLIB_CFLAGS = @GLIB_CFLAGS@ 137GLIB_CFLAGS = @GLIB_CFLAGS@
132GLIB_LIBS = @GLIB_LIBS@ 138GLIB_LIBS = @GLIB_LIBS@
@@ -162,6 +168,8 @@ PACKAGE_URL = @PACKAGE_URL@
162PACKAGE_VERSION = @PACKAGE_VERSION@ 168PACKAGE_VERSION = @PACKAGE_VERSION@
163PATH_SEPARATOR = @PATH_SEPARATOR@ 169PATH_SEPARATOR = @PATH_SEPARATOR@
164PKG_CONFIG = @PKG_CONFIG@ 170PKG_CONFIG = @PKG_CONFIG@
171PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
172PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
165RANLIB = @RANLIB@ 173RANLIB = @RANLIB@
166SED = @SED@ 174SED = @SED@
167SET_MAKE = @SET_MAKE@ 175SET_MAKE = @SET_MAKE@
@@ -449,7 +457,8 @@ uninstall-am:
449@EFL_BUILD_DOC_TRUE@ bzip2 -9 $(PACKAGE_DOCNAME).tar 457@EFL_BUILD_DOC_TRUE@ bzip2 -9 $(PACKAGE_DOCNAME).tar
450@EFL_BUILD_DOC_TRUE@ rm -rf $(PACKAGE_DOCNAME)/ 458@EFL_BUILD_DOC_TRUE@ rm -rf $(PACKAGE_DOCNAME)/
451@EFL_BUILD_DOC_TRUE@ mv $(PACKAGE_DOCNAME).tar.bz2 $(top_builddir) 459@EFL_BUILD_DOC_TRUE@ mv $(PACKAGE_DOCNAME).tar.bz2 $(top_builddir)
452@EFL_BUILD_DOC_TRUE@ @echo "Documentation Package: $(top_builddir)/$(PACKAGE_DOCNAME).tar.bz2" 460@EFL_BUILD_DOC_TRUE@ @echo "Documentation Package: doc/$(PACKAGE_DOCNAME).tar.bz2"
461@EFL_BUILD_DOC_TRUE@ @echo "Documentation HTML: doc/html"
453 462
454@EFL_BUILD_DOC_TRUE@clean-local: doc-clean 463@EFL_BUILD_DOC_TRUE@clean-local: doc-clean
455 464
diff --git a/libraries/eina/eina.pc b/libraries/eina/eina.pc
index 0ca596f..68f77e4 100644
--- a/libraries/eina/eina.pc
+++ b/libraries/eina/eina.pc
@@ -1,4 +1,4 @@
1prefix=/opt/e17 1prefix=/usr/local
2exec_prefix=${prefix} 2exec_prefix=${prefix}
3libdir=${exec_prefix}/lib 3libdir=${exec_prefix}/lib
4includedir=${prefix}/include 4includedir=${prefix}/include
@@ -6,7 +6,7 @@ includedir=${prefix}/include
6Name: Eina 6Name: Eina
7Description: A Library that implements fast data types and miscellaneous tools 7Description: A Library that implements fast data types and miscellaneous tools
8Requires.private: valgrind 8Requires.private: valgrind
9Version: 1.1.99.67344 9Version: 1.2.0-alpha
10Libs: -L${libdir} -leina -pthread 10Libs: -L${libdir} -leina -pthread
11Libs.private: -pthread -lrt -ldl -lrt -lm 11Libs.private: -pthread -lrt -lrt -ldl -lm
12Cflags: -I${includedir}/eina-1 -I${includedir}/eina-1/eina 12Cflags: -I${includedir}/eina-1 -I${includedir}/eina-1/eina
diff --git a/libraries/eina/eina.spec b/libraries/eina/eina.spec
index 0ad6732..fc564c6 100644
--- a/libraries/eina/eina.spec
+++ b/libraries/eina/eina.spec
@@ -3,7 +3,7 @@
3 3
4Summary: Data Type Library 4Summary: Data Type Library
5Name: eina 5Name: eina
6Version: 1.1.99.67344 6Version: 1.2.0-alpha
7Release: %{_rel} 7Release: %{_rel}
8License: LGPLv2.1 8License: LGPLv2.1
9Group: System Environment/Libraries 9Group: System Environment/Libraries
diff --git a/libraries/eina/ltmain.sh b/libraries/eina/ltmain.sh
index 7ed280b..fa4b1e1 100755
--- a/libraries/eina/ltmain.sh
+++ b/libraries/eina/ltmain.sh
@@ -65,7 +65,7 @@
65# compiler: $LTCC 65# compiler: $LTCC
66# compiler flags: $LTCFLAGS 66# compiler flags: $LTCFLAGS
67# linker: $LD (gnu? $with_gnu_ld) 67# linker: $LD (gnu? $with_gnu_ld)
68# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1 68# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu3
69# automake: $automake_version 69# automake: $automake_version
70# autoconf: $autoconf_version 70# autoconf: $autoconf_version
71# 71#
@@ -73,7 +73,7 @@
73 73
74PROGRAM=ltmain.sh 74PROGRAM=ltmain.sh
75PACKAGE=libtool 75PACKAGE=libtool
76VERSION="2.2.6b Debian-2.2.6b-2ubuntu1" 76VERSION="2.2.6b Debian-2.2.6b-2ubuntu3"
77TIMESTAMP="" 77TIMESTAMP=""
78package_revision=1.3017 78package_revision=1.3017
79 79
diff --git a/libraries/eina/src/Makefile.in b/libraries/eina/src/Makefile.in
index eb3a2c0..9076215 100644
--- a/libraries/eina/src/Makefile.in
+++ b/libraries/eina/src/Makefile.in
@@ -36,20 +36,24 @@ host_triplet = @host@
36subdir = src 36subdir = src
37DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 37DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
38ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 38ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
39am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 39am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \
40 $(top_srcdir)/m4/efl_benchmark.m4 \ 40 $(top_srcdir)/m4/eina/eina_check.m4 \
41 $(top_srcdir)/m4/efl_compiler_flag.m4 \ 41 $(top_srcdir)/m4/common/efl_attribute.m4 \
42 $(top_srcdir)/m4/efl_coverage.m4 $(top_srcdir)/m4/efl_cpu.m4 \ 42 $(top_srcdir)/m4/common/efl_benchmark.m4 \
43 $(top_srcdir)/m4/efl_doxygen.m4 \ 43 $(top_srcdir)/m4/common/efl_compiler_flag.m4 \
44 $(top_srcdir)/m4/efl_examples.m4 \ 44 $(top_srcdir)/m4/common/efl_coverage.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \ 45 $(top_srcdir)/m4/common/efl_cpu.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 46 $(top_srcdir)/m4/common/efl_doxygen.m4 \
47 $(top_srcdir)/m4/efl_threads.m4 \ 47 $(top_srcdir)/m4/common/efl_examples.m4 \
48 $(top_srcdir)/m4/efl_voltron.m4 $(top_srcdir)/m4/eina_bench.m4 \ 48 $(top_srcdir)/m4/common/efl_fnmatch.m4 \
49 $(top_srcdir)/m4/eina_check.m4 $(top_srcdir)/m4/libtool.m4 \ 49 $(top_srcdir)/m4/common/efl_path_max.m4 \
50 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 50 $(top_srcdir)/m4/common/efl_tests.m4 \
51 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 51 $(top_srcdir)/m4/common/efl_threads.m4 \
52 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac 52 $(top_srcdir)/m4/common/efl_voltron.m4 \
53 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
54 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
55 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
56 $(top_srcdir)/configure.ac
53am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 57am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
54 $(ACLOCAL_M4) 58 $(ACLOCAL_M4)
55mkinstalldirs = $(install_sh) -d 59mkinstalldirs = $(install_sh) -d
@@ -150,13 +154,13 @@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
150EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ 154EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
151EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 155EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
152EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ 156EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
157EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@
153EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 158EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
154EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 159EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
155EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 160EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
156EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ 161EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@
157EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ 162EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@
158EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ 163EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@
159EINA_CPPFLAGS = @EINA_CPPFLAGS@
160EINA_LIBS = @EINA_LIBS@ 164EINA_LIBS = @EINA_LIBS@
161EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ 165EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@
162EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ 166EMEMOA_CFLAGS = @EMEMOA_CFLAGS@
@@ -166,6 +170,8 @@ ESCAPE_LIBS = @ESCAPE_LIBS@
166EVIL_CFLAGS = @EVIL_CFLAGS@ 170EVIL_CFLAGS = @EVIL_CFLAGS@
167EVIL_LIBS = @EVIL_LIBS@ 171EVIL_LIBS = @EVIL_LIBS@
168EXEEXT = @EXEEXT@ 172EXEEXT = @EXEEXT@
173EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
174EXOTIC_LIBS = @EXOTIC_LIBS@
169FGREP = @FGREP@ 175FGREP = @FGREP@
170GLIB_CFLAGS = @GLIB_CFLAGS@ 176GLIB_CFLAGS = @GLIB_CFLAGS@
171GLIB_LIBS = @GLIB_LIBS@ 177GLIB_LIBS = @GLIB_LIBS@
@@ -201,6 +207,8 @@ PACKAGE_URL = @PACKAGE_URL@
201PACKAGE_VERSION = @PACKAGE_VERSION@ 207PACKAGE_VERSION = @PACKAGE_VERSION@
202PATH_SEPARATOR = @PATH_SEPARATOR@ 208PATH_SEPARATOR = @PATH_SEPARATOR@
203PKG_CONFIG = @PKG_CONFIG@ 209PKG_CONFIG = @PKG_CONFIG@
210PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
211PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
204RANLIB = @RANLIB@ 212RANLIB = @RANLIB@
205SED = @SED@ 213SED = @SED@
206SET_MAKE = @SET_MAKE@ 214SET_MAKE = @SET_MAKE@
diff --git a/libraries/eina/src/examples/Makefile.am b/libraries/eina/src/examples/Makefile.am
index 45b72f0..c8d80f9 100644
--- a/libraries/eina/src/examples/Makefile.am
+++ b/libraries/eina/src/examples/Makefile.am
@@ -37,7 +37,14 @@ SRCS = \
37 eina_inlist_03.c \ 37 eina_inlist_03.c \
38 eina_str_01.c \ 38 eina_str_01.c \
39 eina_strbuf_01.c \ 39 eina_strbuf_01.c \
40 eina_tiler_01.c 40 eina_tiler_01.c \
41 eina_model_01.c \
42 eina_model_02.c \
43 eina_model_03.c \
44 eina_value_01.c \
45 eina_value_02.c \
46 eina_value_03.c \
47 eina_inarray_01.c
41 48
42examples_PROGRAMS = 49examples_PROGRAMS =
43 50
@@ -73,7 +80,24 @@ examples_PROGRAMS += \
73 eina_inlist_02 \ 80 eina_inlist_02 \
74 eina_inlist_03 \ 81 eina_inlist_03 \
75 eina_str_01 \ 82 eina_str_01 \
76 eina_strbuf_01 83 eina_strbuf_01 \
84 eina_model_01 \
85 eina_model_02 \
86 eina_model_03 \
87 eina_model_04 \
88 eina_value_01 \
89 eina_value_02 \
90 eina_value_03 \
91 eina_inarray_01
92
93eina_model_04_SOURCES = \
94 eina_model_04_animal.c \
95 eina_model_04_child.c \
96 eina_model_04_human.c \
97 eina_model_04_main.c \
98 eina_model_04_parrot.c \
99 eina_model_04_whistler.c
100
77 101
78if BUILD_TILER_EXAMPLE 102if BUILD_TILER_EXAMPLE
79AM_CPPFLAGS += @ECORE_EVAS_CFLAGS@ 103AM_CPPFLAGS += @ECORE_EVAS_CFLAGS@
diff --git a/libraries/eina/src/examples/Makefile.in b/libraries/eina/src/examples/Makefile.in
index 6e432bb..fba8439 100644
--- a/libraries/eina/src/examples/Makefile.in
+++ b/libraries/eina/src/examples/Makefile.in
@@ -62,27 +62,39 @@ examples_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2)
62@EFL_BUILD_EXAMPLES_TRUE@ eina_inlist_02 \ 62@EFL_BUILD_EXAMPLES_TRUE@ eina_inlist_02 \
63@EFL_BUILD_EXAMPLES_TRUE@ eina_inlist_03 \ 63@EFL_BUILD_EXAMPLES_TRUE@ eina_inlist_03 \
64@EFL_BUILD_EXAMPLES_TRUE@ eina_str_01 \ 64@EFL_BUILD_EXAMPLES_TRUE@ eina_str_01 \
65@EFL_BUILD_EXAMPLES_TRUE@ eina_strbuf_01 65@EFL_BUILD_EXAMPLES_TRUE@ eina_strbuf_01 \
66@EFL_BUILD_EXAMPLES_TRUE@ eina_model_01 \
67@EFL_BUILD_EXAMPLES_TRUE@ eina_model_02 \
68@EFL_BUILD_EXAMPLES_TRUE@ eina_model_03 \
69@EFL_BUILD_EXAMPLES_TRUE@ eina_model_04 \
70@EFL_BUILD_EXAMPLES_TRUE@ eina_value_01 \
71@EFL_BUILD_EXAMPLES_TRUE@ eina_value_02 \
72@EFL_BUILD_EXAMPLES_TRUE@ eina_value_03 \
73@EFL_BUILD_EXAMPLES_TRUE@ eina_inarray_01
66 74
67@BUILD_TILER_EXAMPLE_TRUE@@EFL_BUILD_EXAMPLES_TRUE@am__append_2 = @ECORE_EVAS_CFLAGS@ 75@BUILD_TILER_EXAMPLE_TRUE@@EFL_BUILD_EXAMPLES_TRUE@am__append_2 = @ECORE_EVAS_CFLAGS@
68@BUILD_TILER_EXAMPLE_TRUE@@EFL_BUILD_EXAMPLES_TRUE@am__append_3 = eina_tiler_01 76@BUILD_TILER_EXAMPLE_TRUE@@EFL_BUILD_EXAMPLES_TRUE@am__append_3 = eina_tiler_01
69subdir = src/examples 77subdir = src/examples
70DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 78DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
71ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 79ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
72am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 80am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \
73 $(top_srcdir)/m4/efl_benchmark.m4 \ 81 $(top_srcdir)/m4/eina/eina_check.m4 \
74 $(top_srcdir)/m4/efl_compiler_flag.m4 \ 82 $(top_srcdir)/m4/common/efl_attribute.m4 \
75 $(top_srcdir)/m4/efl_coverage.m4 $(top_srcdir)/m4/efl_cpu.m4 \ 83 $(top_srcdir)/m4/common/efl_benchmark.m4 \
76 $(top_srcdir)/m4/efl_doxygen.m4 \ 84 $(top_srcdir)/m4/common/efl_compiler_flag.m4 \
77 $(top_srcdir)/m4/efl_examples.m4 \ 85 $(top_srcdir)/m4/common/efl_coverage.m4 \
78 $(top_srcdir)/m4/efl_fnmatch.m4 \ 86 $(top_srcdir)/m4/common/efl_cpu.m4 \
79 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 87 $(top_srcdir)/m4/common/efl_doxygen.m4 \
80 $(top_srcdir)/m4/efl_threads.m4 \ 88 $(top_srcdir)/m4/common/efl_examples.m4 \
81 $(top_srcdir)/m4/efl_voltron.m4 $(top_srcdir)/m4/eina_bench.m4 \ 89 $(top_srcdir)/m4/common/efl_fnmatch.m4 \
82 $(top_srcdir)/m4/eina_check.m4 $(top_srcdir)/m4/libtool.m4 \ 90 $(top_srcdir)/m4/common/efl_path_max.m4 \
83 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 91 $(top_srcdir)/m4/common/efl_tests.m4 \
84 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 92 $(top_srcdir)/m4/common/efl_threads.m4 \
85 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac 93 $(top_srcdir)/m4/common/efl_voltron.m4 \
94 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
95 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
96 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
97 $(top_srcdir)/configure.ac
86am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 98am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
87 $(ACLOCAL_M4) 99 $(ACLOCAL_M4)
88mkinstalldirs = $(install_sh) -d 100mkinstalldirs = $(install_sh) -d
@@ -114,7 +126,15 @@ CONFIG_CLEAN_VPATH_FILES =
114@EFL_BUILD_EXAMPLES_TRUE@ eina_inlist_02$(EXEEXT) \ 126@EFL_BUILD_EXAMPLES_TRUE@ eina_inlist_02$(EXEEXT) \
115@EFL_BUILD_EXAMPLES_TRUE@ eina_inlist_03$(EXEEXT) \ 127@EFL_BUILD_EXAMPLES_TRUE@ eina_inlist_03$(EXEEXT) \
116@EFL_BUILD_EXAMPLES_TRUE@ eina_str_01$(EXEEXT) \ 128@EFL_BUILD_EXAMPLES_TRUE@ eina_str_01$(EXEEXT) \
117@EFL_BUILD_EXAMPLES_TRUE@ eina_strbuf_01$(EXEEXT) 129@EFL_BUILD_EXAMPLES_TRUE@ eina_strbuf_01$(EXEEXT) \
130@EFL_BUILD_EXAMPLES_TRUE@ eina_model_01$(EXEEXT) \
131@EFL_BUILD_EXAMPLES_TRUE@ eina_model_02$(EXEEXT) \
132@EFL_BUILD_EXAMPLES_TRUE@ eina_model_03$(EXEEXT) \
133@EFL_BUILD_EXAMPLES_TRUE@ eina_model_04$(EXEEXT) \
134@EFL_BUILD_EXAMPLES_TRUE@ eina_value_01$(EXEEXT) \
135@EFL_BUILD_EXAMPLES_TRUE@ eina_value_02$(EXEEXT) \
136@EFL_BUILD_EXAMPLES_TRUE@ eina_value_03$(EXEEXT) \
137@EFL_BUILD_EXAMPLES_TRUE@ eina_inarray_01$(EXEEXT)
118@BUILD_TILER_EXAMPLE_TRUE@@EFL_BUILD_EXAMPLES_TRUE@am__EXEEXT_2 = eina_tiler_01$(EXEEXT) 138@BUILD_TILER_EXAMPLE_TRUE@@EFL_BUILD_EXAMPLES_TRUE@am__EXEEXT_2 = eina_tiler_01$(EXEEXT)
119am__installdirs = "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)" 139am__installdirs = "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)"
120PROGRAMS = $(examples_PROGRAMS) 140PROGRAMS = $(examples_PROGRAMS)
@@ -173,6 +193,10 @@ eina_hash_08_SOURCES = eina_hash_08.c
173eina_hash_08_OBJECTS = eina_hash_08.$(OBJEXT) 193eina_hash_08_OBJECTS = eina_hash_08.$(OBJEXT)
174eina_hash_08_LDADD = $(LDADD) 194eina_hash_08_LDADD = $(LDADD)
175eina_hash_08_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la 195eina_hash_08_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la
196eina_inarray_01_SOURCES = eina_inarray_01.c
197eina_inarray_01_OBJECTS = eina_inarray_01.$(OBJEXT)
198eina_inarray_01_LDADD = $(LDADD)
199eina_inarray_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la
176eina_inlist_01_SOURCES = eina_inlist_01.c 200eina_inlist_01_SOURCES = eina_inlist_01.c
177eina_inlist_01_OBJECTS = eina_inlist_01.$(OBJEXT) 201eina_inlist_01_OBJECTS = eina_inlist_01.$(OBJEXT)
178eina_inlist_01_LDADD = $(LDADD) 202eina_inlist_01_LDADD = $(LDADD)
@@ -217,6 +241,32 @@ eina_log_03_SOURCES = eina_log_03.c
217eina_log_03_OBJECTS = eina_log_03.$(OBJEXT) 241eina_log_03_OBJECTS = eina_log_03.$(OBJEXT)
218eina_log_03_LDADD = $(LDADD) 242eina_log_03_LDADD = $(LDADD)
219eina_log_03_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la 243eina_log_03_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la
244eina_model_01_SOURCES = eina_model_01.c
245eina_model_01_OBJECTS = eina_model_01.$(OBJEXT)
246eina_model_01_LDADD = $(LDADD)
247eina_model_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la
248eina_model_02_SOURCES = eina_model_02.c
249eina_model_02_OBJECTS = eina_model_02.$(OBJEXT)
250eina_model_02_LDADD = $(LDADD)
251eina_model_02_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la
252eina_model_03_SOURCES = eina_model_03.c
253eina_model_03_OBJECTS = eina_model_03.$(OBJEXT)
254eina_model_03_LDADD = $(LDADD)
255eina_model_03_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la
256am__eina_model_04_SOURCES_DIST = eina_model_04_animal.c \
257 eina_model_04_child.c eina_model_04_human.c \
258 eina_model_04_main.c eina_model_04_parrot.c \
259 eina_model_04_whistler.c
260@EFL_BUILD_EXAMPLES_TRUE@am_eina_model_04_OBJECTS = \
261@EFL_BUILD_EXAMPLES_TRUE@ eina_model_04_animal.$(OBJEXT) \
262@EFL_BUILD_EXAMPLES_TRUE@ eina_model_04_child.$(OBJEXT) \
263@EFL_BUILD_EXAMPLES_TRUE@ eina_model_04_human.$(OBJEXT) \
264@EFL_BUILD_EXAMPLES_TRUE@ eina_model_04_main.$(OBJEXT) \
265@EFL_BUILD_EXAMPLES_TRUE@ eina_model_04_parrot.$(OBJEXT) \
266@EFL_BUILD_EXAMPLES_TRUE@ eina_model_04_whistler.$(OBJEXT)
267eina_model_04_OBJECTS = $(am_eina_model_04_OBJECTS)
268eina_model_04_LDADD = $(LDADD)
269eina_model_04_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la
220eina_str_01_SOURCES = eina_str_01.c 270eina_str_01_SOURCES = eina_str_01.c
221eina_str_01_OBJECTS = eina_str_01.$(OBJEXT) 271eina_str_01_OBJECTS = eina_str_01.$(OBJEXT)
222eina_str_01_LDADD = $(LDADD) 272eina_str_01_LDADD = $(LDADD)
@@ -228,6 +278,18 @@ eina_strbuf_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la
228eina_tiler_01_SOURCES = eina_tiler_01.c 278eina_tiler_01_SOURCES = eina_tiler_01.c
229eina_tiler_01_OBJECTS = eina_tiler_01.$(OBJEXT) 279eina_tiler_01_OBJECTS = eina_tiler_01.$(OBJEXT)
230@BUILD_TILER_EXAMPLE_TRUE@@EFL_BUILD_EXAMPLES_TRUE@eina_tiler_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la 280@BUILD_TILER_EXAMPLE_TRUE@@EFL_BUILD_EXAMPLES_TRUE@eina_tiler_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la
281eina_value_01_SOURCES = eina_value_01.c
282eina_value_01_OBJECTS = eina_value_01.$(OBJEXT)
283eina_value_01_LDADD = $(LDADD)
284eina_value_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la
285eina_value_02_SOURCES = eina_value_02.c
286eina_value_02_OBJECTS = eina_value_02.$(OBJEXT)
287eina_value_02_LDADD = $(LDADD)
288eina_value_02_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la
289eina_value_03_SOURCES = eina_value_03.c
290eina_value_03_OBJECTS = eina_value_03.$(OBJEXT)
291eina_value_03_LDADD = $(LDADD)
292eina_value_03_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la
231DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) 293DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
232depcomp = $(SHELL) $(top_srcdir)/depcomp 294depcomp = $(SHELL) $(top_srcdir)/depcomp
233am__depfiles_maybe = depfiles 295am__depfiles_maybe = depfiles
@@ -257,19 +319,25 @@ am__v_GEN_0 = @echo " GEN " $@;
257SOURCES = eina_accessor_01.c eina_array_01.c eina_array_02.c \ 319SOURCES = eina_accessor_01.c eina_array_01.c eina_array_02.c \
258 eina_error_01.c eina_file_01.c eina_hash_01.c eina_hash_02.c \ 320 eina_error_01.c eina_file_01.c eina_hash_01.c eina_hash_02.c \
259 eina_hash_03.c eina_hash_04.c eina_hash_05.c eina_hash_06.c \ 321 eina_hash_03.c eina_hash_04.c eina_hash_05.c eina_hash_06.c \
260 eina_hash_07.c eina_hash_08.c eina_inlist_01.c \ 322 eina_hash_07.c eina_hash_08.c eina_inarray_01.c \
261 eina_inlist_02.c eina_inlist_03.c eina_iterator_01.c \ 323 eina_inlist_01.c eina_inlist_02.c eina_inlist_03.c \
262 eina_list_01.c eina_list_02.c eina_list_03.c eina_list_04.c \ 324 eina_iterator_01.c eina_list_01.c eina_list_02.c \
263 eina_log_01.c eina_log_02.c eina_log_03.c eina_str_01.c \ 325 eina_list_03.c eina_list_04.c eina_log_01.c eina_log_02.c \
264 eina_strbuf_01.c eina_tiler_01.c 326 eina_log_03.c eina_model_01.c eina_model_02.c eina_model_03.c \
327 $(eina_model_04_SOURCES) eina_str_01.c eina_strbuf_01.c \
328 eina_tiler_01.c eina_value_01.c eina_value_02.c \
329 eina_value_03.c
265DIST_SOURCES = eina_accessor_01.c eina_array_01.c eina_array_02.c \ 330DIST_SOURCES = eina_accessor_01.c eina_array_01.c eina_array_02.c \
266 eina_error_01.c eina_file_01.c eina_hash_01.c eina_hash_02.c \ 331 eina_error_01.c eina_file_01.c eina_hash_01.c eina_hash_02.c \
267 eina_hash_03.c eina_hash_04.c eina_hash_05.c eina_hash_06.c \ 332 eina_hash_03.c eina_hash_04.c eina_hash_05.c eina_hash_06.c \
268 eina_hash_07.c eina_hash_08.c eina_inlist_01.c \ 333 eina_hash_07.c eina_hash_08.c eina_inarray_01.c \
269 eina_inlist_02.c eina_inlist_03.c eina_iterator_01.c \ 334 eina_inlist_01.c eina_inlist_02.c eina_inlist_03.c \
270 eina_list_01.c eina_list_02.c eina_list_03.c eina_list_04.c \ 335 eina_iterator_01.c eina_list_01.c eina_list_02.c \
271 eina_log_01.c eina_log_02.c eina_log_03.c eina_str_01.c \ 336 eina_list_03.c eina_list_04.c eina_log_01.c eina_log_02.c \
272 eina_strbuf_01.c eina_tiler_01.c 337 eina_log_03.c eina_model_01.c eina_model_02.c eina_model_03.c \
338 $(am__eina_model_04_SOURCES_DIST) eina_str_01.c \
339 eina_strbuf_01.c eina_tiler_01.c eina_value_01.c \
340 eina_value_02.c eina_value_03.c
273am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; 341am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
274am__vpath_adj = case $$p in \ 342am__vpath_adj = case $$p in \
275 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ 343 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -340,13 +408,13 @@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
340EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ 408EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
341EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 409EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
342EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ 410EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
411EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@
343EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 412EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
344EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 413EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
345EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 414EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
346EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ 415EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@
347EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ 416EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@
348EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ 417EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@
349EINA_CPPFLAGS = @EINA_CPPFLAGS@
350EINA_LIBS = @EINA_LIBS@ 418EINA_LIBS = @EINA_LIBS@
351EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ 419EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@
352EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ 420EMEMOA_CFLAGS = @EMEMOA_CFLAGS@
@@ -356,6 +424,8 @@ ESCAPE_LIBS = @ESCAPE_LIBS@
356EVIL_CFLAGS = @EVIL_CFLAGS@ 424EVIL_CFLAGS = @EVIL_CFLAGS@
357EVIL_LIBS = @EVIL_LIBS@ 425EVIL_LIBS = @EVIL_LIBS@
358EXEEXT = @EXEEXT@ 426EXEEXT = @EXEEXT@
427EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
428EXOTIC_LIBS = @EXOTIC_LIBS@
359FGREP = @FGREP@ 429FGREP = @FGREP@
360GLIB_CFLAGS = @GLIB_CFLAGS@ 430GLIB_CFLAGS = @GLIB_CFLAGS@
361GLIB_LIBS = @GLIB_LIBS@ 431GLIB_LIBS = @GLIB_LIBS@
@@ -391,6 +461,8 @@ PACKAGE_URL = @PACKAGE_URL@
391PACKAGE_VERSION = @PACKAGE_VERSION@ 461PACKAGE_VERSION = @PACKAGE_VERSION@
392PATH_SEPARATOR = @PATH_SEPARATOR@ 462PATH_SEPARATOR = @PATH_SEPARATOR@
393PKG_CONFIG = @PKG_CONFIG@ 463PKG_CONFIG = @PKG_CONFIG@
464PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
465PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
394RANLIB = @RANLIB@ 466RANLIB = @RANLIB@
395SED = @SED@ 467SED = @SED@
396SET_MAKE = @SET_MAKE@ 468SET_MAKE = @SET_MAKE@
@@ -498,10 +570,25 @@ SRCS = \
498 eina_inlist_03.c \ 570 eina_inlist_03.c \
499 eina_str_01.c \ 571 eina_str_01.c \
500 eina_strbuf_01.c \ 572 eina_strbuf_01.c \
501 eina_tiler_01.c 573 eina_tiler_01.c \
574 eina_model_01.c \
575 eina_model_02.c \
576 eina_model_03.c \
577 eina_value_01.c \
578 eina_value_02.c \
579 eina_value_03.c \
580 eina_inarray_01.c
502 581
503@EFL_INSTALL_EXAMPLES_TRUE@filesdir = $(datadir)/$(PACKAGE)/examples 582@EFL_INSTALL_EXAMPLES_TRUE@filesdir = $(datadir)/$(PACKAGE)/examples
504@EFL_INSTALL_EXAMPLES_TRUE@files_DATA = $(SRCS) 583@EFL_INSTALL_EXAMPLES_TRUE@files_DATA = $(SRCS)
584@EFL_BUILD_EXAMPLES_TRUE@eina_model_04_SOURCES = \
585@EFL_BUILD_EXAMPLES_TRUE@ eina_model_04_animal.c \
586@EFL_BUILD_EXAMPLES_TRUE@ eina_model_04_child.c \
587@EFL_BUILD_EXAMPLES_TRUE@ eina_model_04_human.c \
588@EFL_BUILD_EXAMPLES_TRUE@ eina_model_04_main.c \
589@EFL_BUILD_EXAMPLES_TRUE@ eina_model_04_parrot.c \
590@EFL_BUILD_EXAMPLES_TRUE@ eina_model_04_whistler.c
591
505@BUILD_TILER_EXAMPLE_TRUE@@EFL_BUILD_EXAMPLES_TRUE@eina_tiler_01_LDADD = $(top_builddir)/src/lib/libeina.la @ECORE_EVAS_LIBS@ 592@BUILD_TILER_EXAMPLE_TRUE@@EFL_BUILD_EXAMPLES_TRUE@eina_tiler_01_LDADD = $(top_builddir)/src/lib/libeina.la @ECORE_EVAS_LIBS@
506all: all-am 593all: all-am
507 594
@@ -619,6 +706,9 @@ eina_hash_07$(EXEEXT): $(eina_hash_07_OBJECTS) $(eina_hash_07_DEPENDENCIES)
619eina_hash_08$(EXEEXT): $(eina_hash_08_OBJECTS) $(eina_hash_08_DEPENDENCIES) 706eina_hash_08$(EXEEXT): $(eina_hash_08_OBJECTS) $(eina_hash_08_DEPENDENCIES)
620 @rm -f eina_hash_08$(EXEEXT) 707 @rm -f eina_hash_08$(EXEEXT)
621 $(AM_V_CCLD)$(LINK) $(eina_hash_08_OBJECTS) $(eina_hash_08_LDADD) $(LIBS) 708 $(AM_V_CCLD)$(LINK) $(eina_hash_08_OBJECTS) $(eina_hash_08_LDADD) $(LIBS)
709eina_inarray_01$(EXEEXT): $(eina_inarray_01_OBJECTS) $(eina_inarray_01_DEPENDENCIES)
710 @rm -f eina_inarray_01$(EXEEXT)
711 $(AM_V_CCLD)$(LINK) $(eina_inarray_01_OBJECTS) $(eina_inarray_01_LDADD) $(LIBS)
622eina_inlist_01$(EXEEXT): $(eina_inlist_01_OBJECTS) $(eina_inlist_01_DEPENDENCIES) 712eina_inlist_01$(EXEEXT): $(eina_inlist_01_OBJECTS) $(eina_inlist_01_DEPENDENCIES)
623 @rm -f eina_inlist_01$(EXEEXT) 713 @rm -f eina_inlist_01$(EXEEXT)
624 $(AM_V_CCLD)$(LINK) $(eina_inlist_01_OBJECTS) $(eina_inlist_01_LDADD) $(LIBS) 714 $(AM_V_CCLD)$(LINK) $(eina_inlist_01_OBJECTS) $(eina_inlist_01_LDADD) $(LIBS)
@@ -652,6 +742,18 @@ eina_log_02$(EXEEXT): $(eina_log_02_OBJECTS) $(eina_log_02_DEPENDENCIES)
652eina_log_03$(EXEEXT): $(eina_log_03_OBJECTS) $(eina_log_03_DEPENDENCIES) 742eina_log_03$(EXEEXT): $(eina_log_03_OBJECTS) $(eina_log_03_DEPENDENCIES)
653 @rm -f eina_log_03$(EXEEXT) 743 @rm -f eina_log_03$(EXEEXT)
654 $(AM_V_CCLD)$(LINK) $(eina_log_03_OBJECTS) $(eina_log_03_LDADD) $(LIBS) 744 $(AM_V_CCLD)$(LINK) $(eina_log_03_OBJECTS) $(eina_log_03_LDADD) $(LIBS)
745eina_model_01$(EXEEXT): $(eina_model_01_OBJECTS) $(eina_model_01_DEPENDENCIES)
746 @rm -f eina_model_01$(EXEEXT)
747 $(AM_V_CCLD)$(LINK) $(eina_model_01_OBJECTS) $(eina_model_01_LDADD) $(LIBS)
748eina_model_02$(EXEEXT): $(eina_model_02_OBJECTS) $(eina_model_02_DEPENDENCIES)
749 @rm -f eina_model_02$(EXEEXT)
750 $(AM_V_CCLD)$(LINK) $(eina_model_02_OBJECTS) $(eina_model_02_LDADD) $(LIBS)
751eina_model_03$(EXEEXT): $(eina_model_03_OBJECTS) $(eina_model_03_DEPENDENCIES)
752 @rm -f eina_model_03$(EXEEXT)
753 $(AM_V_CCLD)$(LINK) $(eina_model_03_OBJECTS) $(eina_model_03_LDADD) $(LIBS)
754eina_model_04$(EXEEXT): $(eina_model_04_OBJECTS) $(eina_model_04_DEPENDENCIES)
755 @rm -f eina_model_04$(EXEEXT)
756 $(AM_V_CCLD)$(LINK) $(eina_model_04_OBJECTS) $(eina_model_04_LDADD) $(LIBS)
655eina_str_01$(EXEEXT): $(eina_str_01_OBJECTS) $(eina_str_01_DEPENDENCIES) 757eina_str_01$(EXEEXT): $(eina_str_01_OBJECTS) $(eina_str_01_DEPENDENCIES)
656 @rm -f eina_str_01$(EXEEXT) 758 @rm -f eina_str_01$(EXEEXT)
657 $(AM_V_CCLD)$(LINK) $(eina_str_01_OBJECTS) $(eina_str_01_LDADD) $(LIBS) 759 $(AM_V_CCLD)$(LINK) $(eina_str_01_OBJECTS) $(eina_str_01_LDADD) $(LIBS)
@@ -661,6 +763,15 @@ eina_strbuf_01$(EXEEXT): $(eina_strbuf_01_OBJECTS) $(eina_strbuf_01_DEPENDENCIES
661eina_tiler_01$(EXEEXT): $(eina_tiler_01_OBJECTS) $(eina_tiler_01_DEPENDENCIES) 763eina_tiler_01$(EXEEXT): $(eina_tiler_01_OBJECTS) $(eina_tiler_01_DEPENDENCIES)
662 @rm -f eina_tiler_01$(EXEEXT) 764 @rm -f eina_tiler_01$(EXEEXT)
663 $(AM_V_CCLD)$(LINK) $(eina_tiler_01_OBJECTS) $(eina_tiler_01_LDADD) $(LIBS) 765 $(AM_V_CCLD)$(LINK) $(eina_tiler_01_OBJECTS) $(eina_tiler_01_LDADD) $(LIBS)
766eina_value_01$(EXEEXT): $(eina_value_01_OBJECTS) $(eina_value_01_DEPENDENCIES)
767 @rm -f eina_value_01$(EXEEXT)
768 $(AM_V_CCLD)$(LINK) $(eina_value_01_OBJECTS) $(eina_value_01_LDADD) $(LIBS)
769eina_value_02$(EXEEXT): $(eina_value_02_OBJECTS) $(eina_value_02_DEPENDENCIES)
770 @rm -f eina_value_02$(EXEEXT)
771 $(AM_V_CCLD)$(LINK) $(eina_value_02_OBJECTS) $(eina_value_02_LDADD) $(LIBS)
772eina_value_03$(EXEEXT): $(eina_value_03_OBJECTS) $(eina_value_03_DEPENDENCIES)
773 @rm -f eina_value_03$(EXEEXT)
774 $(AM_V_CCLD)$(LINK) $(eina_value_03_OBJECTS) $(eina_value_03_LDADD) $(LIBS)
664 775
665mostlyclean-compile: 776mostlyclean-compile:
666 -rm -f *.$(OBJEXT) 777 -rm -f *.$(OBJEXT)
@@ -681,6 +792,7 @@ distclean-compile:
681@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_hash_06.Po@am__quote@ 792@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_hash_06.Po@am__quote@
682@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_hash_07.Po@am__quote@ 793@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_hash_07.Po@am__quote@
683@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_hash_08.Po@am__quote@ 794@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_hash_08.Po@am__quote@
795@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_inarray_01.Po@am__quote@
684@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_inlist_01.Po@am__quote@ 796@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_inlist_01.Po@am__quote@
685@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_inlist_02.Po@am__quote@ 797@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_inlist_02.Po@am__quote@
686@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_inlist_03.Po@am__quote@ 798@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_inlist_03.Po@am__quote@
@@ -692,9 +804,21 @@ distclean-compile:
692@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_log_01.Po@am__quote@ 804@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_log_01.Po@am__quote@
693@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_log_02.Po@am__quote@ 805@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_log_02.Po@am__quote@
694@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_log_03.Po@am__quote@ 806@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_log_03.Po@am__quote@
807@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_model_01.Po@am__quote@
808@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_model_02.Po@am__quote@
809@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_model_03.Po@am__quote@
810@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_model_04_animal.Po@am__quote@
811@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_model_04_child.Po@am__quote@
812@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_model_04_human.Po@am__quote@
813@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_model_04_main.Po@am__quote@
814@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_model_04_parrot.Po@am__quote@
815@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_model_04_whistler.Po@am__quote@
695@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_str_01.Po@am__quote@ 816@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_str_01.Po@am__quote@
696@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_strbuf_01.Po@am__quote@ 817@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_strbuf_01.Po@am__quote@
697@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_tiler_01.Po@am__quote@ 818@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_tiler_01.Po@am__quote@
819@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_value_01.Po@am__quote@
820@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_value_02.Po@am__quote@
821@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_value_03.Po@am__quote@
698 822
699.c.o: 823.c.o:
700@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 824@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
diff --git a/libraries/eina/src/examples/eina_accessor_01.c b/libraries/eina/src/examples/eina_accessor_01.c
index c48fdc6..da413c6 100644
--- a/libraries/eina/src/examples/eina_accessor_01.c
+++ b/libraries/eina/src/examples/eina_accessor_01.c
@@ -1,5 +1,5 @@
1//Compile with: 1//Compile with:
2//gcc -g `pkg-config --cflags --libs eina` eina_accessor_01.c -o eina_accessor_01 2//gcc -g eina_accessor_01.c -o eina_accessor_01 `pkg-config --cflags --libs eina`
3 3
4#include <stdio.h> 4#include <stdio.h>
5 5
diff --git a/libraries/eina/src/examples/eina_array_01.c b/libraries/eina/src/examples/eina_array_01.c
index d93eb35..1bae809 100644
--- a/libraries/eina/src/examples/eina_array_01.c
+++ b/libraries/eina/src/examples/eina_array_01.c
@@ -1,5 +1,5 @@
1//Compile with: 1//Compile with:
2//gcc -g `pkg-config --cflags --libs eina` eina_array_01.c -o eina_array_01 2//gcc -g eina_array_01.c -o eina_array_01 `pkg-config --cflags --libs eina`
3 3
4#include <stdio.h> 4#include <stdio.h>
5#include <string.h> 5#include <string.h>
diff --git a/libraries/eina/src/examples/eina_array_02.c b/libraries/eina/src/examples/eina_array_02.c
index e897321..6b2903b 100644
--- a/libraries/eina/src/examples/eina_array_02.c
+++ b/libraries/eina/src/examples/eina_array_02.c
@@ -1,5 +1,5 @@
1//Compile with: 1//Compile with:
2//gcc -g `pkg-config --cflags --libs eina` eina_array_02.c -o eina_array_02 2//gcc -g eina_array_02.c -o eina_array_02 `pkg-config --cflags --libs eina`
3 3
4#include <stdio.h> 4#include <stdio.h>
5#include <string.h> 5#include <string.h>
diff --git a/libraries/eina/src/examples/eina_error_01.c b/libraries/eina/src/examples/eina_error_01.c
index 90e845d..e264aee 100644
--- a/libraries/eina/src/examples/eina_error_01.c
+++ b/libraries/eina/src/examples/eina_error_01.c
@@ -1,5 +1,5 @@
1//Compile with: 1//Compile with:
2//gcc -g `pkg-config --cflags --libs eina` eina_error_01.c -o eina_error_01 2//gcc -g eina_error_01.c -o eina_error_01 `pkg-config --cflags --libs eina`
3 3
4#include <stdlib.h> 4#include <stdlib.h>
5#include <stdio.h> 5#include <stdio.h>
@@ -77,4 +77,4 @@ int main(void)
77 eina_shutdown(); 77 eina_shutdown();
78 78
79 return EXIT_SUCCESS; 79 return EXIT_SUCCESS;
80} \ No newline at end of file 80}
diff --git a/libraries/eina/src/examples/eina_file_01.c b/libraries/eina/src/examples/eina_file_01.c
index 6490b62..2c945b3 100644
--- a/libraries/eina/src/examples/eina_file_01.c
+++ b/libraries/eina/src/examples/eina_file_01.c
@@ -1,5 +1,5 @@
1//Compile with: 1//Compile with:
2//gcc -g `pkg-config --cflags --libs eina` eina_file_01.c -o eina_file_01 2//gcc -g eina_file_01.c -o eina_file_01 `pkg-config --cflags --libs eina`
3 3
4#include <stdio.h> 4#include <stdio.h>
5#include <Eina.h> 5#include <Eina.h>
diff --git a/libraries/eina/src/examples/eina_hash_01.c b/libraries/eina/src/examples/eina_hash_01.c
index 549ca80..16418fe 100644
--- a/libraries/eina/src/examples/eina_hash_01.c
+++ b/libraries/eina/src/examples/eina_hash_01.c
@@ -1,3 +1,6 @@
1//Compile with:
2//gcc -g eina_hash_01.c -o eina_hash_01 `pkg-config --cflags --libs eina`
3
1#include <stdio.h> 4#include <stdio.h>
2#include <string.h> 5#include <string.h>
3#include <Eina.h> 6#include <Eina.h>
diff --git a/libraries/eina/src/examples/eina_hash_02.c b/libraries/eina/src/examples/eina_hash_02.c
index d43d7a3..7baec93 100644
--- a/libraries/eina/src/examples/eina_hash_02.c
+++ b/libraries/eina/src/examples/eina_hash_02.c
@@ -1,3 +1,6 @@
1//Compile with:
2//gcc -g eina_hash_02.c -o eina_hash_02 `pkg-config --cflags --libs eina`
3
1#include <stdio.h> 4#include <stdio.h>
2#include <string.h> 5#include <string.h>
3#include <Eina.h> 6#include <Eina.h>
diff --git a/libraries/eina/src/examples/eina_hash_03.c b/libraries/eina/src/examples/eina_hash_03.c
index 719d0d7..ba543d4 100644
--- a/libraries/eina/src/examples/eina_hash_03.c
+++ b/libraries/eina/src/examples/eina_hash_03.c
@@ -1,3 +1,6 @@
1//Compile with:
2//gcc -g eina_hash_03.c -o eina_hash_03 `pkg-config --cflags --libs eina`
3
1#include <stdio.h> 4#include <stdio.h>
2#include <string.h> 5#include <string.h>
3#include <Eina.h> 6#include <Eina.h>
diff --git a/libraries/eina/src/examples/eina_hash_04.c b/libraries/eina/src/examples/eina_hash_04.c
index e900475..da73e04 100644
--- a/libraries/eina/src/examples/eina_hash_04.c
+++ b/libraries/eina/src/examples/eina_hash_04.c
@@ -1,3 +1,6 @@
1//Compile with:
2//gcc -g eina_hash_04.c -o eina_hash_04 `pkg-config --cflags --libs eina`
3
1#include <stdio.h> 4#include <stdio.h>
2#include <string.h> 5#include <string.h>
3#include <Eina.h> 6#include <Eina.h>
diff --git a/libraries/eina/src/examples/eina_hash_05.c b/libraries/eina/src/examples/eina_hash_05.c
index f8dbf78..6666ce2 100644
--- a/libraries/eina/src/examples/eina_hash_05.c
+++ b/libraries/eina/src/examples/eina_hash_05.c
@@ -1,3 +1,6 @@
1//Compile with:
2//gcc -g eina_hash_05.c -o eina_hash_05 `pkg-config --cflags --libs eina`
3
1#include <stdio.h> 4#include <stdio.h>
2#include <string.h> 5#include <string.h>
3#include <Eina.h> 6#include <Eina.h>
diff --git a/libraries/eina/src/examples/eina_hash_06.c b/libraries/eina/src/examples/eina_hash_06.c
index 99a2bd7..6e3c451 100644
--- a/libraries/eina/src/examples/eina_hash_06.c
+++ b/libraries/eina/src/examples/eina_hash_06.c
@@ -1,3 +1,6 @@
1//Compile with:
2//gcc -g eina_hash_06.c -o eina_hash_06 `pkg-config --cflags --libs eina`
3
1#include <stdio.h> 4#include <stdio.h>
2#include <string.h> 5#include <string.h>
3#include <Eina.h> 6#include <Eina.h>
diff --git a/libraries/eina/src/examples/eina_hash_07.c b/libraries/eina/src/examples/eina_hash_07.c
index b3e486a..1464e6b 100644
--- a/libraries/eina/src/examples/eina_hash_07.c
+++ b/libraries/eina/src/examples/eina_hash_07.c
@@ -1,3 +1,6 @@
1//Compile with:
2//gcc -g eina_hash_07.c -o eina_hash_07 `pkg-config --cflags --libs eina`
3
1#include <stdio.h> 4#include <stdio.h>
2#include <string.h> 5#include <string.h>
3#include <Eina.h> 6#include <Eina.h>
diff --git a/libraries/eina/src/examples/eina_hash_08.c b/libraries/eina/src/examples/eina_hash_08.c
index 368a2fb..ed45f7f 100644
--- a/libraries/eina/src/examples/eina_hash_08.c
+++ b/libraries/eina/src/examples/eina_hash_08.c
@@ -1,3 +1,6 @@
1//Compile with:
2//gcc -g eina_hash_08.c -o eina_hash_08 `pkg-config --cflags --libs eina`
3
1#include <stdio.h> 4#include <stdio.h>
2#include <string.h> 5#include <string.h>
3#include <Eina.h> 6#include <Eina.h>
diff --git a/libraries/eina/src/examples/eina_inlist_01.c b/libraries/eina/src/examples/eina_inlist_01.c
index fa51553..6c6c794 100644
--- a/libraries/eina/src/examples/eina_inlist_01.c
+++ b/libraries/eina/src/examples/eina_inlist_01.c
@@ -1,5 +1,6 @@
1// Compile with: 1// Compile with:
2// gcc -g `pkg-config --cflags --libs eina` eina_inlist_01.c -o eina_inlist_01 2// gcc -g eina_inlist_01.c -o eina_inlist_01 `pkg-config --cflags --libs eina`
3
3#include <Eina.h> 4#include <Eina.h>
4#include <stdio.h> 5#include <stdio.h>
5 6
diff --git a/libraries/eina/src/examples/eina_inlist_02.c b/libraries/eina/src/examples/eina_inlist_02.c
index 7d23f13..4c16ec6 100644
--- a/libraries/eina/src/examples/eina_inlist_02.c
+++ b/libraries/eina/src/examples/eina_inlist_02.c
@@ -1,5 +1,6 @@
1// Compile with: 1// Compile with:
2// gcc -g `pkg-config --cflags --libs eina` eina_inlist_01.c -o eina_inlist_01 2// gcc -g eina_inlist_02.c -o eina_inlist_02 `pkg-config --cflags --libs eina`
3
3#include <Eina.h> 4#include <Eina.h>
4#include <stdio.h> 5#include <stdio.h>
5 6
diff --git a/libraries/eina/src/examples/eina_inlist_03.c b/libraries/eina/src/examples/eina_inlist_03.c
index a39a784..28706d5 100644
--- a/libraries/eina/src/examples/eina_inlist_03.c
+++ b/libraries/eina/src/examples/eina_inlist_03.c
@@ -1,5 +1,6 @@
1// Compile with: 1// Compile with:
2// gcc -g `pkg-config --cflags --libs eina` eina_inlist_01.c -o eina_inlist_01 2// gcc -g eina_inlist_03.c -o eina_inlist_03 `pkg-config --cflags --libs eina`
3
3#include <Eina.h> 4#include <Eina.h>
4#include <stdio.h> 5#include <stdio.h>
5 6
diff --git a/libraries/eina/src/examples/eina_iterator_01.c b/libraries/eina/src/examples/eina_iterator_01.c
index f467f90..88c40cc 100644
--- a/libraries/eina/src/examples/eina_iterator_01.c
+++ b/libraries/eina/src/examples/eina_iterator_01.c
@@ -1,5 +1,5 @@
1//Compile with: 1//Compile with:
2//gcc -g `pkg-config --cflags --libs eina` eina_iterator_01.c -o eina_iterator_01 2//gcc -g eina_iterator_01.c -o eina_iterator_01 `pkg-config --cflags --libs eina`
3 3
4#include <stdio.h> 4#include <stdio.h>
5 5
diff --git a/libraries/eina/src/examples/eina_list_01.c b/libraries/eina/src/examples/eina_list_01.c
index 7807791..4fcb020 100644
--- a/libraries/eina/src/examples/eina_list_01.c
+++ b/libraries/eina/src/examples/eina_list_01.c
@@ -1,5 +1,5 @@
1//Compile with: 1//Compile with:
2//gcc -g `pkg-config --cflags --libs eina` eina_list_01.c -o eina_list_01 2//gcc -g eina_list_01.c -o eina_list_01 `pkg-config --cflags --libs eina`
3 3
4#include <stdio.h> 4#include <stdio.h>
5#include <Eina.h> 5#include <Eina.h>
diff --git a/libraries/eina/src/examples/eina_list_02.c b/libraries/eina/src/examples/eina_list_02.c
index 7def475..5fe31e8 100644
--- a/libraries/eina/src/examples/eina_list_02.c
+++ b/libraries/eina/src/examples/eina_list_02.c
@@ -1,5 +1,5 @@
1//Compile with: 1//Compile with:
2//gcc -g `pkg-config --cflags --libs eina` eina_list_02.c -o eina_list_02 2//gcc -g eina_list_02.c -o eina_list_02 `pkg-config --cflags --libs eina`
3 3
4#include <stdio.h> 4#include <stdio.h>
5#include <string.h> 5#include <string.h>
diff --git a/libraries/eina/src/examples/eina_list_03.c b/libraries/eina/src/examples/eina_list_03.c
index 8e15b91..db53148 100644
--- a/libraries/eina/src/examples/eina_list_03.c
+++ b/libraries/eina/src/examples/eina_list_03.c
@@ -1,5 +1,5 @@
1//Compile with: 1//Compile with:
2//gcc -g `pkg-config --cflags --libs eina` eina_list_03.c -o eina_list_03 2//gcc -g eina_list_03.c -o eina_list_03 `pkg-config --cflags --libs eina`
3 3
4#include <stdio.h> 4#include <stdio.h>
5#include <Eina.h> 5#include <Eina.h>
diff --git a/libraries/eina/src/examples/eina_list_04.c b/libraries/eina/src/examples/eina_list_04.c
index c153c06..d92a607 100644
--- a/libraries/eina/src/examples/eina_list_04.c
+++ b/libraries/eina/src/examples/eina_list_04.c
@@ -1,5 +1,5 @@
1//Compile with: 1//Compile with:
2//gcc -g `pkg-config --cflags --libs eina` eina_list_04.c -o eina_list_04 2//gcc -g eina_list_04.c -o eina_list_04 `pkg-config --cflags --libs eina`
3 3
4#include <stdio.h> 4#include <stdio.h>
5#include <Eina.h> 5#include <Eina.h>
diff --git a/libraries/eina/src/examples/eina_tiler_01.c b/libraries/eina/src/examples/eina_tiler_01.c
index b2ff8be..6202a88 100644
--- a/libraries/eina/src/examples/eina_tiler_01.c
+++ b/libraries/eina/src/examples/eina_tiler_01.c
@@ -1,5 +1,5 @@
1//Compile with: 1//Compile with:
2//gcc `pkg-config --cflags --libs ecore-evas ecore evas` eina_tiler_01.c -o eina_tiler_01 2//gcc eina_tiler_01.c -o eina_tiler_01 `pkg-config --cflags --libs ecore-evas ecore evas eina`
3 3
4#include <Ecore_Evas.h> 4#include <Ecore_Evas.h>
5#include <Ecore.h> 5#include <Ecore.h>
diff --git a/libraries/eina/src/include/Eina.h b/libraries/eina/src/include/Eina.h
index 721a991..d99b129 100644
--- a/libraries/eina/src/include/Eina.h
+++ b/libraries/eina/src/include/Eina.h
@@ -1,5 +1,5 @@
1/* EINA - EFL data type library 1/* EINA - EFL data type library
2 * Copyright (C) 2008-2011 Enlightenment Developers: 2 * Copyright (C) 2008-2012 Enlightenment Developers:
3 * Albin "Lutin" Tonnerre <albin.tonnerre@gmail.com> 3 * Albin "Lutin" Tonnerre <albin.tonnerre@gmail.com>
4 * Alexandre "diaxen" Becoulet <diaxen@free.fr> 4 * Alexandre "diaxen" Becoulet <diaxen@free.fr>
5 * Andre Dieb <andre.dieb@gmail.com> 5 * Andre Dieb <andre.dieb@gmail.com>
@@ -16,6 +16,7 @@
16 * Tilman Sauerbeck <tilman@code-monkey.de> 16 * Tilman Sauerbeck <tilman@code-monkey.de>
17 * Vincent "caro" Torri <vtorri at univ-evry dot fr> 17 * Vincent "caro" Torri <vtorri at univ-evry dot fr>
18 * Tom Hacohen <tom@stosb.com> 18 * Tom Hacohen <tom@stosb.com>
19 * Jonas M. Gastal <jgastal@profusion.mobi>
19 * 20 *
20 * This library is free software; you can redistribute it and/or 21 * This library is free software; you can redistribute it and/or
21 * modify it under the terms of the GNU Lesser General Public 22 * modify it under the terms of the GNU Lesser General Public
@@ -46,7 +47,7 @@
46 * @mainpage Eina 47 * @mainpage Eina
47 * 48 *
48 * @version 1.1 49 * @version 1.1
49 * @date 2008-2011 50 * @date 2008-2012
50 * 51 *
51 * @section eina_intro_sec Introduction 52 * @section eina_intro_sec Introduction
52 * 53 *
@@ -72,6 +73,8 @@
72 * @li @ref Eina_Stringshare_Group saves memory by sharing read-only string references. 73 * @li @ref Eina_Stringshare_Group saves memory by sharing read-only string references.
73 * @li @ref Eina_Tiler_Group split, merge and navigates into 2D tiled regions. 74 * @li @ref Eina_Tiler_Group split, merge and navigates into 2D tiled regions.
74 * @li @ref Eina_Trash_Group container of unused but allocated data. 75 * @li @ref Eina_Trash_Group container of unused but allocated data.
76 * @li @ref Eina_Value_Group container for generic value storage and access.
77 * @li @ref Eina_Model_Group container for data with user defined hierarchy/structure.
75 * 78 *
76 * The tools that are available are (see @ref Eina_Tools_Group): 79 * The tools that are available are (see @ref Eina_Tools_Group):
77 * @li @ref Eina_Benchmark_Group helper to write benchmarks. 80 * @li @ref Eina_Benchmark_Group helper to write benchmarks.
@@ -101,6 +104,31 @@
101 * their elements with an @ref Eina_Iterator_Group, or eventually an 104 * their elements with an @ref Eina_Iterator_Group, or eventually an
102 * @ref Eina_Accessor_Group. 105 * @ref Eina_Accessor_Group.
103 * 106 *
107 * The containers in eina are designed with performance in mind, one consequence
108 * of this is that they @b don't check the validity of data structures given to
109 * them(@ref Eina_Magic_Group).
110 *
111 * The choice of which container to use in each situation is very important in
112 * achieving good performance and readable code. The most common container types
113 * to be used are:
114 * @li List
115 * @li Inline list
116 * @li Array
117 * @li Inline array
118 * @li Hash
119 *
120 * All types have virtues and vices. The following considerations are good
121 * starting point in deciding which container to use:
122 * @li Hashes are appropriate for datasets which will be searched often;
123 * @li arrays are good when accessing members by position;
124 * @li lists provide good versatility for adding elements in any position with
125 * minimal overhead;
126 * @li inline arrays use very little memory and don't cause fragmentation and
127 * therefore are a good option in memory constrained systems;
128 * @li inline lists are the appropriate type to use when the flexibility of a
129 * list is required but the overhead of pointer indirection is not acceptable.
130 * @warning These are general considerations, every situation is different,
131 * don't follow these recommendations blindly.
104 * 132 *
105 * @defgroup Eina_Tools_Group Tools 133 * @defgroup Eina_Tools_Group Tools
106 * 134 *
@@ -120,15 +148,22 @@
120 * @author Carsten Haitzler <raster@@rasterman.com> 148 * @author Carsten Haitzler <raster@@rasterman.com>
121 * @author Cedric Bail <cedric.bail@@free.fr> 149 * @author Cedric Bail <cedric.bail@@free.fr>
122 * @author Corey "atmos" Donohoe <atmos@@atmos.org> 150 * @author Corey "atmos" Donohoe <atmos@@atmos.org>
151 * @author Vincent "caro" Torri <vtorri at univ-evry dot fr>
123 * @author Fabiano Fidêncio <fidencio@@profusion.mobi> 152 * @author Fabiano Fidêncio <fidencio@@profusion.mobi>
124 * @author Gustavo Chaves <glima@@profusion.mobi> 153 * @author Gustavo Chaves <glima@@profusion.mobi>
125 * @author Gustavo Sverzut Barbieri <barbieri@@profusion.mobi> 154 * @author Gustavo Sverzut Barbieri <barbieri@@profusion.mobi>
126 * @author Jorge Luis "turran" Zapata <jorgeluis.zapata@@gmail.com> 155 * @author Jorge Luis "turran" Zapata <jorgeluis.zapata@@gmail.com>
156 * @author Tilman Sauerbeck <tilman@@code-monkey.de>
127 * @author Peter "pfritz" Wehrfritz <peter.wehrfritz@@web.de> 157 * @author Peter "pfritz" Wehrfritz <peter.wehrfritz@@web.de>
128 * @author Raphael Kubo da Costa <kubo@@profusion.mobi> 158 * @author Raphael Kubo da Costa <kubo@@profusion.mobi>
129 * @author Tilman Sauerbeck <tilman@@code-monkey.de>
130 * @author Vincent "caro" Torri <vtorri at univ-evry dot fr>
131 * @author Tom Hacohen <tom@@stosb.com> 159 * @author Tom Hacohen <tom@@stosb.com>
160 * @author Brett Nash <nash@@nash.id.au>
161 * @author Sebastian Dransfeld <sd@@tango.flipp.net>
162 * @author Myungjae Lee <mjae.lee@@samsung.com>
163 * @author Youness Alaoui <kakaroto@@kakaroto.homelinux.net>
164 * @author Boris "billiob" Faure <billiob@@gmail.com>
165 * @author Sung W. Park <sungwoo@@gmail.com>
166 * @author Guillaume Friloux <guillaume.friloux@@asp64.com>
132 * 167 *
133 * Please contact <enlightenment-devel@lists.sourceforge.net> to get in 168 * Please contact <enlightenment-devel@lists.sourceforge.net> to get in
134 * contact with the developers and maintainers. 169 * contact with the developers and maintainers.
@@ -189,6 +224,7 @@ extern "C" {
189#include "eina_mmap.h" 224#include "eina_mmap.h"
190#include "eina_xattr.h" 225#include "eina_xattr.h"
191#include "eina_value.h" 226#include "eina_value.h"
227#include "eina_model.h"
192 228
193#ifdef __cplusplus 229#ifdef __cplusplus
194} 230}
diff --git a/libraries/eina/src/include/Makefile.am b/libraries/eina/src/include/Makefile.am
index a818d5f..31ef71e 100644
--- a/libraries/eina/src/include/Makefile.am
+++ b/libraries/eina/src/include/Makefile.am
@@ -64,7 +64,8 @@ eina_refcount.h \
64eina_mmap.h \ 64eina_mmap.h \
65eina_xattr.h \ 65eina_xattr.h \
66eina_value.h \ 66eina_value.h \
67eina_inline_value.x 67eina_inline_value.x \
68eina_model.h
68 69
69# Will be back for developper after 1.1. 70# Will be back for developper after 1.1.
70# eina_object.h 71# eina_object.h
diff --git a/libraries/eina/src/include/Makefile.in b/libraries/eina/src/include/Makefile.in
index ea922e5..7e819b8 100644
--- a/libraries/eina/src/include/Makefile.in
+++ b/libraries/eina/src/include/Makefile.in
@@ -46,20 +46,24 @@ DIST_COMMON = $(am__dist_installed_headers_DATA_DIST) \
46 $(dist_installed_mainheader_DATA) $(srcdir)/Makefile.am \ 46 $(dist_installed_mainheader_DATA) $(srcdir)/Makefile.am \
47 $(srcdir)/Makefile.in $(srcdir)/eina_config.h.in 47 $(srcdir)/Makefile.in $(srcdir)/eina_config.h.in
48ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 48ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
49am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 49am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \
50 $(top_srcdir)/m4/efl_benchmark.m4 \ 50 $(top_srcdir)/m4/eina/eina_check.m4 \
51 $(top_srcdir)/m4/efl_compiler_flag.m4 \ 51 $(top_srcdir)/m4/common/efl_attribute.m4 \
52 $(top_srcdir)/m4/efl_coverage.m4 $(top_srcdir)/m4/efl_cpu.m4 \ 52 $(top_srcdir)/m4/common/efl_benchmark.m4 \
53 $(top_srcdir)/m4/efl_doxygen.m4 \ 53 $(top_srcdir)/m4/common/efl_compiler_flag.m4 \
54 $(top_srcdir)/m4/efl_examples.m4 \ 54 $(top_srcdir)/m4/common/efl_coverage.m4 \
55 $(top_srcdir)/m4/efl_fnmatch.m4 \ 55 $(top_srcdir)/m4/common/efl_cpu.m4 \
56 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 56 $(top_srcdir)/m4/common/efl_doxygen.m4 \
57 $(top_srcdir)/m4/efl_threads.m4 \ 57 $(top_srcdir)/m4/common/efl_examples.m4 \
58 $(top_srcdir)/m4/efl_voltron.m4 $(top_srcdir)/m4/eina_bench.m4 \ 58 $(top_srcdir)/m4/common/efl_fnmatch.m4 \
59 $(top_srcdir)/m4/eina_check.m4 $(top_srcdir)/m4/libtool.m4 \ 59 $(top_srcdir)/m4/common/efl_path_max.m4 \
60 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 60 $(top_srcdir)/m4/common/efl_tests.m4 \
61 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 61 $(top_srcdir)/m4/common/efl_threads.m4 \
62 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac 62 $(top_srcdir)/m4/common/efl_voltron.m4 \
63 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
64 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
65 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
66 $(top_srcdir)/configure.ac
63am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 67am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
64 $(ACLOCAL_M4) 68 $(ACLOCAL_M4)
65mkinstalldirs = $(install_sh) -d 69mkinstalldirs = $(install_sh) -d
@@ -93,9 +97,9 @@ am__dist_installed_headers_DATA_DIST = eina_safety_checks.h \
93 eina_inline_str.x eina_strbuf.h eina_ustrbuf.h eina_unicode.h \ 97 eina_inline_str.x eina_strbuf.h eina_ustrbuf.h eina_unicode.h \
94 eina_quadtree.h eina_simple_xml_parser.h eina_lock.h \ 98 eina_quadtree.h eina_simple_xml_parser.h eina_lock.h \
95 eina_prefix.h eina_refcount.h eina_mmap.h eina_xattr.h \ 99 eina_prefix.h eina_refcount.h eina_mmap.h eina_xattr.h \
96 eina_value.h eina_inline_value.x eina_inline_lock_wince.x \ 100 eina_value.h eina_inline_value.x eina_model.h \
97 eina_inline_lock_win32.x eina_inline_lock_posix.x \ 101 eina_inline_lock_wince.x eina_inline_lock_win32.x \
98 eina_inline_lock_void.x 102 eina_inline_lock_posix.x eina_inline_lock_void.x
99am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; 103am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
100am__vpath_adj = case $$p in \ 104am__vpath_adj = case $$p in \
101 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ 105 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -167,13 +171,13 @@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
167EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ 171EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
168EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 172EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
169EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ 173EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
174EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@
170EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 175EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
171EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 176EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
172EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 177EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
173EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ 178EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@
174EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ 179EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@
175EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ 180EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@
176EINA_CPPFLAGS = @EINA_CPPFLAGS@
177EINA_LIBS = @EINA_LIBS@ 181EINA_LIBS = @EINA_LIBS@
178EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ 182EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@
179EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ 183EMEMOA_CFLAGS = @EMEMOA_CFLAGS@
@@ -183,6 +187,8 @@ ESCAPE_LIBS = @ESCAPE_LIBS@
183EVIL_CFLAGS = @EVIL_CFLAGS@ 187EVIL_CFLAGS = @EVIL_CFLAGS@
184EVIL_LIBS = @EVIL_LIBS@ 188EVIL_LIBS = @EVIL_LIBS@
185EXEEXT = @EXEEXT@ 189EXEEXT = @EXEEXT@
190EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
191EXOTIC_LIBS = @EXOTIC_LIBS@
186FGREP = @FGREP@ 192FGREP = @FGREP@
187GLIB_CFLAGS = @GLIB_CFLAGS@ 193GLIB_CFLAGS = @GLIB_CFLAGS@
188GLIB_LIBS = @GLIB_LIBS@ 194GLIB_LIBS = @GLIB_LIBS@
@@ -218,6 +224,8 @@ PACKAGE_URL = @PACKAGE_URL@
218PACKAGE_VERSION = @PACKAGE_VERSION@ 224PACKAGE_VERSION = @PACKAGE_VERSION@
219PATH_SEPARATOR = @PATH_SEPARATOR@ 225PATH_SEPARATOR = @PATH_SEPARATOR@
220PKG_CONFIG = @PKG_CONFIG@ 226PKG_CONFIG = @PKG_CONFIG@
227PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
228PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
221RANLIB = @RANLIB@ 229RANLIB = @RANLIB@
222SED = @SED@ 230SED = @SED@
223SET_MAKE = @SET_MAKE@ 231SET_MAKE = @SET_MAKE@
@@ -311,8 +319,8 @@ EINAHEADERS = eina_safety_checks.h eina_error.h eina_log.h \
311 eina_ustrbuf.h eina_unicode.h eina_quadtree.h \ 319 eina_ustrbuf.h eina_unicode.h eina_quadtree.h \
312 eina_simple_xml_parser.h eina_lock.h eina_prefix.h \ 320 eina_simple_xml_parser.h eina_lock.h eina_prefix.h \
313 eina_refcount.h eina_mmap.h eina_xattr.h eina_value.h \ 321 eina_refcount.h eina_mmap.h eina_xattr.h eina_value.h \
314 eina_inline_value.x $(am__append_1) $(am__append_2) \ 322 eina_inline_value.x eina_model.h $(am__append_1) \
315 $(am__append_3) $(am__append_4) 323 $(am__append_2) $(am__append_3) $(am__append_4)
316installed_mainheaderdir = $(includedir)/eina-@VMAJ@ 324installed_mainheaderdir = $(includedir)/eina-@VMAJ@
317dist_installed_mainheader_DATA = Eina.h eina_config.h 325dist_installed_mainheader_DATA = Eina.h eina_config.h
318installed_headersdir = $(includedir)/eina-@VMAJ@/eina 326installed_headersdir = $(includedir)/eina-@VMAJ@/eina
diff --git a/libraries/eina/src/include/eina_array.h b/libraries/eina/src/include/eina_array.h
index 53183b4..4ab3b50 100644
--- a/libraries/eina/src/include/eina_array.h
+++ b/libraries/eina/src/include/eina_array.h
@@ -351,7 +351,7 @@ static inline void *eina_array_data_get(const Eina_Array *array,
351static inline void eina_array_data_set(const Eina_Array *array, 351static inline void eina_array_data_set(const Eina_Array *array,
352 unsigned int idx, 352 unsigned int idx,
353 const void *data) EINA_ARG_NONNULL(1); 353 const void *data) EINA_ARG_NONNULL(1);
354static inline unsigned int eina_array_count_get(const Eina_Array *array) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT EINA_DEPRECATED; 354static inline unsigned int eina_array_count_get(const Eina_Array *array) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
355static inline unsigned int eina_array_count(const Eina_Array *array) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; 355static inline unsigned int eina_array_count(const Eina_Array *array) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
356 356
357/** 357/**
diff --git a/libraries/eina/src/include/eina_config.h b/libraries/eina/src/include/eina_config.h
index 474edaa..b1108b6 100644
--- a/libraries/eina/src/include/eina_config.h
+++ b/libraries/eina/src/include/eina_config.h
@@ -19,6 +19,15 @@
19#ifndef EINA_CONFIG_H_ 19#ifndef EINA_CONFIG_H_
20#define EINA_CONFIG_H_ 20#define EINA_CONFIG_H_
21 21
22#ifdef EINA_HAVE_EXOTIC_H
23# undef EINA_HAVE_EXOTIC_H
24#endif
25
26
27#ifdef EINA_HAVE_EXOTIC
28# include <Exotic.h>
29#endif
30
22#ifdef EINA_MAGIC_DEBUG 31#ifdef EINA_MAGIC_DEBUG
23# undef EINA_MAGIC_DEBUG 32# undef EINA_MAGIC_DEBUG
24#endif 33#endif
diff --git a/libraries/eina/src/include/eina_config.h.in b/libraries/eina/src/include/eina_config.h.in
index 2459ace..937d208 100644
--- a/libraries/eina/src/include/eina_config.h.in
+++ b/libraries/eina/src/include/eina_config.h.in
@@ -19,6 +19,15 @@
19#ifndef EINA_CONFIG_H_ 19#ifndef EINA_CONFIG_H_
20#define EINA_CONFIG_H_ 20#define EINA_CONFIG_H_
21 21
22#ifdef EINA_HAVE_EXOTIC_H
23# undef EINA_HAVE_EXOTIC_H
24#endif
25@EINA_CONFIGURE_HAVE_EXOTIC@
26
27#ifdef EINA_HAVE_EXOTIC
28# include <Exotic.h>
29#endif
30
22#ifdef EINA_MAGIC_DEBUG 31#ifdef EINA_MAGIC_DEBUG
23# undef EINA_MAGIC_DEBUG 32# undef EINA_MAGIC_DEBUG
24#endif 33#endif
diff --git a/libraries/eina/src/include/eina_error.h b/libraries/eina/src/include/eina_error.h
index 2b0ae77..dd87edf 100644
--- a/libraries/eina/src/include/eina_error.h
+++ b/libraries/eina/src/include/eina_error.h
@@ -180,7 +180,7 @@ EAPI const char *eina_error_msg_get(Eina_Error error) EINA_PURE;
180 180
181/** 181/**
182 * @brief Find the #Eina_Error corresponding to a message string 182 * @brief Find the #Eina_Error corresponding to a message string
183 * @param msg The error message string to match (NOT #NULL) 183 * @param msg The error message string to match (NOT @c NULL)
184 * @return The #Eina_Error matching @p msg, or 0 on failure 184 * @return The #Eina_Error matching @p msg, or 0 on failure
185 * This function attempts to match @p msg with its corresponding #Eina_Error value. 185 * This function attempts to match @p msg with its corresponding #Eina_Error value.
186 * If no such value is found, 0 is returned. 186 * If no such value is found, 0 is returned.
diff --git a/libraries/eina/src/include/eina_file.h b/libraries/eina/src/include/eina_file.h
index 422fb65..1af22af 100644
--- a/libraries/eina/src/include/eina_file.h
+++ b/libraries/eina/src/include/eina_file.h
@@ -22,6 +22,7 @@
22 22
23#include <limits.h> 23#include <limits.h>
24#include <time.h> 24#include <time.h>
25#include <sys/stat.h>
25 26
26#include "eina_types.h" 27#include "eina_types.h"
27#include "eina_array.h" 28#include "eina_array.h"
@@ -91,6 +92,13 @@
91typedef struct _Eina_File_Direct_Info Eina_File_Direct_Info; 92typedef struct _Eina_File_Direct_Info Eina_File_Direct_Info;
92 93
93/** 94/**
95 * @typedef Eina_Stat
96 * A typedef to #_Eina_Stat.
97 * @since 1.2
98 */
99typedef struct _Eina_Stat Eina_Stat;
100
101/**
94 * @typedef Eina_File_Dir_List_Cb 102 * @typedef Eina_File_Dir_List_Cb
95 * Type for a callback to be called when iterating over the files of a 103 * Type for a callback to be called when iterating over the files of a
96 * directory. 104 * directory.
@@ -149,6 +157,31 @@ struct _Eina_File_Direct_Info
149}; 157};
150 158
151/** 159/**
160 * @struct _Eina_Stat
161 * A structure to store informations of a path.
162 * @since 1.2
163 */
164struct _Eina_Stat
165{
166 unsigned long int dev;
167 unsigned long int ino;
168 unsigned int mode;
169 unsigned int nlink;
170 unsigned int uid;
171 unsigned int gid;
172 unsigned long int rdev;
173 unsigned long int size;
174 unsigned long int blksize;
175 unsigned long int blocks;
176 unsigned long int atime;
177 unsigned long int atimensec;
178 unsigned long int mtime;
179 unsigned long int mtimensec;
180 unsigned long int ctime;
181 unsigned long int ctimensec;
182};
183
184/**
152 * @def EINA_FILE_DIR_LIST_CB 185 * @def EINA_FILE_DIR_LIST_CB
153 * @brief cast to an #Eina_File_Dir_List_Cb. 186 * @brief cast to an #Eina_File_Dir_List_Cb.
154 * 187 *
@@ -247,6 +280,24 @@ EAPI Eina_Iterator *eina_file_ls(const char *dir) EINA_WARN_UNUSED_RESULT EINA_A
247EAPI Eina_Iterator *eina_file_stat_ls(const char *dir) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; 280EAPI Eina_Iterator *eina_file_stat_ls(const char *dir) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
248 281
249/** 282/**
283 * @brief Use information provided by Eina_Iterator of eina_file_stat_ls or eina_file_direct_ls
284 * to call stat in the most efficient way on your system.
285 *
286 * @param container The container returned by the Eina_Iterator using eina_iterator_container_get().
287 * @param info The content of the current Eina_File_Direct_Info provided by the Eina_Iterator
288 * @param buf Where to put the result of the stat
289 * @return On success 0 is returned, On error -1 is returned and errno is set appropriately.
290 *
291 * This function calls fstatat or stat depending on what your system supports. This makes it efficient and simple
292 * to use on your side without complex detection already done inside Eina on what the system can do.
293 *
294 * @see eina_file_direct_ls()
295 * @see eina_file_stat_ls()
296 * @since 1.2
297 */
298EAPI int eina_file_statat(void *container, Eina_File_Direct_Info *info, Eina_Stat *buf) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2, 3);
299
300/**
250 * @brief Get an iterator to list the content of a directory, with direct 301 * @brief Get an iterator to list the content of a directory, with direct
251 * information. 302 * information.
252 * 303 *
diff --git a/libraries/eina/src/include/eina_inarray.h b/libraries/eina/src/include/eina_inarray.h
index d37c76b..079f1e3 100644
--- a/libraries/eina/src/include/eina_inarray.h
+++ b/libraries/eina/src/include/eina_inarray.h
@@ -24,6 +24,131 @@
24#include "eina_accessor.h" 24#include "eina_accessor.h"
25 25
26/** 26/**
27 * @page eina_inarray_example_01 Eina inline array usage
28 * @dontinclude eina_inarray_01.c
29 *
30 * This example will create an inline array of chars, add some elements, print
31 * it, re-purpose the array to store ints, add some elements and print that.
32 *
33 * We'll start with a function to compare ints we need this because the '>'
34 * operator is not a function and can't be used where Eina_Compare_Cb is needed.
35 * @skip int
36 * @until }
37 *
38 * And then move on to the code we actually care about, starting with variable
39 * declarations and eina initialization:
40 * @until eina_init
41 *
42 * Creating an inline array is very simple, we just need to know what type we
43 * want to store:
44 * @until inarray_new
45 * @note The second parameter(the step) is left at zero which means that eina
46 * will choose an appropriate value, this should @b only be changed if it's
47 * known, beforehand, how many elements the array will have.
48 *
49 * Once we have an array we can start adding elements to it. Because the
50 * insertion function expect a memory address we have to put the value we want
51 * to store in a variable(this should be no problem since in real world usage
52 * that's usually where the value will be anyways):
53 * @until append
54 * @note Because the inline array copies the value given to it we can later
55 * change @c ch, which we do, without affecting the contents of the array.
56 *
57 * So let's add some more elements:
58 * @until append
59 * @until append
60 * @until append
61 *
62 * We will then iterate over our array and print every position of it. The thing
63 * to note here is not so much the values which will be the expected 'a', 'b',
64 * 'c' and 'd', but rather the memory address of these values, they are
65 * sequential:
66 * @until printf
67 * @until printf
68 *
69 * We'll now use our array to store ints, so we need to first erase every member
70 * currently on the array:
71 * @until _flush
72 *
73 * And then to be able to store a different type on the same array we use the
74 * eina_array_setup() function, which is just like the eina_inarray_new()
75 * function except it receives already allocated memory. This time we're going
76 * to ask eina to use a step of size 4 because that's how many elements we'll be
77 * putting on the array:
78 * @until _setup
79 * @note Strictly speaking the reason to call eina_inarray_setup() is not
80 * because we're storing different type, but rather because our types have
81 * different sizes. Eina inline arrays don't actually know anything about types,
82 * they only deal in blocks of memory of a given size.
83 * @note Since eina_array_setup() receives already allocated memory you can(and
84 * it is in fact good practice) use inline arrays not declared as pointers:
85 * @code
86 * Eina_Inarray arr;
87 * eina_inarray_setup(&arr, sizeof(int), 4);
88 * @endcode
89 *
90 * And now to add our integer values to the array:
91 * @until append
92 * @until append
93 * @until append
94 *
95 * Just to change things up a bit we've left out the 99 value, but will still
96 * add it in such a way to keep the array ordered. There are many ways to do
97 * this, we could use eina_inarray_insert_at(), or we could change the value
98 * of the last member using eina_inarray_replace_at() and then append the values
99 * in the right order, but for no particular reason we're going to use
100 * eina_inarray_insert_sorted() instead:
101 * @until insert_sorted
102 *
103 * We then print the size of our array, and the array itself, much like last
104 * time the values are not surprising, and neither should it be that the memory
105 * addresses are contiguous:
106 * @until printf
107 * @until printf
108 *
109 * Once done we free our array and shutdown eina:
110 * @until }
111 *
112 * The source for this example: @ref eina_inarray_01_c
113 */
114
115/**
116 * @page eina_inarray_01_c eina_inarray_01.c
117 * @include eina_inarray_01.c
118 * @example eina_inarray_01.c
119 */
120
121/**
122 * @page eina_inarray_example_02 Eina inline array of strings
123 * @dontinclude eina_inarray_02.c
124 *
125 * This example will create an inline array of strings, add some elements and
126 * then print them. This example is based on @ref eina_array_01_example_page and
127 * @ref eina_inarray_example_01.
128 *
129 * We start with some variable declarations and eina initialization:
130 * @skip int
131 * @until eina_init
132 *
133 * We then create the array much like we did on @ref eina_inarray_example_01:
134 * @until inarray_new
135 *
136 * The point were this example significantly differs from the first eina inline
137 * array example. We'll not be adding the strings themselves to the array since
138 * their size varies, we'll store pointer to the strings instead. We therefore
139 * use @c char** to populate our inline array:
140 * @until }
141 *
142 * The source for this example: @ref eina_inarray_02_c
143 */
144
145/**
146 * @page eina_inarray_02_c eina_inarray_02.c
147 * @include eina_inarray_02.c
148 * @example eina_inarray_02.c
149 */
150
151/**
27 * @addtogroup Eina_Data_Types_Group Data Types 152 * @addtogroup Eina_Data_Types_Group Data Types
28 * 153 *
29 * @since 1.2 154 * @since 1.2
@@ -40,6 +165,19 @@
40/** 165/**
41 * @defgroup Eina_Inline_Array_Group Inline Array 166 * @defgroup Eina_Inline_Array_Group Inline Array
42 * 167 *
168 * Inline array is a container that stores the data itself not pointers to data,
169 * this means there is no memory fragmentation, also for small data types(such
170 * as char, short, int, etc.) it's more memory efficient.
171 *
172 * Usage of the inline array is very similar to that of other
173 * @ref Eina_Containers_Group, like all arrays adding elements to the beginning
174 * of the array is a lot more costly than appending, so those operations should
175 * be minimized.
176 *
177 * Examples:
178 * @li @ref eina_inarray_example_01
179 * @li @ref eina_inarray_example_02
180 *
43 * @{ 181 * @{
44 */ 182 */
45 183
@@ -531,8 +669,8 @@ EAPI Eina_Accessor *eina_inarray_accessor_new(const Eina_Inarray *array) EINA_MA
531 * @since 1.2 669 * @since 1.2
532 */ 670 */
533#define EINA_INARRAY_FOREACH(array, itr) \ 671#define EINA_INARRAY_FOREACH(array, itr) \
534 for ((itr) = array->members; \ 672 for ((itr) = (array)->members; \
535 (itr) < (((typeof(*itr)*)array->members) + array->len); \ 673 (itr) < (((typeof(*itr)*)(array)->members) + (array)->len); \
536 (itr)++) 674 (itr)++)
537 675
538/** 676/**
@@ -552,9 +690,9 @@ EAPI Eina_Accessor *eina_inarray_accessor_new(const Eina_Inarray *array) EINA_MA
552 * @since 1.2 690 * @since 1.2
553 */ 691 */
554#define EINA_INARRAY_REVERSE_FOREACH(array, itr) \ 692#define EINA_INARRAY_REVERSE_FOREACH(array, itr) \
555 for ((itr) = ((((typeof(*(itr))*)array->members) + array->len) - 1); \ 693 for ((itr) = ((((typeof(*(itr))*)(array)->members) + (array)->len) - 1); \
556 (((itr) >= (typeof(*(itr))*)array->members) \ 694 (((itr) >= (typeof(*(itr))*)(array)->members) \
557 && (array->members != NULL)); \ 695 && ((array)->members != NULL)); \
558 (itr)--) 696 (itr)--)
559 697
560/** 698/**
diff --git a/libraries/eina/src/include/eina_inline_lock_win32.x b/libraries/eina/src/include/eina_inline_lock_win32.x
index e8363d5..1988724 100644
--- a/libraries/eina/src/include/eina_inline_lock_win32.x
+++ b/libraries/eina/src/include/eina_inline_lock_win32.x
@@ -23,6 +23,9 @@
23 23
24typedef CRITICAL_SECTION Eina_Lock; 24typedef CRITICAL_SECTION Eina_Lock;
25typedef struct _Eina_Condition Eina_Condition; 25typedef struct _Eina_Condition Eina_Condition;
26typedef struct _Eina_RWLock Eina_RWLock;
27typedef DWORD Eina_TLS;
28typedef HANDLE Eina_Semaphore;
26 29
27#if _WIN32_WINNT >= 0x0600 30#if _WIN32_WINNT >= 0x0600
28struct _Eina_Condition 31struct _Eina_Condition
@@ -30,6 +33,13 @@ struct _Eina_Condition
30 CRITICAL_SECTION *mutex; 33 CRITICAL_SECTION *mutex;
31 CONDITION_VARIABLE condition; 34 CONDITION_VARIABLE condition;
32}; 35};
36
37struct _Eina_RWLock
38{
39 SRWLOCK mutex;
40
41 Eina_Bool is_read_mode : 1;
42};
33#else 43#else
34struct _Eina_Condition 44struct _Eina_Condition
35{ 45{
@@ -40,28 +50,24 @@ struct _Eina_Condition
40 HANDLE waiters_done; 50 HANDLE waiters_done;
41 Eina_Bool was_broadcast; 51 Eina_Bool was_broadcast;
42}; 52};
43#endif
44 53
45typedef struct _Eina_Win32_RWLock Eina_RWLock; 54struct _Eina_RWLock
46
47struct _Eina_Win32_RWLock
48{ 55{
49 LONG readers_count; 56 LONG readers_count;
50 LONG writers_count; 57 LONG writers_count;
51 int readers; 58 int readers;
52 int writers; 59 int writers;
53 60
54 Eina_Lock mutex; 61 Eina_Lock mutex;
55 Eina_Condition cond_read; 62 Eina_Condition cond_read;
56 Eina_Condition cond_write; 63 Eina_Condition cond_write;
57}; 64};
65#endif
58 66
59typedef DWORD Eina_TLS;
60
61typedef HANDLE Eina_Semaphore;
62 67
63EAPI extern Eina_Bool _eina_threads_activated; 68EAPI extern Eina_Bool _eina_threads_activated;
64 69
70
65static inline Eina_Bool 71static inline Eina_Bool
66eina_lock_new(Eina_Lock *mutex) 72eina_lock_new(Eina_Lock *mutex)
67{ 73{
@@ -143,9 +149,9 @@ eina_condition_new(Eina_Condition *cond, Eina_Lock *mutex)
143 CloseHandle(cond->semaphore); 149 CloseHandle(cond->semaphore);
144 return EINA_FALSE; 150 return EINA_FALSE;
145 } 151 }
152#endif
146 153
147 return EINA_TRUE; 154 return EINA_TRUE;
148#endif
149} 155}
150 156
151static inline void 157static inline void
@@ -153,6 +159,7 @@ eina_condition_free(Eina_Condition *cond)
153{ 159{
154#if _WIN32_WINNT >= 0x0600 160#if _WIN32_WINNT >= 0x0600
155 /* Nothing to do */ 161 /* Nothing to do */
162 (void)cond;
156#else 163#else
157 CloseHandle(cond->waiters_done); 164 CloseHandle(cond->waiters_done);
158 DeleteCriticalSection(&cond->waiters_count_lock); 165 DeleteCriticalSection(&cond->waiters_count_lock);
@@ -309,20 +316,29 @@ eina_condition_signal(Eina_Condition *cond)
309 if (!ReleaseSemaphore(cond->semaphore, 1, 0)) 316 if (!ReleaseSemaphore(cond->semaphore, 1, 0))
310 return EINA_FALSE; 317 return EINA_FALSE;
311 } 318 }
319#endif
312 320
313 return EINA_TRUE; 321 return EINA_TRUE;
314#endif
315} 322}
316 323
317static inline Eina_Bool 324static inline Eina_Bool
318eina_rwlock_new(Eina_RWLock *mutex) 325eina_rwlock_new(Eina_RWLock *mutex)
319{ 326{
327#if _WIN32_WINNT >= 0x0600
328 InitializeSRWLock(&mutex->mutex);
329 return EINA_TRUE;
330#else
320 if (!eina_lock_new(&(mutex->mutex))) return EINA_FALSE; 331 if (!eina_lock_new(&(mutex->mutex))) return EINA_FALSE;
321 if (!eina_condition_new(&(mutex->cond_read), &(mutex->mutex))) 332 if (!eina_condition_new(&(mutex->cond_read), &(mutex->mutex)))
322 goto on_error1; 333 goto on_error1;
323 if (!eina_condition_new(&(mutex->cond_write), &(mutex->mutex))) 334 if (!eina_condition_new(&(mutex->cond_write), &(mutex->mutex)))
324 goto on_error2; 335 goto on_error2;
325 336
337 mutex->readers_count = 0;
338 mutex->writers_count = 0;
339 mutex->readers = 0;
340 mutex->writers = 0;
341
326 return EINA_TRUE; 342 return EINA_TRUE;
327 343
328 on_error2: 344 on_error2:
@@ -330,20 +346,29 @@ eina_rwlock_new(Eina_RWLock *mutex)
330 on_error1: 346 on_error1:
331 eina_lock_free(&(mutex->mutex)); 347 eina_lock_free(&(mutex->mutex));
332 return EINA_FALSE; 348 return EINA_FALSE;
349#endif
333} 350}
334 351
335static inline void 352static inline void
336eina_rwlock_free(Eina_RWLock *mutex) 353eina_rwlock_free(Eina_RWLock *mutex)
337{ 354{
355#if _WIN32_WINNT >= 0x0600
356 (void)mutex;
357#else
338 eina_condition_free(&(mutex->cond_read)); 358 eina_condition_free(&(mutex->cond_read));
339 eina_condition_free(&(mutex->cond_write)); 359 eina_condition_free(&(mutex->cond_write));
340 eina_lock_free(&(mutex->mutex)); 360 eina_lock_free(&(mutex->mutex));
361#endif
341} 362}
342 363
343static inline Eina_Lock_Result 364static inline Eina_Lock_Result
344eina_rwlock_take_read(Eina_RWLock *mutex) 365eina_rwlock_take_read(Eina_RWLock *mutex)
345{ 366{
346 DWORD res; 367#if _WIN32_WINNT >= 0x0600
368 AcquireSRWLockShared(&mutex->mutex);
369 mutex->is_read_mode = EINA_TRUE;
370#else
371 DWORD res = 0;
347 372
348 if (eina_lock_take(&(mutex->mutex)) == EINA_LOCK_FAIL) 373 if (eina_lock_take(&(mutex->mutex)) == EINA_LOCK_FAIL)
349 return EINA_LOCK_FAIL; 374 return EINA_LOCK_FAIL;
@@ -364,6 +389,7 @@ eina_rwlock_take_read(Eina_RWLock *mutex)
364 if (res == 0) 389 if (res == 0)
365 mutex->readers++; 390 mutex->readers++;
366 eina_lock_release(&(mutex->mutex)); 391 eina_lock_release(&(mutex->mutex));
392#endif
367 393
368 return EINA_LOCK_SUCCEED; 394 return EINA_LOCK_SUCCEED;
369} 395}
@@ -371,7 +397,11 @@ eina_rwlock_take_read(Eina_RWLock *mutex)
371static inline Eina_Lock_Result 397static inline Eina_Lock_Result
372eina_rwlock_take_write(Eina_RWLock *mutex) 398eina_rwlock_take_write(Eina_RWLock *mutex)
373{ 399{
374 DWORD res; 400#if _WIN32_WINNT >= 0x0600
401 AcquireSRWLockExclusive(&mutex->mutex);
402 mutex->is_read_mode = EINA_FALSE;
403#else
404 DWORD res = 0;
375 405
376 if (eina_lock_take(&(mutex->mutex)) == EINA_LOCK_FAIL) 406 if (eina_lock_take(&(mutex->mutex)) == EINA_LOCK_FAIL)
377 return EINA_LOCK_FAIL; 407 return EINA_LOCK_FAIL;
@@ -389,8 +419,9 @@ eina_rwlock_take_write(Eina_RWLock *mutex)
389 } 419 }
390 mutex->writers_count--; 420 mutex->writers_count--;
391 } 421 }
392 if (res == 0) mutex->writers_count = 1; 422 if (res == 0) mutex->writers = 1;
393 eina_lock_release(&(mutex->mutex)); 423 eina_lock_release(&(mutex->mutex));
424#endif
394 425
395 return EINA_LOCK_SUCCEED; 426 return EINA_LOCK_SUCCEED;
396} 427}
@@ -398,6 +429,12 @@ eina_rwlock_take_write(Eina_RWLock *mutex)
398static inline Eina_Lock_Result 429static inline Eina_Lock_Result
399eina_rwlock_release(Eina_RWLock *mutex) 430eina_rwlock_release(Eina_RWLock *mutex)
400{ 431{
432#if _WIN32_WINNT >= 0x0600
433 if (mutex->is_read_mode)
434 ReleaseSRWLockShared(&mutex->mutex);
435 else
436 ReleaseSRWLockExclusive(&mutex->mutex);
437#else
401 if (eina_lock_take(&(mutex->mutex)) == EINA_LOCK_FAIL) 438 if (eina_lock_take(&(mutex->mutex)) == EINA_LOCK_FAIL)
402 return EINA_LOCK_FAIL; 439 return EINA_LOCK_FAIL;
403 440
@@ -433,6 +470,7 @@ eina_rwlock_release(Eina_RWLock *mutex)
433 } 470 }
434 } 471 }
435 eina_lock_release(&(mutex->mutex)); 472 eina_lock_release(&(mutex->mutex));
473#endif
436 474
437 return EINA_LOCK_SUCCEED; 475 return EINA_LOCK_SUCCEED;
438} 476}
diff --git a/libraries/eina/src/include/eina_inline_stringshare.x b/libraries/eina/src/include/eina_inline_stringshare.x
index bfd7677..19827c5 100644
--- a/libraries/eina/src/include/eina_inline_stringshare.x
+++ b/libraries/eina/src/include/eina_inline_stringshare.x
@@ -43,7 +43,7 @@
43 * #EINA_FALSE if the strings were the same after shared. 43 * #EINA_FALSE if the strings were the same after shared.
44 */ 44 */
45static inline Eina_Bool 45static inline Eina_Bool
46eina_stringshare_replace(const char **p_str, const char *news) 46eina_stringshare_replace(Eina_Stringshare **p_str, const char *news)
47{ 47{
48 if (*p_str == news) return EINA_FALSE; 48 if (*p_str == news) return EINA_FALSE;
49 49
@@ -72,7 +72,7 @@ eina_stringshare_replace(const char **p_str, const char *news)
72 * #EINA_FALSE if the strings were the same after shared. 72 * #EINA_FALSE if the strings were the same after shared.
73 */ 73 */
74static inline Eina_Bool 74static inline Eina_Bool
75eina_stringshare_replace_length(const char **p_str, const char *news, unsigned int slen) 75eina_stringshare_replace_length(Eina_Stringshare **p_str, const char *news, unsigned int slen)
76{ 76{
77 if (*p_str == news) return EINA_FALSE; 77 if (*p_str == news) return EINA_FALSE;
78 78
diff --git a/libraries/eina/src/include/eina_inline_value.x b/libraries/eina/src/include/eina_inline_value.x
index 59ec315..33c83f5 100644
--- a/libraries/eina/src/include/eina_inline_value.x
+++ b/libraries/eina/src/include/eina_inline_value.x
@@ -19,8 +19,8 @@
19#ifndef EINA_INLINE_VALUE_X_ 19#ifndef EINA_INLINE_VALUE_X_
20#define EINA_INLINE_VALUE_X_ 20#define EINA_INLINE_VALUE_X_
21 21
22#include <stdlib.h>
22#include <string.h> 23#include <string.h>
23#include <alloca.h>
24 24
25#include "eina_stringshare.h" 25#include "eina_stringshare.h"
26 26
@@ -210,7 +210,7 @@ eina_value_compare(const Eina_Value *a, const Eina_Value *b)
210 return 1; 210 return 1;
211 return 0; 211 return 0;
212 } 212 }
213 else if (type == EINA_VALUE_TYPE_ULONG) 213 else if ((type == EINA_VALUE_TYPE_ULONG) || (type == EINA_VALUE_TYPE_TIMESTAMP))
214 { 214 {
215 unsigned long *ta = (unsigned long *) pa, *tb = (unsigned long *) pb; 215 unsigned long *ta = (unsigned long *) pa, *tb = (unsigned long *) pb;
216 if (*ta < *tb) 216 if (*ta < *tb)
@@ -362,7 +362,7 @@ eina_value_vset(Eina_Value *value, va_list args)
362 *tmem = va_arg(args, unsigned int); 362 *tmem = va_arg(args, unsigned int);
363 return EINA_TRUE; 363 return EINA_TRUE;
364 } 364 }
365 else if (type == EINA_VALUE_TYPE_ULONG) 365 else if ((type == EINA_VALUE_TYPE_ULONG) || (type == EINA_VALUE_TYPE_TIMESTAMP))
366 { 366 {
367 unsigned long *tmem = (unsigned long *) mem; 367 unsigned long *tmem = (unsigned long *) mem;
368 *tmem = va_arg(args, unsigned long); 368 *tmem = va_arg(args, unsigned long);
@@ -424,17 +424,22 @@ eina_value_vset(Eina_Value *value, va_list args)
424 else if (type == EINA_VALUE_TYPE_STRING) 424 else if (type == EINA_VALUE_TYPE_STRING)
425 { 425 {
426 const char *str = (const char *) va_arg(args, const char *); 426 const char *str = (const char *) va_arg(args, const char *);
427 free(value->value.ptr); 427 if (value->value.ptr == str) return EINA_TRUE;
428 if (!str) 428 if (!str)
429 value->value.ptr = NULL; 429 {
430 free(value->value.ptr);
431 value->value.ptr = NULL;
432 }
430 else 433 else
431 { 434 {
432 value->value.ptr = strdup(str); 435 char *tmp = strdup(str);
433 if (!value->value.ptr) 436 if (!tmp)
434 { 437 {
435 eina_error_set(EINA_ERROR_OUT_OF_MEMORY); 438 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
436 return EINA_FALSE; 439 return EINA_FALSE;
437 } 440 }
441 free(value->value.ptr);
442 value->value.ptr = tmp;
438 } 443 }
439 return EINA_TRUE; 444 return EINA_TRUE;
440 } 445 }
@@ -494,18 +499,22 @@ eina_value_pset(Eina_Value *value, const void *ptr)
494 { 499 {
495 const char * const * pstr = (const char * const *) ptr; 500 const char * const * pstr = (const char * const *) ptr;
496 const char *str = *pstr; 501 const char *str = *pstr;
497 502 if (value->value.ptr == str) return EINA_TRUE;
498 free(value->value.ptr);
499 if (!str) 503 if (!str)
500 value->value.ptr = NULL; 504 {
505 free(value->value.ptr);
506 value->value.ptr = NULL;
507 }
501 else 508 else
502 { 509 {
503 value->value.ptr = strdup(str); 510 char *tmp = strdup(str);
504 if (!value->value.ptr) 511 if (!tmp)
505 { 512 {
506 eina_error_set(EINA_ERROR_OUT_OF_MEMORY); 513 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
507 return EINA_FALSE; 514 return EINA_FALSE;
508 } 515 }
516 free(value->value.ptr);
517 value->value.ptr = tmp;
509 } 518 }
510 return EINA_TRUE; 519 return EINA_TRUE;
511 } 520 }
@@ -607,16 +616,7 @@ eina_value_array_vset(Eina_Value *value, unsigned int position, va_list args)
607 if (!mem) 616 if (!mem)
608 return EINA_FALSE; 617 return EINA_FALSE;
609 618
610 eina_value_type_flush(desc.subtype, mem); 619 return eina_value_type_vset(desc.subtype, mem, args);
611
612 if (!eina_value_type_setup(desc.subtype, mem)) goto error_setup;
613 if (!eina_value_type_vset(desc.subtype, mem, args)) goto error_set;
614 return EINA_TRUE;
615
616 error_set:
617 eina_value_type_flush(desc.subtype, mem);
618 error_setup:
619 return EINA_FALSE;
620} 620}
621 621
622static inline Eina_Bool 622static inline Eina_Bool
@@ -749,16 +749,7 @@ eina_value_array_pset(Eina_Value *value, unsigned int position, const void *ptr)
749 if (!mem) 749 if (!mem)
750 return EINA_FALSE; 750 return EINA_FALSE;
751 751
752 eina_value_type_flush(desc.subtype, mem); 752 return eina_value_type_pset(desc.subtype, mem, ptr);
753
754 if (!eina_value_type_setup(desc.subtype, mem)) goto error_setup;
755 if (!eina_value_type_pset(desc.subtype, mem, ptr)) goto error_set;
756 return EINA_TRUE;
757
758 error_set:
759 eina_value_type_flush(desc.subtype, mem);
760 error_setup:
761 return EINA_FALSE;
762} 753}
763 754
764static inline Eina_Bool 755static inline Eina_Bool
@@ -832,6 +823,29 @@ eina_value_array_pappend(Eina_Value *value, const void *ptr)
832 return EINA_FALSE; 823 return EINA_FALSE;
833} 824}
834 825
826static inline Eina_Bool
827eina_value_array_value_get(const Eina_Value *src, unsigned int position, Eina_Value *dst)
828{
829 Eina_Value_Array desc;
830
831 EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(src, EINA_FALSE);
832 EINA_SAFETY_ON_NULL_RETURN_VAL(dst, EINA_FALSE);
833
834 if (!eina_value_pget(src, &desc))
835 return EINA_FALSE;
836 if (position >= eina_inarray_count(desc.array))
837 return EINA_FALSE;
838 if (!eina_value_setup(dst, desc.subtype))
839 return EINA_FALSE;
840 if (!eina_value_pset(dst, eina_inarray_nth(desc.array, position)))
841 {
842 eina_value_flush(dst);
843 return EINA_FALSE;
844 }
845
846 return EINA_TRUE;
847}
848
835#undef EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL 849#undef EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL
836 850
837#define EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, retval) \ 851#define EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, retval) \
@@ -929,16 +943,7 @@ eina_value_list_vset(Eina_Value *value, unsigned int position, va_list args)
929 if (!mem) 943 if (!mem)
930 return EINA_FALSE; 944 return EINA_FALSE;
931 945
932 eina_value_type_flush(desc->subtype, mem); 946 return eina_value_type_vset(desc->subtype, mem, args);
933
934 if (!eina_value_type_setup(desc->subtype, mem)) goto error_setup;
935 if (!eina_value_type_vset(desc->subtype, mem, args)) goto error_set;
936 return EINA_TRUE;
937
938 error_set:
939 eina_value_type_flush(desc->subtype, mem);
940 error_setup:
941 return EINA_FALSE;
942} 947}
943 948
944static inline Eina_Bool 949static inline Eina_Bool
@@ -1105,16 +1110,7 @@ eina_value_list_pset(Eina_Value *value, unsigned int position, const void *ptr)
1105 if (!mem) 1110 if (!mem)
1106 return EINA_FALSE; 1111 return EINA_FALSE;
1107 1112
1108 eina_value_type_flush(desc->subtype, mem); 1113 return eina_value_type_pset(desc->subtype, mem, ptr);
1109
1110 if (!eina_value_type_setup(desc->subtype, mem)) goto error_setup;
1111 if (!eina_value_type_pset(desc->subtype, mem, ptr)) goto error_set;
1112 return EINA_TRUE;
1113
1114 error_set:
1115 eina_value_type_flush(desc->subtype, mem);
1116 error_setup:
1117 return EINA_FALSE;
1118} 1114}
1119 1115
1120static inline Eina_Bool 1116static inline Eina_Bool
@@ -1284,9 +1280,7 @@ eina_value_hash_vset(Eina_Value *value, const char *key, va_list args)
1284 return EINA_FALSE; 1280 return EINA_FALSE;
1285 1281
1286 mem = eina_hash_find(desc->hash, key); 1282 mem = eina_hash_find(desc->hash, key);
1287 if (mem) 1283 if (!mem)
1288 eina_value_type_flush(desc->subtype, mem);
1289 else
1290 { 1284 {
1291 mem = malloc(desc->subtype->value_size); 1285 mem = malloc(desc->subtype->value_size);
1292 if (!mem) 1286 if (!mem)
@@ -1299,18 +1293,15 @@ eina_value_hash_vset(Eina_Value *value, const char *key, va_list args)
1299 free(mem); 1293 free(mem);
1300 return EINA_FALSE; 1294 return EINA_FALSE;
1301 } 1295 }
1296 if (!eina_value_type_setup(desc->subtype, mem))
1297 {
1298 eina_value_type_flush(desc->subtype, mem);
1299 eina_hash_del_by_key(desc->hash, key);
1300 free(mem);
1301 }
1302 } 1302 }
1303 1303
1304 if (!eina_value_type_setup(desc->subtype, mem)) goto error_setup; 1304 return eina_value_type_vset(desc->subtype, mem, args);
1305 if (!eina_value_type_vset(desc->subtype, mem, args)) goto error_set;
1306 return EINA_TRUE;
1307
1308 error_set:
1309 eina_value_type_flush(desc->subtype, mem);
1310 error_setup:
1311 eina_hash_del_by_key(desc->hash, key);
1312 free(mem);
1313 return EINA_FALSE;
1314} 1305}
1315 1306
1316static inline Eina_Bool 1307static inline Eina_Bool
@@ -1371,9 +1362,7 @@ eina_value_hash_pset(Eina_Value *value, const char *key, const void *ptr)
1371 return EINA_FALSE; 1362 return EINA_FALSE;
1372 1363
1373 mem = eina_hash_find(desc->hash, key); 1364 mem = eina_hash_find(desc->hash, key);
1374 if (mem) 1365 if (!mem)
1375 eina_value_type_flush(desc->subtype, mem);
1376 else
1377 { 1366 {
1378 mem = malloc(desc->subtype->value_size); 1367 mem = malloc(desc->subtype->value_size);
1379 if (!mem) 1368 if (!mem)
@@ -1386,18 +1375,15 @@ eina_value_hash_pset(Eina_Value *value, const char *key, const void *ptr)
1386 free(mem); 1375 free(mem);
1387 return EINA_FALSE; 1376 return EINA_FALSE;
1388 } 1377 }
1378 if (!eina_value_type_setup(desc->subtype, mem))
1379 {
1380 eina_value_type_flush(desc->subtype, mem);
1381 eina_hash_del_by_key(desc->hash, key);
1382 free(mem);
1383 }
1389 } 1384 }
1390 1385
1391 if (!eina_value_type_setup(desc->subtype, mem)) goto error_setup; 1386 return eina_value_type_pset(desc->subtype, mem, ptr);
1392 if (!eina_value_type_pset(desc->subtype, mem, ptr)) goto error_set;
1393 return EINA_TRUE;
1394
1395 error_set:
1396 eina_value_type_flush(desc->subtype, mem);
1397 error_setup:
1398 eina_hash_del_by_key(desc->hash, key);
1399 free(mem);
1400 return EINA_FALSE;
1401} 1387}
1402 1388
1403static inline Eina_Bool 1389static inline Eina_Bool
@@ -1474,15 +1460,7 @@ eina_value_struct_vset(Eina_Value *value, const char *name, va_list args)
1474 if (!mem) 1460 if (!mem)
1475 return EINA_FALSE; 1461 return EINA_FALSE;
1476 1462
1477 eina_value_type_flush(member->type, mem); 1463 return eina_value_type_vset(member->type, mem, args);
1478 if (!eina_value_type_setup(member->type, mem)) goto error_setup;
1479 if (!eina_value_type_vset(member->type, mem, args)) goto error_set;
1480 return EINA_TRUE;
1481
1482 error_set:
1483 eina_value_type_flush(member->type, mem);
1484 error_setup:
1485 return EINA_FALSE;
1486} 1464}
1487 1465
1488static inline Eina_Bool 1466static inline Eina_Bool
@@ -1540,8 +1518,9 @@ eina_value_struct_pset(Eina_Value *value, const char *name, const void *ptr)
1540 Eina_Value_Struct *st; 1518 Eina_Value_Struct *st;
1541 void *mem; 1519 void *mem;
1542 1520
1543 EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(value, 0); 1521 EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(value, EINA_FALSE);
1544 EINA_SAFETY_ON_NULL_RETURN_VAL(name, EINA_FALSE); 1522 EINA_SAFETY_ON_NULL_RETURN_VAL(name, EINA_FALSE);
1523 EINA_SAFETY_ON_NULL_RETURN_VAL(ptr, EINA_FALSE);
1545 st = (Eina_Value_Struct *)eina_value_memory_get(value); 1524 st = (Eina_Value_Struct *)eina_value_memory_get(value);
1546 if (!st) 1525 if (!st)
1547 return EINA_FALSE; 1526 return EINA_FALSE;
@@ -1552,15 +1531,7 @@ eina_value_struct_pset(Eina_Value *value, const char *name, const void *ptr)
1552 if (!mem) 1531 if (!mem)
1553 return EINA_FALSE; 1532 return EINA_FALSE;
1554 1533
1555 eina_value_type_flush(member->type, mem); 1534 return eina_value_type_pset(member->type, mem, ptr);
1556 if (!eina_value_type_setup(member->type, mem)) goto error_setup;
1557 if (!eina_value_type_pset(member->type, mem, ptr)) goto error_set;
1558 return EINA_TRUE;
1559
1560 error_set:
1561 eina_value_type_flush(member->type, mem);
1562 error_setup:
1563 return EINA_FALSE;
1564} 1535}
1565 1536
1566static inline Eina_Bool 1537static inline Eina_Bool
@@ -1571,8 +1542,9 @@ eina_value_struct_pget(const Eina_Value *value, const char *name, void *ptr)
1571 const void *mem; 1542 const void *mem;
1572 Eina_Bool ret; 1543 Eina_Bool ret;
1573 1544
1574 EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(value, 0); 1545 EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(value, EINA_FALSE);
1575 EINA_SAFETY_ON_NULL_RETURN_VAL(name, EINA_FALSE); 1546 EINA_SAFETY_ON_NULL_RETURN_VAL(name, EINA_FALSE);
1547 EINA_SAFETY_ON_NULL_RETURN_VAL(ptr, EINA_FALSE);
1576 st = (const Eina_Value_Struct *)eina_value_memory_get(value); 1548 st = (const Eina_Value_Struct *)eina_value_memory_get(value);
1577 if (!st) 1549 if (!st)
1578 return EINA_FALSE; 1550 return EINA_FALSE;
@@ -1586,6 +1558,119 @@ eina_value_struct_pget(const Eina_Value *value, const char *name, void *ptr)
1586 ret = eina_value_type_pget(member->type, mem, ptr); 1558 ret = eina_value_type_pget(member->type, mem, ptr);
1587 return ret; 1559 return ret;
1588} 1560}
1561
1562static inline Eina_Bool
1563eina_value_struct_value_get(const Eina_Value *src, const char *name, Eina_Value *dst)
1564{
1565 const Eina_Value_Struct_Member *member;
1566 const Eina_Value_Struct *st;
1567 const void *mem;
1568
1569 EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(src, EINA_FALSE);
1570 EINA_SAFETY_ON_NULL_RETURN_VAL(name, EINA_FALSE);
1571 EINA_SAFETY_ON_NULL_RETURN_VAL(dst, EINA_FALSE);
1572 st = (const Eina_Value_Struct *)eina_value_memory_get(src);
1573 if (!st)
1574 return EINA_FALSE;
1575 member = eina_value_struct_member_find(st, name);
1576 if (!member)
1577 return EINA_FALSE;
1578 mem = eina_value_struct_member_memory_get(st, member);
1579 if (!mem)
1580 return EINA_FALSE;
1581 if (!eina_value_setup(dst, member->type))
1582 return EINA_FALSE;
1583 if (!eina_value_pset(dst, mem))
1584 {
1585 eina_value_flush(dst);
1586 return EINA_FALSE;
1587 }
1588 return EINA_TRUE;
1589}
1590
1591static inline Eina_Bool
1592eina_value_struct_value_set(Eina_Value *dst, const char *name, const Eina_Value *src)
1593{
1594 const Eina_Value_Struct_Member *member;
1595 Eina_Value_Struct *st;
1596 void *mem;
1597 const void *ptr;
1598
1599 EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(dst, EINA_FALSE);
1600 EINA_SAFETY_ON_NULL_RETURN_VAL(name, EINA_FALSE);
1601 EINA_SAFETY_ON_NULL_RETURN_VAL(src, EINA_FALSE);
1602
1603 st = (Eina_Value_Struct *)eina_value_memory_get(dst);
1604 if (!st)
1605 return EINA_FALSE;
1606 member = eina_value_struct_member_find(st, name);
1607 if (!member)
1608 return EINA_FALSE;
1609 EINA_SAFETY_ON_FALSE_RETURN_VAL(src->type == member->type, EINA_FALSE);
1610
1611 mem = eina_value_struct_member_memory_get(st, member);
1612 if (!mem)
1613 return EINA_FALSE;
1614
1615 ptr = eina_value_memory_get(src);
1616 if (!ptr)
1617 return EINA_FALSE;
1618
1619 return eina_value_type_pset(member->type, mem, ptr);
1620}
1621
1622static inline Eina_Bool
1623eina_value_struct_member_value_get(const Eina_Value *src, const Eina_Value_Struct_Member *member, Eina_Value *dst)
1624{
1625 const Eina_Value_Struct *st;
1626 const void *mem;
1627
1628 EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(src, EINA_FALSE);
1629 EINA_SAFETY_ON_NULL_RETURN_VAL(member, EINA_FALSE);
1630 EINA_SAFETY_ON_NULL_RETURN_VAL(dst, EINA_FALSE);
1631 st = (const Eina_Value_Struct *)eina_value_memory_get(src);
1632 if (!st)
1633 return EINA_FALSE;
1634 mem = eina_value_struct_member_memory_get(st, member);
1635 if (!mem)
1636 return EINA_FALSE;
1637 if (!eina_value_setup(dst, member->type))
1638 return EINA_FALSE;
1639 if (!eina_value_pset(dst, mem))
1640 {
1641 eina_value_flush(dst);
1642 return EINA_FALSE;
1643 }
1644 return EINA_TRUE;
1645}
1646
1647static inline Eina_Bool
1648eina_value_struct_member_value_set(Eina_Value *dst, const Eina_Value_Struct_Member *member, const Eina_Value *src)
1649{
1650 Eina_Value_Struct *st;
1651 void *mem;
1652 const void *ptr;
1653
1654 EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(dst, EINA_FALSE);
1655 EINA_SAFETY_ON_NULL_RETURN_VAL(member, EINA_FALSE);
1656 EINA_SAFETY_ON_NULL_RETURN_VAL(src, EINA_FALSE);
1657
1658 st = (Eina_Value_Struct *)eina_value_memory_get(dst);
1659 if (!st)
1660 return EINA_FALSE;
1661 EINA_SAFETY_ON_FALSE_RETURN_VAL(src->type == member->type, EINA_FALSE);
1662
1663 mem = eina_value_struct_member_memory_get(st, member);
1664 if (!mem)
1665 return EINA_FALSE;
1666
1667 ptr = eina_value_memory_get(src);
1668 if (!ptr)
1669 return EINA_FALSE;
1670
1671 return eina_value_type_pset(member->type, mem, ptr);
1672}
1673
1589#undef EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL 1674#undef EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL
1590 1675
1591 1676
diff --git a/libraries/eina/src/include/eina_list.h b/libraries/eina/src/include/eina_list.h
index db65e17..c8ef06d 100644
--- a/libraries/eina/src/include/eina_list.h
+++ b/libraries/eina/src/include/eina_list.h
@@ -881,13 +881,13 @@ EAPI Eina_List *eina_list_clone(const Eina_List *list) EINA_WARN_UNUS
881 * @brief Sort a list according to the ordering func will return. 881 * @brief Sort a list according to the ordering func will return.
882 * 882 *
883 * @param list The list handle to sort. 883 * @param list The list handle to sort.
884 * @param size The length of the list to sort. 884 * @param limit The maximum number of list elements to sort.
885 * @param func A function pointer that can handle comparing the list data 885 * @param func A function pointer that can handle comparing the list data
886 * nodes. 886 * nodes.
887 * @return the new head of list. 887 * @return the new head of list.
888 * 888 *
889 * This function sorts @p list. @p size if the number of the first 889 * This function sorts @p list. @p size if the number of the first
890 * element to sort. If @p size is 0 or greater than the number of 890 * element to sort. If @p limit is 0 or greater than the number of
891 * elements in @p list, all the elements are sorted. @p func is used to 891 * elements in @p list, all the elements are sorted. @p func is used to
892 * compare two elements of @p list. If @p list or @p func are @c NULL, 892 * compare two elements of @p list. If @p list or @p func are @c NULL,
893 * this function returns @c NULL. 893 * this function returns @c NULL.
@@ -920,7 +920,7 @@ EAPI Eina_List *eina_list_clone(const Eina_List *list) EINA_WARN_UNUS
920 * 920 *
921 * @warning @p list must be a pointer to the first element of the list. 921 * @warning @p list must be a pointer to the first element of the list.
922 */ 922 */
923EAPI Eina_List *eina_list_sort(Eina_List *list, unsigned int size, Eina_Compare_Cb func) EINA_ARG_NONNULL(3) EINA_WARN_UNUSED_RESULT; 923EAPI Eina_List *eina_list_sort(Eina_List *list, unsigned int limit, Eina_Compare_Cb func) EINA_ARG_NONNULL(3) EINA_WARN_UNUSED_RESULT;
924 924
925 925
926/** 926/**
diff --git a/libraries/eina/src/include/eina_stringshare.h b/libraries/eina/src/include/eina_stringshare.h
index 862b2b2..8edadd2 100644
--- a/libraries/eina/src/include/eina_stringshare.h
+++ b/libraries/eina/src/include/eina_stringshare.h
@@ -126,6 +126,20 @@
126 * string creation/destruction speed, reduces memory use and decreases 126 * string creation/destruction speed, reduces memory use and decreases
127 * memory fragmentation, so a win all-around. 127 * memory fragmentation, so a win all-around.
128 * 128 *
129 * Using eina stringshares usually boils down to:
130 * @code
131 * const char *str = eina_stringshare_add("My string");
132 * ...
133 * //Use str
134 * ...
135 * eina_stringshare_del(str);
136 * @endcode
137 * @note It's very important to note that string shares are @b @c const,
138 * changing them will result in undefined behavior.
139 * @note eina_stringshare_del() @b doesn't guarantee the string share will be
140 * freed, it releases a reference to it, but if other references to it still
141 * exist the string share will live until those are released.
142 *
129 * The following diagram gives an idea of what happens as you create strings 143 * The following diagram gives an idea of what happens as you create strings
130 * with eina_stringshare_add(): 144 * with eina_stringshare_add():
131 * 145 *
@@ -148,6 +162,15 @@
148 * @{ 162 * @{
149 */ 163 */
150 164
165/**
166 * @typedef Eina_Stringshare
167 *
168 * Interchangeable with "const char *" but still a good visual hint for the
169 * purpose. Maybe in the far far future we'll even add strict type checking.
170 *
171 * @since 1.2.0
172 */
173typedef const char Eina_Stringshare;
151 174
152/** 175/**
153 * @brief Retrieve an instance of a string for use in a program. 176 * @brief Retrieve an instance of a string for use in a program.
@@ -168,7 +191,7 @@
168 * 191 *
169 * @see eina_share_common_add() 192 * @see eina_share_common_add()
170 */ 193 */
171EAPI const char *eina_stringshare_add_length(const char *str, unsigned int slen) EINA_WARN_UNUSED_RESULT; 194EAPI Eina_Stringshare *eina_stringshare_add_length(const char *str, unsigned int slen) EINA_WARN_UNUSED_RESULT;
172 195
173/** 196/**
174 * @brief Retrieve an instance of a string for use in a program. 197 * @brief Retrieve an instance of a string for use in a program.
@@ -188,7 +211,7 @@ EAPI const char *eina_stringshare_add_length(const char *str, unsigned in
188 * 211 *
189 * @see eina_stringshare_add_length() 212 * @see eina_stringshare_add_length()
190 */ 213 */
191EAPI const char *eina_stringshare_add(const char *str) EINA_WARN_UNUSED_RESULT; 214EAPI Eina_Stringshare *eina_stringshare_add(const char *str) EINA_WARN_UNUSED_RESULT;
192 215
193/** 216/**
194 * @brief Retrieve an instance of a string for use in a program 217 * @brief Retrieve an instance of a string for use in a program
@@ -209,7 +232,7 @@ EAPI const char *eina_stringshare_add(const char *str) EINA_WARN_UNUSED_R
209 * 232 *
210 * @see eina_stringshare_nprintf() 233 * @see eina_stringshare_nprintf()
211 */ 234 */
212EAPI const char *eina_stringshare_printf(const char *fmt, ...) EINA_WARN_UNUSED_RESULT EINA_PRINTF(1, 2); 235EAPI Eina_Stringshare *eina_stringshare_printf(const char *fmt, ...) EINA_WARN_UNUSED_RESULT EINA_PRINTF(1, 2);
213 236
214/** 237/**
215 * @brief Retrieve an instance of a string for use in a program 238 * @brief Retrieve an instance of a string for use in a program
@@ -231,7 +254,7 @@ EAPI const char *eina_stringshare_printf(const char *fmt, ...) EINA_WARN_
231 * 254 *
232 * @see eina_stringshare_nprintf() 255 * @see eina_stringshare_nprintf()
233 */ 256 */
234EAPI const char *eina_stringshare_vprintf(const char *fmt, va_list args) EINA_WARN_UNUSED_RESULT; 257EAPI Eina_Stringshare *eina_stringshare_vprintf(const char *fmt, va_list args) EINA_WARN_UNUSED_RESULT;
235 258
236/** 259/**
237 * @brief Retrieve an instance of a string for use in a program 260 * @brief Retrieve an instance of a string for use in a program
@@ -251,7 +274,7 @@ EAPI const char *eina_stringshare_vprintf(const char *fmt, va_list args)
251 * 274 *
252 * @see eina_stringshare_printf() 275 * @see eina_stringshare_printf()
253 */ 276 */
254EAPI const char *eina_stringshare_nprintf(unsigned int len, const char *fmt, ...) EINA_WARN_UNUSED_RESULT EINA_PRINTF(2, 3); 277EAPI Eina_Stringshare *eina_stringshare_nprintf(unsigned int len, const char *fmt, ...) EINA_WARN_UNUSED_RESULT EINA_PRINTF(2, 3);
255 278
256/** 279/**
257 * Increment references of the given shared string. 280 * Increment references of the given shared string.
@@ -267,7 +290,7 @@ EAPI const char *eina_stringshare_nprintf(unsigned int len, const char *f
267 * 290 *
268 * There is no unref since this is the work of eina_share_common_del(). 291 * There is no unref since this is the work of eina_share_common_del().
269 */ 292 */
270EAPI const char *eina_stringshare_ref(const char *str); 293EAPI Eina_Stringshare *eina_stringshare_ref(Eina_Stringshare *str);
271 294
272/** 295/**
273 * @brief Note that the given string has lost an instance. 296 * @brief Note that the given string has lost an instance.
@@ -282,7 +305,7 @@ EAPI const char *eina_stringshare_ref(const char *str);
282 * Note that if the given pointer is not shared or NULL, bad things 305 * Note that if the given pointer is not shared or NULL, bad things
283 * will happen, likely a segmentation fault. 306 * will happen, likely a segmentation fault.
284 */ 307 */
285EAPI void eina_stringshare_del(const char *str); 308EAPI void eina_stringshare_del(Eina_Stringshare *str);
286 309
287/** 310/**
288 * @brief Note that the given string @b must be shared. 311 * @brief Note that the given string @b must be shared.
@@ -296,7 +319,7 @@ EAPI void eina_stringshare_del(const char *str);
296 * things will happen, likely a segmentation fault. If in doubt, try 319 * things will happen, likely a segmentation fault. If in doubt, try
297 * strlen(). 320 * strlen().
298 */ 321 */
299EAPI int eina_stringshare_strlen(const char *str) EINA_PURE EINA_WARN_UNUSED_RESULT; 322EAPI int eina_stringshare_strlen(Eina_Stringshare *str) EINA_PURE EINA_WARN_UNUSED_RESULT;
300 323
301/** 324/**
302 * @brief Dump the contents of the share_common. 325 * @brief Dump the contents of the share_common.
@@ -306,8 +329,8 @@ EAPI int eina_stringshare_strlen(const char *str) EINA_PURE EINA_
306 */ 329 */
307EAPI void eina_stringshare_dump(void); 330EAPI void eina_stringshare_dump(void);
308 331
309static inline Eina_Bool eina_stringshare_replace(const char **p_str, const char *news) EINA_ARG_NONNULL(1); 332static inline Eina_Bool eina_stringshare_replace(Eina_Stringshare **p_str, const char *news) EINA_ARG_NONNULL(1);
310static inline Eina_Bool eina_stringshare_replace_length(const char **p_str, const char *news, unsigned int slen) EINA_ARG_NONNULL(1); 333static inline Eina_Bool eina_stringshare_replace_length(Eina_Stringshare **p_str, const char *news, unsigned int slen) EINA_ARG_NONNULL(1);
311 334
312#include "eina_inline_stringshare.x" 335#include "eina_inline_stringshare.x"
313 336
diff --git a/libraries/eina/src/include/eina_types.h b/libraries/eina/src/include/eina_types.h
index 1653949..b0a7cf8 100644
--- a/libraries/eina/src/include/eina_types.h
+++ b/libraries/eina/src/include/eina_types.h
@@ -98,13 +98,13 @@
98 98
99#ifdef __GNUC__ 99#ifdef __GNUC__
100# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) 100# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
101# define EINA_WARN_UNUSED_RESULT __attribute__ ((warn_unused_result)) 101# define EINA_WARN_UNUSED_RESULT __attribute__ ((__warn_unused_result__))
102# else 102# else
103# define EINA_WARN_UNUSED_RESULT 103# define EINA_WARN_UNUSED_RESULT
104# endif 104# endif
105 105
106# if (!defined(EINA_SAFETY_CHECKS)) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) 106# if (!defined(EINA_SAFETY_CHECKS)) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
107# define EINA_ARG_NONNULL(idx, ...) __attribute__ ((nonnull(idx, ## __VA_ARGS__))) 107# define EINA_ARG_NONNULL(idx, ...) __attribute__ ((__nonnull__(idx, ## __VA_ARGS__)))
108# else 108# else
109# define EINA_ARG_NONNULL(idx, ...) 109# define EINA_ARG_NONNULL(idx, ...)
110# endif 110# endif
@@ -116,19 +116,23 @@
116# endif 116# endif
117 117
118# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) 118# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
119# define EINA_MALLOC __attribute__ ((malloc)) 119# define EINA_MALLOC __attribute__ ((__malloc__))
120# define EINA_PURE __attribute__ ((pure)) 120# define EINA_PURE __attribute__ ((__pure__))
121# else 121# else
122# define EINA_MALLOC 122# define EINA_MALLOC
123# define EINA_PURE 123# define EINA_PURE
124# endif 124# endif
125 125
126# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4) 126# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
127# define EINA_PRINTF(fmt, arg) __attribute__((format (printf, fmt, arg))) 127# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 3)
128# define EINA_SCANF(fmt, arg) __attribute__((format (scanf, fmt, arg))) 128# define EINA_PRINTF(fmt, arg) __attribute__((__format__ (__gnu_printf__, fmt, arg)))
129# define EINA_FORMAT(fmt) __attribute__((format_arg(fmt))) 129# else
130# define EINA_CONST __attribute__((const)) 130# define EINA_PRINTF(fmt, arg) __attribute__((__format__ (__printf__, fmt, arg)))
131# define EINA_NOINSTRUMENT __attribute__((no_instrument_function)) 131# endif
132# define EINA_SCANF(fmt, arg) __attribute__((__format__ (__scanf__, fmt, arg)))
133# define EINA_FORMAT(fmt) __attribute__((__format_arg__(fmt)))
134# define EINA_CONST __attribute__((__const__))
135# define EINA_NOINSTRUMENT __attribute__((__no_instrument_function__))
132# define EINA_UNLIKELY(exp) __builtin_expect((exp), 0) 136# define EINA_UNLIKELY(exp) __builtin_expect((exp), 0)
133# define EINA_LIKELY(exp) __builtin_expect((exp), 1) 137# define EINA_LIKELY(exp) __builtin_expect((exp), 1)
134# else 138# else
@@ -276,6 +280,16 @@ typedef void (*Eina_Free_Cb)(void *data);
276#define EINA_FREE_CB(Function) ((Eina_Free_Cb)Function) 280#define EINA_FREE_CB(Function) ((Eina_Free_Cb)Function)
277 281
278/** 282/**
283 * @def EINA_C_ARRAY_LENGTH
284 * Macro to return the array length of a standard c array.
285 * For example:
286 * int foo[] = { 0, 1, 2, 3 };
287 * would return 4 and not 4 * sizeof(int).
288 * @since 1.2.0
289 */
290#define EINA_C_ARRAY_LENGTH(arr) (sizeof(arr) / sizeof((arr)[0]))
291
292/**
279 * @} 293 * @}
280 */ 294 */
281 295
diff --git a/libraries/eina/src/include/eina_value.h b/libraries/eina/src/include/eina_value.h
index 846c4ef..341781f 100644
--- a/libraries/eina/src/include/eina_value.h
+++ b/libraries/eina/src/include/eina_value.h
@@ -19,12 +19,244 @@
19#ifndef EINA_VALUE_H_ 19#ifndef EINA_VALUE_H_
20#define EINA_VALUE_H_ 20#define EINA_VALUE_H_
21 21
22#include <stdarg.h>
23
22#include "eina_types.h" 24#include "eina_types.h"
23#include "eina_fp.h" /* defines int64_t and uint64_t */ 25#include "eina_fp.h" /* defines int64_t and uint64_t */
24#include "eina_inarray.h" 26#include "eina_inarray.h"
25#include "eina_list.h" 27#include "eina_list.h"
26#include "eina_hash.h" 28#include "eina_hash.h"
27#include <stdarg.h> 29
30/**
31 * @page eina_value_example_01_page Eina_Value usage
32 * @dontinclude eina_value_01.c
33 *
34 * This very simple example shows how to use some of the basic features of eina
35 * value: setting and getting values, converting between types and printing a
36 * value as a string.
37 *
38 * Our main function starts out with the basic, declaring some variables and
39 * initializing eina:
40 * @until eina_init
41 *
42 * Now we can jump into using eina value. We set a value, get this value and
43 * then print it:
44 * @until printf
45 *
46 * In the above snippet of code we printed an @c int value, we can however print
47 * the value as a string:
48 * @until free
49 *
50 * And once done with a value it's good practice to destroy it:
51 * @until eina_value_flush
52 *
53 * We now reuse @c v to store a string, get its value and print it:
54 * @until printf
55 * @note Since @c s is the value and not returned by @c eina_value_to_string()
56 * we don't need to free it.
57 *
58 * Just because we stored a string doesn't mean we can't use the @c
59 * eina_value_to_string() function, we can and it's important to note that it
60 * will return not the stored string but rather a copy of it(one we have to
61 * free):
62 * @until eina_value_flush
63 *
64 * And now to explore conversions between two type we'll create another value:
65 * @until eina_value_setup
66 *
67 * And make sure @c v and @c otherv have different types:
68 * @until eina_value_setup
69 *
70 * We then set a value to @c v and have it converted, to do this we don't need
71 * to tell to which type we want to convert, we just say were we want to store
72 * the converted value and eina value will figure out what to convert to, and
73 * how:
74 * @until eina_value_convert
75 *
76 * And now let's check the conversion worked:
77 * @until printf
78 *
79 * But converting to strings is not particularly exciting, @c
80 * eina_value_to_string() already did that, so now let's make the conversion the
81 * other way around, from string to @c int:
82 * @until printf
83 *
84 * And once done, destroy the values:
85 * @until }
86 *
87 * Full source code: @ref eina_value_01_c
88 */
89
90/**
91 * @page eina_value_01_c eina_value_01.c
92 * @include eina_value_01.c
93 * @example eina_value_01.c
94 */
95
96/**
97 * @page eina_value_example_02_page Eina_Value struct usage
98 * @dontinclude eina_value_02.c
99 *
100 * This example will examine a hypothetical situation in which we had a
101 * structure(which represented parameters) with two fields, and then need to add
102 * a third field to our structure. If using structs directly we'd need to
103 * rewrite every piece of code that touches the struct, by using eina value, and
104 * thus having the compiler not even know the struct, we can reduce the amount
105 * of changes needed and retain interoperability between the old and new format.
106 *
107 * Our example will start with a function that creates descriptions of both of
108 * our structs for eina value usage. The first step is to create a struct and
109 * describe its members:
110 * @until v1_members[1]
111 * @note We can't pass the types of the members to EINA_VALUE_STRUCT_MEMBER
112 * macro because they are not constant initializers.
113 *
114 * So far it should be pretty easy to understand, we said @c My_Struct_V1 has
115 * two members, one of type @c int and another of type @c char. We now create
116 * the description of the actual struct, again nothing overly complex, we signal
117 * which version of EINA_VALUE_STRUCT we're using, we declare no special
118 * operations, our members and our size:
119 * @until V1_DESC
120 *
121 * We now repeat the process for the second version of our struct, the only
122 * difference is the addition of a third parameter of type @c int :
123 * @until V2_DESC
124 * @until }
125 *
126 * We'll now look at a function that sets the values of our structs. For
127 * simplicity's sake we initialize it we random values, a real world case would
128 * read these values from a file, a database or even from the network. The
129 * fundamental detail here is that this function works for both V1 and V2
130 * structs, this is because setting a parameter that a struct that doesn't have
131 * does nothing without throwing any errors:
132 * @until }
133 * @note While using eina_value_struct_set() with an in-existing parameter
134 * causes no error, it does return #EINA_FALSE, to notify it was not possible
135 * to set the value. This could be used to determine that we're handling a V1
136 * struct and take some action based on that.
137 *
138 * The next thing is to do is see what a function that uses the values of the
139 * struct looks like. We'll again be very simplistic in our usage, we'll just
140 * print the values, but a real world case, might send these values to another
141 * process use them to open a network/database connection or anything else.
142 * Since all versions of the struct have @c param1 and @c param2 we'll
143 * unconditionally use them:
144 * @until printf
145 *
146 * The next step is to conditionally use @c param3, which can fortunately be
147 * done in the same step in which we get it's value:
148 * @until }
149 *
150 * There we've now got functions that can both populate and use values from both
151 * our structs, so now let's actually use them in our main function by creating
152 * a struct of each type, initializing them and them using them:
153 * @until }
154 *
155 * This concludes our example. For the full source code see @ref
156 * eina_value_02_c.
157 */
158
159/**
160 * @page eina_value_02_c eina_value_02.c
161 * @include eina_value_02.c
162 * @example eina_value_02.c
163 */
164
165/**
166 * @page eina_value_example_03_page Eina value custom type example
167 * @dontinclude eina_value_03.c
168 *
169 * For this example we'll be creating our own custom type of eina value. Eina
170 * value can already store struct timeval(man gettimeofday for more information)
171 * but it has no type to store struct timezone, so that's what this example will
172 * do.
173 * @note struct timezone is actually obsolete, so using it in real world
174 * programs is probably not a good idea, but this is an example so, bear with
175 * us.
176 *
177 * To create our own custom eina value type we need to define functions to
178 * do the following operations on it:
179 * @li Setup
180 * @li Flush
181 * @li Copy
182 * @li Compare
183 * @li Set
184 * @li Get
185 * @li Conversion
186 *
187 * Most of this functions are very simple, so let's look at them, starting with
188 * setup which only clear the memory so that we can be certain we won't be using
189 * stale data:
190 * @until }
191 *
192 * Now the flush function, which is even simpler, it does nothing, that's
193 * because there is nothing we need to do, all the necessary steps are taken by
194 * eina value itself:
195 * @until }
196 *
197 * Our next function, copy, is a bit more interesting, but not much, it just
198 * casts our void pointers to struct timezone pointers and does the copy:
199 * @until }
200 * @note By now you might be wondering why our functions receive void pointers
201 * instead of pointers to struct timezone, and this is a good point. The reason
202 * for this is that eina value doesn't know anything about our type so it must
203 * use a generic void pointer, casting that pointer into a proper value is the
204 * job of the implementor of the new type.
205 *
206 * Next we have the comparison function, which compares the @c tz_minuteswest
207 * field of struct timezone, we don't compare @c tz_dsttime because that field
208 * is not used in linux:
209 * @until }
210 *
211 * Next we have setting, this however requires not one but rather two functions,
212 * the reason for this is because to be able to receive arguments of any type
213 * eina value uses @ref https://wikipedia.org/wiki/Variadic_functions "variadic
214 * functions", so we need a function to get the argument from a va_list and
215 * another to actually to the setting.
216 *
217 * Lets first look at the pset function which sets the received value to a
218 * pointer:
219 * @until }
220 *
221 * Next we have the vset function which get the argument from the va_list and
222 * passes it to the pset function:
223 * @until }
224 *
225 * And now the function to get the value, a very simple copying of the value to
226 * the given pointer:
227 * @until }
228 *
229 * And finally our conversion function, this is our longest and most interesting
230 * one. For numeric type we simply assign the value of @c tz_minuteswest to the
231 * new type and call a set function using it:
232 * @until EINA_VALUE_TYPE_DOUBLE
233 * @until return
234 * @note It would be a good idea to add checks for over and underflow for these
235 * types and return #EINA_FALSE in thoses cases, we omit this here for brevity.
236 *
237 * For string types we use @c snprintf() to format our @c tz_minuteswest field
238 * and put it in a string(again @c tz_dsttime is ignored because it's not used):
239 * @until }
240 *
241 * Finally we handle any other types by returning an error in that case:
242 * @until }
243 *
244 * Now that we have all the functions, we can populate an @c Eina_Value_Type to
245 * later use it with @c eina_value_setup():
246 * @until }
247 *
248 * We can now finally use our new TZ_TYPE with eina value, so lets conclude our
249 * example by practicing that by setting its value and printing it:
250 * @until }
251 *
252 * For the full source code see @ref eina_value_03_c.
253 */
254
255/**
256 * @page eina_value_03_c eina_value_03.c
257 * @include eina_value_03.c
258 * @example eina_value_03.c
259 */
28 260
29/** 261/**
30 * @addtogroup Eina_Data_Types_Group Data Types 262 * @addtogroup Eina_Data_Types_Group Data Types
@@ -43,6 +275,24 @@
43/** 275/**
44 * @defgroup Eina_Value_Group Generic Value Storage 276 * @defgroup Eina_Value_Group Generic Value Storage
45 * 277 *
278 * Abstracts generic data storage and access to it in an extensible
279 * and efficient way.
280 *
281 * It comes with pre-defined types for numbers, array, list, hash,
282 * blob and structs. It is able to convert between data types,
283 * including to string.
284 *
285 * It is meant for simple data types, providing uniform access and
286 * release functions, useful to exchange data preserving their
287 * types. For more complex hierarchical data, with properties and
288 * children, reference counting, inheritance and interfaces, see @ref
289 * Eina_Model_Group.
290 *
291 * Examples of usage of the Eina_Value API:
292 * @li @ref eina_value_example_01_page
293 * @li @ref eina_value_example_02_page
294 * @li @ref eina_value_example_03_page
295 *
46 * @{ 296 * @{
47 */ 297 */
48 298
@@ -67,6 +317,9 @@ typedef struct _Eina_Value_Type Eina_Value_Type;
67 * @typedef Eina_Value_Union 317 * @typedef Eina_Value_Union
68 * Union of all known value types. 318 * Union of all known value types.
69 * 319 *
320 * This is only used to specify the minimum payload memory for #Eina_Value.
321 *
322 * @internal
70 * @since 1.2 323 * @since 1.2
71 */ 324 */
72typedef union _Eina_Value_Union Eina_Value_Union; 325typedef union _Eina_Value_Union Eina_Value_Union;
@@ -75,6 +328,9 @@ typedef union _Eina_Value_Union Eina_Value_Union;
75 * @union _Eina_Value_Union 328 * @union _Eina_Value_Union
76 * All possible value types. 329 * All possible value types.
77 * 330 *
331 * This is only used to specify the minimum payload memory for #Eina_Value.
332 *
333 * @internal
78 * @since 1.2 334 * @since 1.2
79 */ 335 */
80union _Eina_Value_Union 336union _Eina_Value_Union
@@ -117,6 +373,15 @@ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_UINT;
117EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_ULONG; 373EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_ULONG;
118 374
119/** 375/**
376 * @var EINA_VALUE_TYPE_TIMESTAMP
377 * manages unsigned long type used for timestamps.
378 * @note this is identical in function to EINA_VALUE_TYPE_ULONG
379 *
380 * @since 1.2
381 */
382EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_TIMESTAMP;
383
384/**
120 * @var EINA_VALUE_TYPE_UINT64 385 * @var EINA_VALUE_TYPE_UINT64
121 * manages unsigned integer of 64 bits type. 386 * manages unsigned integer of 64 bits type.
122 * 387 *
@@ -206,10 +471,11 @@ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_STRING;
206 * @li eina_value_array_pget() and eina_value_array_pset() 471 * @li eina_value_array_pget() and eina_value_array_pset()
207 * 472 *
208 * eina_value_set() takes an #Eina_Value_Array where just @c subtype 473 * eina_value_set() takes an #Eina_Value_Array where just @c subtype
209 * and @c step are used. If there is an @c array, it will be adopted 474 * and @c step are used. If there is an @c array, it will be copied
210 * and its contents must be properly configurable as @c subtype 475 * (including each item) and its contents must be properly
211 * expects. eina_value_pset() takes a pointer to an #Eina_Value_Array. 476 * configurable as @c subtype expects. eina_value_pset() takes a
212 * For your convenience, use eina_value_array_setup(). 477 * pointer to an #Eina_Value_Array. For your convenience, use
478 * eina_value_array_setup().
213 * 479 *
214 * eina_value_get() and eina_value_pget() takes a pointer to 480 * eina_value_get() and eina_value_pget() takes a pointer to
215 * #Eina_Value_Array, it's an exact copy of the current structure in 481 * #Eina_Value_Array, it's an exact copy of the current structure in
@@ -228,10 +494,11 @@ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_ARRAY;
228 * @li eina_value_list_pget() and eina_value_list_pset() 494 * @li eina_value_list_pget() and eina_value_list_pset()
229 * 495 *
230 * eina_value_set() takes an #Eina_Value_List where just @c subtype is 496 * eina_value_set() takes an #Eina_Value_List where just @c subtype is
231 * used. If there is an @c list, it will be adopted and its contents 497 * used. If there is an @c list, it will be copied (including each
232 * must be properly configurable as @c subtype 498 * item) and its contents must be properly configurable as @c
233 * expects. eina_value_pset() takes a pointer to an #Eina_Value_List. 499 * subtype expects. eina_value_pset() takes a pointer to an
234 * For your convenience, use eina_value_list_setup(). 500 * #Eina_Value_List. For your convenience, use
501 * eina_value_list_setup().
235 * 502 *
236 * eina_value_get() and eina_value_pget() takes a pointer to 503 * eina_value_get() and eina_value_pget() takes a pointer to
237 * #Eina_Value_List, it's an exact copy of the current structure in 504 * #Eina_Value_List, it's an exact copy of the current structure in
@@ -251,9 +518,9 @@ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_LIST;
251 * 518 *
252 * eina_value_set() takes an #Eina_Value_Hash where just @c subtype 519 * eina_value_set() takes an #Eina_Value_Hash where just @c subtype
253 * and @c buckets_power_size are used. If there is an @c hash, it will 520 * and @c buckets_power_size are used. If there is an @c hash, it will
254 * be adopted and its contents must be properly configurable as @c 521 * be copied (including each item) and its contents must be
255 * subtype expects. eina_value_pset() takes a pointer to an 522 * properly configurable as @c subtype expects. eina_value_pset()
256 * #Eina_Value_Hash. For your convenience, use 523 * takes a pointer to an #Eina_Value_Hash. For your convenience, use
257 * eina_value_hash_setup(). 524 * eina_value_hash_setup().
258 * 525 *
259 * eina_value_get() and eina_value_pget() takes a pointer to 526 * eina_value_get() and eina_value_pget() takes a pointer to
@@ -310,9 +577,10 @@ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_BLOB;
310 * @li eina_value_struct_pget() and eina_value_struct_pset() 577 * @li eina_value_struct_pget() and eina_value_struct_pset()
311 * 578 *
312 * eina_value_set() takes an #Eina_Value_Struct where just @c desc is 579 * eina_value_set() takes an #Eina_Value_Struct where just @c desc is
313 * used. If there is an @c memory, it will be adopted and its contents 580 * used. If there is an @c memory, it will be copied (including each
314 * must be properly configurable as @c desc expects. eina_value_pset() 581 * member) and its contents must be properly configurable as @c desc
315 * takes a pointer to an #Eina_Value_Struct. For your convenience, use 582 * expects. eina_value_pset() takes a pointer to an
583 * #Eina_Value_Struct. For your convenience, use
316 * eina_value_struct_setup(). 584 * eina_value_struct_setup().
317 * 585 *
318 * eina_value_get() and eina_value_pget() takes a pointer to 586 * eina_value_get() and eina_value_pget() takes a pointer to
@@ -324,6 +592,23 @@ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_BLOB;
324EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_STRUCT; 592EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_STRUCT;
325 593
326/** 594/**
595 * @var EINA_VALUE_TYPE_MODEL
596 *
597 * manages Eina_Model type. Use the value get/set to change the model
598 * in use, it will increase the reference while in use by the value.
599 *
600 * eina_value_set() takes a pointer to #Eina_Model, increasing the
601 * reference.
602 *
603 * eina_value_get() takes a pointer to pointer to #Eina_Model, it's an
604 * exact copy of the current model, no copies are done, no references
605 * are increased.
606 *
607 * @since 1.2
608 */
609EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_MODEL;
610
611/**
327 * @var EINA_ERROR_VALUE_FAILED 612 * @var EINA_ERROR_VALUE_FAILED
328 * Error identifier corresponding to value check failure. 613 * Error identifier corresponding to value check failure.
329 * 614 *
@@ -435,7 +720,7 @@ static inline void eina_value_flush(Eina_Value *value) EINA_ARG_NONNULL(1);
435 * @param copy destination value object 720 * @param copy destination value object
436 * @return #EINA_TRUE on success, #EINA_FALSE otherwise. 721 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
437 * 722 *
438 * The @a copy object is considered internalized and its existing 723 * The @a copy object is considered uninitialized and its existing
439 * contents are overwritten (just as if eina_value_flush() was called on 724 * contents are overwritten (just as if eina_value_flush() was called on
440 * it). 725 * it).
441 * 726 *
@@ -812,8 +1097,9 @@ static inline const Eina_Value_Type *eina_value_type_get(const Eina_Value *value
812 1097
813/** 1098/**
814 * @typedef Eina_Value_Array 1099 * @typedef Eina_Value_Array
815 * Value type for #EINA_VALUE_TYPE_ARRAY 1100 * Value type for #EINA_VALUE_TYPE_ARRAY.
816 * 1101 *
1102 * @see #_Eina_Value_Array explains fields.
817 * @since 1.2 1103 * @since 1.2
818 */ 1104 */
819typedef struct _Eina_Value_Array Eina_Value_Array; 1105typedef struct _Eina_Value_Array Eina_Value_Array;
@@ -821,6 +1107,7 @@ typedef struct _Eina_Value_Array Eina_Value_Array;
821/** 1107/**
822 * @struct _Eina_Value_Array 1108 * @struct _Eina_Value_Array
823 * Used to store the array and its subtype. 1109 * Used to store the array and its subtype.
1110 * @since 1.2
824 */ 1111 */
825struct _Eina_Value_Array 1112struct _Eina_Value_Array
826{ 1113{
@@ -1433,6 +1720,22 @@ static inline Eina_Bool eina_value_array_pappend(Eina_Value *value,
1433 const void *ptr) EINA_ARG_NONNULL(1); 1720 const void *ptr) EINA_ARG_NONNULL(1);
1434 1721
1435/** 1722/**
1723 * @brief Retrieves a value from the array as an Eina_Value copy.
1724 * @param value source value object
1725 * @param position index of the member
1726 * @param dst where to return the array member
1727 * @return #EINA_TRUE on success, #EINA_FALSE otherwise.
1728 *
1729 * The argument @a dst is considered uninitialized and it's setup to
1730 * the type of the member.
1731 *
1732 * @since 1.2
1733 */
1734static inline Eina_Bool eina_value_array_value_get(const Eina_Value *src,
1735 unsigned int position,
1736 Eina_Value *dst) EINA_ARG_NONNULL(1, 3);
1737
1738/**
1436 * @} 1739 * @}
1437 */ 1740 */
1438 1741
@@ -1446,8 +1749,9 @@ static inline Eina_Bool eina_value_array_pappend(Eina_Value *value,
1446 1749
1447/** 1750/**
1448 * @typedef Eina_Value_List 1751 * @typedef Eina_Value_List
1449 * Value type for #EINA_VALUE_TYPE_LIST 1752 * Value type for #EINA_VALUE_TYPE_LIST.
1450 * 1753 *
1754 * @see #_Eina_Value_List explains fields.
1451 * @since 1.2 1755 * @since 1.2
1452 */ 1756 */
1453typedef struct _Eina_Value_List Eina_Value_List; 1757typedef struct _Eina_Value_List Eina_Value_List;
@@ -1455,6 +1759,7 @@ typedef struct _Eina_Value_List Eina_Value_List;
1455/** 1759/**
1456 * @struct _Eina_Value_List 1760 * @struct _Eina_Value_List
1457 * Used to store the list and its subtype. 1761 * Used to store the list and its subtype.
1762 * @since 1.2
1458 */ 1763 */
1459struct _Eina_Value_List 1764struct _Eina_Value_List
1460{ 1765{
@@ -2067,8 +2372,9 @@ static inline Eina_Bool eina_value_list_pappend(Eina_Value *value,
2067 2372
2068/** 2373/**
2069 * @typedef Eina_Value_Hash 2374 * @typedef Eina_Value_Hash
2070 * Value type for #EINA_VALUE_TYPE_HASH 2375 * Value type for #EINA_VALUE_TYPE_HASH.
2071 * 2376 *
2377 * @see #_Eina_Value_Hash explains fields.
2072 * @since 1.2 2378 * @since 1.2
2073 */ 2379 */
2074typedef struct _Eina_Value_Hash Eina_Value_Hash; 2380typedef struct _Eina_Value_Hash Eina_Value_Hash;
@@ -2076,6 +2382,7 @@ typedef struct _Eina_Value_Hash Eina_Value_Hash;
2076/** 2382/**
2077 * @struct _Eina_Value_Hash 2383 * @struct _Eina_Value_Hash
2078 * Used to store the hash and its subtype. 2384 * Used to store the hash and its subtype.
2385 * @since 1.2
2079 */ 2386 */
2080struct _Eina_Value_Hash 2387struct _Eina_Value_Hash
2081{ 2388{
@@ -2409,19 +2716,25 @@ static inline Eina_Bool eina_value_hash_pget(const Eina_Value *value,
2409/** 2716/**
2410 * @typedef Eina_Value_Blob_Operations 2717 * @typedef Eina_Value_Blob_Operations
2411 * How to manage blob. Any @c NULL callback is ignored. 2718 * How to manage blob. Any @c NULL callback is ignored.
2719 * @see #_Eina_Value_Blob_Operations explains fields.
2412 * @since 1.2 2720 * @since 1.2
2413 */ 2721 */
2414typedef struct _Eina_Value_Blob_Operations Eina_Value_Blob_Operations; 2722typedef struct _Eina_Value_Blob_Operations Eina_Value_Blob_Operations;
2415 2723
2416/** 2724/**
2725 * @def EINA_VALUE_BLOB_OPERATIONS_VERSION
2726 * Current API version, used to validate #_Eina_Value_Blob_Operations.
2727 */
2728#define EINA_VALUE_BLOB_OPERATIONS_VERSION (1)
2729
2730/**
2417 * @struct _Eina_Value_Blob_Operations 2731 * @struct _Eina_Value_Blob_Operations
2418 * How to manage blob. Any @c NULL callback is ignored. 2732 * How to manage blob. Any @c NULL callback is ignored.
2419 * @since 1.2 2733 * @since 1.2
2420 */ 2734 */
2421struct _Eina_Value_Blob_Operations 2735struct _Eina_Value_Blob_Operations
2422{ 2736{
2423#define EINA_VALUE_BLOB_OPERATIONS_VERSION (1) 2737 unsigned int version; /**< must be #EINA_VALUE_BLOB_OPERATIONS_VERSION */
2424 unsigned int version; /**< must be EINA_VALUE_BLOB_OPERATIONS_VERSION */
2425 void (*free)(const Eina_Value_Blob_Operations *ops, void *memory, size_t size); 2738 void (*free)(const Eina_Value_Blob_Operations *ops, void *memory, size_t size);
2426 void *(*copy)(const Eina_Value_Blob_Operations *ops, const void *memory, size_t size); 2739 void *(*copy)(const Eina_Value_Blob_Operations *ops, const void *memory, size_t size);
2427 int (*compare)(const Eina_Value_Blob_Operations *ops, const void *data1, size_t size_data1, const void *data2, size_t size_data2); 2740 int (*compare)(const Eina_Value_Blob_Operations *ops, const void *data1, size_t size_data1, const void *data2, size_t size_data2);
@@ -2441,12 +2754,16 @@ EAPI extern const Eina_Value_Blob_Operations *EINA_VALUE_BLOB_OPERATIONS_MALLOC;
2441 2754
2442/** 2755/**
2443 * @typedef Eina_Value_Blob 2756 * @typedef Eina_Value_Blob
2757 * Value type for #EINA_VALUE_TYPE_BLOB.
2758 *
2759 * @see #_Eina_Value_Blob explains fields.
2444 * @since 1.2 2760 * @since 1.2
2445 */ 2761 */
2446typedef struct _Eina_Value_Blob Eina_Value_Blob; 2762typedef struct _Eina_Value_Blob Eina_Value_Blob;
2447 2763
2448/** 2764/**
2449 * @struct _Eina_Value_Blob 2765 * @struct _Eina_Value_Blob
2766 * Used to store the blob information and management operations.
2450 * @since 1.2 2767 * @since 1.2
2451 */ 2768 */
2452struct _Eina_Value_Blob 2769struct _Eina_Value_Blob
@@ -2469,6 +2786,11 @@ struct _Eina_Value_Blob
2469/** 2786/**
2470 * @typedef Eina_Value_Struct_Operations 2787 * @typedef Eina_Value_Struct_Operations
2471 * How to manage struct. Any @c NULL callback is ignored. 2788 * How to manage struct. Any @c NULL callback is ignored.
2789 *
2790 * A structure can specify alternative methods to allocate, free and
2791 * copy itself. See structure definition for all methods.
2792 *
2793 * @see #_Eina_Value_Struct_Operations explains fields.
2472 * @since 1.2 2794 * @since 1.2
2473 */ 2795 */
2474typedef struct _Eina_Value_Struct_Operations Eina_Value_Struct_Operations; 2796typedef struct _Eina_Value_Struct_Operations Eina_Value_Struct_Operations;
@@ -2476,6 +2798,12 @@ typedef struct _Eina_Value_Struct_Operations Eina_Value_Struct_Operations;
2476/** 2798/**
2477 * @typedef Eina_Value_Struct_Member 2799 * @typedef Eina_Value_Struct_Member
2478 * Describes a single member of struct. 2800 * Describes a single member of struct.
2801 *
2802 * The member holds a name, type and its byte offset within the struct
2803 * memory. Most Eina_Value_Struct functions takes the member name as
2804 * parameter, as in eina_value_struct_set().
2805 *
2806 * @see #_Eina_Value_Struct_Member explains fields.
2479 * @since 1.2 2807 * @since 1.2
2480 */ 2808 */
2481typedef struct _Eina_Value_Struct_Member Eina_Value_Struct_Member; 2809typedef struct _Eina_Value_Struct_Member Eina_Value_Struct_Member;
@@ -2483,30 +2811,39 @@ typedef struct _Eina_Value_Struct_Member Eina_Value_Struct_Member;
2483/** 2811/**
2484 * @typedef Eina_Value_Struct_Desc 2812 * @typedef Eina_Value_Struct_Desc
2485 * Describes the struct by listing its size, members and operations. 2813 * Describes the struct by listing its size, members and operations.
2814 * @see #_Eina_Value_Struct_Desc explains fields.
2486 * @since 1.2 2815 * @since 1.2
2487 */ 2816 */
2488typedef struct _Eina_Value_Struct_Desc Eina_Value_Struct_Desc; 2817typedef struct _Eina_Value_Struct_Desc Eina_Value_Struct_Desc;
2489 2818
2490/** 2819/**
2491 * @typedef Eina_Value_Struct 2820 * @typedef Eina_Value_Struct
2821 * Value type for #EINA_VALUE_TYPE_STRUCT.
2822 *
2823 * @see #_Eina_Value_Struct explains fields.
2492 * @since 1.2 2824 * @since 1.2
2493 */ 2825 */
2494typedef struct _Eina_Value_Struct Eina_Value_Struct; 2826typedef struct _Eina_Value_Struct Eina_Value_Struct;
2495 2827
2496/** 2828/**
2829 * @def EINA_VALUE_STRUCT_OPERATIONS_VERSION
2830 * Current API version, used to validate #_Eina_Value_Struct_Operations.
2831 */
2832#define EINA_VALUE_STRUCT_OPERATIONS_VERSION (1)
2833
2834/**
2497 * @struct _Eina_Value_Struct_Operations 2835 * @struct _Eina_Value_Struct_Operations
2498 * How to manage struct. Any @c NULL callback is ignored. 2836 * How to manage struct. Any @c NULL callback is ignored.
2499 * @since 1.2 2837 * @since 1.2
2500 */ 2838 */
2501struct _Eina_Value_Struct_Operations 2839struct _Eina_Value_Struct_Operations
2502{ 2840{
2503#define EINA_VALUE_STRUCT_OPERATIONS_VERSION (1) 2841 unsigned int version; /**< must be #EINA_VALUE_STRUCT_OPERATIONS_VERSION */
2504 unsigned int version; /**< must be EINA_VALUE_STRUCT_OPERATIONS_VERSION */ 2842 void *(*alloc)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc); /**< How to allocate struct memory to be managed by the Eina_Value */
2505 void *(*alloc)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc); 2843 void (*free)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc, void *memory); /**< How to release memory managed by the Eina_Value */
2506 void (*free)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc, void *memory); 2844 void *(*copy)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc, const void *memory); /**< How to copy struct memory from an existing Eina_Value, if not provided alloc() will be used, then every member is copied using eina_value_type_copy() with member's type. */
2507 void *(*copy)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc, const void *memory); 2845 int (*compare)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc, const void *data1, const void *data2); /**< How to compare two struct memories */
2508 int (*compare)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc, const void *data1, const void *data2); 2846 const Eina_Value_Struct_Member *(*find_member)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc, const char *name); /**< How to find description for member. For huge structures consider using binary search, stringshared, hash or gperf. The default function does linear search using strcmp(). */
2509 const Eina_Value_Struct_Member *(*find_member)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc, const char *name); /**< replace the function to find description for member. For huge structures consider using binary search, stringshared, hash or gperf. The default function does linear search using strcmp(). */
2510}; 2847};
2511 2848
2512/** 2849/**
@@ -2539,23 +2876,48 @@ EAPI extern const Eina_Value_Struct_Operations *EINA_VALUE_STRUCT_OPERATIONS_STR
2539 2876
2540/** 2877/**
2541 * @struct _Eina_Value_Struct_Member 2878 * @struct _Eina_Value_Struct_Member
2879 * Describes a single member of struct.
2880 *
2881 * The name is used to lookup the member description. This is done as
2882 * specified as _Eina_Value_Struct_Operations::find_member(). For
2883 * structures with huge number of members, consider using a better
2884 * find_member function to quickly finding it! There are two helper
2885 * operations provided to help this:
2886 * #EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH and
2887 * #EINA_VALUE_STRUCT_OPERATIONS_STRINGSHARE, both depend on properly
2888 * set #_Eina_Value_Struct_Desc and #_Eina_Value_Struct_Member.
2889 *
2890 * @see #EINA_VALUE_STRUCT_MEMBER
2891 * @see #EINA_VALUE_STRUCT_MEMBER_SENTINEL
2892 *
2542 * @since 1.2 2893 * @since 1.2
2543 */ 2894 */
2544struct _Eina_Value_Struct_Member 2895struct _Eina_Value_Struct_Member
2545{ 2896{
2546 const char *name; 2897 const char *name; /**< member name, used in lookups such as eina_value_struct_get() */
2547 const Eina_Value_Type *type; 2898 const Eina_Value_Type *type; /**< how to use this member */
2548 unsigned int offset; 2899 unsigned int offset; /**< where this member is located within the structure memory */
2549}; 2900};
2550 2901
2551/** 2902/**
2903 * @def EINA_VALUE_STRUCT_DESC_VERSION
2904 * Current API version, used to validate #_Eina_Value_Struct_Desc.
2905 */
2906#define EINA_VALUE_STRUCT_DESC_VERSION (1)
2907
2908/**
2552 * @struct _Eina_Value_Struct_Desc 2909 * @struct _Eina_Value_Struct_Desc
2910 * Describes the struct by listing its size, members and operations.
2911 *
2912 * This is the root of Eina_Value knowledge about the memory it's
2913 * handling as a structure. It adds introspection, saying the byte
2914 * size of the structure, its members and how to manage such members.
2915 *
2553 * @since 1.2 2916 * @since 1.2
2554 */ 2917 */
2555struct _Eina_Value_Struct_Desc 2918struct _Eina_Value_Struct_Desc
2556{ 2919{
2557#define EINA_VALUE_STRUCT_DESC_VERSION (1) 2920 unsigned int version; /**< must be #EINA_VALUE_STRUCT_DESC_VERSION */
2558 unsigned int version; /**< must be EINA_VALUE_STRUCT_DESC_VERSION */
2559 const Eina_Value_Struct_Operations *ops; /**< operations, if @c NULL defaults will be used. You may use operations to optimize member lookup using binary search or gperf hash. */ 2921 const Eina_Value_Struct_Operations *ops; /**< operations, if @c NULL defaults will be used. You may use operations to optimize member lookup using binary search or gperf hash. */
2560 const Eina_Value_Struct_Member *members; /**< array of member descriptions, if @c member_count is zero, then it must be @c NULL terminated. */ 2922 const Eina_Value_Struct_Member *members; /**< array of member descriptions, if @c member_count is zero, then it must be @c NULL terminated. */
2561 unsigned int member_count; /**< if > 0, specifies number of members. If zero then @c members must be NULL terminated. */ 2923 unsigned int member_count; /**< if > 0, specifies number of members. If zero then @c members must be NULL terminated. */
@@ -2586,12 +2948,13 @@ struct _Eina_Value_Struct_Desc
2586 2948
2587/** 2949/**
2588 * @struct _Eina_Value_Struct 2950 * @struct _Eina_Value_Struct
2951 * Used to store the memory and its description.
2589 * @since 1.2 2952 * @since 1.2
2590 */ 2953 */
2591struct _Eina_Value_Struct 2954struct _Eina_Value_Struct
2592{ 2955{
2593 const Eina_Value_Struct_Desc *desc; 2956 const Eina_Value_Struct_Desc *desc; /**< How to manage the structure */
2594 void *memory; 2957 void *memory; /**< The managed structure memory */
2595}; 2958};
2596 2959
2597/** 2960/**
@@ -2702,7 +3065,7 @@ static inline Eina_Bool eina_value_struct_setup(Eina_Value *value,
2702 */ 3065 */
2703static inline Eina_Bool eina_value_struct_set(Eina_Value *value, 3066static inline Eina_Bool eina_value_struct_set(Eina_Value *value,
2704 const char *name, 3067 const char *name,
2705 ...) EINA_ARG_NONNULL(1); 3068 ...) EINA_ARG_NONNULL(1, 2);
2706 3069
2707/** 3070/**
2708 * @brief Get the generic value from an struct member. 3071 * @brief Get the generic value from an struct member.
@@ -2770,7 +3133,7 @@ static inline Eina_Bool eina_value_struct_set(Eina_Value *value,
2770 */ 3133 */
2771static inline Eina_Bool eina_value_struct_get(const Eina_Value *value, 3134static inline Eina_Bool eina_value_struct_get(const Eina_Value *value,
2772 const char *name, 3135 const char *name,
2773 ...) EINA_ARG_NONNULL(1); 3136 ...) EINA_ARG_NONNULL(1, 2);
2774 3137
2775/** 3138/**
2776 * @brief Set the generic value in an struct member. 3139 * @brief Set the generic value in an struct member.
@@ -2786,7 +3149,7 @@ static inline Eina_Bool eina_value_struct_get(const Eina_Value *value,
2786 */ 3149 */
2787static inline Eina_Bool eina_value_struct_vset(Eina_Value *value, 3150static inline Eina_Bool eina_value_struct_vset(Eina_Value *value,
2788 const char *name, 3151 const char *name,
2789 va_list args) EINA_ARG_NONNULL(1); 3152 va_list args) EINA_ARG_NONNULL(1, 2);
2790 3153
2791/** 3154/**
2792 * @brief Get the generic value from an struct member. 3155 * @brief Get the generic value from an struct member.
@@ -2808,7 +3171,7 @@ static inline Eina_Bool eina_value_struct_vset(Eina_Value *value,
2808 */ 3171 */
2809static inline Eina_Bool eina_value_struct_vget(const Eina_Value *value, 3172static inline Eina_Bool eina_value_struct_vget(const Eina_Value *value,
2810 const char *name, 3173 const char *name,
2811 va_list args) EINA_ARG_NONNULL(1); 3174 va_list args) EINA_ARG_NONNULL(1, 2);
2812 3175
2813/** 3176/**
2814 * @brief Set the generic value in an struct member from pointer. 3177 * @brief Set the generic value in an struct member from pointer.
@@ -2875,7 +3238,7 @@ static inline Eina_Bool eina_value_struct_vget(const Eina_Value *value,
2875 */ 3238 */
2876static inline Eina_Bool eina_value_struct_pset(Eina_Value *value, 3239static inline Eina_Bool eina_value_struct_pset(Eina_Value *value,
2877 const char *name, 3240 const char *name,
2878 const void *ptr) EINA_ARG_NONNULL(1, 3); 3241 const void *ptr) EINA_ARG_NONNULL(1, 2, 3);
2879 3242
2880/** 3243/**
2881 * @brief Get the generic value to pointer from an struct member. 3244 * @brief Get the generic value to pointer from an struct member.
@@ -2944,7 +3307,62 @@ static inline Eina_Bool eina_value_struct_pset(Eina_Value *value,
2944 */ 3307 */
2945static inline Eina_Bool eina_value_struct_pget(const Eina_Value *value, 3308static inline Eina_Bool eina_value_struct_pget(const Eina_Value *value,
2946 const char *name, 3309 const char *name,
2947 void *ptr) EINA_ARG_NONNULL(1, 3); 3310 void *ptr) EINA_ARG_NONNULL(1, 2, 3);
3311
3312/**
3313 * @brief Get the member as Eina_Value copy
3314 * @param src source value object
3315 * @param name name to find the member
3316 * @param dst where to return the member value.
3317 *
3318 * The argument @a dst is considered uninitialized and it's setup to
3319 * the type of the member.
3320 *
3321 * @since 1.2
3322 */
3323static inline Eina_Bool eina_value_struct_value_get(const Eina_Value *src,
3324 const char *name,
3325 Eina_Value *dst) EINA_ARG_NONNULL(1, 2, 3);
3326
3327/**
3328 * @brief Set the member from Eina_Value source
3329 * @param dst destination value object
3330 * @param name name to find the member
3331 * @param src source value
3332 *
3333 * @since 1.2
3334 */
3335static inline Eina_Bool eina_value_struct_value_set(Eina_Value *dst,
3336 const char *name,
3337 const Eina_Value *src) EINA_ARG_NONNULL(1, 2, 3);
3338
3339/**
3340 * @brief Get the member as Eina_Value copy given its member description.
3341 * @param src source value object
3342 * @param member the member description to use
3343 * @param dst where to return the member value.
3344 *
3345 * The argument @a dst is considered uninitialized and it's setup to
3346 * the type of the member.
3347 *
3348 * @since 1.2
3349 */
3350static inline Eina_Bool eina_value_struct_member_value_get(const Eina_Value *src,
3351 const Eina_Value_Struct_Member *member,
3352 Eina_Value *dst) EINA_ARG_NONNULL(1, 2, 3);
3353
3354/**
3355 * @brief Set the member from Eina_Value source
3356 * @param dst destination value object
3357 * @param member the member description to use
3358 * @param src source value
3359 *
3360 * @since 1.2
3361 */
3362static inline Eina_Bool eina_value_struct_member_value_set(Eina_Value *dst,
3363 const Eina_Value_Struct_Member *member,
3364 const Eina_Value *src) EINA_ARG_NONNULL(1, 2, 3);
3365
2948 3366
2949/** 3367/**
2950 * @} 3368 * @}
@@ -2958,6 +3376,12 @@ static inline Eina_Bool eina_value_struct_pget(const Eina_Value *value,
2958 */ 3376 */
2959 3377
2960/** 3378/**
3379 * @def EINA_VALUE_TYPE_VERSION
3380 * Current API version, used to validate type.
3381 */
3382#define EINA_VALUE_TYPE_VERSION (1)
3383
3384/**
2961 * @struct _Eina_Value_Type 3385 * @struct _Eina_Value_Type
2962 * API to access values. 3386 * API to access values.
2963 * 3387 *
@@ -2965,11 +3389,6 @@ static inline Eina_Bool eina_value_struct_pget(const Eina_Value *value,
2965 */ 3389 */
2966struct _Eina_Value_Type 3390struct _Eina_Value_Type
2967{ 3391{
2968 /**
2969 * @def EINA_VALUE_TYPE_VERSION
2970 * Current API version, used to validate type.
2971 */
2972#define EINA_VALUE_TYPE_VERSION (1)
2973 unsigned int version; /**< must be #EINA_VALUE_TYPE_VERSION */ 3392 unsigned int version; /**< must be #EINA_VALUE_TYPE_VERSION */
2974 unsigned int value_size; /**< byte size of value */ 3393 unsigned int value_size; /**< byte size of value */
2975 const char *name; /**< name for debug and introspection */ 3394 const char *name; /**< name for debug and introspection */
diff --git a/libraries/eina/src/lib/Makefile.am b/libraries/eina/src/lib/Makefile.am
index d8c9d20..5de2848 100644
--- a/libraries/eina/src/lib/Makefile.am
+++ b/libraries/eina/src/lib/Makefile.am
@@ -6,8 +6,8 @@ AM_CPPFLAGS = \
6-DPACKAGE_BIN_DIR=\"$(bindir)\" \ 6-DPACKAGE_BIN_DIR=\"$(bindir)\" \
7-DPACKAGE_LIB_DIR=\"$(libdir)\" \ 7-DPACKAGE_LIB_DIR=\"$(libdir)\" \
8-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ 8-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
9@EINA_CPPFLAGS@ \ 9@EFL_EINA_BUILD@ \
10@EFL_EINA_BUILD@ 10@VALGRIND_CFLAGS@
11 11
12base_sources = \ 12base_sources = \
13eina_accessor.c \ 13eina_accessor.c \
@@ -33,6 +33,7 @@ eina_main.c \
33eina_matrixsparse.c \ 33eina_matrixsparse.c \
34eina_mempool.c \ 34eina_mempool.c \
35eina_mmap.c \ 35eina_mmap.c \
36eina_model.c \
36eina_module.c \ 37eina_module.c \
37eina_prefix.c \ 38eina_prefix.c \
38eina_quadtree.c \ 39eina_quadtree.c \
diff --git a/libraries/eina/src/lib/Makefile.in b/libraries/eina/src/lib/Makefile.in
index 878bcbe..f15bb00 100644
--- a/libraries/eina/src/lib/Makefile.in
+++ b/libraries/eina/src/lib/Makefile.in
@@ -49,20 +49,24 @@ host_triplet = @host@
49subdir = src/lib 49subdir = src/lib
50DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 50DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
51ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 51ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
52am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 52am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \
53 $(top_srcdir)/m4/efl_benchmark.m4 \ 53 $(top_srcdir)/m4/eina/eina_check.m4 \
54 $(top_srcdir)/m4/efl_compiler_flag.m4 \ 54 $(top_srcdir)/m4/common/efl_attribute.m4 \
55 $(top_srcdir)/m4/efl_coverage.m4 $(top_srcdir)/m4/efl_cpu.m4 \ 55 $(top_srcdir)/m4/common/efl_benchmark.m4 \
56 $(top_srcdir)/m4/efl_doxygen.m4 \ 56 $(top_srcdir)/m4/common/efl_compiler_flag.m4 \
57 $(top_srcdir)/m4/efl_examples.m4 \ 57 $(top_srcdir)/m4/common/efl_coverage.m4 \
58 $(top_srcdir)/m4/efl_fnmatch.m4 \ 58 $(top_srcdir)/m4/common/efl_cpu.m4 \
59 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 59 $(top_srcdir)/m4/common/efl_doxygen.m4 \
60 $(top_srcdir)/m4/efl_threads.m4 \ 60 $(top_srcdir)/m4/common/efl_examples.m4 \
61 $(top_srcdir)/m4/efl_voltron.m4 $(top_srcdir)/m4/eina_bench.m4 \ 61 $(top_srcdir)/m4/common/efl_fnmatch.m4 \
62 $(top_srcdir)/m4/eina_check.m4 $(top_srcdir)/m4/libtool.m4 \ 62 $(top_srcdir)/m4/common/efl_path_max.m4 \
63 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 63 $(top_srcdir)/m4/common/efl_tests.m4 \
64 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 64 $(top_srcdir)/m4/common/efl_threads.m4 \
65 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac 65 $(top_srcdir)/m4/common/efl_voltron.m4 \
66 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
67 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
68 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
69 $(top_srcdir)/configure.ac
66am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 70am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
67 $(ACLOCAL_M4) 71 $(ACLOCAL_M4)
68mkinstalldirs = $(install_sh) -d 72mkinstalldirs = $(install_sh) -d
@@ -99,13 +103,13 @@ am__libeina_la_SOURCES_DIST = eina_accessor.c eina_array.c \
99 eina_hamster.c eina_hash.c eina_inarray.c eina_inlist.c \ 103 eina_hamster.c eina_hash.c eina_inarray.c eina_inlist.c \
100 eina_iterator.c eina_lalloc.c eina_list.c eina_log.c \ 104 eina_iterator.c eina_lalloc.c eina_list.c eina_log.c \
101 eina_magic.c eina_main.c eina_matrixsparse.c eina_mempool.c \ 105 eina_magic.c eina_main.c eina_matrixsparse.c eina_mempool.c \
102 eina_mmap.c eina_module.c eina_prefix.c eina_quadtree.c \ 106 eina_mmap.c eina_model.c eina_module.c eina_prefix.c \
103 eina_rbtree.c eina_rectangle.c eina_safety_checks.c \ 107 eina_quadtree.c eina_rbtree.c eina_rectangle.c \
104 eina_sched.c eina_share_common.c eina_simple_xml_parser.c \ 108 eina_safety_checks.c eina_sched.c eina_share_common.c \
105 eina_str.c eina_strbuf.c eina_strbuf_common.c \ 109 eina_simple_xml_parser.c eina_str.c eina_strbuf.c \
106 eina_stringshare.c eina_tiler.c eina_unicode.c eina_ustrbuf.c \ 110 eina_strbuf_common.c eina_stringshare.c eina_tiler.c \
107 eina_ustringshare.c eina_value.c eina_xattr.c \ 111 eina_unicode.c eina_ustrbuf.c eina_ustringshare.c eina_value.c \
108 eina_file_win32.c eina_file.c \ 112 eina_xattr.c eina_file_win32.c eina_file.c \
109 $(top_srcdir)/src/modules/mp/buddy/eina_buddy.c \ 113 $(top_srcdir)/src/modules/mp/buddy/eina_buddy.c \
110 $(top_srcdir)/src/modules/mp/chained_pool/eina_chained_mempool.c \ 114 $(top_srcdir)/src/modules/mp/chained_pool/eina_chained_mempool.c \
111 $(top_srcdir)/src/modules/mp/ememoa_fixed/eina_ememoa_fixed.c \ 115 $(top_srcdir)/src/modules/mp/ememoa_fixed/eina_ememoa_fixed.c \
@@ -135,11 +139,11 @@ am__objects_10 = libeina_la-eina_accessor.lo libeina_la-eina_array.lo \
135 libeina_la-eina_list.lo libeina_la-eina_log.lo \ 139 libeina_la-eina_list.lo libeina_la-eina_log.lo \
136 libeina_la-eina_magic.lo libeina_la-eina_main.lo \ 140 libeina_la-eina_magic.lo libeina_la-eina_main.lo \
137 libeina_la-eina_matrixsparse.lo libeina_la-eina_mempool.lo \ 141 libeina_la-eina_matrixsparse.lo libeina_la-eina_mempool.lo \
138 libeina_la-eina_mmap.lo libeina_la-eina_module.lo \ 142 libeina_la-eina_mmap.lo libeina_la-eina_model.lo \
139 libeina_la-eina_prefix.lo libeina_la-eina_quadtree.lo \ 143 libeina_la-eina_module.lo libeina_la-eina_prefix.lo \
140 libeina_la-eina_rbtree.lo libeina_la-eina_rectangle.lo \ 144 libeina_la-eina_quadtree.lo libeina_la-eina_rbtree.lo \
141 libeina_la-eina_safety_checks.lo libeina_la-eina_sched.lo \ 145 libeina_la-eina_rectangle.lo libeina_la-eina_safety_checks.lo \
142 libeina_la-eina_share_common.lo \ 146 libeina_la-eina_sched.lo libeina_la-eina_share_common.lo \
143 libeina_la-eina_simple_xml_parser.lo libeina_la-eina_str.lo \ 147 libeina_la-eina_simple_xml_parser.lo libeina_la-eina_str.lo \
144 libeina_la-eina_strbuf.lo libeina_la-eina_strbuf_common.lo \ 148 libeina_la-eina_strbuf.lo libeina_la-eina_strbuf_common.lo \
145 libeina_la-eina_stringshare.lo libeina_la-eina_tiler.lo \ 149 libeina_la-eina_stringshare.lo libeina_la-eina_tiler.lo \
@@ -236,13 +240,13 @@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
236EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ 240EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
237EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 241EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
238EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ 242EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
243EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@
239EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 244EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
240EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 245EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
241EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 246EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
242EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ 247EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@
243EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ 248EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@
244EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ 249EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@
245EINA_CPPFLAGS = @EINA_CPPFLAGS@
246EINA_LIBS = @EINA_LIBS@ 250EINA_LIBS = @EINA_LIBS@
247EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ 251EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@
248EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ 252EMEMOA_CFLAGS = @EMEMOA_CFLAGS@
@@ -252,6 +256,8 @@ ESCAPE_LIBS = @ESCAPE_LIBS@
252EVIL_CFLAGS = @EVIL_CFLAGS@ 256EVIL_CFLAGS = @EVIL_CFLAGS@
253EVIL_LIBS = @EVIL_LIBS@ 257EVIL_LIBS = @EVIL_LIBS@
254EXEEXT = @EXEEXT@ 258EXEEXT = @EXEEXT@
259EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
260EXOTIC_LIBS = @EXOTIC_LIBS@
255FGREP = @FGREP@ 261FGREP = @FGREP@
256GLIB_CFLAGS = @GLIB_CFLAGS@ 262GLIB_CFLAGS = @GLIB_CFLAGS@
257GLIB_LIBS = @GLIB_LIBS@ 263GLIB_LIBS = @GLIB_LIBS@
@@ -287,6 +293,8 @@ PACKAGE_URL = @PACKAGE_URL@
287PACKAGE_VERSION = @PACKAGE_VERSION@ 293PACKAGE_VERSION = @PACKAGE_VERSION@
288PATH_SEPARATOR = @PATH_SEPARATOR@ 294PATH_SEPARATOR = @PATH_SEPARATOR@
289PKG_CONFIG = @PKG_CONFIG@ 295PKG_CONFIG = @PKG_CONFIG@
296PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
297PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
290RANLIB = @RANLIB@ 298RANLIB = @RANLIB@
291SED = @SED@ 299SED = @SED@
292SET_MAKE = @SET_MAKE@ 300SET_MAKE = @SET_MAKE@
@@ -367,23 +375,24 @@ AM_CPPFLAGS = \
367-DPACKAGE_BIN_DIR=\"$(bindir)\" \ 375-DPACKAGE_BIN_DIR=\"$(bindir)\" \
368-DPACKAGE_LIB_DIR=\"$(libdir)\" \ 376-DPACKAGE_LIB_DIR=\"$(libdir)\" \
369-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ 377-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
370@EINA_CPPFLAGS@ \ 378@EFL_EINA_BUILD@ \
371@EFL_EINA_BUILD@ 379@VALGRIND_CFLAGS@
372 380
373base_sources = eina_accessor.c eina_array.c eina_benchmark.c \ 381base_sources = eina_accessor.c eina_array.c eina_benchmark.c \
374 eina_binbuf.c eina_binshare.c eina_convert.c eina_counter.c \ 382 eina_binbuf.c eina_binshare.c eina_convert.c eina_counter.c \
375 eina_cpu.c eina_error.c eina_fp.c eina_hamster.c eina_hash.c \ 383 eina_cpu.c eina_error.c eina_fp.c eina_hamster.c eina_hash.c \
376 eina_inarray.c eina_inlist.c eina_iterator.c eina_lalloc.c \ 384 eina_inarray.c eina_inlist.c eina_iterator.c eina_lalloc.c \
377 eina_list.c eina_log.c eina_magic.c eina_main.c \ 385 eina_list.c eina_log.c eina_magic.c eina_main.c \
378 eina_matrixsparse.c eina_mempool.c eina_mmap.c eina_module.c \ 386 eina_matrixsparse.c eina_mempool.c eina_mmap.c eina_model.c \
379 eina_prefix.c eina_quadtree.c eina_rbtree.c eina_rectangle.c \ 387 eina_module.c eina_prefix.c eina_quadtree.c eina_rbtree.c \
380 eina_safety_checks.c eina_sched.c eina_share_common.c \ 388 eina_rectangle.c eina_safety_checks.c eina_sched.c \
381 eina_simple_xml_parser.c eina_str.c eina_strbuf.c \ 389 eina_share_common.c eina_simple_xml_parser.c eina_str.c \
382 eina_strbuf_common.c eina_stringshare.c eina_tiler.c \ 390 eina_strbuf.c eina_strbuf_common.c eina_stringshare.c \
383 eina_unicode.c eina_ustrbuf.c eina_ustringshare.c eina_value.c \ 391 eina_tiler.c eina_unicode.c eina_ustrbuf.c eina_ustringshare.c \
384 eina_xattr.c $(am__append_1) $(am__append_2) $(am__append_3) \ 392 eina_value.c eina_xattr.c $(am__append_1) $(am__append_2) \
385 $(am__append_4) $(am__append_5) $(am__append_6) \ 393 $(am__append_3) $(am__append_4) $(am__append_5) \
386 $(am__append_7) $(am__append_8) $(am__append_9) 394 $(am__append_6) $(am__append_7) $(am__append_8) \
395 $(am__append_9)
387EXTRA_DIST = \ 396EXTRA_DIST = \
388eina_share_common.h \ 397eina_share_common.h \
389eina_private.h \ 398eina_private.h \
@@ -502,6 +511,7 @@ distclean-compile:
502@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_matrixsparse.Plo@am__quote@ 511@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_matrixsparse.Plo@am__quote@
503@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_mempool.Plo@am__quote@ 512@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_mempool.Plo@am__quote@
504@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_mmap.Plo@am__quote@ 513@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_mmap.Plo@am__quote@
514@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_model.Plo@am__quote@
505@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_module.Plo@am__quote@ 515@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_module.Plo@am__quote@
506@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_one_big.Plo@am__quote@ 516@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_one_big.Plo@am__quote@
507@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_pass_through.Plo@am__quote@ 517@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeina_la-eina_pass_through.Plo@am__quote@
@@ -732,6 +742,14 @@ libeina_la-eina_mmap.lo: eina_mmap.c
732@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 742@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
733@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeina_la_CFLAGS) $(CFLAGS) -c -o libeina_la-eina_mmap.lo `test -f 'eina_mmap.c' || echo '$(srcdir)/'`eina_mmap.c 743@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeina_la_CFLAGS) $(CFLAGS) -c -o libeina_la-eina_mmap.lo `test -f 'eina_mmap.c' || echo '$(srcdir)/'`eina_mmap.c
734 744
745libeina_la-eina_model.lo: eina_model.c
746@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeina_la_CFLAGS) $(CFLAGS) -MT libeina_la-eina_model.lo -MD -MP -MF $(DEPDIR)/libeina_la-eina_model.Tpo -c -o libeina_la-eina_model.lo `test -f 'eina_model.c' || echo '$(srcdir)/'`eina_model.c
747@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeina_la-eina_model.Tpo $(DEPDIR)/libeina_la-eina_model.Plo
748@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
749@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eina_model.c' object='libeina_la-eina_model.lo' libtool=yes @AMDEPBACKSLASH@
750@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
751@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeina_la_CFLAGS) $(CFLAGS) -c -o libeina_la-eina_model.lo `test -f 'eina_model.c' || echo '$(srcdir)/'`eina_model.c
752
735libeina_la-eina_module.lo: eina_module.c 753libeina_la-eina_module.lo: eina_module.c
736@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeina_la_CFLAGS) $(CFLAGS) -MT libeina_la-eina_module.lo -MD -MP -MF $(DEPDIR)/libeina_la-eina_module.Tpo -c -o libeina_la-eina_module.lo `test -f 'eina_module.c' || echo '$(srcdir)/'`eina_module.c 754@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeina_la_CFLAGS) $(CFLAGS) -MT libeina_la-eina_module.lo -MD -MP -MF $(DEPDIR)/libeina_la-eina_module.Tpo -c -o libeina_la-eina_module.lo `test -f 'eina_module.c' || echo '$(srcdir)/'`eina_module.c
737@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeina_la-eina_module.Tpo $(DEPDIR)/libeina_la-eina_module.Plo 755@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeina_la-eina_module.Tpo $(DEPDIR)/libeina_la-eina_module.Plo
diff --git a/libraries/eina/src/lib/eina_binshare.c b/libraries/eina/src/lib/eina_binshare.c
index 68a82fc..01e8046 100644
--- a/libraries/eina/src/lib/eina_binshare.c
+++ b/libraries/eina/src/lib/eina_binshare.c
@@ -21,9 +21,18 @@
21 21
22 */ 22 */
23 23
24#include "eina_share_common.h" 24#ifdef HAVE_CONFIG_H
25#include "eina_unicode.h" 25# include "config.h"
26#endif
27
28#include "eina_config.h"
26#include "eina_private.h" 29#include "eina_private.h"
30#include "eina_unicode.h"
31#include "eina_log.h"
32#include "eina_share_common.h"
33
34/* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */
35#include "eina_safety_checks.h"
27#include "eina_binshare.h" 36#include "eina_binshare.h"
28 37
29/*============================================================================* 38/*============================================================================*
@@ -34,6 +43,23 @@
34 * @cond LOCAL 43 * @cond LOCAL
35 */ 44 */
36 45
46#ifdef CRITICAL
47#undef CRITICAL
48#endif
49#define CRITICAL(...) EINA_LOG_DOM_CRIT(_eina_share_binshare_log_dom, __VA_ARGS__)
50
51#ifdef ERR
52#undef ERR
53#endif
54#define ERR(...) EINA_LOG_DOM_ERR(_eina_share_binshare_log_dom, __VA_ARGS__)
55
56#ifdef DBG
57#undef DBG
58#endif
59#define DBG(...) EINA_LOG_DOM_DBG(_eina_share_binshare_log_dom, __VA_ARGS__)
60
61static int _eina_share_binshare_log_dom = -1;
62
37/* The actual share */ 63/* The actual share */
38static Eina_Share *binshare_share; 64static Eina_Share *binshare_share;
39static const char EINA_MAGIC_BINSHARE_NODE_STR[] = "Eina Binshare Node"; 65static const char EINA_MAGIC_BINSHARE_NODE_STR[] = "Eina Binshare Node";
@@ -42,7 +68,6 @@ static const char EINA_MAGIC_BINSHARE_NODE_STR[] = "Eina Binshare Node";
42 * @endcond 68 * @endcond
43 */ 69 */
44 70
45
46/*============================================================================* 71/*============================================================================*
47* Global * 72* Global *
48*============================================================================*/ 73*============================================================================*/
@@ -61,9 +86,31 @@ static const char EINA_MAGIC_BINSHARE_NODE_STR[] = "Eina Binshare Node";
61EAPI Eina_Bool 86EAPI Eina_Bool
62eina_binshare_init(void) 87eina_binshare_init(void)
63{ 88{
64 return eina_share_common_init(&binshare_share, 89 Eina_Bool ret;
65 EINA_MAGIC_BINSHARE_NODE, 90
66 EINA_MAGIC_BINSHARE_NODE_STR); 91 if (_eina_share_binshare_log_dom < 0)
92 {
93 _eina_share_binshare_log_dom = eina_log_domain_register
94 ("eina_binshare", EINA_LOG_COLOR_DEFAULT);
95
96 if (_eina_share_binshare_log_dom < 0)
97 {
98 EINA_LOG_ERR("Could not register log domain: eina_binshare");
99 return EINA_FALSE;
100 }
101 }
102
103 ret = eina_share_common_init(&binshare_share,
104 EINA_MAGIC_BINSHARE_NODE,
105 EINA_MAGIC_BINSHARE_NODE_STR);
106
107 if (!ret)
108 {
109 eina_log_domain_unregister(_eina_share_binshare_log_dom);
110 _eina_share_binshare_log_dom = -1;
111 }
112
113 return ret;
67} 114}
68 115
69/** 116/**
@@ -82,6 +129,13 @@ eina_binshare_shutdown(void)
82{ 129{
83 Eina_Bool ret; 130 Eina_Bool ret;
84 ret = eina_share_common_shutdown(&binshare_share); 131 ret = eina_share_common_shutdown(&binshare_share);
132
133 if (_eina_share_binshare_log_dom > 0)
134 {
135 eina_log_domain_unregister(_eina_share_binshare_log_dom);
136 _eina_share_binshare_log_dom = -1;
137 }
138
85 return ret; 139 return ret;
86} 140}
87 141
@@ -96,7 +150,8 @@ eina_binshare_del(const void *obj)
96 if (!obj) 150 if (!obj)
97 return; 151 return;
98 152
99 eina_share_common_del(binshare_share, obj); 153 if (!eina_share_common_del(binshare_share, obj))
154 CRITICAL("EEEK trying to del non-shared binshare %p", obj);
100} 155}
101 156
102EAPI const void * 157EAPI const void *
diff --git a/libraries/eina/src/lib/eina_file.c b/libraries/eina/src/lib/eina_file.c
index 0b836b3..c465301 100644
--- a/libraries/eina/src/lib/eina_file.c
+++ b/libraries/eina/src/lib/eina_file.c
@@ -362,41 +362,15 @@ _eina_file_direct_ls_iterator_free(Eina_File_Direct_Iterator *it)
362static Eina_Bool 362static Eina_Bool
363_eina_file_stat_ls_iterator_next(Eina_File_Direct_Iterator *it, void **data) 363_eina_file_stat_ls_iterator_next(Eina_File_Direct_Iterator *it, void **data)
364{ 364{
365 struct stat st; 365 Eina_Stat st;
366 366
367 if (!_eina_file_direct_ls_iterator_next(it, data)) 367 if (!_eina_file_direct_ls_iterator_next(it, data))
368 return EINA_FALSE; 368 return EINA_FALSE;
369 369
370 if (it->info.type == EINA_FILE_UNKNOWN) 370 if (it->info.type == EINA_FILE_UNKNOWN)
371 { 371 {
372#ifdef HAVE_FSTATAT 372 if (eina_file_statat(it->dirp, &it->info, &st) != 0)
373 int fd;
374
375 fd = dirfd(it->dirp);
376 if (fstatat(fd, it->info.path + it->info.name_start, &st, 0))
377#else
378 if (stat(it->info.path, &st))
379#endif
380 it->info.type = EINA_FILE_UNKNOWN; 373 it->info.type = EINA_FILE_UNKNOWN;
381 else
382 {
383 if (S_ISREG(st.st_mode))
384 it->info.type = EINA_FILE_REG;
385 else if (S_ISDIR(st.st_mode))
386 it->info.type = EINA_FILE_DIR;
387 else if (S_ISCHR(st.st_mode))
388 it->info.type = EINA_FILE_CHR;
389 else if (S_ISBLK(st.st_mode))
390 it->info.type = EINA_FILE_BLK;
391 else if (S_ISFIFO(st.st_mode))
392 it->info.type = EINA_FILE_FIFO;
393 else if (S_ISLNK(st.st_mode))
394 it->info.type = EINA_FILE_LNK;
395 else if (S_ISSOCK(st.st_mode))
396 it->info.type = EINA_FILE_SOCK;
397 else
398 it->info.type = EINA_FILE_UNKNOWN;
399 }
400 } 374 }
401 375
402 return EINA_TRUE; 376 return EINA_TRUE;
@@ -593,6 +567,14 @@ _eina_file_escape(const char *path, int *length)
593 return result; 567 return result;
594} 568}
595 569
570/**
571 * @endcond
572 */
573
574/*============================================================================*
575 * Global *
576 *============================================================================*/
577
596Eina_Bool 578Eina_Bool
597eina_file_init(void) 579eina_file_init(void)
598{ 580{
@@ -641,13 +623,60 @@ eina_file_shutdown(void)
641 return EINA_TRUE; 623 return EINA_TRUE;
642} 624}
643 625
644/** 626void
645 * @endcond 627eina_file_mmap_faulty(void *addr, long page_size)
646 */ 628{
629 Eina_File_Map *m;
630 Eina_File *f;
631 Eina_Iterator *itf;
632 Eina_Iterator *itm;
647 633
648/*============================================================================* 634 /* NOTE: I actually don't know if other thread are running, I will try to take the lock.
649 * Global * 635 It may be possible that if other thread are not running and they were in the middle of
650 *============================================================================*/ 636 accessing an Eina_File this lock are still taken and we will result as a deadlock. */
637 eina_lock_take(&_eina_file_lock_cache);
638
639 itf = eina_hash_iterator_data_new(_eina_file_cache);
640 EINA_ITERATOR_FOREACH(itf, f)
641 {
642 Eina_Bool faulty = EINA_FALSE;
643
644 eina_lock_take(&f->lock);
645
646 if (f->global_map)
647 {
648 if ((unsigned char *) addr < (((unsigned char *)f->global_map) + f->length) &&
649 (((unsigned char *) addr) + page_size) >= (unsigned char *) f->global_map)
650 {
651 f->global_faulty = EINA_TRUE;
652 faulty = EINA_TRUE;
653 }
654 }
655
656 if (!faulty)
657 {
658 itm = eina_hash_iterator_data_new(f->map);
659 EINA_ITERATOR_FOREACH(itm, m)
660 {
661 if ((unsigned char *) addr < (((unsigned char *)m->map) + m->length) &&
662 (((unsigned char *) addr) + page_size) >= (unsigned char *) m->map)
663 {
664 m->faulty = EINA_TRUE;
665 faulty = EINA_TRUE;
666 break;
667 }
668 }
669 eina_iterator_free(itm);
670 }
671
672 eina_lock_release(&f->lock);
673
674 if (faulty) break;
675 }
676 eina_iterator_free(itf);
677
678 eina_lock_release(&_eina_file_lock_cache);
679}
651 680
652/*============================================================================* 681/*============================================================================*
653 * API * 682 * API *
@@ -950,7 +979,7 @@ eina_file_open(const char *path, Eina_Bool shared)
950 eina_lock_take(&_eina_file_lock_cache); 979 eina_lock_take(&_eina_file_lock_cache);
951 980
952 file = eina_hash_find(_eina_file_cache, filename); 981 file = eina_hash_find(_eina_file_cache, filename);
953 if ((file) && _eina_file_timestamp_compare(file, &file_stat)) 982 if ((file) && !_eina_file_timestamp_compare(file, &file_stat))
954 { 983 {
955 file->delete_me = EINA_TRUE; 984 file->delete_me = EINA_TRUE;
956 eina_hash_del(_eina_file_cache, file->filename, file); 985 eina_hash_del(_eina_file_cache, file->filename, file);
@@ -1029,7 +1058,7 @@ eina_file_close(Eina_File *file)
1029 1058
1030 eina_hash_del(_eina_file_cache, file->filename, file); 1059 eina_hash_del(_eina_file_cache, file->filename, file);
1031 _eina_file_real_close(file); 1060 _eina_file_real_close(file);
1032 1061
1033 eina_lock_release(&_eina_file_lock_cache); 1062 eina_lock_release(&_eina_file_lock_cache);
1034} 1063}
1035 1064
@@ -1196,7 +1225,7 @@ eina_file_map_free(Eina_File *file, void *map)
1196 unsigned long int key[2]; 1225 unsigned long int key[2];
1197 1226
1198 em = eina_hash_find(file->rmap, &map); 1227 em = eina_hash_find(file->rmap, &map);
1199 if (!em) return ; 1228 if (!em) goto on_exit;
1200 1229
1201 em->refcount--; 1230 em->refcount--;
1202 1231
@@ -1217,17 +1246,25 @@ EAPI Eina_Bool
1217eina_file_map_faulted(Eina_File *file, void *map) 1246eina_file_map_faulted(Eina_File *file, void *map)
1218{ 1247{
1219 Eina_File_Map *em; 1248 Eina_File_Map *em;
1249 Eina_Bool r = EINA_FALSE;
1220 1250
1221 EINA_SAFETY_ON_NULL_RETURN_VAL(file, EINA_FALSE); 1251 EINA_SAFETY_ON_NULL_RETURN_VAL(file, EINA_FALSE);
1222 1252
1223 eina_lock_take(&file->lock); 1253 eina_lock_take(&file->lock);
1224 1254
1225 if (file->global_map == map) return file->global_faulty; 1255 if (file->global_map == map)
1256 {
1257 r = file->global_faulty;
1258 }
1259 else
1260 {
1261 em = eina_hash_find(file->rmap, &map);
1262 if (em) r = em->faulty;
1263 }
1226 1264
1227 em = eina_hash_find(file->rmap, &map); 1265 eina_lock_release(&file->lock);
1228 if (!em) return EINA_FALSE;
1229 1266
1230 return em->faulty; 1267 return r;
1231} 1268}
1232 1269
1233EAPI Eina_Iterator * 1270EAPI Eina_Iterator *
@@ -1246,58 +1283,77 @@ eina_file_xattr_value_get(Eina_File *file)
1246 return eina_xattr_value_fd_ls(file->fd); 1283 return eina_xattr_value_fd_ls(file->fd);
1247} 1284}
1248 1285
1249void 1286EAPI int
1250eina_file_mmap_faulty(void *addr, long page_size) 1287eina_file_statat(void *container, Eina_File_Direct_Info *info, Eina_Stat *st)
1251{ 1288{
1252 Eina_File_Map *m; 1289 struct stat buf;
1253 Eina_File *f; 1290#ifdef HAVE_FSTATAT
1254 Eina_Iterator *itf; 1291 int fd;
1255 Eina_Iterator *itm; 1292#endif
1256 1293
1257 /* NOTE: I actually don't know if other thread are running, I will try to take the lock. 1294 EINA_SAFETY_ON_NULL_RETURN_VAL(info, -1);
1258 It may be possible that if other thread are not running and they were in the middle of 1295 EINA_SAFETY_ON_NULL_RETURN_VAL(st, -1);
1259 accessing an Eina_File this lock are still taken and we will result as a deadlock. */
1260 eina_lock_take(&_eina_file_lock_cache);
1261 1296
1262 itf = eina_hash_iterator_data_new(_eina_file_cache); 1297#ifdef HAVE_FSTATAT
1263 EINA_ITERATOR_FOREACH(itf, f) 1298 fd = dirfd((DIR*) container);
1299 if (fstatat(fd, info->path + info->name_start, &buf, 0))
1300#else
1301 (void)container;
1302 if (stat(info->path, &buf))
1303#endif
1264 { 1304 {
1265 Eina_Bool faulty = EINA_FALSE; 1305 if (info->type != EINA_FILE_LNK)
1266 1306 info->type = EINA_FILE_UNKNOWN;
1267 eina_lock_take(&f->lock); 1307 return -1;
1268 1308 }
1269 if (f->global_map)
1270 {
1271 if ((unsigned char *) addr < (((unsigned char *)f->global_map) + f->length) &&
1272 (((unsigned char *) addr) + page_size) >= (unsigned char *) f->global_map)
1273 {
1274 f->global_faulty = EINA_TRUE;
1275 faulty = EINA_TRUE;
1276 }
1277 }
1278
1279 if (!faulty)
1280 {
1281 itm = eina_hash_iterator_data_new(f->map);
1282 EINA_ITERATOR_FOREACH(itm, m)
1283 {
1284 if ((unsigned char *) addr < (((unsigned char *)m->map) + m->length) &&
1285 (((unsigned char *) addr) + page_size) >= (unsigned char *) m->map)
1286 {
1287 m->faulty = EINA_TRUE;
1288 faulty = EINA_TRUE;
1289 break;
1290 }
1291 }
1292 eina_iterator_free(itm);
1293 }
1294
1295 eina_lock_release(&f->lock);
1296 1309
1297 if (faulty) break; 1310 if (info->type == EINA_FILE_UNKNOWN)
1311 {
1312 if (S_ISREG(buf.st_mode))
1313 info->type = EINA_FILE_REG;
1314 else if (S_ISDIR(buf.st_mode))
1315 info->type = EINA_FILE_DIR;
1316 else if (S_ISCHR(buf.st_mode))
1317 info->type = EINA_FILE_CHR;
1318 else if (S_ISBLK(buf.st_mode))
1319 info->type = EINA_FILE_BLK;
1320 else if (S_ISFIFO(buf.st_mode))
1321 info->type = EINA_FILE_FIFO;
1322 else if (S_ISLNK(buf.st_mode))
1323 info->type = EINA_FILE_LNK;
1324 else if (S_ISSOCK(buf.st_mode))
1325 info->type = EINA_FILE_SOCK;
1326 else
1327 info->type = EINA_FILE_UNKNOWN;
1298 } 1328 }
1299 eina_iterator_free(itf);
1300 1329
1301 eina_lock_release(&_eina_file_lock_cache); 1330 st->dev = buf.st_dev;
1331 st->ino = buf.st_ino;
1332 st->mode = buf.st_mode;
1333 st->nlink = buf.st_nlink;
1334 st->uid = buf.st_uid;
1335 st->gid = buf.st_gid;
1336 st->rdev = buf.st_rdev;
1337 st->size = buf.st_size;
1338 st->blksize = buf.st_blksize;
1339 st->blocks = buf.st_blocks;
1340 st->atime = buf.st_atime;
1341 st->mtime = buf.st_mtime;
1342 st->ctime = buf.st_ctime;
1343#ifdef _STAT_VER_LINUX
1344# if (defined __USE_MISC && defined st_mtime)
1345 st->atimensec = buf.st_atim.tv_nsec;
1346 st->mtimensec = buf.st_mtim.tv_nsec;
1347 st->ctimensec = buf.st_ctim.tv_nsec;
1348# else
1349 st->atimensec = buf.st_atimensec;
1350 st->mtimensec = buf.st_mtimensec;
1351 st->ctimensec = buf.st_ctimensec;
1352# endif
1353#else
1354 st->atimensec = 0;
1355 st->mtimensec = 0;
1356 st->ctimensec = 0;
1357#endif
1358 return 0;
1302} 1359}
1303
diff --git a/libraries/eina/src/lib/eina_file_win32.c b/libraries/eina/src/lib/eina_file_win32.c
index 1cd8665..5c20fdd 100644
--- a/libraries/eina/src/lib/eina_file_win32.c
+++ b/libraries/eina/src/lib/eina_file_win32.c
@@ -1,1021 +1,1214 @@
1/* EINA - EFL data type library 1/* EINA - EFL data type library
2 * Copyright (C) 2010 Vincent Torri 2 * Copyright (C) 2010 Vincent Torri
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public 5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version. 7 * version 2.1 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details. 12 * Lesser General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU Lesser General Public 14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; 15 * License along with this library;
16 * if not, see <http://www.gnu.org/licenses/>. 16 * if not, see <http://www.gnu.org/licenses/>.
17 */ 17 */
18 18
19#ifdef HAVE_CONFIG_H 19#ifdef HAVE_CONFIG_H
20# include "config.h" 20# include "config.h"
21#endif 21#endif
22 22
23#ifdef HAVE_ALLOCA_H 23#ifdef HAVE_ALLOCA_H
24# include <alloca.h> 24# include <alloca.h>
25#elif defined __GNUC__ 25#elif defined __GNUC__
26# define alloca __builtin_alloca 26# define alloca __builtin_alloca
27#elif defined _AIX 27#elif defined _AIX
28# define alloca __alloca 28# define alloca __alloca
29#elif defined _MSC_VER 29#elif defined _MSC_VER
30# include <malloc.h> 30# include <malloc.h>
31# define alloca _alloca 31# define alloca _alloca
32#else 32#else
33# include <stddef.h> 33# include <stddef.h>
34# ifdef __cplusplus 34# ifdef __cplusplus
35extern "C" 35extern "C"
36# endif 36# endif
37void *alloca (size_t); 37void *alloca (size_t);
38#endif 38#endif
39 39
40#define WIN32_LEAN_AND_MEAN 40#include <sys/types.h>
41#include <windows.h> 41#include <sys/stat.h>
42#undef WIN32_LEAN_AND_MEAN 42
43 43#define WIN32_LEAN_AND_MEAN
44//#include <Evil.h> 44#include <windows.h>
45 45#undef WIN32_LEAN_AND_MEAN
46#include "eina_config.h" 46
47#include "eina_private.h" 47#include <Evil.h>
48 48
49/* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ 49#include "eina_config.h"
50#include "eina_safety_checks.h" 50#include "eina_private.h"
51#include "eina_file.h" 51
52#include "eina_stringshare.h" 52/* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */
53#include "eina_hash.h" 53#include "eina_safety_checks.h"
54#include "eina_list.h" 54#include "eina_file.h"
55 55#include "eina_stringshare.h"
56/*============================================================================* 56#include "eina_hash.h"
57 * Local * 57#include "eina_list.h"
58 *============================================================================*/ 58#include "eina_lock.h"
59 59#include "eina_log.h"
60/** 60
61 * @cond LOCAL 61/*============================================================================*
62 */ 62 * Local *
63 63 *============================================================================*/
64#ifndef EINA_LOG_COLOR_DEFAULT 64
65#define EINA_LOG_COLOR_DEFAULT EINA_COLOR_CYAN 65/**
66#endif 66 * @cond LOCAL
67 67 */
68#ifdef ERR 68
69#undef ERR 69#ifndef EINA_LOG_COLOR_DEFAULT
70#endif 70#define EINA_LOG_COLOR_DEFAULT EINA_COLOR_CYAN
71#define ERR(...) EINA_LOG_DOM_ERR(_eina_file_log_dom, __VA_ARGS__) 71#endif
72 72
73#ifdef WRN 73#ifdef ERR
74#undef WRN 74#undef ERR
75#endif 75#endif
76#define WRN(...) EINA_LOG_DOM_WARN(_eina_file_log_dom, __VA_ARGS__) 76#define ERR(...) EINA_LOG_DOM_ERR(_eina_file_log_dom, __VA_ARGS__)
77 77
78#ifdef DBG 78#ifdef WRN
79#undef DBG 79#undef WRN
80#endif 80#endif
81#define DBG(...) EINA_LOG_DOM_DBG(_eina_file_log_dom, __VA_ARGS__) 81#define WRN(...) EINA_LOG_DOM_WARN(_eina_file_log_dom, __VA_ARGS__)
82 82
83#ifdef MAP_FAILED 83#ifdef DBG
84# undef MAP_FAILED 84#undef DBG
85#endif 85#endif
86#define MAP_FAILED ((void *)-1) 86#define DBG(...) EINA_LOG_DOM_DBG(_eina_file_log_dom, __VA_ARGS__)
87 87
88typedef struct _Eina_File_Iterator Eina_File_Iterator; 88#ifdef MAP_FAILED
89typedef struct _Eina_File_Direct_Iterator Eina_File_Direct_Iterator; 89# undef MAP_FAILED
90typedef struct _Eina_File_Map Eina_File_Map; 90#endif
91 91#define MAP_FAILED ((void *)-1)
92struct _Eina_File_Iterator 92
93{ 93typedef struct _Eina_File_Iterator Eina_File_Iterator;
94 Eina_Iterator iterator; 94typedef struct _Eina_File_Direct_Iterator Eina_File_Direct_Iterator;
95 95typedef struct _Eina_File_Map Eina_File_Map;
96 WIN32_FIND_DATA data; 96
97 HANDLE handle; 97struct _Eina_File_Iterator
98 size_t length; 98{
99 Eina_Bool is_last : 1; 99 Eina_Iterator iterator;
100 100
101 char dir[1]; 101 WIN32_FIND_DATA data;
102}; 102 HANDLE handle;
103 103 size_t length;
104struct _Eina_File_Direct_Iterator 104 Eina_Bool is_last : 1;
105{ 105
106 Eina_Iterator iterator; 106 char dir[1];
107 107};
108 WIN32_FIND_DATA data; 108
109 HANDLE handle; 109struct _Eina_File_Direct_Iterator
110 size_t length; 110{
111 Eina_Bool is_last : 1; 111 Eina_Iterator iterator;
112 112
113 Eina_File_Direct_Info info; 113 WIN32_FIND_DATA data;
114 114 HANDLE handle;
115 char dir[1]; 115 size_t length;
116}; 116 Eina_Bool is_last : 1;
117 117
118struct _Eina_File 118 Eina_File_Direct_Info info;
119{ 119
120 const char *filename; 120 char dir[1];
121 121};
122 Eina_Hash *map; 122
123 Eina_Hash *rmap; 123struct _Eina_File
124 void *global_map; 124{
125 125 const char *filename;
126 ULONGLONG length; 126
127 ULONGLONG mtime; 127 Eina_Hash *map;
128 128 Eina_Hash *rmap;
129 int refcount; 129 void *global_map;
130 int global_refcount; 130
131 131 Eina_Lock lock;
132 HANDLE handle; 132
133 HANDLE fm; 133 ULONGLONG length;
134 134 ULONGLONG mtime;
135 Eina_Bool shared : 1; 135
136 Eina_Bool delete_me : 1; 136 int refcount;
137}; 137 int global_refcount;
138 138
139struct _Eina_File_Map 139 HANDLE handle;
140{ 140 HANDLE fm;
141 void *map; 141
142 142 Eina_Bool shared : 1;
143 unsigned long int offset; 143 Eina_Bool delete_me : 1;
144 unsigned long int length; 144};
145 145
146 int refcount; 146struct _Eina_File_Map
147}; 147{
148 148 void *map;
149static Eina_Hash *_eina_file_cache = NULL; 149
150static Eina_List *_eina_file_cache_lru = NULL; 150 unsigned long int offset;
151static Eina_List *_eina_file_cache_delete = NULL; 151 unsigned long int length;
152 152
153static int _eina_file_log_dom = -1; 153 int refcount;
154 154};
155static void 155
156_eina_file_win32_backslash_change(char *dir) 156static Eina_Hash *_eina_file_cache = NULL;
157{ 157static Eina_Lock _eina_file_lock_cache;
158 char *tmp; 158
159 159static int _eina_file_log_dom = -1;
160 tmp = dir; 160
161 while (*tmp) 161static void
162 { 162_eina_file_win32_backslash_change(char *dir)
163 if (*tmp == '/') *tmp = '\\'; 163{
164 tmp++; 164 char *tmp;
165 } 165
166} 166 tmp = dir;
167 167 while (*tmp)
168static Eina_Bool 168 {
169_eina_file_win32_is_dir(const char *dir) 169 if (*tmp == '/') *tmp = '\\';
170{ 170 tmp++;
171#ifdef UNICODE 171 }
172 wchar_t *wdir = NULL; 172}
173#endif 173
174 DWORD attr; 174static Eina_Bool
175 175_eina_file_win32_is_dir(const char *dir)
176 /* check if it's a directory */ 176{
177#ifdef UNICODE 177#ifdef UNICODE
178 wdir = evil_char_to_wchar(dir); 178 wchar_t *wdir = NULL;
179 if (!wdir) 179#endif
180 return EINA_FALSE; 180 DWORD attr;
181 181
182 attr = GetFileAttributes(wdir); 182 /* check if it's a directory */
183 free(wdir); 183#ifdef UNICODE
184#else 184 wdir = evil_char_to_wchar(dir);
185 attr = GetFileAttributes(dir); 185 if (!wdir)
186#endif 186 return EINA_FALSE;
187 187
188 if (attr == 0xFFFFFFFF) 188 attr = GetFileAttributes(wdir);
189 return EINA_FALSE; 189 free(wdir);
190 190#else
191 if (!(attr & FILE_ATTRIBUTE_DIRECTORY)) 191 attr = GetFileAttributes(dir);
192 return EINA_FALSE; 192#endif
193 193
194 return EINA_TRUE; 194 if (attr == 0xFFFFFFFF)
195} 195 return EINA_FALSE;
196 196
197static char * 197 if (!(attr & FILE_ATTRIBUTE_DIRECTORY))
198_eina_file_win32_dir_new(const char *dir) 198 return EINA_FALSE;
199{ 199
200 char *new_dir; 200 return EINA_TRUE;
201 size_t length; 201}
202 202
203 length = strlen(dir); 203static char *
204 204_eina_file_win32_dir_new(const char *dir)
205 new_dir = (char *)malloc(sizeof(char) * length + 5); 205{
206 if (!new_dir) 206 char *new_dir;
207 return NULL; 207 size_t length;
208 208
209 memcpy(new_dir, dir, length); 209 length = strlen(dir);
210 memcpy(new_dir + length, "\\*.*", 5); 210
211 _eina_file_win32_backslash_change(new_dir); 211 new_dir = (char *)malloc(sizeof(char) * length + 5);
212 212 if (!new_dir)
213 return new_dir; 213 return NULL;
214} 214
215 215 memcpy(new_dir, dir, length);
216static HANDLE 216 memcpy(new_dir + length, "\\*.*", 5);
217_eina_file_win32_first_file(const char *dir, WIN32_FIND_DATA *fd) 217 _eina_file_win32_backslash_change(new_dir);
218{ 218
219 HANDLE h; 219 return new_dir;
220#ifdef UNICODE 220}
221 wchar_t *wdir = NULL; 221
222 222static HANDLE
223 wdir = evil_char_to_wchar(dir); 223_eina_file_win32_first_file(const char *dir, WIN32_FIND_DATA *fd)
224 if (!wdir) 224{
225 return NULL; 225 HANDLE h;
226 226#ifdef UNICODE
227 h = FindFirstFile(wdir, fd); 227 wchar_t *wdir = NULL;
228 free(wdir); 228
229#else 229 wdir = evil_char_to_wchar(dir);
230 h = FindFirstFile(dir, fd); 230 if (!wdir)
231#endif 231 return NULL;
232 232
233 if (!h) 233 h = FindFirstFile(wdir, fd);
234 return NULL; 234 free(wdir);
235 235#else
236 while ((fd->cFileName[0] == '.') && 236 h = FindFirstFile(dir, fd);
237 ((fd->cFileName[1] == '\0') || 237#endif
238 ((fd->cFileName[1] == '.') && (fd->cFileName[2] == '\0')))) 238
239 { 239 if (!h)
240 if (!FindNextFile(h, fd)) 240 return NULL;
241 return NULL; 241
242 } 242 while ((fd->cFileName[0] == '.') &&
243 243 ((fd->cFileName[1] == '\0') ||
244 return h; 244 ((fd->cFileName[1] == '.') && (fd->cFileName[2] == '\0'))))
245} 245 {
246 246 if (!FindNextFile(h, fd))
247static Eina_Bool 247 return NULL;
248_eina_file_win32_ls_iterator_next(Eina_File_Iterator *it, void **data) 248 }
249{ 249
250#ifdef UNICODE 250 return h;
251 wchar_t *old_name; 251}
252#else 252
253 char *old_name; 253static Eina_Bool
254#endif 254_eina_file_win32_ls_iterator_next(Eina_File_Iterator *it, void **data)
255 char *name; 255{
256 char *cname; 256#ifdef UNICODE
257 size_t length; 257 wchar_t *old_name;
258 Eina_Bool is_last; 258#else
259 Eina_Bool res = EINA_TRUE; 259 char *old_name;
260 260#endif
261 if (it->handle == INVALID_HANDLE_VALUE) 261 char *name;
262 return EINA_FALSE; 262 char *cname;
263 263 size_t length;
264 is_last = it->is_last; 264 Eina_Bool is_last;
265#ifdef UNICODE 265 Eina_Bool res = EINA_TRUE;
266 old_name = _wcsdup(it->data.cFileName); 266
267#else 267 if (it->handle == INVALID_HANDLE_VALUE)
268 old_name = _strdup(it->data.cFileName); 268 return EINA_FALSE;
269#endif 269
270 if (!old_name) 270 is_last = it->is_last;
271 return EINA_FALSE; 271#ifdef UNICODE
272 272 old_name = _wcsdup(it->data.cFileName);
273 do { 273#else
274 if (!FindNextFile(it->handle, &it->data)) 274 old_name = _strdup(it->data.cFileName);
275 { 275#endif
276 if (GetLastError() == ERROR_NO_MORE_FILES) 276 if (!old_name)
277 it->is_last = EINA_TRUE; 277 return EINA_FALSE;
278 else 278
279 res = EINA_FALSE; 279 do {
280 } 280 if (!FindNextFile(it->handle, &it->data))
281 } while ((it->data.cFileName[0] == '.') && 281 {
282 ((it->data.cFileName[1] == '\0') || 282 if (GetLastError() == ERROR_NO_MORE_FILES)
283 ((it->data.cFileName[1] == '.') && (it->data.cFileName[2] == '\0')))); /* FIXME: what about UNICODE ? */ 283 it->is_last = EINA_TRUE;
284 284 else
285#ifdef UNICODE 285 res = EINA_FALSE;
286 cname = evil_wchar_to_char(old_name); 286 }
287 if (!cname) 287 } while ((it->data.cFileName[0] == '.') &&
288 return EINA_FALSE; 288 ((it->data.cFileName[1] == '\0') ||
289#else 289 ((it->data.cFileName[1] == '.') && (it->data.cFileName[2] == '\0')))); /* FIXME: what about UNICODE ? */
290 cname = old_name; 290
291#endif 291#ifdef UNICODE
292 292 cname = evil_wchar_to_char(old_name);
293 length = strlen(cname); 293 if (!cname)
294 name = alloca(length + 2 + it->length); 294 return EINA_FALSE;
295 295#else
296 memcpy(name, it->dir, it->length); 296 cname = old_name;
297 memcpy(name + it->length, "\\", 1); 297#endif
298 memcpy(name + it->length + 1, cname, length + 1); 298
299 299 length = strlen(cname);
300 *data = (char *)eina_stringshare_add(name); 300 name = alloca(length + 2 + it->length);
301 301
302#ifdef UNICODE 302 memcpy(name, it->dir, it->length);
303 free(cname); 303 memcpy(name + it->length, "\\", 1);
304#endif 304 memcpy(name + it->length + 1, cname, length + 1);
305 free(old_name); 305
306 306 *data = (char *)eina_stringshare_add(name);
307 if (is_last) 307
308 res = EINA_FALSE; 308#ifdef UNICODE
309 309 free(cname);
310 return res; 310#endif
311} 311 free(old_name);
312 312
313static HANDLE 313 if (is_last)
314_eina_file_win32_ls_iterator_container(Eina_File_Iterator *it) 314 res = EINA_FALSE;
315{ 315
316 return it->handle; 316 return res;
317} 317}
318 318
319static void 319static HANDLE
320_eina_file_win32_ls_iterator_free(Eina_File_Iterator *it) 320_eina_file_win32_ls_iterator_container(Eina_File_Iterator *it)
321{ 321{
322 if (it->handle != INVALID_HANDLE_VALUE) 322 return it->handle;
323 FindClose(it->handle); 323}
324 324
325 EINA_MAGIC_SET(&it->iterator, 0); 325static void
326 free(it); 326_eina_file_win32_ls_iterator_free(Eina_File_Iterator *it)
327} 327{
328 328 if (it->handle != INVALID_HANDLE_VALUE)
329static Eina_Bool 329 FindClose(it->handle);
330_eina_file_win32_direct_ls_iterator_next(Eina_File_Direct_Iterator *it, void **data) 330
331{ 331 EINA_MAGIC_SET(&it->iterator, 0);
332#ifdef UNICODE 332 free(it);
333 wchar_t *old_name; 333}
334#else 334
335 char *old_name; 335static Eina_Bool
336#endif 336_eina_file_win32_direct_ls_iterator_next(Eina_File_Direct_Iterator *it, void **data)
337 char *cname; 337{
338 size_t length; 338#ifdef UNICODE
339 DWORD attr; 339 wchar_t *old_name;
340 Eina_Bool is_last; 340#else
341 Eina_Bool res = EINA_TRUE; 341 char *old_name;
342 342#endif
343 if (it->handle == INVALID_HANDLE_VALUE) 343 char *cname;
344 return EINA_FALSE; 344 size_t length;
345 345 DWORD attr;
346 attr = it->data.dwFileAttributes; 346 Eina_Bool is_last;
347 is_last = it->is_last; 347 Eina_Bool res = EINA_TRUE;
348#ifdef UNICODE 348
349 old_name = _wcsdup(it->data.cFileName); 349 if (it->handle == INVALID_HANDLE_VALUE)
350#else 350 return EINA_FALSE;
351 old_name = _strdup(it->data.cFileName); 351
352#endif 352 attr = it->data.dwFileAttributes;
353 if (!old_name) 353 is_last = it->is_last;
354 return EINA_FALSE; 354#ifdef UNICODE
355 355 old_name = _wcsdup(it->data.cFileName);
356 do { 356#else
357 if (!FindNextFile(it->handle, &it->data)) 357 old_name = _strdup(it->data.cFileName);
358 { 358#endif
359 if (GetLastError() == ERROR_NO_MORE_FILES) 359 if (!old_name)
360 it->is_last = EINA_TRUE; 360 return EINA_FALSE;
361 else 361
362 res = EINA_FALSE; 362 do {
363 } 363 if (!FindNextFile(it->handle, &it->data))
364 364 {
365#ifdef UNICODE 365 if (GetLastError() == ERROR_NO_MORE_FILES)
366 length = wcslen(old_name); 366 it->is_last = EINA_TRUE;
367#else 367 else
368 length = strlen(old_name); 368 res = EINA_FALSE;
369#endif 369 }
370 if (it->info.name_start + length + 1 >= PATH_MAX) 370
371 { 371#ifdef UNICODE
372 free(old_name); 372 length = wcslen(old_name);
373#ifdef UNICODE 373#else
374 old_name = _wcsdup(it->data.cFileName); 374 length = strlen(old_name);
375#else 375#endif
376 old_name = _strdup(it->data.cFileName); 376 if (it->info.name_start + length + 1 >= PATH_MAX)
377#endif 377 {
378 continue; 378 free(old_name);
379 } 379#ifdef UNICODE
380 380 old_name = _wcsdup(it->data.cFileName);
381 } while ((it->data.cFileName[0] == '.') && 381#else
382 ((it->data.cFileName[1] == '\0') || 382 old_name = _strdup(it->data.cFileName);
383 ((it->data.cFileName[1] == '.') && (it->data.cFileName[2] == '\0')))); /* FIXME: what about UNICODE ? */ 383#endif
384 384 continue;
385#ifdef UNICODE 385 }
386 cname = evil_wchar_to_char(old_name); 386
387 if (!cname) 387 } while ((it->data.cFileName[0] == '.') &&
388 return EINA_FALSE; 388 ((it->data.cFileName[1] == '\0') ||
389#else 389 ((it->data.cFileName[1] == '.') && (it->data.cFileName[2] == '\0')))); /* FIXME: what about UNICODE ? */
390 cname = old_name; 390
391#endif 391#ifdef UNICODE
392 392 cname = evil_wchar_to_char(old_name);
393 memcpy(it->info.path + it->info.name_start, cname, length); 393 if (!cname)
394 it->info.name_length = length; 394 return EINA_FALSE;
395 it->info.path_length = it->info.name_start + length; 395#else
396 it->info.path[it->info.path_length] = '\0'; 396 cname = old_name;
397 397#endif
398 if (attr & FILE_ATTRIBUTE_DIRECTORY) 398
399 it->info.type = EINA_FILE_DIR; 399 memcpy(it->info.path + it->info.name_start, cname, length);
400 else if (attr & FILE_ATTRIBUTE_REPARSE_POINT) 400 it->info.name_length = length;
401 it->info.type = EINA_FILE_LNK; 401 it->info.path_length = it->info.name_start + length;
402 else if (attr & (FILE_ATTRIBUTE_ARCHIVE | 402 it->info.path[it->info.path_length] = '\0';
403 FILE_ATTRIBUTE_COMPRESSED | 403
404 FILE_ATTRIBUTE_COMPRESSED | 404 if (attr & FILE_ATTRIBUTE_DIRECTORY)
405 FILE_ATTRIBUTE_HIDDEN | 405 it->info.type = EINA_FILE_DIR;
406 FILE_ATTRIBUTE_NORMAL | 406 else if (attr & FILE_ATTRIBUTE_REPARSE_POINT)
407 FILE_ATTRIBUTE_SPARSE_FILE | 407 it->info.type = EINA_FILE_LNK;
408 FILE_ATTRIBUTE_TEMPORARY)) 408 else if (attr & (FILE_ATTRIBUTE_ARCHIVE |
409 it->info.type = EINA_FILE_REG; 409 FILE_ATTRIBUTE_COMPRESSED |
410 else 410 FILE_ATTRIBUTE_COMPRESSED |
411 it->info.type = EINA_FILE_UNKNOWN; 411 FILE_ATTRIBUTE_HIDDEN |
412 412 FILE_ATTRIBUTE_NORMAL |
413 *data = &it->info; 413 FILE_ATTRIBUTE_SPARSE_FILE |
414 414 FILE_ATTRIBUTE_TEMPORARY))
415#ifdef UNICODE 415 it->info.type = EINA_FILE_REG;
416 free(cname); 416 else
417#endif 417 it->info.type = EINA_FILE_UNKNOWN;
418 418
419 free(old_name); 419 *data = &it->info;
420 420
421 if (is_last) 421#ifdef UNICODE
422 res = EINA_FALSE; 422 free(cname);
423 423#endif
424 return res; 424
425} 425 free(old_name);
426 426
427static HANDLE 427 if (is_last)
428_eina_file_win32_direct_ls_iterator_container(Eina_File_Direct_Iterator *it) 428 res = EINA_FALSE;
429{ 429
430 return it->handle; 430 return res;
431} 431}
432 432
433static void 433static HANDLE
434_eina_file_win32_direct_ls_iterator_free(Eina_File_Direct_Iterator *it) 434_eina_file_win32_direct_ls_iterator_container(Eina_File_Direct_Iterator *it)
435{ 435{
436 if (it->handle != INVALID_HANDLE_VALUE) 436 return it->handle;
437 FindClose(it->handle); 437}
438 438
439 EINA_MAGIC_SET(&it->iterator, 0); 439static void
440 free(it); 440_eina_file_win32_direct_ls_iterator_free(Eina_File_Direct_Iterator *it)
441} 441{
442 442 if (it->handle != INVALID_HANDLE_VALUE)
443static void 443 FindClose(it->handle);
444_eina_file_real_close(Eina_File *file) 444
445{ 445 EINA_MAGIC_SET(&it->iterator, 0);
446 eina_hash_free(file->rmap); 446 free(it);
447 eina_hash_free(file->map); 447}
448 448
449 if (file->global_map != MAP_FAILED) 449static void
450 UnmapViewOfFile(file->global_map); 450_eina_file_real_close(Eina_File *file)
451 451{
452 CloseHandle(file->fm); 452 eina_hash_free(file->rmap);
453 CloseHandle(file->handle); 453 eina_hash_free(file->map);
454 454
455 eina_stringshare_del(file->filename); 455 if (file->global_map != MAP_FAILED)
456 456 UnmapViewOfFile(file->global_map);
457 free(file); 457
458} 458 CloseHandle(file->fm);
459 459 CloseHandle(file->handle);
460static void 460
461_eina_file_map_close(Eina_File_Map *map) 461 free(file);
462{ 462}
463 if (map->map != MAP_FAILED) 463
464 UnmapViewOfFile(map->map); 464static void
465 free(map); 465_eina_file_map_close(Eina_File_Map *map)
466} 466{
467 467 if (map->map != MAP_FAILED)
468static unsigned int 468 UnmapViewOfFile(map->map);
469_eina_file_map_key_length(const void *key __UNUSED__) 469 free(map);
470{ 470}
471 return sizeof (unsigned long int) * 2; 471
472} 472static unsigned int
473 473_eina_file_map_key_length(const void *key __UNUSED__)
474static int 474{
475_eina_file_map_key_cmp(const unsigned long int *key1, int key1_length __UNUSED__, 475 return sizeof (unsigned long int) * 2;
476 const unsigned long int *key2, int key2_length __UNUSED__) 476}
477{ 477
478 if (key1[0] - key2[0] == 0) return key1[1] - key2[1]; 478static int
479 return key1[0] - key2[0]; 479_eina_file_map_key_cmp(const unsigned long int *key1, int key1_length __UNUSED__,
480} 480 const unsigned long int *key2, int key2_length __UNUSED__)
481 481{
482static int 482 if (key1[0] - key2[0] == 0) return key1[1] - key2[1];
483_eina_file_map_key_hash(const unsigned long int *key, int key_length __UNUSED__) 483 return key1[0] - key2[0];
484{ 484}
485 return eina_hash_int64(&key[0], sizeof (unsigned long int)) 485
486 ^ eina_hash_int64(&key[1], sizeof (unsigned long int)); 486static int
487} 487_eina_file_map_key_hash(const unsigned long int *key, int key_length __UNUSED__)
488 488{
489Eina_Bool 489 return eina_hash_int64(&key[0], sizeof (unsigned long int))
490eina_file_init(void) 490 ^ eina_hash_int64(&key[1], sizeof (unsigned long int));
491{ 491}
492 _eina_file_log_dom = eina_log_domain_register("eina_file", 492
493 EINA_LOG_COLOR_DEFAULT); 493static char *
494 if (_eina_file_log_dom < 0) 494_eina_file_win32_escape(const char *path, size_t *length)
495 { 495{
496 EINA_LOG_ERR("Could not register log domain: eina_file"); 496 char *result = strdup(path ? path : "");
497 return EINA_FALSE; 497 char *p = result;
498 } 498 char *q = result;
499 499 size_t len;
500 _eina_file_cache = eina_hash_string_djb2_new(EINA_FREE_CB(_eina_file_real_close)); 500
501 if (!_eina_file_cache) 501 if (!result)
502 { 502 return NULL;
503 ERR("Could not create cache."); 503
504 eina_log_domain_unregister(_eina_file_log_dom); 504 if (length) len = *length;
505 _eina_file_log_dom = -1; 505 else len = strlen(result);
506 return EINA_FALSE; 506
507 } 507 while ((p = strchr(p, '/')))
508 508 {
509 return EINA_TRUE; 509 // remove double `/'
510} 510 if (p[1] == '/')
511 511 {
512Eina_Bool 512 memmove(p, p + 1, --len - (p - result));
513eina_file_shutdown(void) 513 result[len] = '\0';
514{ 514 }
515 Eina_File *f; 515 else
516 Eina_List *l; 516 if (p[1] == '.'
517 517 && p[2] == '.')
518 EINA_LIST_FREE(_eina_file_cache_delete, f) 518 {
519 _eina_file_real_close(f); 519 // remove `/../'
520 520 if (p[3] == '/')
521 EINA_LIST_FOREACH(_eina_file_cache_lru, l, f) 521 {
522 eina_hash_del(_eina_file_cache, f->filename, f); 522 char tmp;
523 523
524 if (eina_hash_population(_eina_file_cache) > 0) 524 len -= p + 3 - q;
525 { 525 memmove(q, p + 3, len - (q - result));
526 Eina_Iterator *it; 526 result[len] = '\0';
527 const char *key; 527 p = q;
528 528
529 it = eina_hash_iterator_key_new(_eina_file_cache); 529 /* Update q correctly. */
530 EINA_ITERATOR_FOREACH(it, key) 530 tmp = *p;
531 ERR("File [%s] still open !", key); 531 *p = '\0';
532 eina_iterator_free(it); 532 q = strrchr(result, '/');
533 } 533 if (!q) q = result;
534 534 *p = tmp;
535 eina_hash_free(_eina_file_cache); 535 }
536 536 else
537 eina_log_domain_unregister(_eina_file_log_dom); 537 // remove '/..$'
538 _eina_file_log_dom = -1; 538 if (p[3] == '\0')
539 return EINA_TRUE; 539 {
540} 540 len -= p + 2 - q;
541 541 result[len] = '\0';
542 542 q = p;
543/** 543 ++p;
544 * @endcond 544 }
545 */ 545 else
546 546 {
547/*============================================================================* 547 q = p;
548 * Global * 548 ++p;
549 *============================================================================*/ 549 }
550 550 }
551/*============================================================================* 551 else
552 * API * 552 {
553 *============================================================================*/ 553 q = p;
554 554 ++p;
555EAPI Eina_Bool 555 }
556eina_file_dir_list(const char *dir, 556 }
557 Eina_Bool recursive, 557
558 Eina_File_Dir_List_Cb cb, 558 if (length)
559 void *data) 559 *length = len;
560{ 560
561 WIN32_FIND_DATA file; 561 return result;
562 HANDLE h; 562}
563 char *new_dir; 563
564 564
565 EINA_SAFETY_ON_NULL_RETURN_VAL(cb, EINA_FALSE); 565/**
566 EINA_SAFETY_ON_NULL_RETURN_VAL(dir, EINA_FALSE); 566 * @endcond
567 EINA_SAFETY_ON_TRUE_RETURN_VAL(dir[0] == '\0', EINA_FALSE); 567 */
568 568
569 if (!_eina_file_win32_is_dir(dir)) 569/*============================================================================*
570 return EINA_FALSE; 570 * Global *
571 571 *============================================================================*/
572 new_dir = _eina_file_win32_dir_new(dir); 572
573 if (!new_dir) 573Eina_Bool
574 return EINA_FALSE; 574eina_file_init(void)
575 575{
576 h = _eina_file_win32_first_file(new_dir, &file); 576 _eina_file_log_dom = eina_log_domain_register("eina_file",
577 577 EINA_LOG_COLOR_DEFAULT);
578 if (h == INVALID_HANDLE_VALUE) 578 if (_eina_file_log_dom < 0)
579 return EINA_FALSE; 579 {
580 580 EINA_LOG_ERR("Could not register log domain: eina_file");
581 do 581 return EINA_FALSE;
582 { 582 }
583 char *filename; 583
584 584 _eina_file_cache = eina_hash_string_djb2_new(NULL);
585# ifdef UNICODE 585 if (!_eina_file_cache)
586 filename = evil_wchar_to_char(file.cFileName); 586 {
587# else 587 ERR("Could not create cache.");
588 filename = file.cFileName; 588 eina_log_domain_unregister(_eina_file_log_dom);
589# endif /* ! UNICODE */ 589 _eina_file_log_dom = -1;
590 if (!strcmp(filename, ".") || !strcmp(filename, "..")) 590 return EINA_FALSE;
591 continue; 591 }
592 592
593 cb(filename, dir, data); 593 eina_lock_new(&_eina_file_lock_cache);
594 594
595 if (recursive == EINA_TRUE) 595 return EINA_TRUE;
596 { 596}
597 char *path; 597
598 598Eina_Bool
599 path = alloca(strlen(dir) + strlen(filename) + 2); 599eina_file_shutdown(void)
600 strcpy(path, dir); 600{
601 strcat(path, "/"); 601 if (eina_hash_population(_eina_file_cache) > 0)
602 strcat(path, filename); 602 {
603 603 Eina_Iterator *it;
604 if (!(file.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) 604 const char *key;
605 continue; 605
606 606 it = eina_hash_iterator_key_new(_eina_file_cache);
607 eina_file_dir_list(path, recursive, cb, data); 607 EINA_ITERATOR_FOREACH(it, key)
608 } 608 ERR("File [%s] still open !", key);
609 609 eina_iterator_free(it);
610# ifdef UNICODE 610 }
611 free(filename); 611
612# endif /* UNICODE */ 612 eina_hash_free(_eina_file_cache);
613 613
614 } while (FindNextFile(h, &file)); 614 eina_lock_free(&_eina_file_lock_cache);
615 FindClose(h); 615
616 616 eina_log_domain_unregister(_eina_file_log_dom);
617 return EINA_TRUE; 617 _eina_file_log_dom = -1;
618} 618 return EINA_TRUE;
619 619}
620EAPI Eina_Array * 620
621eina_file_split(char *path) 621/*============================================================================*
622{ 622 * API *
623 Eina_Array *ea; 623 *============================================================================*/
624 char *current; 624
625 size_t length; 625
626 626EAPI char *
627 EINA_SAFETY_ON_NULL_RETURN_VAL(path, NULL); 627eina_file_path_sanitize(const char *path)
628 628{
629 ea = eina_array_new(16); 629 char *result = NULL;
630 630 size_t len;
631 if (!ea) 631
632 return NULL; 632 if (!path) return NULL;
633 633
634 for (current = strchr(path, '\\'); 634 len = strlen(path);
635 current; 635 if (len < 3) return NULL;
636 path = current + 1, current = strchr(path, '\\')) 636
637 { 637 if (!evil_path_is_absolute(path))
638 length = current - path; 638 {
639 639 DWORD l;
640 if (length <= 0) 640
641 continue; 641 l = GetCurrentDirectory(0, NULL);
642 642 if (l > 0)
643 eina_array_push(ea, path); 643 {
644 *current = '\0'; 644 char *cwd;
645 } 645 DWORD l2;
646 646
647 if (*path != '\0') 647 cwd = alloca(sizeof(char) * (l + 1));
648 eina_array_push(ea, path); 648 l2 = GetCurrentDirectory(l + 1, cwd);
649 649 if (l2 == l)
650 return ea; 650 {
651} 651 char *tmp;
652 652
653EAPI Eina_Iterator * 653 len += l + 2;
654eina_file_ls(const char *dir) 654 tmp = alloca(sizeof (char) * len);
655{ 655 snprintf(tmp, len, "%s/%s", cwd, path);
656 Eina_File_Iterator *it; 656 tmp[len - 1] = '\0';
657 char *new_dir; 657 result = tmp;
658 size_t length; 658 }
659 659 }
660 if (!dir || !*dir) 660 }
661 return NULL; 661
662 662 return _eina_file_win32_escape(result ? result : path, &len);
663 if (!_eina_file_win32_is_dir(dir)) 663}
664 return NULL; 664
665 665EAPI Eina_Bool
666 length = strlen(dir); 666eina_file_dir_list(const char *dir,
667 667 Eina_Bool recursive,
668 it = calloc(1, sizeof (Eina_File_Iterator) + length); 668 Eina_File_Dir_List_Cb cb,
669 if (!it) 669 void *data)
670 return NULL; 670{
671 671 WIN32_FIND_DATA file;
672 EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); 672 HANDLE h;
673 673 char *new_dir;
674 new_dir = _eina_file_win32_dir_new(dir); 674
675 if (!new_dir) 675 EINA_SAFETY_ON_NULL_RETURN_VAL(cb, EINA_FALSE);
676 goto free_it; 676 EINA_SAFETY_ON_NULL_RETURN_VAL(dir, EINA_FALSE);
677 677 EINA_SAFETY_ON_TRUE_RETURN_VAL(dir[0] == '\0', EINA_FALSE);
678 it->handle = _eina_file_win32_first_file(new_dir, &it->data); 678
679 free(new_dir); 679 if (!_eina_file_win32_is_dir(dir))
680 if (it->handle == INVALID_HANDLE_VALUE) 680 return EINA_FALSE;
681 goto free_it; 681
682 682 new_dir = _eina_file_win32_dir_new(dir);
683 memcpy(it->dir, dir, length + 1); 683 if (!new_dir)
684 if (dir[length - 1] != '\\') 684 return EINA_FALSE;
685 it->length = length; 685
686 else 686 h = _eina_file_win32_first_file(new_dir, &file);
687 it->length = length - 1; 687
688 _eina_file_win32_backslash_change(it->dir); 688 if (h == INVALID_HANDLE_VALUE)
689 689 return EINA_FALSE;
690 it->iterator.version = EINA_ITERATOR_VERSION; 690
691 it->iterator.next = FUNC_ITERATOR_NEXT(_eina_file_win32_ls_iterator_next); 691 do
692 it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_eina_file_win32_ls_iterator_container); 692 {
693 it->iterator.free = FUNC_ITERATOR_FREE(_eina_file_win32_ls_iterator_free); 693 char *filename;
694 694
695 return &it->iterator; 695# ifdef UNICODE
696 696 filename = evil_wchar_to_char(file.cFileName);
697 free_it: 697# else
698 free(it); 698 filename = file.cFileName;
699 699# endif /* ! UNICODE */
700 return NULL; 700 if (!strcmp(filename, ".") || !strcmp(filename, ".."))
701} 701 continue;
702 702
703EAPI Eina_Iterator * 703 cb(filename, dir, data);
704eina_file_direct_ls(const char *dir) 704
705{ 705 if (recursive == EINA_TRUE)
706 Eina_File_Direct_Iterator *it; 706 {
707 char *new_dir; 707 char *path;
708 size_t length; 708
709 709 path = alloca(strlen(dir) + strlen(filename) + 2);
710 if (!dir || !*dir) 710 strcpy(path, dir);
711 return NULL; 711 strcat(path, "/");
712 712 strcat(path, filename);
713 length = strlen(dir); 713
714 714 if (!(file.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
715 if (length + 12 + 2 >= MAX_PATH) 715 continue;
716 return NULL; 716
717 717 eina_file_dir_list(path, recursive, cb, data);
718 it = calloc(1, sizeof(Eina_File_Direct_Iterator) + length); 718 }
719 if (!it) 719
720 return NULL; 720# ifdef UNICODE
721 721 free(filename);
722 EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); 722# endif /* UNICODE */
723 723
724 new_dir = _eina_file_win32_dir_new(dir); 724 } while (FindNextFile(h, &file));
725 if (!new_dir) 725 FindClose(h);
726 goto free_it; 726
727 727 return EINA_TRUE;
728 it->handle = _eina_file_win32_first_file(new_dir, &it->data); 728}
729 free(new_dir); 729
730 if (it->handle == INVALID_HANDLE_VALUE) 730EAPI Eina_Array *
731 goto free_it; 731eina_file_split(char *path)
732 732{
733 memcpy(it->dir, dir, length + 1); 733 Eina_Array *ea;
734 it->length = length; 734 char *current;
735 _eina_file_win32_backslash_change(it->dir); 735 size_t length;
736 736
737 memcpy(it->info.path, dir, length); 737 EINA_SAFETY_ON_NULL_RETURN_VAL(path, NULL);
738 if (dir[length - 1] == '\\') 738
739 it->info.name_start = length; 739 ea = eina_array_new(16);
740 else 740
741 { 741 if (!ea)
742 it->info.path[length] = '\\'; 742 return NULL;
743 it->info.name_start = length + 1; 743
744 } 744 for (current = strchr(path, '\\');
745 _eina_file_win32_backslash_change(it->info.path); 745 current;
746 746 path = current + 1, current = strchr(path, '\\'))
747 it->iterator.version = EINA_ITERATOR_VERSION; 747 {
748 it->iterator.next = FUNC_ITERATOR_NEXT(_eina_file_win32_direct_ls_iterator_next); 748 length = current - path;
749 it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_eina_file_win32_direct_ls_iterator_container); 749
750 it->iterator.free = FUNC_ITERATOR_FREE(_eina_file_win32_direct_ls_iterator_free); 750 if (length <= 0)
751 751 continue;
752 return &it->iterator; 752
753 753 eina_array_push(ea, path);
754 free_it: 754 *current = '\0';
755 free(it); 755 }
756 756
757 return NULL; 757 if (*path != '\0')
758} 758 eina_array_push(ea, path);
759 759
760EAPI Eina_Iterator * 760 return ea;
761eina_file_stat_ls(const char *dir) 761}
762{ 762
763 return eina_file_direct_ls(dir); 763EAPI Eina_Iterator *
764} 764eina_file_ls(const char *dir)
765 765{
766EAPI Eina_File * 766 Eina_File_Iterator *it;
767eina_file_open(const char *filename, Eina_Bool shared) 767 char *new_dir;
768{ 768 size_t length;
769 Eina_File *file; 769
770 Eina_File *n; 770 EINA_SAFETY_ON_NULL_RETURN_VAL(dir, NULL);
771 HANDLE handle; 771
772 HANDLE fm; 772 if (!dir || !*dir)
773 WIN32_FILE_ATTRIBUTE_DATA fad; 773 return NULL;
774 ULARGE_INTEGER length; 774
775 ULARGE_INTEGER mtime; 775 if (!_eina_file_win32_is_dir(dir))
776 Eina_Bool create = EINA_FALSE; 776 return NULL;
777 777
778 /* FIXME: always open absolute path (need to fix filename according to current 778 length = strlen(dir);
779 directory) */ 779
780 780 it = calloc(1, sizeof (Eina_File_Iterator) + length);
781 /* FIXME: how to emulate shm_open ? Just OpenFileMapping ? */ 781 if (!it)
782#if 0 782 return NULL;
783 if (shared) 783
784 handle = CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, 784 EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR);
785 NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, 785
786 NULL); 786 new_dir = _eina_file_win32_dir_new(dir);
787 else 787 if (!new_dir)
788#endif 788 goto free_it;
789 handle = CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, 789
790 NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, 790 it->handle = _eina_file_win32_first_file(new_dir, &it->data);
791 NULL); 791 free(new_dir);
792 792 if (it->handle == INVALID_HANDLE_VALUE)
793 if (handle == INVALID_HANDLE_VALUE) 793 goto free_it;
794 return NULL; 794
795 795 memcpy(it->dir, dir, length + 1);
796 fm = CreateFileMapping(handle, NULL, PAGE_READONLY, 0, 0, NULL); 796 if (dir[length - 1] != '\\')
797 if (!fm) 797 it->length = length;
798 goto close_handle; 798 else
799 799 it->length = length - 1;
800 if (!GetFileAttributesEx(filename, GetFileExInfoStandard, &fad)) 800 _eina_file_win32_backslash_change(it->dir);
801 goto close_fm; 801
802 802 it->iterator.version = EINA_ITERATOR_VERSION;
803 length.u.LowPart = fad.nFileSizeLow; 803 it->iterator.next = FUNC_ITERATOR_NEXT(_eina_file_win32_ls_iterator_next);
804 length.u.HighPart = fad.nFileSizeHigh; 804 it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_eina_file_win32_ls_iterator_container);
805 mtime.u.LowPart = fad.ftLastWriteTime.dwLowDateTime; 805 it->iterator.free = FUNC_ITERATOR_FREE(_eina_file_win32_ls_iterator_free);
806 mtime.u.HighPart = fad.ftLastWriteTime.dwHighDateTime; 806
807 807 return &it->iterator;
808 file = eina_hash_find(_eina_file_cache, filename); 808
809 if (file && 809 free_it:
810 (file->mtime != mtime.QuadPart || file->length != length.QuadPart)) 810 free(it);
811 { 811
812 create = EINA_TRUE; 812 return NULL;
813 813}
814 if (file->refcount == 0) 814
815 { 815EAPI Eina_Iterator *
816 _eina_file_cache_lru = eina_list_prepend(_eina_file_cache_lru, file); 816eina_file_direct_ls(const char *dir)
817 eina_hash_del(_eina_file_cache, file->filename, file); 817{
818 818 Eina_File_Direct_Iterator *it;
819 file = NULL; 819 char *new_dir;
820 } 820 size_t length;
821 else if (!file->delete_me) 821
822 { 822 EINA_SAFETY_ON_NULL_RETURN_VAL(dir, NULL);
823 file->delete_me = EINA_TRUE; 823
824 _eina_file_cache_delete = eina_list_prepend(_eina_file_cache_delete, file); 824 if (!dir || !*dir)
825 } 825 return NULL;
826 } 826
827 827 length = strlen(dir);
828 if (!file || create) 828
829 { 829 if (length + 12 + 2 >= MAX_PATH)
830 n = calloc(1, sizeof (Eina_File)); 830 return NULL;
831 if (!n) 831
832 goto close_fm; 832 it = calloc(1, sizeof(Eina_File_Direct_Iterator) + length);
833 833 if (!it)
834 n->filename = eina_stringshare_add(filename); 834 return NULL;
835 n->map = eina_hash_new(EINA_KEY_LENGTH(_eina_file_map_key_length), 835
836 EINA_KEY_CMP(_eina_file_map_key_cmp), 836 EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR);
837 EINA_KEY_HASH(_eina_file_map_key_hash), 837
838 EINA_FREE_CB(_eina_file_map_close), 838 new_dir = _eina_file_win32_dir_new(dir);
839 3); 839 if (!new_dir)
840 n->rmap = eina_hash_pointer_new(NULL); 840 goto free_it;
841 n->global_map = MAP_FAILED; 841
842 n->length = length.QuadPart; 842 it->handle = _eina_file_win32_first_file(new_dir, &it->data);
843 n->mtime = mtime.QuadPart; 843 free(new_dir);
844 n->refcount = 0; 844 if (it->handle == INVALID_HANDLE_VALUE)
845 n->handle = handle; 845 goto free_it;
846 n->fm = fm; 846
847 n->shared = shared; 847 memcpy(it->dir, dir, length + 1);
848 n->delete_me = EINA_FALSE; 848 it->length = length;
849 849 _eina_file_win32_backslash_change(it->dir);
850 eina_hash_set(_eina_file_cache, filename, n); 850
851 } 851 memcpy(it->info.path, dir, length);
852 else 852 if (dir[length - 1] == '\\')
853 { 853 it->info.name_start = length;
854 CloseHandle(fm); 854 else
855 CloseHandle(handle); 855 {
856 856 it->info.path[length] = '\\';
857 n = file; 857 it->info.name_start = length + 1;
858 858 }
859 if (n->refcount == 0) 859 _eina_file_win32_backslash_change(it->info.path);
860 _eina_file_cache_lru = eina_list_remove(_eina_file_cache_lru, n); 860
861 } 861 it->iterator.version = EINA_ITERATOR_VERSION;
862 862 it->iterator.next = FUNC_ITERATOR_NEXT(_eina_file_win32_direct_ls_iterator_next);
863 n->refcount++; 863 it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_eina_file_win32_direct_ls_iterator_container);
864 864 it->iterator.free = FUNC_ITERATOR_FREE(_eina_file_win32_direct_ls_iterator_free);
865 return n; 865
866 866 return &it->iterator;
867 close_fm: 867
868 CloseHandle(fm); 868 free_it:
869 close_handle: 869 free(it);
870 CloseHandle(handle); 870
871 871 return NULL;
872 return NULL; 872}
873} 873
874 874EAPI Eina_Iterator *
875EAPI void 875eina_file_stat_ls(const char *dir)
876eina_file_close(Eina_File *file) 876{
877{ 877 return eina_file_direct_ls(dir);
878 file->refcount--; 878}
879 879
880 if (file->refcount != 0) return ; 880EAPI Eina_File *
881 881eina_file_open(const char *path, Eina_Bool shared)
882 if (file->delete_me) 882{
883 { 883 Eina_File *file;
884 _eina_file_cache_delete = eina_list_remove(_eina_file_cache_delete, file); 884 Eina_File *n;
885 _eina_file_real_close(file); 885 char *filename;
886 } 886 HANDLE handle;
887 else 887 HANDLE fm;
888 { 888 WIN32_FILE_ATTRIBUTE_DATA fad;
889 _eina_file_cache_lru = eina_list_prepend(_eina_file_cache_lru, file); 889 ULARGE_INTEGER length;
890 } 890 ULARGE_INTEGER mtime;
891} 891
892 892 EINA_SAFETY_ON_NULL_RETURN_VAL(path, NULL);
893EAPI size_t 893
894eina_file_size_get(Eina_File *file) 894 filename = eina_file_path_sanitize(path);
895{ 895 if (!filename) return NULL;
896 return file->length; 896
897} 897 /* FIXME: how to emulate shm_open ? Just OpenFileMapping ? */
898 898#if 0
899EAPI time_t 899 if (shared)
900eina_file_mtime_get(Eina_File *file) 900 handle = CreateFile(filename, GENERIC_READ, FILE_SHARE_READ,
901{ 901 NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY,
902 return file->mtime; 902 NULL);
903} 903 else
904 904#endif
905EAPI const char * 905 handle = CreateFile(filename, GENERIC_READ, FILE_SHARE_READ,
906eina_file_filename_get(Eina_File *file) 906 NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY,
907{ 907 NULL);
908 return file->filename; 908
909} 909 if (handle == INVALID_HANDLE_VALUE)
910 910 return NULL;
911EAPI void * 911
912eina_file_map_all(Eina_File *file, Eina_File_Populate rule __UNUSED__) 912 fm = CreateFileMapping(handle, NULL, PAGE_READONLY, 0, 0, NULL);
913{ 913 if (!fm)
914 if (file->global_map == MAP_FAILED) 914 goto close_handle;
915 { 915
916 void *data; 916 if (!GetFileAttributesEx(filename, GetFileExInfoStandard, &fad))
917 917 goto close_fm;
918 data = MapViewOfFile(file->fm, FILE_MAP_READ, 918
919 0, 0, file->length); 919 length.u.LowPart = fad.nFileSizeLow;
920 if (!data) 920 length.u.HighPart = fad.nFileSizeHigh;
921 file->global_map = MAP_FAILED; 921 mtime.u.LowPart = fad.ftLastWriteTime.dwLowDateTime;
922 else 922 mtime.u.HighPart = fad.ftLastWriteTime.dwHighDateTime;
923 file->global_map = data; 923
924 } 924 eina_lock_take(&_eina_file_lock_cache);
925 925
926 if (file->global_map != MAP_FAILED) 926 file = eina_hash_find(_eina_file_cache, filename);
927 { 927 if (file &&
928 file->global_refcount++; 928 (file->mtime != mtime.QuadPart || file->length != length.QuadPart))
929 return file->global_map; 929 {
930 } 930 file->delete_me = EINA_TRUE;
931 931 eina_hash_del(_eina_file_cache, file->filename, file);
932 return NULL; 932 _eina_file_real_close(file);
933} 933 file = NULL;
934 934 }
935EAPI void * 935
936eina_file_map_new(Eina_File *file, Eina_File_Populate rule, 936 if (!file)
937 unsigned long int offset, unsigned long int length) 937 {
938{ 938 n = malloc(sizeof (Eina_File) + strlen(filename) + 1);
939 Eina_File_Map *map; 939 if (!n)
940 unsigned long int key[2]; 940 {
941 941 eina_lock_release(&_eina_file_lock_cache);
942 if (offset > file->length) 942 goto close_fm;
943 return NULL; 943 }
944 if (offset + length > file->length) 944
945 return NULL; 945 n->filename = (char*) (n + 1);
946 946 strcpy((char*) n->filename, filename);
947 if (offset == 0 && length == file->length) 947 n->map = eina_hash_new(EINA_KEY_LENGTH(_eina_file_map_key_length),
948 return eina_file_map_all(file, rule); 948 EINA_KEY_CMP(_eina_file_map_key_cmp),
949 949 EINA_KEY_HASH(_eina_file_map_key_hash),
950 key[0] = offset; 950 EINA_FREE_CB(_eina_file_map_close),
951 key[1] = length; 951 3);
952 952 n->rmap = eina_hash_pointer_new(NULL);
953 map = eina_hash_find(file->map, &key); 953 n->global_map = MAP_FAILED;
954 if (!map) 954 n->global_refcount = 0;
955 { 955 n->length = length.QuadPart;
956 void *data; 956 n->mtime = mtime.QuadPart;
957 957 n->refcount = 0;
958 map = malloc(sizeof (Eina_File_Map)); 958 n->handle = handle;
959 if (!map) return NULL; 959 n->fm = fm;
960 960 n->shared = shared;
961 data = MapViewOfFile(file->fm, FILE_MAP_READ, 961 n->delete_me = EINA_FALSE;
962 offset & 0xffff0000, 962 eina_lock_new(&n->lock);
963 offset & 0x0000ffff, 963 eina_hash_direct_add(_eina_file_cache, n->filename, n);
964 length); 964 }
965 if (!data) 965 else
966 map->map = MAP_FAILED; 966 {
967 else 967 CloseHandle(fm);
968 map->map = data; 968 CloseHandle(handle);
969 969
970 map->offset = offset; 970 n = file;
971 map->length = length; 971 }
972 map->refcount = 0; 972 eina_lock_take(&n->lock);
973 973 n->refcount++;
974 if (map->map == MAP_FAILED) 974 eina_lock_release(&n->lock);
975 { 975
976 free(map); 976 eina_lock_release(&_eina_file_lock_cache);
977 return NULL; 977
978 } 978 free(filename);
979 979
980 eina_hash_add(file->map, &key, map); 980 return n;
981 eina_hash_direct_add(file->rmap, map->map, map); 981
982 } 982 close_fm:
983 983 CloseHandle(fm);
984 map->refcount++; 984 close_handle:
985 985 CloseHandle(handle);
986 return map->map; 986
987} 987 return NULL;
988 988}
989EAPI void 989
990eina_file_map_free(Eina_File *file, void *map) 990EAPI void
991{ 991eina_file_close(Eina_File *file)
992 if (file->global_map == map) 992{
993 { 993 EINA_SAFETY_ON_NULL_RETURN(file);
994 file->global_refcount--; 994
995 995 eina_lock_take(&file->lock);
996 if (file->global_refcount > 0) return ; 996 file->refcount--;
997 997 eina_lock_release(&file->lock);
998 /* FIXME: are we sure that file->global_map != MAP_FAILED ? */ 998
999 if (file->global_map != MAP_FAILED) 999 if (file->refcount != 0) return ;
1000 UnmapViewOfFile(file->global_map); 1000 eina_lock_take(&_eina_file_lock_cache);
1001 file->global_map = MAP_FAILED; 1001
1002 } 1002 eina_hash_del(_eina_file_cache, file->filename, file);
1003 else 1003 _eina_file_real_close(file);
1004 { 1004
1005 Eina_File_Map *em; 1005 eina_lock_release(&_eina_file_lock_cache);
1006 unsigned long int key[2]; 1006}
1007 1007
1008 em = eina_hash_find(file->rmap, &map); 1008EAPI size_t
1009 if (!em) return ; 1009eina_file_size_get(Eina_File *file)
1010 1010{
1011 em->refcount--; 1011 EINA_SAFETY_ON_NULL_RETURN_VAL(file, 0);
1012 1012 return file->length;
1013 if (em->refcount > 0) return ; 1013}
1014 1014
1015 key[0] = em->offset; 1015EAPI time_t
1016 key[1] = em->length; 1016eina_file_mtime_get(Eina_File *file)
1017 1017{
1018 eina_hash_del(file->rmap, &map, em); 1018 EINA_SAFETY_ON_NULL_RETURN_VAL(file, 0);
1019 eina_hash_del(file->map, &key, em); 1019 return file->mtime;
1020 } 1020}
1021} 1021
1022EAPI const char *
1023eina_file_filename_get(Eina_File *file)
1024{
1025 EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
1026 return file->filename;
1027}
1028
1029EAPI Eina_Iterator *eina_file_xattr_get(Eina_File *file __UNUSED__)
1030{
1031 return NULL;
1032}
1033
1034EAPI Eina_Iterator *eina_file_xattr_value_get(Eina_File *file __UNUSED__)
1035{
1036 return NULL;
1037}
1038
1039EAPI void *
1040eina_file_map_all(Eina_File *file, Eina_File_Populate rule __UNUSED__)
1041{
1042 EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
1043
1044 eina_lock_take(&file->lock);
1045 if (file->global_map == MAP_FAILED)
1046 {
1047 void *data;
1048
1049 data = MapViewOfFile(file->fm, FILE_MAP_READ,
1050 0, 0, file->length);
1051 if (!data)
1052 file->global_map = MAP_FAILED;
1053 else
1054 file->global_map = data;
1055 }
1056
1057 if (file->global_map != MAP_FAILED)
1058 {
1059 file->global_refcount++;
1060 return file->global_map;
1061 }
1062
1063 eina_lock_release(&file->lock);
1064 return NULL;
1065}
1066
1067EAPI void *
1068eina_file_map_new(Eina_File *file, Eina_File_Populate rule,
1069 unsigned long int offset, unsigned long int length)
1070{
1071 Eina_File_Map *map;
1072 unsigned long int key[2];
1073
1074 EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
1075
1076 if (offset > file->length)
1077 return NULL;
1078 if (offset + length > file->length)
1079 return NULL;
1080
1081 if (offset == 0 && length == file->length)
1082 return eina_file_map_all(file, rule);
1083
1084 key[0] = offset;
1085 key[1] = length;
1086
1087 eina_lock_take(&file->lock);
1088
1089 map = eina_hash_find(file->map, &key);
1090 if (!map)
1091 {
1092 void *data;
1093
1094 map = malloc(sizeof (Eina_File_Map));
1095 if (!map)
1096 {
1097 eina_lock_release(&file->lock);
1098 return NULL;
1099 }
1100
1101 data = MapViewOfFile(file->fm, FILE_MAP_READ,
1102 offset & 0xffff0000,
1103 offset & 0x0000ffff,
1104 length);
1105 if (!data)
1106 map->map = MAP_FAILED;
1107 else
1108 map->map = data;
1109
1110 map->offset = offset;
1111 map->length = length;
1112 map->refcount = 0;
1113
1114 if (map->map == MAP_FAILED)
1115 {
1116 free(map);
1117 eina_lock_release(&file->lock);
1118 return NULL;
1119 }
1120
1121 eina_hash_add(file->map, &key, map);
1122 eina_hash_direct_add(file->rmap, map->map, map);
1123 }
1124
1125 map->refcount++;
1126
1127 eina_lock_release(&file->lock);
1128
1129 return map->map;
1130}
1131
1132EAPI void
1133eina_file_map_free(Eina_File *file, void *map)
1134{
1135 EINA_SAFETY_ON_NULL_RETURN(file);
1136
1137 eina_lock_take(&file->lock);
1138
1139 if (file->global_map == map)
1140 {
1141 file->global_refcount--;
1142
1143 if (file->global_refcount > 0) goto on_exit;
1144
1145 UnmapViewOfFile(file->global_map);
1146 file->global_map = MAP_FAILED;
1147 }
1148 else
1149 {
1150 Eina_File_Map *em;
1151 unsigned long int key[2];
1152
1153 em = eina_hash_find(file->rmap, &map);
1154 if (!em) goto on_exit;
1155
1156 em->refcount--;
1157
1158 if (em->refcount > 0) goto on_exit;
1159
1160 key[0] = em->offset;
1161 key[1] = em->length;
1162
1163 eina_hash_del(file->rmap, &map, em);
1164 eina_hash_del(file->map, &key, em);
1165 }
1166
1167 on_exit:
1168 eina_lock_release(&file->lock);
1169}
1170
1171EAPI int
1172eina_file_statat(void *container __UNUSED__, Eina_File_Direct_Info *info, Eina_Stat *st)
1173{
1174 struct __stat64 buf;
1175
1176 EINA_SAFETY_ON_NULL_RETURN_VAL(info, -1);
1177 EINA_SAFETY_ON_NULL_RETURN_VAL(st, -1);
1178
1179 if (stat64(info->path, &buf))
1180 {
1181 if (info->type != EINA_FILE_LNK)
1182 info->type = EINA_FILE_UNKNOWN;
1183 return -1;
1184 }
1185
1186 if (info->type == EINA_FILE_UNKNOWN)
1187 {
1188 if (S_ISREG(buf.st_mode))
1189 info->type = EINA_FILE_REG;
1190 else if (S_ISDIR(buf.st_mode))
1191 info->type = EINA_FILE_DIR;
1192 else
1193 info->type = EINA_FILE_UNKNOWN;
1194 }
1195
1196 st->dev = buf.st_dev;
1197 st->ino = buf.st_ino;
1198 st->mode = buf.st_mode;
1199 st->nlink = buf.st_nlink;
1200 st->uid = buf.st_uid;
1201 st->gid = buf.st_gid;
1202 st->rdev = buf.st_rdev;
1203 st->size = buf.st_size;
1204 st->blksize = 0;
1205 st->blocks = 0;
1206 st->atime = buf.st_atime;
1207 st->mtime = buf.st_mtime;
1208 st->ctime = buf.st_ctime;
1209 st->atimensec = 0;
1210 st->mtimensec = 0;
1211 st->ctimensec = 0;
1212
1213 return 0;
1214}
diff --git a/libraries/eina/src/lib/eina_inlist.c b/libraries/eina/src/lib/eina_inlist.c
index 75a2cc1..c80f87b 100644
--- a/libraries/eina/src/lib/eina_inlist.c
+++ b/libraries/eina/src/lib/eina_inlist.c
@@ -430,6 +430,8 @@ eina_inlist_find(Eina_Inlist *list, Eina_Inlist *item)
430{ 430{
431 Eina_Inlist *l; 431 Eina_Inlist *l;
432 432
433 EINA_SAFETY_ON_NULL_RETURN_VAL(item, NULL);
434
433 for (l = list; l; l = l->next) { 435 for (l = list; l; l = l->next) {
434 if (l == item) 436 if (l == item)
435 return item; 437 return item;
@@ -559,6 +561,9 @@ eina_inlist_sorted_insert(Eina_Inlist *list,
559 int cur = 0; 561 int cur = 0;
560 int count; 562 int count;
561 563
564 EINA_SAFETY_ON_NULL_RETURN_VAL(item, list);
565 EINA_SAFETY_ON_NULL_RETURN_VAL(func, list);
566
562 if (!list) return eina_inlist_append(NULL, item); 567 if (!list) return eina_inlist_append(NULL, item);
563 568
564 if (!list->next) 569 if (!list->next)
diff --git a/libraries/eina/src/lib/eina_list.c b/libraries/eina/src/lib/eina_list.c
index d45cffd..c85855f 100644
--- a/libraries/eina/src/lib/eina_list.c
+++ b/libraries/eina/src/lib/eina_list.c
@@ -1026,7 +1026,7 @@ eina_list_clone(const Eina_List *list)
1026} 1026}
1027 1027
1028EAPI Eina_List * 1028EAPI Eina_List *
1029eina_list_sort(Eina_List *list, unsigned int size, Eina_Compare_Cb func) 1029eina_list_sort(Eina_List *list, unsigned int limit, Eina_Compare_Cb func)
1030{ 1030{
1031 unsigned int i = 0; 1031 unsigned int i = 0;
1032 unsigned int n = 0; 1032 unsigned int n = 0;
@@ -1040,14 +1040,14 @@ eina_list_sort(Eina_List *list, unsigned int size, Eina_Compare_Cb func)
1040 1040
1041 EINA_MAGIC_CHECK_LIST(list, NULL); 1041 EINA_MAGIC_CHECK_LIST(list, NULL);
1042 1042
1043 /* if the caller specified an invalid size, sort the whole list */ 1043 /* if the caller specified an invalid limit, sort the whole list */
1044 if ((size == 0) || 1044 if ((limit == 0) ||
1045 (size > list->accounting->count)) 1045 (limit > list->accounting->count))
1046 size = list->accounting->count; 1046 limit = list->accounting->count;
1047 1047
1048 if (size != list->accounting->count) 1048 if (limit != list->accounting->count)
1049 { 1049 {
1050 unsort = eina_list_nth_list(list, size); 1050 unsort = eina_list_nth_list(list, limit);
1051 if (unsort) 1051 if (unsort)
1052 unsort->prev->next = NULL; 1052 unsort->prev->next = NULL;
1053 } 1053 }
@@ -1172,6 +1172,7 @@ eina_list_split_list(Eina_List *list, Eina_List *relative, Eina_List **right)
1172 next->prev = NULL; 1172 next->prev = NULL;
1173 next->accounting = _eina_list_mempool_accounting_new(next); 1173 next->accounting = _eina_list_mempool_accounting_new(next);
1174 next->accounting->last = list->accounting->last; 1174 next->accounting->last = list->accounting->last;
1175 next->accounting->count = 0;
1175 *right = next; 1176 *right = next;
1176 1177
1177 itr = next; 1178 itr = next;
diff --git a/libraries/eina/src/lib/eina_magic.c b/libraries/eina/src/lib/eina_magic.c
index d1f71cc..a42db2d 100644
--- a/libraries/eina/src/lib/eina_magic.c
+++ b/libraries/eina/src/lib/eina_magic.c
@@ -102,13 +102,8 @@ _eina_magic_strings_alloc(void)
102 tmp = realloc(_eina_magic_strings, sizeof(Eina_Magic_String) * size); 102 tmp = realloc(_eina_magic_strings, sizeof(Eina_Magic_String) * size);
103 if (!tmp) 103 if (!tmp)
104 { 104 {
105#ifdef _WIN32
106 ERR("could not realloc magic_strings from %Iu to %Iu buckets.",
107 _eina_magic_strings_allocated, size);
108#else
109 ERR("could not realloc magic_strings from %zu to %zu buckets.", 105 ERR("could not realloc magic_strings from %zu to %zu buckets.",
110 _eina_magic_strings_allocated, size); 106 _eina_magic_strings_allocated, size);
111#endif
112 return NULL; 107 return NULL;
113 } 108 }
114 109
diff --git a/libraries/eina/src/lib/eina_main.c b/libraries/eina/src/lib/eina_main.c
index 79f8a36..f233929 100644
--- a/libraries/eina/src/lib/eina_main.c
+++ b/libraries/eina/src/lib/eina_main.c
@@ -69,6 +69,7 @@
69#include "eina_inlist.h" 69#include "eina_inlist.h"
70#include "eina_inarray.h" 70#include "eina_inarray.h"
71#include "eina_value.h" 71#include "eina_value.h"
72#include "eina_model.h"
72 73
73/*============================================================================* 74/*============================================================================*
74* Local * 75* Local *
@@ -153,6 +154,7 @@ EAPI Eina_Inlist *_eina_tracking = NULL;
153 S(file); 154 S(file);
154 S(prefix); 155 S(prefix);
155 S(value); 156 S(value);
157 S(model);
156#undef S 158#undef S
157 159
158struct eina_desc_setup 160struct eina_desc_setup
@@ -189,7 +191,8 @@ static const struct eina_desc_setup _eina_desc_setup[] = {
189 S(simple_xml), 191 S(simple_xml),
190 S(file), 192 S(file),
191 S(prefix), 193 S(prefix),
192 S(value) 194 S(value),
195 S(model)
193#undef S 196#undef S
194}; 197};
195static const size_t _eina_desc_setup_len = sizeof(_eina_desc_setup) / 198static const size_t _eina_desc_setup_len = sizeof(_eina_desc_setup) /
diff --git a/libraries/eina/src/lib/eina_matrixsparse.c b/libraries/eina/src/lib/eina_matrixsparse.c
index 3ac0439..59cd66b 100644
--- a/libraries/eina/src/lib/eina_matrixsparse.c
+++ b/libraries/eina/src/lib/eina_matrixsparse.c
@@ -1078,6 +1078,8 @@ eina_matrixsparse_size_set(Eina_Matrixsparse *m,
1078 1078
1079 r = r->next; 1079 r = r->next;
1080 _eina_matrixsparse_row_free(r_aux, free_func, user_data); 1080 _eina_matrixsparse_row_free(r_aux, free_func, user_data);
1081 if ((update_last_used_row) && (m->last_used == r_aux))
1082 m->last_used = r;
1081 } 1083 }
1082 else 1084 else
1083 { 1085 {
diff --git a/libraries/eina/src/lib/eina_module.c b/libraries/eina/src/lib/eina_module.c
index 26df980..f4f3242 100644
--- a/libraries/eina/src/lib/eina_module.c
+++ b/libraries/eina/src/lib/eina_module.c
@@ -58,6 +58,10 @@ void *alloca (size_t);
58# include <Escape.h> 58# include <Escape.h>
59#endif 59#endif
60 60
61#ifdef HAVE_EXOTIC_H
62# include <Exotic.h>
63#endif
64
61#include "eina_config.h" 65#include "eina_config.h"
62#include "eina_private.h" 66#include "eina_private.h"
63#include "eina_error.h" 67#include "eina_error.h"
diff --git a/libraries/eina/src/lib/eina_prefix.c b/libraries/eina/src/lib/eina_prefix.c
index 5b4b0c0..2322311 100644
--- a/libraries/eina/src/lib/eina_prefix.c
+++ b/libraries/eina/src/lib/eina_prefix.c
@@ -30,15 +30,15 @@
30#endif 30#endif
31#ifdef HAVE_ALLOCA_H 31#ifdef HAVE_ALLOCA_H
32# include <alloca.h> 32# include <alloca.h>
33#elif defined __GNUC__ 33#elif !defined alloca
34# define alloca __builtin_alloca 34# ifdef __GNUC__
35#elif defined _AIX 35# define alloca __builtin_alloca
36# define alloca __alloca 36# elif defined _AIX
37#elif defined _MSC_VER 37# define alloca __alloca
38# include <malloc.h> 38# elif defined _MSC_VER
39# define alloca _alloca 39# include <malloc.h>
40#else 40# define alloca _alloca
41# ifndef HAVE_ALLOCA 41# elif !defined HAVE_ALLOCA
42# ifdef __cplusplus 42# ifdef __cplusplus
43extern "C" 43extern "C"
44# endif 44# endif
@@ -237,7 +237,7 @@ _try_argv(Eina_Prefix *pfx, const char *argv0)
237 DBG("Try argv0 = %s", argv0); 237 DBG("Try argv0 = %s", argv0);
238 /* 1. is argv0 abs path? */ 238 /* 1. is argv0 abs path? */
239#ifdef _WIN32 239#ifdef _WIN32
240 if (argv0[0] && (argv0[1] == ':')) 240 if (evil_path_is_absolute(argv0))
241#else 241#else
242 if (argv0[0] == DSEP_C) 242 if (argv0[0] == DSEP_C)
243#endif 243#endif
@@ -533,7 +533,7 @@ eina_prefix_new(const char *argv0, void *symbol, const char *envprefix,
533 { 533 {
534 DBG("Dlinfo dli_fname = %s", info_dl.dli_fname); 534 DBG("Dlinfo dli_fname = %s", info_dl.dli_fname);
535# ifdef _WIN32 535# ifdef _WIN32
536 if (info_dl.dli_fname[0] && (info_dl.dli_fname[1] == ':')) 536 if (evil_path_is_absolute(info_dl.dli_fname))
537# else 537# else
538 if (info_dl.dli_fname[0] == DSEP_C) 538 if (info_dl.dli_fname[0] == DSEP_C)
539# endif 539# endif
diff --git a/libraries/eina/src/lib/eina_private.h b/libraries/eina/src/lib/eina_private.h
index e31ab47..49df565 100644
--- a/libraries/eina/src/lib/eina_private.h
+++ b/libraries/eina/src/lib/eina_private.h
@@ -95,6 +95,8 @@
95#define EINA_MAGIC_INARRAY_ITERATOR 0x98761271 95#define EINA_MAGIC_INARRAY_ITERATOR 0x98761271
96#define EINA_MAGIC_INARRAY_ACCESSOR 0x98761272 96#define EINA_MAGIC_INARRAY_ACCESSOR 0x98761272
97 97
98#define EINA_MAGIC_MODEL 0x98761280
99
98#define EINA_MAGIC_CLASS 0x9877CB30 100#define EINA_MAGIC_CLASS 0x9877CB30
99 101
100/* undef the following, we want out version */ 102/* undef the following, we want out version */
diff --git a/libraries/eina/src/lib/eina_rbtree.c b/libraries/eina/src/lib/eina_rbtree.c
index 5f1232c..a9d777a 100644
--- a/libraries/eina/src/lib/eina_rbtree.c
+++ b/libraries/eina/src/lib/eina_rbtree.c
@@ -1,5 +1,6 @@
1/* EINA - EFL data type library 1/* EINA - EFL data type library
2 * Copyright (C) 2008 Cedric Bail 2 * Copyright (C) 2008 Cedric Bail
3 * Copyright (C) 2011 Alexandre Becoulet
3 * 4 *
4 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public 6 * modify it under the terms of the GNU Lesser General Public
@@ -23,6 +24,7 @@
23#include <stdlib.h> 24#include <stdlib.h>
24#include <stdio.h> 25#include <stdio.h>
25#include <string.h> 26#include <string.h>
27#include <stdint.h>
26 28
27#include "eina_config.h" 29#include "eina_config.h"
28#include "eina_private.h" 30#include "eina_private.h"
@@ -244,9 +246,9 @@ static inline Eina_Rbtree *
244_eina_rbtree_inline_single_rotation(Eina_Rbtree *node, 246_eina_rbtree_inline_single_rotation(Eina_Rbtree *node,
245 Eina_Rbtree_Direction dir) 247 Eina_Rbtree_Direction dir)
246{ 248{
247 Eina_Rbtree *save = node->son[!dir]; 249 Eina_Rbtree *save = node->son[dir ^ 1];
248 250
249 node->son[!dir] = save->son[dir]; 251 node->son[dir ^ 1] = save->son[dir];
250 save->son[dir] = node; 252 save->son[dir] = node;
251 253
252 node->color = EINA_RBTREE_RED; 254 node->color = EINA_RBTREE_RED;
@@ -259,7 +261,7 @@ static inline Eina_Rbtree *
259_eina_rbtree_inline_double_rotation(Eina_Rbtree *node, 261_eina_rbtree_inline_double_rotation(Eina_Rbtree *node,
260 Eina_Rbtree_Direction dir) 262 Eina_Rbtree_Direction dir)
261{ 263{
262 node->son[!dir] = _eina_rbtree_inline_single_rotation(node->son[!dir], !dir); 264 node->son[dir ^ 1] = _eina_rbtree_inline_single_rotation(node->son[dir ^ 1], dir ^ 1);
263 return _eina_rbtree_inline_single_rotation(node, dir); 265 return _eina_rbtree_inline_single_rotation(node, dir);
264} 266}
265 267
@@ -277,87 +279,64 @@ eina_rbtree_inline_insert(Eina_Rbtree *root,
277 Eina_Rbtree_Cmp_Node_Cb cmp, 279 Eina_Rbtree_Cmp_Node_Cb cmp,
278 const void *data) 280 const void *data)
279{ 281{
280 Eina_Rbtree head; 282 Eina_Rbtree **r = &root;
281 Eina_Rbtree *g, *t; /* Grandparent & parent */ 283 Eina_Rbtree *q = root;
282 Eina_Rbtree *p, *q; /* Iterator & parent */ 284 uintptr_t stack[48];
283 /* WARNING: 285 unsigned int s = 0;
284 Compiler is not able to understand the underlying algorithm and don't know that
285 first top node is always black, so it will never use last before running the loop
286 one time.
287 */
288 Eina_Rbtree_Direction dir, last;
289 286
290 EINA_SAFETY_ON_NULL_RETURN_VAL(node, root); 287 EINA_SAFETY_ON_NULL_RETURN_VAL(node, root);
291 EINA_SAFETY_ON_NULL_RETURN_VAL( cmp, root); 288 EINA_SAFETY_ON_NULL_RETURN_VAL( cmp, root);
292 289
293 if (!node) 290 /* Find insertion leaf */
294 return root; 291 while (q != NULL)
295 292 {
296 _eina_rbtree_node_init(node); 293 Eina_Rbtree_Direction dir = cmp(q, node, (void *)data);
297
298 if (!root)
299 {
300 root = node;
301 goto end_add;
302 }
303
304 memset(&head, 0, sizeof (Eina_Rbtree));
305 last = dir = EINA_RBTREE_LEFT;
306
307 /* Set up helpers */
308 t = &head;
309 g = p = NULL;
310 q = t->son[1] = root;
311
312 /* Search down the tree */
313 for (;; )
314 {
315 if (!q)
316 /* Insert new node at the bottom */
317 p->son[dir] = q = node;
318 else if (_eina_rbtree_is_red(q->son[0])
319 && _eina_rbtree_is_red(q->son[1]))
320 {
321 /* Color flip */
322 q->color = EINA_RBTREE_RED;
323 q->son[0]->color = EINA_RBTREE_BLACK;
324 q->son[1]->color = EINA_RBTREE_BLACK;
325 }
326
327 /* Fix red violation */
328 if (_eina_rbtree_is_red(q) && _eina_rbtree_is_red(p))
329 {
330 Eina_Rbtree_Direction dir2;
331 294
332 dir2 = (t->son[1] == g) ? EINA_RBTREE_RIGHT : EINA_RBTREE_LEFT; 295 /* Keep path in stack */
296 stack[s++] = (uintptr_t)r | dir;
333 297
334 if (q == p->son[last]) 298 r = q->son + dir;
335 t->son[dir2] = _eina_rbtree_inline_single_rotation(g, !last); 299 q = *r;
336 else 300 }
337 t->son[dir2] = _eina_rbtree_inline_double_rotation(g, !last);
338 }
339
340 /* Stop if found */
341 if (q == node)
342 break;
343
344 last = dir;
345 dir = cmp(q, node, (void *)data);
346 301
347 /* Update helpers */ 302 /* Insert */
348 if ( g ) 303 *r = node;
349 t = g; 304 _eina_rbtree_node_init(node);
350
351 g = p, p = q;
352 q = q->son[dir];
353 }
354 305
355 root = head.son[1]; 306 /* Rebalance */
307 while (s > 0)
308 {
309 Eina_Rbtree *a, *b;
310 uintptr_t top = stack[--s]; /* Pop link pointer and direction */
311 Eina_Rbtree_Direction dir = top & 1;
312
313 r = (Eina_Rbtree **)(top & ~(uintptr_t)1);
314 q = *r;
315
316 a = q->son[dir];
317 /* Rebalance done ? */
318 if (a == NULL || a->color == EINA_RBTREE_BLACK)
319 break;
320
321 b = q->son[dir ^ 1];
322 if (b != NULL && b->color == EINA_RBTREE_RED)
323 {
324 q->color = EINA_RBTREE_RED;
325 b->color = a->color = EINA_RBTREE_BLACK;
326 }
327 else
328 {
329 Eina_Rbtree *c = a->son[dir];
330 Eina_Rbtree *d = a->son[dir ^ 1];
331
332 if (c != NULL && c->color == EINA_RBTREE_RED)
333 *r = _eina_rbtree_inline_single_rotation(*r, dir ^ 1);
334 else if (d != NULL && d->color == EINA_RBTREE_RED)
335 *r = _eina_rbtree_inline_double_rotation(*r, dir ^ 1);
336 }
337 }
356 338
357end_add:
358 /* Make root black */
359 root->color = EINA_RBTREE_BLACK; 339 root->color = EINA_RBTREE_BLACK;
360
361 return root; 340 return root;
362} 341}
363 342
@@ -367,122 +346,144 @@ eina_rbtree_inline_remove(Eina_Rbtree *root,
367 Eina_Rbtree_Cmp_Node_Cb cmp, 346 Eina_Rbtree_Cmp_Node_Cb cmp,
368 const void *data) 347 const void *data)
369{ 348{
370 Eina_Rbtree head; 349 Eina_Rbtree *l0, *l1, *r, **rt = &root;
371 Eina_Rbtree *q, *p;
372 Eina_Rbtree *f = NULL;
373 Eina_Rbtree_Direction dir; 350 Eina_Rbtree_Direction dir;
351 uintptr_t stack[48];
352 unsigned int s = 0;
374 353
375 EINA_SAFETY_ON_NULL_RETURN_VAL(node, root); 354 EINA_SAFETY_ON_NULL_RETURN_VAL(node, root);
376 EINA_SAFETY_ON_NULL_RETURN_VAL( cmp, root); 355 EINA_SAFETY_ON_NULL_RETURN_VAL( cmp, root);
377 356
378 if (!root || !node) 357 /* Item search loop */
379 return root; 358 for (r = *rt; r != NULL; r = *rt)
380 359 {
381 memset(&head, 0, sizeof(Eina_Rbtree)); 360 if (r == node)
382 361 goto found;
383 dir = EINA_RBTREE_RIGHT;
384 q = &head;
385 p = NULL;
386 q->son[EINA_RBTREE_RIGHT] = root;
387
388 /* Search and push a red down */
389 while (q->son[dir])
390 {
391 Eina_Rbtree_Direction last = dir;
392 Eina_Rbtree *g;
393
394 /* Update helpers */
395 g = p; p = q;
396 q = q->son[dir];
397 dir = cmp(q, node, (void *)data);
398
399 /* Save parent node found */
400 if (q == node)
401 f = p;
402 362
403 /* Push the red node down */ 363 dir = cmp(r, node, (void*)data);
404 if (!_eina_rbtree_is_red(q) 364 stack[s++] = (uintptr_t)rt | dir;
405 && !_eina_rbtree_is_red(q->son[dir])) 365 rt = r->son + dir;
406 { 366 }
407 if (_eina_rbtree_is_red(q->son[!dir])) 367 return root;
408 q = p->son[last] = _eina_rbtree_inline_single_rotation(q, dir);
409 else if (!_eina_rbtree_is_red(q->son[!dir]))
410 {
411 Eina_Rbtree *s = p->son[!last];
412
413 if (s)
414 {
415 if (!_eina_rbtree_is_red(s->son[EINA_RBTREE_LEFT])
416 && !_eina_rbtree_is_red(s->son[EINA_RBTREE_RIGHT]))
417 {
418/* Color flip */
419 p->color = EINA_RBTREE_BLACK;
420 p->son[EINA_RBTREE_LEFT]->color = EINA_RBTREE_RED;
421 p->son[EINA_RBTREE_RIGHT]->color = EINA_RBTREE_RED;
422 }
423 else
424 {
425 Eina_Rbtree_Direction dir2;
426
427 dir2 = g->son[1] ==
428 p ? EINA_RBTREE_RIGHT : EINA_RBTREE_LEFT;
429
430 if (_eina_rbtree_is_red(s->son[last]))
431 {
432 g->son[dir2] =
433 _eina_rbtree_inline_double_rotation(p, last);
434 if (f == g)
435 {
436 p = g->son[dir2]->son[last];
437 f = g->son[dir2];
438 }
439 }
440 else if (_eina_rbtree_is_red(s->son[!last]))
441 {
442 g->son[dir2] =
443 _eina_rbtree_inline_single_rotation(p, last);
444 if (f == g)
445 {
446 p = g->son[dir2]->son[last];
447 f = g->son[dir2];
448 }
449 }
450
451/* Ensure correct coloring */
452 q->color = g->son[dir2]->color = EINA_RBTREE_RED;
453 g->son[dir2]->son[EINA_RBTREE_LEFT]->color =
454 EINA_RBTREE_BLACK;
455 g->son[dir2]->son[EINA_RBTREE_RIGHT]->color =
456 EINA_RBTREE_BLACK;
457 }
458 }
459 }
460 }
461 }
462
463 /* Replace and remove if found */
464 if (f)
465 {
466 /* 'q' should take the place of 'node' parent */
467 f->son[f->son[1] == node] = q;
468
469 /* Switch the link from the parent to q's son */
470 p->son[p->son[1] == q] = q->son[!q->son[0]];
471
472 /* Put q at the place of node */
473 q->son[0] = node->son[0];
474 q->son[1] = node->son[1];
475 q->color = node->color;
476
477 /* Reset node link */
478 node->son[0] = NULL;
479 node->son[1] = NULL;
480 }
481 368
482 root = head.son[1]; 369 found:
483 if (root) 370 /* remove entry */
371 l0 = node->son[0];
372 l1 = node->son[1];
373
374 if (l0 != NULL && l1 != NULL) /* two links case */
375 {
376 Eina_Rbtree *q, **t, **p;
377 uintptr_t ss;
378
379 stack[s++] = (uintptr_t)rt | 1;
380 ss = s; /* keep predecessor right link stack index */
381
382 /* find predecessor */
383 p = node->son + 1;
384 q = *p;
385
386 while (1)
387 {
388 t = q->son;
389 q = *t;
390 if (q == NULL)
391 break;
392 stack[s++] = (uintptr_t)p | 0;
393 p = t;
394 }
395
396 /* detach predecessor */
397 q = *p;
398 *p = q->son[1];
399
400 int c = q->color;
401
402 /* replace entry by predecessor */
403 memcpy(q, node, sizeof(Eina_Rbtree));
404 *rt = q;
405
406 if (c == EINA_RBTREE_RED)
407 goto end;
408
409 /* fix stack for replaced entry */
410 if (s > ss)
411 stack[ss] = (uintptr_t)(q->son + 1) | 0;
412 }
413 else /* single link case */
414 {
415 if (l0 == NULL)
416 l0 = l1;
417
418 *rt = l0;
419
420 if (node->color == EINA_RBTREE_RED)
421 goto end; /* removed red */
422
423 if (l0 != NULL && l0->color == EINA_RBTREE_RED)
424 {
425 /* red child replace removed black */
426 l0->color = EINA_RBTREE_BLACK;
427 goto end;
428 }
429 }
430
431 /* rebalance */
432 while (s > 0)
433 {
434 Eina_Rbtree *q;
435 uintptr_t st = stack[--s];
436
437 rt = (Eina_Rbtree**)(st & ~(uintptr_t)1);
438 dir = st & 1;
439 r = *rt;
440 q = r->son[dir ^ 1];
441
442 if (q != NULL && q->color == EINA_RBTREE_RED)
443 {
444 *rt = _eina_rbtree_inline_single_rotation(*rt, dir);
445 q = r->son[dir ^ 1];
446 rt = (*rt)->son + dir;
447 }
448
449 if (q != NULL)
450 {
451 int r_color = r->color;
452 Eina_Rbtree *nd = q->son[dir ^ 1];
453
454 if (nd != NULL && nd->color == EINA_RBTREE_RED)
455 {
456 *rt = _eina_rbtree_inline_single_rotation(*rt, dir);
457 }
458 else
459 {
460 Eina_Rbtree *d = q->son[dir];
461
462 if (d != NULL && d->color == EINA_RBTREE_RED)
463 {
464 *rt = _eina_rbtree_inline_double_rotation(*rt, dir);
465 }
466 else
467 {
468 r->color = EINA_RBTREE_BLACK;
469 q->color = EINA_RBTREE_RED;
470 if (r_color == EINA_RBTREE_RED)
471 break;
472 continue;
473 }
474 }
475
476 r = *rt;
477 r->color = r_color;
478 r->son[1]->color = r->son[0]->color = EINA_RBTREE_BLACK;
479
480 break;
481 }
482 }
483
484 end:
485 if (root != NULL)
484 root->color = EINA_RBTREE_BLACK; 486 root->color = EINA_RBTREE_BLACK;
485
486 return root; 487 return root;
487} 488}
488 489
diff --git a/libraries/eina/src/lib/eina_sched.c b/libraries/eina/src/lib/eina_sched.c
index 8c7f7fe..b8e7000 100644
--- a/libraries/eina/src/lib/eina_sched.c
+++ b/libraries/eina/src/lib/eina_sched.c
@@ -41,7 +41,7 @@
41#include "eina_sched.h" 41#include "eina_sched.h"
42#include "eina_log.h" 42#include "eina_log.h"
43 43
44#define RTNICENESS 5 44#define RTNICENESS 1
45#define NICENESS 5 45#define NICENESS 5
46 46
47EAPI void 47EAPI void
@@ -62,10 +62,14 @@ eina_sched_prio_drop(void)
62 62
63 if (EINA_UNLIKELY(pol == SCHED_RR || pol == SCHED_FIFO)) 63 if (EINA_UNLIKELY(pol == SCHED_RR || pol == SCHED_FIFO))
64 { 64 {
65 prio = sched_get_priority_max(pol); 65 param.sched_priority -= RTNICENESS;
66 param.sched_priority += RTNICENESS; 66
67 if (prio > 0 && param.sched_priority > prio) 67 /* We don't change the policy */
68 param.sched_priority = prio; 68 if (param.sched_priority < 1)
69 {
70 EINA_LOG_INFO("RT prio < 1, setting to 1 instead");
71 param.sched_priority = 1;
72 }
69 73
70 pthread_setschedparam(pthread_id, pol, &param); 74 pthread_setschedparam(pthread_id, pol, &param);
71 } 75 }
@@ -78,7 +82,10 @@ eina_sched_prio_drop(void)
78 { 82 {
79 prio += NICENESS; 83 prio += NICENESS;
80 if (prio > 19) 84 if (prio > 19)
81 prio = 19; 85 {
86 EINA_LOG_INFO("Max niceness reached; keeping max (19)");
87 prio = 19;
88 }
82 89
83 setpriority(PRIO_PROCESS, 0, prio); 90 setpriority(PRIO_PROCESS, 0, prio);
84 } 91 }
diff --git a/libraries/eina/src/lib/eina_share_common.c b/libraries/eina/src/lib/eina_share_common.c
index 90e1868..776e429 100644
--- a/libraries/eina/src/lib/eina_share_common.c
+++ b/libraries/eina/src/lib/eina_share_common.c
@@ -76,7 +76,6 @@
76#include "eina_hash.h" 76#include "eina_hash.h"
77#include "eina_rbtree.h" 77#include "eina_rbtree.h"
78#include "eina_error.h" 78#include "eina_error.h"
79#include "eina_log.h"
80#include "eina_lock.h" 79#include "eina_lock.h"
81 80
82/* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ 81/* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */
@@ -126,8 +125,6 @@ typedef struct _Eina_Share_Common Eina_Share_Common;
126typedef struct _Eina_Share_Common_Node Eina_Share_Common_Node; 125typedef struct _Eina_Share_Common_Node Eina_Share_Common_Node;
127typedef struct _Eina_Share_Common_Head Eina_Share_Common_Head; 126typedef struct _Eina_Share_Common_Head Eina_Share_Common_Head;
128 127
129int _eina_share_common_log_dom = -1;
130
131struct _Eina_Share 128struct _Eina_Share
132{ 129{
133 Eina_Share_Common *share; 130 Eina_Share_Common *share;
@@ -600,28 +597,8 @@ eina_share_common_init(Eina_Share **_share,
600 share = *_share = calloc(sizeof(Eina_Share), 1); 597 share = *_share = calloc(sizeof(Eina_Share), 1);
601 if (!share) goto on_error; 598 if (!share) goto on_error;
602 599
603 if (_eina_share_common_log_dom < 0) /*Only register if not already */
604 _eina_share_common_log_dom = eina_log_domain_register(
605 "eina_share",
606 EINA_LOG_COLOR_DEFAULT);
607
608 if (_eina_share_common_log_dom < 0)
609 {
610 EINA_LOG_ERR("Could not register log domain: eina_share_common");
611 goto on_error;
612 }
613
614 share->share = calloc(1, sizeof(Eina_Share_Common)); 600 share->share = calloc(1, sizeof(Eina_Share_Common));
615 if (!share->share) 601 if (!share->share) goto on_error;
616 {
617 if (_eina_share_common_log_dom > 0)
618 {
619 eina_log_domain_unregister(_eina_share_common_log_dom);
620 _eina_share_common_log_dom = -1;
621 }
622
623 goto on_error;
624 }
625 602
626 share->node_magic = node_magic; 603 share->node_magic = node_magic;
627#define EMS(n) eina_magic_string_static_set(n, n ## _STR) 604#define EMS(n) eina_magic_string_static_set(n, n ## _STR)
@@ -678,11 +655,6 @@ eina_share_common_shutdown(Eina_Share **_share)
678 MAGIC_FREE(share->share); 655 MAGIC_FREE(share->share);
679 656
680 _eina_share_common_population_shutdown(share); 657 _eina_share_common_population_shutdown(share);
681 if (_eina_share_common_log_dom > 0) /* Only free if necessary */
682 {
683 eina_log_domain_unregister(_eina_share_common_log_dom);
684 _eina_share_common_log_dom = -1;
685 }
686 658
687 eina_lock_release(&_mutex_big); 659 eina_lock_release(&_mutex_big);
688 660
@@ -833,7 +805,7 @@ eina_share_common_ref(Eina_Share *share, const char *str)
833} 805}
834 806
835 807
836void 808Eina_Bool
837eina_share_common_del(Eina_Share *share, const char *str) 809eina_share_common_del(Eina_Share *share, const char *str)
838{ 810{
839 unsigned int slen; 811 unsigned int slen;
@@ -843,7 +815,7 @@ eina_share_common_del(Eina_Share *share, const char *str)
843 int hash_num, hash; 815 int hash_num, hash;
844 816
845 if (!str) 817 if (!str)
846 return; 818 return EINA_TRUE;
847 819
848 eina_lock_take(&_mutex_big); 820 eina_lock_take(&_mutex_big);
849 821
@@ -857,7 +829,7 @@ eina_share_common_del(Eina_Share *share, const char *str)
857 { 829 {
858 node->references--; 830 node->references--;
859 eina_lock_release(&_mutex_big); 831 eina_lock_release(&_mutex_big);
860 return; 832 return EINA_TRUE;
861 } 833 }
862 834
863 node->references = 0; 835 node->references = 0;
@@ -871,7 +843,7 @@ eina_share_common_del(Eina_Share *share, const char *str)
871 if (!ed) 843 if (!ed)
872 goto on_error; 844 goto on_error;
873 845
874 EINA_MAGIC_CHECK_SHARE_COMMON_HEAD(ed, eina_lock_release(&_mutex_big)); 846 EINA_MAGIC_CHECK_SHARE_COMMON_HEAD(ed, eina_lock_release(&_mutex_big), EINA_FALSE);
875 847
876 if (!_eina_share_common_head_remove_node(ed, node)) 848 if (!_eina_share_common_head_remove_node(ed, node))
877 goto on_error; 849 goto on_error;
@@ -886,12 +858,12 @@ eina_share_common_del(Eina_Share *share, const char *str)
886 858
887 eina_lock_release(&_mutex_big); 859 eina_lock_release(&_mutex_big);
888 860
889 return; 861 return EINA_TRUE;
890 862
891on_error: 863on_error:
892 eina_lock_release(&_mutex_big); 864 eina_lock_release(&_mutex_big);
893 /* possible segfault happened before here, but... */ 865 /* possible segfault happened before here, but... */
894 CRITICAL("EEEK trying to del non-shared share_common \"%s\"", str); 866 return EINA_FALSE;
895} 867}
896 868
897int 869int
diff --git a/libraries/eina/src/lib/eina_share_common.h b/libraries/eina/src/lib/eina_share_common.h
index 002c652..6bc11ef 100644
--- a/libraries/eina/src/lib/eina_share_common.h
+++ b/libraries/eina/src/lib/eina_share_common.h
@@ -71,7 +71,7 @@ const char *eina_share_common_add_length(Eina_Share *share,
71 unsigned int null_size) 71 unsigned int null_size)
72EINA_WARN_UNUSED_RESULT; 72EINA_WARN_UNUSED_RESULT;
73const char *eina_share_common_ref(Eina_Share *share, const char *str); 73const char *eina_share_common_ref(Eina_Share *share, const char *str);
74void eina_share_common_del(Eina_Share *share, const char *str); 74Eina_Bool eina_share_common_del(Eina_Share *share, const char *str) EINA_WARN_UNUSED_RESULT;
75int eina_share_common_length(Eina_Share *share, 75int eina_share_common_length(Eina_Share *share,
76 const char *str) EINA_CONST 76 const char *str) EINA_CONST
77EINA_WARN_UNUSED_RESULT; 77EINA_WARN_UNUSED_RESULT;
@@ -83,21 +83,4 @@ void eina_share_common_dump(Eina_Share *share, void (*additional_dump)(
83void eina_share_common_population_add(Eina_Share *share, int slen); 83void eina_share_common_population_add(Eina_Share *share, int slen);
84void eina_share_common_population_del(Eina_Share *share, int slen); 84void eina_share_common_population_del(Eina_Share *share, int slen);
85 85
86/* Share logging */ 86#endif /* EINA_SHARE_COMMON_H_ */
87#ifdef CRITICAL
88#undef CRITICAL
89#endif
90#define CRITICAL(...) EINA_LOG_DOM_CRIT(_eina_share_common_log_dom, __VA_ARGS__)
91
92#ifdef ERR
93#undef ERR
94#endif
95#define ERR(...) EINA_LOG_DOM_ERR(_eina_share_common_log_dom, __VA_ARGS__)
96
97#ifdef DBG
98#undef DBG
99#endif
100#define DBG(...) EINA_LOG_DOM_DBG(_eina_share_common_log_dom, __VA_ARGS__)
101extern int _eina_share_common_log_dom;
102
103#endif /* EINA_STRINGSHARE_H_ */
diff --git a/libraries/eina/src/lib/eina_stringshare.c b/libraries/eina/src/lib/eina_stringshare.c
index 478b300..f371fcd 100644
--- a/libraries/eina/src/lib/eina_stringshare.c
+++ b/libraries/eina/src/lib/eina_stringshare.c
@@ -55,12 +55,30 @@ void *alloca (size_t);
55#include "eina_private.h" 55#include "eina_private.h"
56#include "eina_error.h" 56#include "eina_error.h"
57#include "eina_log.h" 57#include "eina_log.h"
58#include "eina_stringshare.h"
59#include "eina_lock.h" 58#include "eina_lock.h"
59#include "eina_share_common.h"
60 60
61/* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ 61/* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */
62#include "eina_safety_checks.h" 62#include "eina_safety_checks.h"
63#include "eina_share_common.h" 63#include "eina_stringshare.h"
64
65
66#ifdef CRITICAL
67#undef CRITICAL
68#endif
69#define CRITICAL(...) EINA_LOG_DOM_CRIT(_eina_share_stringshare_log_dom, __VA_ARGS__)
70
71#ifdef ERR
72#undef ERR
73#endif
74#define ERR(...) EINA_LOG_DOM_ERR(_eina_share_stringshare_log_dom, __VA_ARGS__)
75
76#ifdef DBG
77#undef DBG
78#endif
79#define DBG(...) EINA_LOG_DOM_DBG(_eina_share_stringshare_log_dom, __VA_ARGS__)
80
81static int _eina_share_stringshare_log_dom = -1;
64 82
65/* The actual share */ 83/* The actual share */
66static Eina_Share *stringshare_share; 84static Eina_Share *stringshare_share;
@@ -447,11 +465,8 @@ _eina_stringshare_small_bucket_dump(Eina_Stringshare_Small_Bucket *bucket,
447 for (i = 0; i < bucket->count; i++, s++, l++, r++) 465 for (i = 0; i < bucket->count; i++, s++, l++, r++)
448 { 466 {
449 int dups; 467 int dups;
450#ifdef _WIN32 468
451 printf("DDD: %5hu %5hu '%s'\n", *l, *r, *s);
452#else
453 printf("DDD: %5hhu %5hu '%s'\n", *l, *r, *s); 469 printf("DDD: %5hhu %5hu '%s'\n", *l, *r, *s);
454#endif
455 470
456 dups = (*r - 1); 471 dups = (*r - 1);
457 472
@@ -500,11 +515,29 @@ Eina_Bool
500eina_stringshare_init(void) 515eina_stringshare_init(void)
501{ 516{
502 Eina_Bool ret; 517 Eina_Bool ret;
518
519 if (_eina_share_stringshare_log_dom < 0)
520 {
521 _eina_share_stringshare_log_dom = eina_log_domain_register
522 ("eina_stringshare", EINA_LOG_COLOR_DEFAULT);
523
524 if (_eina_share_stringshare_log_dom < 0)
525 {
526 EINA_LOG_ERR("Could not register log domain: eina_stringshare");
527 return EINA_FALSE;
528 }
529 }
530
503 ret = eina_share_common_init(&stringshare_share, 531 ret = eina_share_common_init(&stringshare_share,
504 EINA_MAGIC_STRINGSHARE_NODE, 532 EINA_MAGIC_STRINGSHARE_NODE,
505 EINA_MAGIC_STRINGSHARE_NODE_STR); 533 EINA_MAGIC_STRINGSHARE_NODE_STR);
506 if (ret) 534 if (ret)
507 _eina_stringshare_small_init(); 535 _eina_stringshare_small_init();
536 else
537 {
538 eina_log_domain_unregister(_eina_share_stringshare_log_dom);
539 _eina_share_stringshare_log_dom = -1;
540 }
508 541
509 return ret; 542 return ret;
510} 543}
@@ -526,6 +559,13 @@ eina_stringshare_shutdown(void)
526 Eina_Bool ret; 559 Eina_Bool ret;
527 _eina_stringshare_small_shutdown(); 560 _eina_stringshare_small_shutdown();
528 ret = eina_share_common_shutdown(&stringshare_share); 561 ret = eina_share_common_shutdown(&stringshare_share);
562
563 if (_eina_share_stringshare_log_dom >= 0)
564 {
565 eina_log_domain_unregister(_eina_share_stringshare_log_dom);
566 _eina_share_stringshare_log_dom = -1;
567 }
568
529 return ret; 569 return ret;
530} 570}
531 571
@@ -534,7 +574,7 @@ eina_stringshare_shutdown(void)
534*============================================================================*/ 574*============================================================================*/
535 575
536EAPI void 576EAPI void
537eina_stringshare_del(const char *str) 577eina_stringshare_del(Eina_Stringshare *str)
538{ 578{
539 int slen; 579 int slen;
540 580
@@ -564,16 +604,17 @@ eina_stringshare_del(const char *str)
564 return; 604 return;
565 } 605 }
566 606
567 eina_share_common_del(stringshare_share, str); 607 if (!eina_share_common_del(stringshare_share, str))
608 CRITICAL("EEEK trying to del non-shared stringshare \"%s\"", str);
568} 609}
569 610
570EAPI const char * 611EAPI Eina_Stringshare *
571eina_stringshare_add_length(const char *str, unsigned int slen) 612eina_stringshare_add_length(const char *str, unsigned int slen)
572{ 613{
573 if ((!str) || (slen <= 0)) 614 if ((!str) || (slen <= 0))
574 return ""; 615 return "";
575 else if (slen == 1) 616 else if (slen == 1)
576 return (const char *)_eina_stringshare_single + ((*str) << 1); 617 return (Eina_Stringshare *) _eina_stringshare_single + ((*str) << 1);
577 else if (slen < 4) 618 else if (slen < 4)
578 { 619 {
579 const char *s; 620 const char *s;
@@ -588,7 +629,7 @@ eina_stringshare_add_length(const char *str, unsigned int slen)
588 sizeof(char), sizeof(char)); 629 sizeof(char), sizeof(char));
589} 630}
590 631
591EAPI const char * 632EAPI Eina_Stringshare *
592eina_stringshare_add(const char *str) 633eina_stringshare_add(const char *str)
593{ 634{
594 int slen; 635 int slen;
@@ -609,7 +650,7 @@ eina_stringshare_add(const char *str)
609 return eina_stringshare_add_length(str, slen); 650 return eina_stringshare_add_length(str, slen);
610} 651}
611 652
612EAPI const char * 653EAPI Eina_Stringshare *
613eina_stringshare_printf(const char *fmt, ...) 654eina_stringshare_printf(const char *fmt, ...)
614{ 655{
615 va_list args; 656 va_list args;
@@ -633,7 +674,7 @@ eina_stringshare_printf(const char *fmt, ...)
633 return ret; 674 return ret;
634} 675}
635 676
636EAPI const char * 677EAPI Eina_Stringshare *
637eina_stringshare_vprintf(const char *fmt, va_list args) 678eina_stringshare_vprintf(const char *fmt, va_list args)
638{ 679{
639 char *tmp; 680 char *tmp;
@@ -654,7 +695,7 @@ eina_stringshare_vprintf(const char *fmt, va_list args)
654 return ret; 695 return ret;
655} 696}
656 697
657EAPI const char * 698EAPI Eina_Stringshare *
658eina_stringshare_nprintf(unsigned int len, const char *fmt, ...) 699eina_stringshare_nprintf(unsigned int len, const char *fmt, ...)
659{ 700{
660 va_list args; 701 va_list args;
@@ -679,8 +720,8 @@ eina_stringshare_nprintf(unsigned int len, const char *fmt, ...)
679 return eina_stringshare_add_length(tmp, len); 720 return eina_stringshare_add_length(tmp, len);
680} 721}
681 722
682EAPI const char * 723EAPI Eina_Stringshare *
683eina_stringshare_ref(const char *str) 724eina_stringshare_ref(Eina_Stringshare *str)
684{ 725{
685 int slen; 726 int slen;
686 727
@@ -721,7 +762,7 @@ eina_stringshare_ref(const char *str)
721} 762}
722 763
723EAPI int 764EAPI int
724eina_stringshare_strlen(const char *str) 765eina_stringshare_strlen(Eina_Stringshare *str)
725{ 766{
726 int len; 767 int len;
727 /* special cases */ 768 /* special cases */
@@ -737,7 +778,7 @@ eina_stringshare_strlen(const char *str)
737 if (str[3] == '\0') 778 if (str[3] == '\0')
738 return 3; 779 return 3;
739 780
740 len = eina_share_common_length(stringshare_share, (const char *)str); 781 len = eina_share_common_length(stringshare_share, (Eina_Stringshare *) str);
741 len = (len > 0) ? len / (int)sizeof(char) : -1; 782 len = (len > 0) ? len / (int)sizeof(char) : -1;
742 return len; 783 return len;
743} 784}
diff --git a/libraries/eina/src/lib/eina_unicode.c b/libraries/eina/src/lib/eina_unicode.c
index 342e3cb..7505906 100644
--- a/libraries/eina/src/lib/eina_unicode.c
+++ b/libraries/eina/src/lib/eina_unicode.c
@@ -15,10 +15,18 @@
15 * You should have received a copy of the GNU Lesser General Public 15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; 16 * License along with this library;
17 * if not, see <http://www.gnu.org/licenses/>. 17 * if not, see <http://www.gnu.org/licenses/>.
18
19 */ 18 */
20 19
21#include <Eina.h> 20#ifdef HAVE_CONFIG_H
21# include "config.h"
22#endif
23
24#include "eina_config.h"
25#include "eina_private.h"
26#include <string.h>
27
28/* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */
29#include "eina_safety_checks.h"
22#include "eina_unicode.h" 30#include "eina_unicode.h"
23 31
24/* FIXME: check if sizeof(wchar_t) == sizeof(Eina_Unicode) if so, 32/* FIXME: check if sizeof(wchar_t) == sizeof(Eina_Unicode) if so,
@@ -30,6 +38,9 @@ EAPI const Eina_Unicode *EINA_UNICODE_EMPTY_STRING = _EINA_UNICODE_EMPTY_STRING;
30EAPI int 38EAPI int
31eina_unicode_strcmp(const Eina_Unicode *a, const Eina_Unicode *b) 39eina_unicode_strcmp(const Eina_Unicode *a, const Eina_Unicode *b)
32{ 40{
41 EINA_SAFETY_ON_NULL_RETURN_VAL(a, -1);
42 EINA_SAFETY_ON_NULL_RETURN_VAL(b, -1);
43
33 for (; *a && *a == *b; a++, b++) 44 for (; *a && *a == *b; a++, b++)
34 ; 45 ;
35 if (*a == *b) 46 if (*a == *b)
@@ -45,6 +56,9 @@ eina_unicode_strcpy(Eina_Unicode *dest, const Eina_Unicode *source)
45{ 56{
46 Eina_Unicode *ret = dest; 57 Eina_Unicode *ret = dest;
47 58
59 EINA_SAFETY_ON_NULL_RETURN_VAL(dest, NULL);
60 EINA_SAFETY_ON_NULL_RETURN_VAL(source, NULL);
61
48 while (*source) 62 while (*source)
49 *dest++ = *source++; 63 *dest++ = *source++;
50 *dest = 0; 64 *dest = 0;
@@ -56,6 +70,9 @@ eina_unicode_strncpy(Eina_Unicode *dest, const Eina_Unicode *source, size_t n)
56{ 70{
57 Eina_Unicode *ret = dest; 71 Eina_Unicode *ret = dest;
58 72
73 EINA_SAFETY_ON_NULL_RETURN_VAL(dest, NULL);
74 EINA_SAFETY_ON_NULL_RETURN_VAL(source, NULL);
75
59 for ( ; n && *source ; n--) 76 for ( ; n && *source ; n--)
60 *dest++ = *source++; 77 *dest++ = *source++;
61 for (; n; n--) 78 for (; n; n--)
@@ -67,6 +84,9 @@ EAPI size_t
67eina_unicode_strlen(const Eina_Unicode *ustr) 84eina_unicode_strlen(const Eina_Unicode *ustr)
68{ 85{
69 const Eina_Unicode *end; 86 const Eina_Unicode *end;
87
88 EINA_SAFETY_ON_NULL_RETURN_VAL(ustr, 0);
89
70 for (end = ustr; *end; end++) 90 for (end = ustr; *end; end++)
71 ; 91 ;
72 return end - ustr; 92 return end - ustr;
@@ -77,6 +97,9 @@ eina_unicode_strnlen(const Eina_Unicode *ustr, int n)
77{ 97{
78 const Eina_Unicode *end; 98 const Eina_Unicode *end;
79 const Eina_Unicode *last = ustr + n; /* technically not portable ;-) */ 99 const Eina_Unicode *last = ustr + n; /* technically not portable ;-) */
100
101 EINA_SAFETY_ON_NULL_RETURN_VAL(ustr, 0);
102
80 for (end = ustr; end < last && *end; end++) 103 for (end = ustr; end < last && *end; end++)
81 ; 104 ;
82 return end - ustr; 105 return end - ustr;
@@ -90,7 +113,9 @@ eina_unicode_strndup(const Eina_Unicode *text, size_t n)
90{ 113{
91 Eina_Unicode *ustr; 114 Eina_Unicode *ustr;
92 115
93 ustr = (Eina_Unicode *) malloc((n + 1) * sizeof(Eina_Unicode)); 116 EINA_SAFETY_ON_NULL_RETURN_VAL(text, NULL);
117
118 ustr = malloc((n + 1) * sizeof(Eina_Unicode));
94 memcpy(ustr, text, n * sizeof(Eina_Unicode)); 119 memcpy(ustr, text, n * sizeof(Eina_Unicode));
95 ustr[n] = 0; 120 ustr[n] = 0;
96 return ustr; 121 return ustr;
@@ -101,6 +126,8 @@ eina_unicode_strdup(const Eina_Unicode *text)
101{ 126{
102 size_t len; 127 size_t len;
103 128
129 EINA_SAFETY_ON_NULL_RETURN_VAL(text, NULL);
130
104 len = eina_unicode_strlen(text); 131 len = eina_unicode_strlen(text);
105 return eina_unicode_strndup(text, len); 132 return eina_unicode_strndup(text, len);
106} 133}
@@ -110,6 +137,9 @@ eina_unicode_strstr(const Eina_Unicode *haystack, const Eina_Unicode *needle)
110{ 137{
111 const Eina_Unicode *i, *j; 138 const Eina_Unicode *i, *j;
112 139
140 EINA_SAFETY_ON_NULL_RETURN_VAL(haystack, NULL);
141 EINA_SAFETY_ON_NULL_RETURN_VAL(needle, NULL);
142
113 for (i = haystack; *i; i++) 143 for (i = haystack; *i; i++)
114 { 144 {
115 haystack = i; /* set this location as the base position */ 145 haystack = i; /* set this location as the base position */
@@ -131,6 +161,8 @@ eina_unicode_escape(const Eina_Unicode *str)
131 Eina_Unicode *s2, *d; 161 Eina_Unicode *s2, *d;
132 const Eina_Unicode *s; 162 const Eina_Unicode *s;
133 163
164 EINA_SAFETY_ON_NULL_RETURN_VAL(str, NULL);
165
134 s2 = malloc((eina_unicode_strlen(str) * 2) + 1); 166 s2 = malloc((eina_unicode_strlen(str) * 2) + 1);
135 if (!s2) 167 if (!s2)
136 return NULL; 168 return NULL;
@@ -165,6 +197,9 @@ eina_unicode_utf8_get_next(const char *buf, int *iindex)
165 Eina_Unicode r; 197 Eina_Unicode r;
166 unsigned char d; 198 unsigned char d;
167 199
200 EINA_SAFETY_ON_NULL_RETURN_VAL(buf, 0);
201 EINA_SAFETY_ON_NULL_RETURN_VAL(iindex, 0);
202
168 /* if this char is the null terminator, exit */ 203 /* if this char is the null terminator, exit */
169 if ((d = buf[ind++]) == 0) return 0; 204 if ((d = buf[ind++]) == 0) return 0;
170 205
@@ -266,8 +301,12 @@ error:
266EAPI Eina_Unicode 301EAPI Eina_Unicode
267eina_unicode_utf8_get_prev(const char *buf, int *iindex) 302eina_unicode_utf8_get_prev(const char *buf, int *iindex)
268{ 303{
269 int r; 304 int r, ind;
270 int ind = *iindex; 305
306 EINA_SAFETY_ON_NULL_RETURN_VAL(buf, 0);
307 EINA_SAFETY_ON_NULL_RETURN_VAL(iindex, 0);
308
309 ind = *iindex;
271 /* First obtain the codepoint at iindex */ 310 /* First obtain the codepoint at iindex */
272 r = eina_unicode_utf8_get_next(buf, &ind); 311 r = eina_unicode_utf8_get_next(buf, &ind);
273 312
@@ -292,6 +331,8 @@ eina_unicode_utf8_get_len(const char *buf)
292 /* returns the number of utf8 characters (not bytes) in the string */ 331 /* returns the number of utf8 characters (not bytes) in the string */
293 int i = 0, len = 0; 332 int i = 0, len = 0;
294 333
334 EINA_SAFETY_ON_NULL_RETURN_VAL(buf, 0);
335
295 while (eina_unicode_utf8_get_next(buf, &i)) 336 while (eina_unicode_utf8_get_next(buf, &i))
296 len++; 337 len++;
297 338
@@ -306,6 +347,8 @@ eina_unicode_utf8_to_unicode(const char *utf, int *_len)
306 int ind; 347 int ind;
307 Eina_Unicode *buf, *uind; 348 Eina_Unicode *buf, *uind;
308 349
350 EINA_SAFETY_ON_NULL_RETURN_VAL(utf, NULL);
351
309 len = eina_unicode_utf8_get_len(utf); 352 len = eina_unicode_utf8_get_len(utf);
310 if (_len) 353 if (_len)
311 *_len = len; 354 *_len = len;
@@ -328,6 +371,8 @@ eina_unicode_unicode_to_utf8(const Eina_Unicode *uni, int *_len)
328 char *ind; 371 char *ind;
329 int ulen, len; 372 int ulen, len;
330 373
374 EINA_SAFETY_ON_NULL_RETURN_VAL(uni, NULL);
375
331 ulen = eina_unicode_strlen(uni); 376 ulen = eina_unicode_strlen(uni);
332 buf = (char *) calloc(ulen + 1, EINA_UNICODE_UTF8_BYTES_PER_CHAR); 377 buf = (char *) calloc(ulen + 1, EINA_UNICODE_UTF8_BYTES_PER_CHAR);
333 378
diff --git a/libraries/eina/src/lib/eina_ustringshare.c b/libraries/eina/src/lib/eina_ustringshare.c
index 3992dc6..33be242 100644
--- a/libraries/eina/src/lib/eina_ustringshare.c
+++ b/libraries/eina/src/lib/eina_ustringshare.c
@@ -27,11 +27,38 @@
27 * 27 *
28 */ 28 */
29 29
30#include "eina_share_common.h" 30#ifdef HAVE_CONFIG_H
31#include "eina_unicode.h" 31# include "config.h"
32#endif
33
34#include "eina_config.h"
32#include "eina_private.h" 35#include "eina_private.h"
36#include "eina_unicode.h"
37#include "eina_log.h"
38#include "eina_share_common.h"
39
40/* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */
41#include "eina_safety_checks.h"
33#include "eina_ustringshare.h" 42#include "eina_ustringshare.h"
34 43
44
45#ifdef CRITICAL
46#undef CRITICAL
47#endif
48#define CRITICAL(...) EINA_LOG_DOM_CRIT(_eina_share_ustringshare_log_dom, __VA_ARGS__)
49
50#ifdef ERR
51#undef ERR
52#endif
53#define ERR(...) EINA_LOG_DOM_ERR(_eina_share_ustringshare_log_dom, __VA_ARGS__)
54
55#ifdef DBG
56#undef DBG
57#endif
58#define DBG(...) EINA_LOG_DOM_DBG(_eina_share_ustringshare_log_dom, __VA_ARGS__)
59
60static int _eina_share_ustringshare_log_dom = -1;
61
35/* The actual share */ 62/* The actual share */
36static Eina_Share *ustringshare_share; 63static Eina_Share *ustringshare_share;
37static const char EINA_MAGIC_USTRINGSHARE_NODE_STR[] = "Eina UStringshare Node"; 64static const char EINA_MAGIC_USTRINGSHARE_NODE_STR[] = "Eina UStringshare Node";
@@ -54,9 +81,31 @@ static const char EINA_MAGIC_USTRINGSHARE_NODE_STR[] = "Eina UStringshare Node";
54Eina_Bool 81Eina_Bool
55eina_ustringshare_init(void) 82eina_ustringshare_init(void)
56{ 83{
57 return eina_share_common_init(&ustringshare_share, 84 Eina_Bool ret;
58 EINA_MAGIC_USTRINGSHARE_NODE, 85
59 EINA_MAGIC_USTRINGSHARE_NODE_STR); 86 if (_eina_share_ustringshare_log_dom < 0)
87 {
88 _eina_share_ustringshare_log_dom = eina_log_domain_register
89 ("eina_ustringshare", EINA_LOG_COLOR_DEFAULT);
90
91 if (_eina_share_ustringshare_log_dom < 0)
92 {
93 EINA_LOG_ERR("Could not register log domain: eina_ustringshare");
94 return EINA_FALSE;
95 }
96 }
97
98 ret = eina_share_common_init(&ustringshare_share,
99 EINA_MAGIC_USTRINGSHARE_NODE,
100 EINA_MAGIC_USTRINGSHARE_NODE_STR);
101
102 if (!ret)
103 {
104 eina_log_domain_unregister(_eina_share_ustringshare_log_dom);
105 _eina_share_ustringshare_log_dom = -1;
106 }
107
108 return ret;
60} 109}
61 110
62/** 111/**
@@ -75,6 +124,13 @@ eina_ustringshare_shutdown(void)
75{ 124{
76 Eina_Bool ret; 125 Eina_Bool ret;
77 ret = eina_share_common_shutdown(&ustringshare_share); 126 ret = eina_share_common_shutdown(&ustringshare_share);
127
128 if (_eina_share_ustringshare_log_dom >= 0)
129 {
130 eina_log_domain_unregister(_eina_share_ustringshare_log_dom);
131 _eina_share_ustringshare_log_dom = -1;
132 }
133
78 return ret; 134 return ret;
79} 135}
80 136
@@ -88,7 +144,8 @@ eina_ustringshare_del(const Eina_Unicode *str)
88 if (!str) 144 if (!str)
89 return; 145 return;
90 146
91 eina_share_common_del(ustringshare_share,(const char *)str); 147 if (!eina_share_common_del(ustringshare_share, (const char *)str))
148 CRITICAL("EEEK trying to del non-shared ustringshare \"%s\"", (const char *)str);
92} 149}
93 150
94EAPI const Eina_Unicode * 151EAPI const Eina_Unicode *
diff --git a/libraries/eina/src/lib/eina_value.c b/libraries/eina/src/lib/eina_value.c
index ba8af52..b8df693 100644
--- a/libraries/eina/src/lib/eina_value.c
+++ b/libraries/eina/src/lib/eina_value.c
@@ -49,6 +49,10 @@ void *alloca (size_t);
49#include <inttypes.h> /* PRId64 and PRIu64 */ 49#include <inttypes.h> /* PRId64 and PRIu64 */
50#include <sys/time.h> /* struct timeval */ 50#include <sys/time.h> /* struct timeval */
51 51
52#ifdef HAVE_EVIL
53# include <Evil.h>
54#endif
55
52#include "eina_config.h" 56#include "eina_config.h"
53#include "eina_private.h" 57#include "eina_private.h"
54#include "eina_error.h" 58#include "eina_error.h"
@@ -60,6 +64,7 @@ void *alloca (size_t);
60/* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ 64/* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */
61#include "eina_safety_checks.h" 65#include "eina_safety_checks.h"
62#include "eina_value.h" 66#include "eina_value.h"
67#include "eina_model.h" /* uses eina_value.h */
63 68
64/*============================================================================* 69/*============================================================================*
65* Local * 70* Local *
@@ -168,7 +173,7 @@ _eina_value_type_uchar_convert_to(const Eina_Value_Type *type __UNUSED__, const
168 unsigned int other_mem = v; 173 unsigned int other_mem = v;
169 return eina_value_type_pset(convert, convert_mem, &other_mem); 174 return eina_value_type_pset(convert, convert_mem, &other_mem);
170 } 175 }
171 else if (convert == EINA_VALUE_TYPE_ULONG) 176 else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP))
172 { 177 {
173 unsigned long other_mem = v; 178 unsigned long other_mem = v;
174 return eina_value_type_pset(convert, convert_mem, &other_mem); 179 return eina_value_type_pset(convert, convert_mem, &other_mem);
@@ -317,7 +322,7 @@ _eina_value_type_ushort_convert_to(const Eina_Value_Type *type __UNUSED__, const
317 unsigned int other_mem = v; 322 unsigned int other_mem = v;
318 return eina_value_type_pset(convert, convert_mem, &other_mem); 323 return eina_value_type_pset(convert, convert_mem, &other_mem);
319 } 324 }
320 else if (convert == EINA_VALUE_TYPE_ULONG) 325 else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP))
321 { 326 {
322 unsigned long other_mem = v; 327 unsigned long other_mem = v;
323 return eina_value_type_pset(convert, convert_mem, &other_mem); 328 return eina_value_type_pset(convert, convert_mem, &other_mem);
@@ -470,7 +475,7 @@ _eina_value_type_uint_convert_to(const Eina_Value_Type *type __UNUSED__, const E
470 unsigned int other_mem = v; 475 unsigned int other_mem = v;
471 return eina_value_type_pset(convert, convert_mem, &other_mem); 476 return eina_value_type_pset(convert, convert_mem, &other_mem);
472 } 477 }
473 else if (convert == EINA_VALUE_TYPE_ULONG) 478 else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP))
474 { 479 {
475 unsigned long other_mem = v; 480 unsigned long other_mem = v;
476 return eina_value_type_pset(convert, convert_mem, &other_mem); 481 return eina_value_type_pset(convert, convert_mem, &other_mem);
@@ -627,7 +632,7 @@ _eina_value_type_ulong_convert_to(const Eina_Value_Type *type __UNUSED__, const
627 return EINA_FALSE; 632 return EINA_FALSE;
628 return eina_value_type_pset(convert, convert_mem, &other_mem); 633 return eina_value_type_pset(convert, convert_mem, &other_mem);
629 } 634 }
630 else if (convert == EINA_VALUE_TYPE_ULONG) 635 else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP))
631 { 636 {
632 unsigned long other_mem = v; 637 unsigned long other_mem = v;
633 return eina_value_type_pset(convert, convert_mem, &other_mem); 638 return eina_value_type_pset(convert, convert_mem, &other_mem);
@@ -786,7 +791,7 @@ _eina_value_type_uint64_convert_to(const Eina_Value_Type *type __UNUSED__, const
786 return EINA_FALSE; 791 return EINA_FALSE;
787 return eina_value_type_pset(convert, convert_mem, &other_mem); 792 return eina_value_type_pset(convert, convert_mem, &other_mem);
788 } 793 }
789 else if (convert == EINA_VALUE_TYPE_ULONG) 794 else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP))
790 { 795 {
791 unsigned long other_mem = v; 796 unsigned long other_mem = v;
792 if (EINA_UNLIKELY((sizeof(other_mem) != sizeof(v)) && 797 if (EINA_UNLIKELY((sizeof(other_mem) != sizeof(v)) &&
@@ -950,7 +955,7 @@ _eina_value_type_char_convert_to(const Eina_Value_Type *type __UNUSED__, const E
950 return EINA_FALSE; 955 return EINA_FALSE;
951 return eina_value_type_pset(convert, convert_mem, &other_mem); 956 return eina_value_type_pset(convert, convert_mem, &other_mem);
952 } 957 }
953 else if (convert == EINA_VALUE_TYPE_ULONG) 958 else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP))
954 { 959 {
955 unsigned long other_mem = v; 960 unsigned long other_mem = v;
956 if (EINA_UNLIKELY(v < 0)) 961 if (EINA_UNLIKELY(v < 0))
@@ -1107,7 +1112,7 @@ _eina_value_type_short_convert_to(const Eina_Value_Type *type __UNUSED__, const
1107 return EINA_FALSE; 1112 return EINA_FALSE;
1108 return eina_value_type_pset(convert, convert_mem, &other_mem); 1113 return eina_value_type_pset(convert, convert_mem, &other_mem);
1109 } 1114 }
1110 else if (convert == EINA_VALUE_TYPE_ULONG) 1115 else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP))
1111 { 1116 {
1112 unsigned long other_mem = v; 1117 unsigned long other_mem = v;
1113 if (EINA_UNLIKELY(v < 0)) 1118 if (EINA_UNLIKELY(v < 0))
@@ -1270,7 +1275,7 @@ _eina_value_type_int_convert_to(const Eina_Value_Type *type __UNUSED__, const Ei
1270 return EINA_FALSE; 1275 return EINA_FALSE;
1271 return eina_value_type_pset(convert, convert_mem, &other_mem); 1276 return eina_value_type_pset(convert, convert_mem, &other_mem);
1272 } 1277 }
1273 else if (convert == EINA_VALUE_TYPE_ULONG) 1278 else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP))
1274 { 1279 {
1275 unsigned long other_mem = v; 1280 unsigned long other_mem = v;
1276 if (EINA_UNLIKELY(v < 0)) 1281 if (EINA_UNLIKELY(v < 0))
@@ -1439,7 +1444,7 @@ _eina_value_type_long_convert_to(const Eina_Value_Type *type __UNUSED__, const E
1439 return EINA_FALSE; 1444 return EINA_FALSE;
1440 return eina_value_type_pset(convert, convert_mem, &other_mem); 1445 return eina_value_type_pset(convert, convert_mem, &other_mem);
1441 } 1446 }
1442 else if (convert == EINA_VALUE_TYPE_ULONG) 1447 else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP))
1443 { 1448 {
1444 unsigned long other_mem = v; 1449 unsigned long other_mem = v;
1445 if (EINA_UNLIKELY(v < 0)) 1450 if (EINA_UNLIKELY(v < 0))
@@ -1612,7 +1617,7 @@ _eina_value_type_int64_convert_to(const Eina_Value_Type *type __UNUSED__, const
1612 return EINA_FALSE; 1617 return EINA_FALSE;
1613 return eina_value_type_pset(convert, convert_mem, &other_mem); 1618 return eina_value_type_pset(convert, convert_mem, &other_mem);
1614 } 1619 }
1615 else if (convert == EINA_VALUE_TYPE_ULONG) 1620 else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP))
1616 { 1621 {
1617 unsigned long other_mem = v; 1622 unsigned long other_mem = v;
1618 if (EINA_UNLIKELY(v < 0)) 1623 if (EINA_UNLIKELY(v < 0))
@@ -1792,7 +1797,7 @@ _eina_value_type_float_convert_to(const Eina_Value_Type *type __UNUSED__, const
1792 return EINA_FALSE; 1797 return EINA_FALSE;
1793 return eina_value_type_pset(convert, convert_mem, &other_mem); 1798 return eina_value_type_pset(convert, convert_mem, &other_mem);
1794 } 1799 }
1795 else if (convert == EINA_VALUE_TYPE_ULONG) 1800 else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP))
1796 { 1801 {
1797 unsigned long other_mem = v; 1802 unsigned long other_mem = v;
1798 if (EINA_UNLIKELY(v < 0)) 1803 if (EINA_UNLIKELY(v < 0))
@@ -1978,7 +1983,7 @@ _eina_value_type_double_convert_to(const Eina_Value_Type *type __UNUSED__, const
1978 return EINA_FALSE; 1983 return EINA_FALSE;
1979 return eina_value_type_pset(convert, convert_mem, &other_mem); 1984 return eina_value_type_pset(convert, convert_mem, &other_mem);
1980 } 1985 }
1981 else if (convert == EINA_VALUE_TYPE_ULONG) 1986 else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP))
1982 { 1987 {
1983 unsigned long other_mem = v; 1988 unsigned long other_mem = v;
1984 if (EINA_UNLIKELY(v < 0)) 1989 if (EINA_UNLIKELY(v < 0))
@@ -2146,7 +2151,7 @@ _eina_value_type_string_common_convert_to(const Eina_Value_Type *type __UNUSED__
2146 return EINA_FALSE; 2151 return EINA_FALSE;
2147 return eina_value_type_pset(convert, convert_mem, &other_mem); 2152 return eina_value_type_pset(convert, convert_mem, &other_mem);
2148 } 2153 }
2149 else if (convert == EINA_VALUE_TYPE_ULONG) 2154 else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP))
2150 { 2155 {
2151 unsigned long other_mem; 2156 unsigned long other_mem;
2152 if ((sscanf(v, "%lu", &other_mem) != 1) && 2157 if ((sscanf(v, "%lu", &other_mem) != 1) &&
@@ -2248,7 +2253,11 @@ static Eina_Bool
2248_eina_value_type_stringshare_flush(const Eina_Value_Type *type __UNUSED__, void *mem) 2253_eina_value_type_stringshare_flush(const Eina_Value_Type *type __UNUSED__, void *mem)
2249{ 2254{
2250 const char **tmem = mem; 2255 const char **tmem = mem;
2251 if (*tmem) eina_stringshare_del(*tmem); 2256 if (*tmem)
2257 {
2258 eina_stringshare_del(*tmem);
2259 *tmem = NULL;
2260 }
2252 return EINA_TRUE; 2261 return EINA_TRUE;
2253} 2262}
2254 2263
@@ -2257,8 +2266,7 @@ _eina_value_type_stringshare_copy(const Eina_Value_Type *type __UNUSED__, const
2257{ 2266{
2258 const char * const*s = src; 2267 const char * const*s = src;
2259 const char **d = dst; 2268 const char **d = dst;
2260 *d = *s; 2269 *d = eina_stringshare_add(*s);
2261 eina_stringshare_ref(*d);
2262 return EINA_TRUE; 2270 return EINA_TRUE;
2263} 2271}
2264 2272
@@ -2280,7 +2288,11 @@ static Eina_Bool
2280_eina_value_type_string_flush(const Eina_Value_Type *type __UNUSED__, void *mem) 2288_eina_value_type_string_flush(const Eina_Value_Type *type __UNUSED__, void *mem)
2281{ 2289{
2282 char **tmem = mem; 2290 char **tmem = mem;
2283 if (*tmem) free(*tmem); 2291 if (*tmem)
2292 {
2293 free(*tmem);
2294 *tmem = NULL;
2295 }
2284 return EINA_TRUE; 2296 return EINA_TRUE;
2285} 2297}
2286 2298
@@ -2308,19 +2320,24 @@ _eina_value_type_string_vset(const Eina_Value_Type *type __UNUSED__, void *mem,
2308{ 2320{
2309 char **tmem = mem; 2321 char **tmem = mem;
2310 const char *str = va_arg(args, const char *); 2322 const char *str = va_arg(args, const char *);
2311 free(*tmem); 2323 eina_error_set(0);
2312 if (str == NULL) 2324 if (str == *tmem) return EINA_TRUE;
2313 *tmem = NULL; 2325 if (!str)
2326 {
2327 free(*tmem);
2328 *tmem = NULL;
2329 }
2314 else 2330 else
2315 { 2331 {
2316 *tmem = strdup(str); 2332 char *tmp = strdup(str);
2317 if (*tmem == NULL) 2333 if (!tmp)
2318 { 2334 {
2319 eina_error_set(EINA_ERROR_OUT_OF_MEMORY); 2335 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
2320 return EINA_FALSE; 2336 return EINA_FALSE;
2321 } 2337 }
2338 free(*tmem);
2339 *tmem = tmp;
2322 } 2340 }
2323 eina_error_set(0);
2324 return EINA_TRUE; 2341 return EINA_TRUE;
2325} 2342}
2326 2343
@@ -2329,19 +2346,24 @@ _eina_value_type_string_pset(const Eina_Value_Type *type __UNUSED__, void *mem,
2329{ 2346{
2330 char **tmem = mem; 2347 char **tmem = mem;
2331 const char * const *str = ptr; 2348 const char * const *str = ptr;
2332 free(*tmem); 2349 eina_error_set(0);
2333 if (*str == NULL) 2350 if (*str == *tmem) return EINA_TRUE;
2334 *tmem = NULL; 2351 if (!*str)
2352 {
2353 free(*tmem);
2354 *tmem = NULL;
2355 }
2335 else 2356 else
2336 { 2357 {
2337 *tmem = strdup(*str); 2358 char *tmp = strdup(*str);
2338 if (*tmem == NULL) 2359 if (!tmp)
2339 { 2360 {
2340 eina_error_set(EINA_ERROR_OUT_OF_MEMORY); 2361 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
2341 return EINA_FALSE; 2362 return EINA_FALSE;
2342 } 2363 }
2364 free(*tmem);
2365 *tmem = tmp;
2343 } 2366 }
2344 eina_error_set(0);
2345 return EINA_TRUE; 2367 return EINA_TRUE;
2346} 2368}
2347 2369
@@ -2505,12 +2527,13 @@ _eina_value_type_array_convert_to(const Eina_Value_Type *type __UNUSED__, const
2505 (convert == EINA_VALUE_TYPE_STRINGSHARE)) 2527 (convert == EINA_VALUE_TYPE_STRINGSHARE))
2506 { 2528 {
2507 Eina_Strbuf *str = eina_strbuf_new(); 2529 Eina_Strbuf *str = eina_strbuf_new();
2530 const char *ptr;
2508 if (!tmem->array) eina_strbuf_append(str, "[]"); 2531 if (!tmem->array) eina_strbuf_append(str, "[]");
2509 else 2532 else
2510 { 2533 {
2511 const Eina_Value_Type *subtype = tmem->subtype; 2534 const Eina_Value_Type *subtype = tmem->subtype;
2512 unsigned char sz; 2535 unsigned char sz;
2513 const char *ptr, *ptr_end; 2536 const char *ptr_end;
2514 Eina_Value tmp; 2537 Eina_Value tmp;
2515 Eina_Bool first = EINA_TRUE; 2538 Eina_Bool first = EINA_TRUE;
2516 2539
@@ -2551,10 +2574,10 @@ _eina_value_type_array_convert_to(const Eina_Value_Type *type __UNUSED__, const
2551 } 2574 }
2552 2575
2553 eina_strbuf_append_char(str, ']'); 2576 eina_strbuf_append_char(str, ']');
2554 ptr = eina_strbuf_string_get(str);
2555 ret = eina_value_type_pset(convert, convert_mem, &ptr);
2556 eina_strbuf_free(str);
2557 } 2577 }
2578 ptr = eina_strbuf_string_get(str);
2579 ret = eina_value_type_pset(convert, convert_mem, &ptr);
2580 eina_strbuf_free(str);
2558 } 2581 }
2559 else if ((tmem->array) && (tmem->array->len == 1)) 2582 else if ((tmem->array) && (tmem->array->len == 1))
2560 { 2583 {
@@ -2606,43 +2629,51 @@ _eina_value_type_array_convert_from(const Eina_Value_Type *type, const Eina_Valu
2606} 2629}
2607 2630
2608static Eina_Bool 2631static Eina_Bool
2609_eina_value_type_array_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) 2632_eina_value_type_array_pset(const Eina_Value_Type *type, void *mem, const void *ptr)
2610{ 2633{
2611 Eina_Value_Array *tmem = mem; 2634 Eina_Value_Array *tmem = mem;
2612 const Eina_Value_Array *desc = ptr; 2635 const Eina_Value_Array *desc = ptr;
2613 Eina_Inarray *desc_array; 2636 Eina_Inarray *desc_array;
2614 2637
2638 eina_error_set(0);
2615 if ((!tmem->subtype) && (!desc->subtype)) 2639 if ((!tmem->subtype) && (!desc->subtype))
2616 return EINA_TRUE; 2640 return EINA_TRUE;
2617 2641
2618 desc_array = desc->array; 2642 desc_array = desc->array;
2619 if (desc_array) 2643 if (desc_array)
2620 { 2644 {
2645 Eina_Value_Array tmp;
2646
2621 EINA_SAFETY_ON_FALSE_RETURN_VAL 2647 EINA_SAFETY_ON_FALSE_RETURN_VAL
2622 (desc_array->member_size == desc->subtype->value_size, EINA_FALSE); 2648 (desc_array->member_size == desc->subtype->value_size, EINA_FALSE);
2649
2650 if (desc_array == tmem->array)
2651 {
2652 tmem->subtype = desc->subtype;
2653 return EINA_TRUE;
2654 }
2655
2656 if (!_eina_value_type_array_copy(type, desc, &tmp))
2657 return EINA_FALSE;
2658
2659 _eina_value_type_array_flush(type, tmem);
2660 memcpy(tmem, &tmp, sizeof(tmp));
2661 return EINA_TRUE;
2623 } 2662 }
2624 2663
2625 if (tmem->array) 2664 if (tmem->array)
2626 { 2665 {
2627 _eina_value_type_array_flush_elements(tmem); 2666 _eina_value_type_array_flush_elements(tmem);
2628 if (desc_array) 2667 eina_inarray_setup(tmem->array, desc->subtype->value_size, desc->step);
2629 eina_inarray_free(tmem->array);
2630 else
2631 eina_inarray_setup(tmem->array, desc->subtype->value_size,
2632 desc->step);
2633 } 2668 }
2634 else if (!desc_array) 2669 else
2635 { 2670 {
2636 tmem->array = eina_inarray_new(desc->subtype->value_size, desc->step); 2671 tmem->array = eina_inarray_new(desc->subtype->value_size, desc->step);
2637 if (!tmem->array) 2672 if (!tmem->array)
2638 return EINA_FALSE; 2673 return EINA_FALSE;
2639 } 2674 }
2640 2675
2641 if (desc_array)
2642 tmem->array = desc_array;
2643
2644 tmem->subtype = desc->subtype; 2676 tmem->subtype = desc->subtype;
2645
2646 return EINA_TRUE; 2677 return EINA_TRUE;
2647} 2678}
2648 2679
@@ -2821,13 +2852,13 @@ _eina_value_type_list_convert_to(const Eina_Value_Type *type __UNUSED__, const E
2821 (convert == EINA_VALUE_TYPE_STRINGSHARE)) 2852 (convert == EINA_VALUE_TYPE_STRINGSHARE))
2822 { 2853 {
2823 Eina_Strbuf *str = eina_strbuf_new(); 2854 Eina_Strbuf *str = eina_strbuf_new();
2855 const char *s;
2824 if (!tmem->list) eina_strbuf_append(str, "[]"); 2856 if (!tmem->list) eina_strbuf_append(str, "[]");
2825 else 2857 else
2826 { 2858 {
2827 const Eina_Value_Type *subtype = tmem->subtype; 2859 const Eina_Value_Type *subtype = tmem->subtype;
2828 const Eina_List *node; 2860 const Eina_List *node;
2829 Eina_Value tmp; 2861 Eina_Value tmp;
2830 const char *s;
2831 Eina_Bool first = EINA_TRUE; 2862 Eina_Bool first = EINA_TRUE;
2832 2863
2833 eina_value_setup(&tmp, EINA_VALUE_TYPE_STRING); 2864 eina_value_setup(&tmp, EINA_VALUE_TYPE_STRING);
@@ -2867,10 +2898,10 @@ _eina_value_type_list_convert_to(const Eina_Value_Type *type __UNUSED__, const E
2867 } 2898 }
2868 2899
2869 eina_strbuf_append_char(str, ']'); 2900 eina_strbuf_append_char(str, ']');
2870 s = eina_strbuf_string_get(str);
2871 ret = eina_value_type_pset(convert, convert_mem, &s);
2872 eina_strbuf_free(str);
2873 } 2901 }
2902 s = eina_strbuf_string_get(str);
2903 ret = eina_value_type_pset(convert, convert_mem, &s);
2904 eina_strbuf_free(str);
2874 } 2905 }
2875 else if ((tmem->list) && (tmem->list->next == NULL)) 2906 else if ((tmem->list) && (tmem->list->next == NULL))
2876 { 2907 {
@@ -2932,18 +2963,36 @@ _eina_value_type_list_convert_from(const Eina_Value_Type *type, const Eina_Value
2932} 2963}
2933 2964
2934static Eina_Bool 2965static Eina_Bool
2935_eina_value_type_list_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) 2966_eina_value_type_list_pset(const Eina_Value_Type *type, void *mem, const void *ptr)
2936{ 2967{
2937 Eina_Value_List *tmem = mem; 2968 Eina_Value_List *tmem = mem;
2938 const Eina_Value_List *desc = ptr; 2969 const Eina_Value_List *desc = ptr;
2939 2970
2971 eina_error_set(0);
2940 if ((!tmem->subtype) && (!desc->subtype)) 2972 if ((!tmem->subtype) && (!desc->subtype))
2941 return EINA_TRUE; 2973 return EINA_TRUE;
2942 2974
2975 if ((tmem->list) && (tmem->list == desc->list))
2976 {
2977 tmem->subtype = desc->subtype;
2978 return EINA_TRUE;
2979 }
2980
2981 if (desc->list)
2982 {
2983 Eina_Value_List tmp;
2984
2985 if (!_eina_value_type_list_copy(type, desc, &tmp))
2986 return EINA_FALSE;
2987
2988 _eina_value_type_list_flush(type, tmem);
2989 memcpy(tmem, &tmp, sizeof(tmp));
2990 return EINA_TRUE;
2991 }
2992
2943 _eina_value_type_list_flush_elements(tmem); 2993 _eina_value_type_list_flush_elements(tmem);
2944 tmem->subtype = desc->subtype;
2945 tmem->list = desc->list;
2946 2994
2995 tmem->subtype = desc->subtype;
2947 return EINA_TRUE; 2996 return EINA_TRUE;
2948} 2997}
2949 2998
@@ -2995,6 +3044,7 @@ _eina_value_type_hash_flush_each(const Eina_Hash *hash __UNUSED__, const void *k
2995{ 3044{
2996 struct _eina_value_type_hash_flush_each_ctx *ctx = user_data; 3045 struct _eina_value_type_hash_flush_each_ctx *ctx = user_data;
2997 ctx->ret &= eina_value_type_flush(ctx->subtype, mem); 3046 ctx->ret &= eina_value_type_flush(ctx->subtype, mem);
3047 free(mem);
2998 return EINA_TRUE; 3048 return EINA_TRUE;
2999} 3049}
3000 3050
@@ -3239,11 +3289,11 @@ _eina_value_type_hash_convert_to(const Eina_Value_Type *type __UNUSED__, const E
3239 (convert == EINA_VALUE_TYPE_STRINGSHARE)) 3289 (convert == EINA_VALUE_TYPE_STRINGSHARE))
3240 { 3290 {
3241 Eina_Strbuf *str = eina_strbuf_new(); 3291 Eina_Strbuf *str = eina_strbuf_new();
3292 const char *s;
3242 if (!tmem->hash) eina_strbuf_append(str, "{}"); 3293 if (!tmem->hash) eina_strbuf_append(str, "{}");
3243 else 3294 else
3244 { 3295 {
3245 struct _eina_value_type_hash_convert_to_string_each_ctx ctx; 3296 struct _eina_value_type_hash_convert_to_string_each_ctx ctx;
3246 const char *s;
3247 3297
3248 ctx.subtype = tmem->subtype; 3298 ctx.subtype = tmem->subtype;
3249 ctx.str = str; 3299 ctx.str = str;
@@ -3257,10 +3307,10 @@ _eina_value_type_hash_convert_to(const Eina_Value_Type *type __UNUSED__, const E
3257 &ctx); 3307 &ctx);
3258 3308
3259 eina_strbuf_append_char(str, '}'); 3309 eina_strbuf_append_char(str, '}');
3260 s = eina_strbuf_string_get(str);
3261 ret = eina_value_type_pset(convert, convert_mem, &s);
3262 eina_strbuf_free(str);
3263 } 3310 }
3311 s = eina_strbuf_string_get(str);
3312 ret = eina_value_type_pset(convert, convert_mem, &s);
3313 eina_strbuf_free(str);
3264 } 3314 }
3265 else if ((tmem->hash) && (eina_hash_population(tmem->hash) == 1)) 3315 else if ((tmem->hash) && (eina_hash_population(tmem->hash) == 1))
3266 { 3316 {
@@ -3288,22 +3338,38 @@ _eina_value_type_hash_convert_to(const Eina_Value_Type *type __UNUSED__, const E
3288} 3338}
3289 3339
3290static Eina_Bool 3340static Eina_Bool
3291_eina_value_type_hash_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) 3341_eina_value_type_hash_pset(const Eina_Value_Type *type, void *mem, const void *ptr)
3292{ 3342{
3293 Eina_Value_Hash *tmem = mem; 3343 Eina_Value_Hash *tmem = mem;
3294 const Eina_Value_Hash *desc = ptr; 3344 const Eina_Value_Hash *desc = ptr;
3295 3345
3346 eina_error_set(0);
3296 if ((!tmem->subtype) && (!desc->subtype)) 3347 if ((!tmem->subtype) && (!desc->subtype))
3297 return EINA_TRUE; 3348 return EINA_TRUE;
3298 3349
3299 if (tmem->hash) _eina_value_type_hash_flush_elements(tmem); 3350 if ((tmem->hash) && (tmem->hash == desc->hash))
3351 {
3352 tmem->subtype = desc->subtype;
3353 return EINA_TRUE;
3354 }
3300 3355
3301 if (desc->hash) 3356 if (desc->hash)
3302 tmem->hash = desc->hash; 3357 {
3303 else if (!_eina_value_type_hash_create(tmem)) 3358 Eina_Value_Hash tmp;
3304 return EINA_FALSE; 3359
3360 if (!_eina_value_type_hash_copy(type, desc, &tmp))
3361 return EINA_FALSE;
3362
3363 _eina_value_type_hash_flush(type, tmem);
3364 memcpy(tmem, &tmp, sizeof(tmp));
3365 return EINA_TRUE;
3366 }
3367
3368 if (tmem->hash) _eina_value_type_hash_flush_elements(tmem);
3305 3369
3306 tmem->subtype = desc->subtype; 3370 tmem->subtype = desc->subtype;
3371 if (!_eina_value_type_hash_create(tmem))
3372 return EINA_FALSE;
3307 3373
3308 return EINA_TRUE; 3374 return EINA_TRUE;
3309} 3375}
@@ -3424,7 +3490,7 @@ _eina_value_type_timeval_convert_to(const Eina_Value_Type *type __UNUSED__, cons
3424 return EINA_FALSE; 3490 return EINA_FALSE;
3425 return eina_value_type_pset(convert, convert_mem, &other_mem); 3491 return eina_value_type_pset(convert, convert_mem, &other_mem);
3426 } 3492 }
3427 else if (convert == EINA_VALUE_TYPE_ULONG) 3493 else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP))
3428 { 3494 {
3429 unsigned long other_mem = v.tv_sec; 3495 unsigned long other_mem = v.tv_sec;
3430 if (EINA_UNLIKELY(v.tv_sec < 0)) 3496 if (EINA_UNLIKELY(v.tv_sec < 0))
@@ -3570,6 +3636,8 @@ _eina_value_type_blob_flush(const Eina_Value_Type *type __UNUSED__, void *mem)
3570 Eina_Value_Blob *tmem = mem; 3636 Eina_Value_Blob *tmem = mem;
3571 if ((ops) && (ops->free)) 3637 if ((ops) && (ops->free))
3572 ops->free(ops, (void *)tmem->memory, tmem->size); 3638 ops->free(ops, (void *)tmem->memory, tmem->size);
3639 tmem->memory = NULL;
3640 tmem->size = 0;
3573 return EINA_TRUE; 3641 return EINA_TRUE;
3574} 3642}
3575 3643
@@ -3776,6 +3844,14 @@ _eina_value_type_blob_pset(const Eina_Value_Type *type __UNUSED__, void *mem, co
3776 Eina_Value_Blob *tmem = mem; 3844 Eina_Value_Blob *tmem = mem;
3777 const Eina_Value_Blob *desc = ptr; 3845 const Eina_Value_Blob *desc = ptr;
3778 3846
3847 eina_error_set(0);
3848 if ((tmem->memory) && (tmem->memory == desc->memory))
3849 {
3850 tmem->ops = desc->ops;
3851 tmem->size = desc->size;
3852 return EINA_TRUE;
3853 }
3854
3779 if ((ops) && (ops->free)) 3855 if ((ops) && (ops->free))
3780 ops->free(ops, (void *)tmem->memory, tmem->size); 3856 ops->free(ops, (void *)tmem->memory, tmem->size);
3781 3857
@@ -3872,6 +3948,7 @@ _eina_value_struct_operations_stringshare_find_member(const Eina_Value_Struct_Op
3872 return itr; 3948 return itr;
3873 } 3949 }
3874 3950
3951 itr = desc->members;
3875 name = eina_stringshare_add(name); 3952 name = eina_stringshare_add(name);
3876 eina_stringshare_del(name); /* we'll not use the contents, this is fine */ 3953 eina_stringshare_del(name); /* we'll not use the contents, this is fine */
3877 /* stringshare and look again */ 3954 /* stringshare and look again */
@@ -3955,6 +4032,13 @@ _eina_value_type_struct_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
3955} 4032}
3956 4033
3957static Eina_Bool 4034static Eina_Bool
4035_eina_value_type_struct_setup_member(const Eina_Value_Struct_Member *member, Eina_Value_Struct *st)
4036{
4037 unsigned char *base = st->memory;
4038 return eina_value_type_setup(member->type, base + member->offset);
4039}
4040
4041static Eina_Bool
3958_eina_value_type_struct_flush_member(const Eina_Value_Struct_Member *member, Eina_Value_Struct *st) 4042_eina_value_type_struct_flush_member(const Eina_Value_Struct_Member *member, Eina_Value_Struct *st)
3959{ 4043{
3960 unsigned char *base = st->memory; 4044 unsigned char *base = st->memory;
@@ -3969,6 +4053,9 @@ _eina_value_type_struct_flush(const Eina_Value_Type *type __UNUSED__, void *mem)
3969 Eina_Value_Struct *tmem = mem; 4053 Eina_Value_Struct *tmem = mem;
3970 Eina_Bool ret = EINA_TRUE; 4054 Eina_Bool ret = EINA_TRUE;
3971 4055
4056 if ((!tmem->desc) || (!tmem->memory))
4057 return EINA_TRUE;
4058
3972 itr = tmem->desc->members; 4059 itr = tmem->desc->members;
3973 if (tmem->desc->member_count > 0) 4060 if (tmem->desc->member_count > 0)
3974 { 4061 {
@@ -3989,6 +4076,9 @@ _eina_value_type_struct_flush(const Eina_Value_Type *type __UNUSED__, void *mem)
3989 else 4076 else
3990 free(tmem->memory); 4077 free(tmem->memory);
3991 4078
4079 tmem->memory = NULL;
4080 tmem->desc = NULL;
4081
3992 return ret; 4082 return ret;
3993} 4083}
3994 4084
@@ -4012,6 +4102,9 @@ _eina_value_type_struct_copy(const Eina_Value_Type *type __UNUSED__, const void
4012 4102
4013 *d = *s; 4103 *d = *s;
4014 4104
4105 if ((!s->desc) || (!s->memory))
4106 return EINA_TRUE;
4107
4015 ops = _eina_value_type_struct_ops_get(src); 4108 ops = _eina_value_type_struct_ops_get(src);
4016 if ((ops) && (ops->copy)) 4109 if ((ops) && (ops->copy))
4017 { 4110 {
@@ -4021,7 +4114,10 @@ _eina_value_type_struct_copy(const Eina_Value_Type *type __UNUSED__, const void
4021 return EINA_TRUE; 4114 return EINA_TRUE;
4022 } 4115 }
4023 4116
4024 d->memory = malloc(s->desc->size); 4117 if ((ops) && (ops->alloc))
4118 d->memory = ops->alloc(ops, s->desc);
4119 else
4120 d->memory = malloc(s->desc->size);
4025 if (!d->memory) 4121 if (!d->memory)
4026 { 4122 {
4027 eina_error_set(EINA_ERROR_OUT_OF_MEMORY); 4123 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
@@ -4043,14 +4139,17 @@ _eina_value_type_struct_copy(const Eina_Value_Type *type __UNUSED__, const void
4043 goto error; 4139 goto error;
4044 } 4140 }
4045 4141
4046
4047 return EINA_TRUE; 4142 return EINA_TRUE;
4048 4143
4049 error: 4144 error:
4050 itr--; 4145 itr--;
4051 for (; itr >= s->desc->members; itr--) 4146 for (; itr >= s->desc->members; itr--)
4052 _eina_value_type_struct_flush_member(itr, d); 4147 _eina_value_type_struct_flush_member(itr, d);
4053 free(d->memory); 4148
4149 if ((ops) && (ops->free))
4150 ops->free(ops, s->desc, d->memory);
4151 else
4152 free(d->memory);
4054 return EINA_FALSE; 4153 return EINA_FALSE;
4055} 4154}
4056 4155
@@ -4072,7 +4171,9 @@ _eina_value_type_struct_compare(const Eina_Value_Type *type __UNUSED__, const vo
4072 const Eina_Value_Struct_Member *itr; 4171 const Eina_Value_Struct_Member *itr;
4073 int cmp = 0; 4172 int cmp = 0;
4074 4173
4075 if (ta->desc != tb->desc) 4174 if ((!ta->desc) && (!tb->desc))
4175 return 0;
4176 else if (ta->desc != tb->desc)
4076 { 4177 {
4077 eina_error_set(EINA_ERROR_VALUE_FAILED); 4178 eina_error_set(EINA_ERROR_VALUE_FAILED);
4078 return -1; 4179 return -1;
@@ -4236,11 +4337,12 @@ _eina_value_type_struct_desc_check(const Eina_Value_Struct_Desc *desc)
4236} 4337}
4237 4338
4238static Eina_Bool 4339static Eina_Bool
4239_eina_value_type_struct_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) 4340_eina_value_type_struct_pset(const Eina_Value_Type *type, void *mem, const void *ptr)
4240{ 4341{
4241 const Eina_Value_Struct_Operations *ops = _eina_value_type_struct_ops_get(mem); 4342 const Eina_Value_Struct_Operations *ops;
4242 Eina_Value_Struct *tmem = mem; 4343 Eina_Value_Struct *tmem = mem;
4243 const Eina_Value_Struct *desc = ptr; 4344 const Eina_Value_Struct *desc = ptr;
4345 const Eina_Value_Struct_Member *itr;
4244 4346
4245 if (!_eina_value_type_struct_desc_check(desc->desc)) 4347 if (!_eina_value_type_struct_desc_check(desc->desc))
4246 { 4348 {
@@ -4248,30 +4350,71 @@ _eina_value_type_struct_pset(const Eina_Value_Type *type __UNUSED__, void *mem,
4248 return EINA_FALSE; 4350 return EINA_FALSE;
4249 } 4351 }
4250 4352
4251 if ((ops) && (ops->free)) 4353 eina_error_set(0);
4252 ops->free(ops, tmem->desc, tmem->memory); 4354 if ((tmem->memory) && (tmem->memory == desc->memory))
4253 else 4355 {
4254 free(tmem->memory); 4356 tmem->desc = desc->desc;
4357 return EINA_TRUE;
4358 }
4255 4359
4256 *tmem = *desc; 4360 if (desc->memory)
4361 {
4362 Eina_Value_Struct tmp;
4363
4364 if (!_eina_value_type_struct_copy(type, desc, &tmp))
4365 return EINA_FALSE;
4366
4367 _eina_value_type_struct_flush(type, tmem);
4368 memcpy(tmem, &tmp, sizeof(tmp));
4369 return EINA_TRUE;
4370 }
4371
4372 if (tmem->memory) _eina_value_type_struct_flush(type, mem);
4373
4374 tmem->desc = desc->desc;
4257 4375
4258 ops = _eina_value_type_struct_ops_get(desc); 4376 ops = _eina_value_type_struct_ops_get(desc);
4377 if ((ops) && (ops->alloc))
4378 tmem->memory = ops->alloc(ops, tmem->desc);
4379 else
4380 tmem->memory = malloc(tmem->desc->size);
4381
4259 if (!tmem->memory) 4382 if (!tmem->memory)
4260 { 4383 {
4261 if ((ops) && (ops->alloc)) 4384 eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
4262 tmem->memory = ops->alloc(ops, tmem->desc); 4385 return EINA_FALSE;
4263 else 4386 }
4264 tmem->memory = malloc(tmem->desc->size);
4265 4387
4266 if (!tmem->memory) 4388 itr = tmem->desc->members;
4267 { 4389 if (tmem->desc->member_count > 0)
4268 eina_error_set(EINA_ERROR_OUT_OF_MEMORY); 4390 {
4269 return EINA_FALSE; 4391 const Eina_Value_Struct_Member *itr_end;
4270 } 4392 itr_end = itr + tmem->desc->member_count;
4393 for (; itr < itr_end; itr++)
4394 if (!_eina_value_type_struct_setup_member(itr, tmem))
4395 goto error;
4396 }
4397 else
4398 {
4399 for (; itr->name != NULL; itr++)
4400 if (!_eina_value_type_struct_setup_member(itr, tmem))
4401 goto error;
4271 } 4402 }
4272 4403
4273 eina_error_set(0);
4274 return EINA_TRUE; 4404 return EINA_TRUE;
4405
4406 error:
4407 itr--;
4408 for (; itr >= tmem->desc->members; itr--)
4409 _eina_value_type_struct_flush_member(itr, tmem);
4410
4411 if ((ops) && (ops->free))
4412 ops->free(ops, tmem->desc, tmem->memory);
4413 else
4414 free(tmem->memory);
4415 tmem->memory = NULL;
4416 tmem->desc = NULL;
4417 return EINA_FALSE;
4275} 4418}
4276 4419
4277static Eina_Bool 4420static Eina_Bool
@@ -4304,6 +4447,130 @@ static const Eina_Value_Type _EINA_VALUE_TYPE_STRUCT = {
4304 _eina_value_type_struct_pget 4447 _eina_value_type_struct_pget
4305}; 4448};
4306 4449
4450static Eina_Bool
4451_eina_value_type_model_setup(const Eina_Value_Type *type __UNUSED__, void *mem)
4452{
4453 Eina_Model **tmem = mem;
4454 *tmem = NULL;
4455 return EINA_TRUE;
4456}
4457
4458static Eina_Bool
4459_eina_value_type_model_flush(const Eina_Value_Type *type __UNUSED__, void *mem)
4460{
4461 Eina_Model **tmem = mem;
4462 if (*tmem)
4463 {
4464 eina_model_unref(*tmem);
4465 *tmem = NULL;
4466 }
4467 return EINA_TRUE;
4468}
4469
4470static Eina_Bool
4471_eina_value_type_model_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst)
4472{
4473 const Eina_Model * const *s = src;
4474 Eina_Model **d = dst;
4475 if (*s)
4476 *d = eina_model_copy(*s); /* is it better to deep-copy? */
4477 else
4478 *d = NULL;
4479 return EINA_TRUE;
4480}
4481
4482static int
4483_eina_value_type_model_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b)
4484{
4485 const Eina_Model * const *ta = a;
4486 const Eina_Model * const *tb = b;
4487
4488 if ((!*ta) && (!*tb)) return 0;
4489 else if (!*ta) return 1;
4490 else if (!*tb) return -1;
4491 else return eina_model_compare(*ta, *tb);
4492}
4493
4494static Eina_Bool
4495_eina_value_type_model_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
4496{
4497 const Eina_Model *v = *(const Eina_Model **)type_mem;
4498
4499 eina_error_set(0);
4500
4501 if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
4502 convert == EINA_VALUE_TYPE_STRING)
4503 {
4504 char *other_mem = v ? eina_model_to_string(v) : NULL;
4505 Eina_Bool ret = eina_value_type_pset(convert, convert_mem, &other_mem);
4506 free(other_mem);
4507 return ret;
4508 }
4509 else
4510 {
4511 eina_error_set(EINA_ERROR_VALUE_FAILED);
4512 return EINA_FALSE;
4513 }
4514
4515 return EINA_TRUE;
4516}
4517
4518static Eina_Bool
4519_eina_value_type_model_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args)
4520{
4521 Eina_Model **tmem = mem, *tmp;
4522
4523 tmp = va_arg(args, Eina_Model *);
4524
4525 if (tmp) eina_model_ref(tmp);
4526 if (*tmem) eina_model_unref(*tmem);
4527
4528 *tmem = tmp;
4529
4530 return EINA_TRUE;
4531}
4532
4533static Eina_Bool
4534_eina_value_type_model_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr)
4535{
4536 Eina_Model **tmem = mem;
4537 Eina_Model **p = (Eina_Model **)ptr;
4538
4539 eina_error_set(0);
4540 if (*tmem == *p) return EINA_TRUE;
4541
4542 if (*p) eina_model_ref(*p);
4543 if (*tmem) eina_model_unref(*tmem);
4544
4545 *tmem = *p;
4546
4547 return EINA_TRUE;
4548}
4549
4550static Eina_Bool
4551_eina_value_type_model_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr)
4552{
4553 Eina_Model **tmem = (Eina_Model **)mem;
4554 Eina_Model **p = ptr;
4555 *p = *tmem;
4556 return EINA_TRUE;
4557}
4558
4559static const Eina_Value_Type _EINA_VALUE_TYPE_MODEL = {
4560 EINA_VALUE_TYPE_VERSION,
4561 sizeof(Eina_Model *),
4562 "Eina_Model",
4563 _eina_value_type_model_setup,
4564 _eina_value_type_model_flush,
4565 _eina_value_type_model_copy,
4566 _eina_value_type_model_compare,
4567 _eina_value_type_model_convert_to,
4568 NULL, /* no convert from */
4569 _eina_value_type_model_vset,
4570 _eina_value_type_model_pset,
4571 _eina_value_type_model_pget
4572};
4573
4307/* keep all basic types inlined in an array so we can compare if it's 4574/* keep all basic types inlined in an array so we can compare if it's
4308 * a basic type using pointer arithmetic. 4575 * a basic type using pointer arithmetic.
4309 * 4576 *
@@ -4506,6 +4773,20 @@ static const Eina_Value_Type _EINA_VALUE_TYPE_BASICS[] = {
4506 _eina_value_type_string_vset, 4773 _eina_value_type_string_vset,
4507 _eina_value_type_string_pset, 4774 _eina_value_type_string_pset,
4508 _eina_value_type_string_common_pget 4775 _eina_value_type_string_common_pget
4776 },
4777 {
4778 EINA_VALUE_TYPE_VERSION,
4779 sizeof(unsigned long),
4780 "timestamp",
4781 _eina_value_type_ulong_setup,
4782 _eina_value_type_ulong_flush,
4783 _eina_value_type_ulong_copy,
4784 _eina_value_type_ulong_compare,
4785 _eina_value_type_ulong_convert_to,
4786 NULL, /* no convert from */
4787 _eina_value_type_ulong_vset,
4788 _eina_value_type_ulong_pset,
4789 _eina_value_type_ulong_pget
4509 } 4790 }
4510}; 4791};
4511 4792
@@ -4722,11 +5003,12 @@ eina_value_init(void)
4722 EINA_VALUE_TYPE_DOUBLE = _EINA_VALUE_TYPE_BASICS + 11; 5003 EINA_VALUE_TYPE_DOUBLE = _EINA_VALUE_TYPE_BASICS + 11;
4723 EINA_VALUE_TYPE_STRINGSHARE = _EINA_VALUE_TYPE_BASICS + 12; 5004 EINA_VALUE_TYPE_STRINGSHARE = _EINA_VALUE_TYPE_BASICS + 12;
4724 EINA_VALUE_TYPE_STRING = _EINA_VALUE_TYPE_BASICS + 13; 5005 EINA_VALUE_TYPE_STRING = _EINA_VALUE_TYPE_BASICS + 13;
5006 EINA_VALUE_TYPE_TIMESTAMP = _EINA_VALUE_TYPE_BASICS + 14;
4725 5007
4726 _EINA_VALUE_TYPE_BASICS_START = _EINA_VALUE_TYPE_BASICS + 0; 5008 _EINA_VALUE_TYPE_BASICS_START = _EINA_VALUE_TYPE_BASICS + 0;
4727 _EINA_VALUE_TYPE_BASICS_END = _EINA_VALUE_TYPE_BASICS + 13; 5009 _EINA_VALUE_TYPE_BASICS_END = _EINA_VALUE_TYPE_BASICS + 14;
4728 5010
4729 EINA_SAFETY_ON_FALSE_RETURN_VAL((sizeof(_EINA_VALUE_TYPE_BASICS)/sizeof(_EINA_VALUE_TYPE_BASICS[0])) == 14, EINA_FALSE); 5011 EINA_SAFETY_ON_FALSE_RETURN_VAL((sizeof(_EINA_VALUE_TYPE_BASICS)/sizeof(_EINA_VALUE_TYPE_BASICS[0])) == 15, EINA_FALSE);
4730 5012
4731 5013
4732 EINA_VALUE_TYPE_ARRAY = &_EINA_VALUE_TYPE_ARRAY; 5014 EINA_VALUE_TYPE_ARRAY = &_EINA_VALUE_TYPE_ARRAY;
@@ -4735,6 +5017,7 @@ eina_value_init(void)
4735 EINA_VALUE_TYPE_TIMEVAL = &_EINA_VALUE_TYPE_TIMEVAL; 5017 EINA_VALUE_TYPE_TIMEVAL = &_EINA_VALUE_TYPE_TIMEVAL;
4736 EINA_VALUE_TYPE_BLOB = &_EINA_VALUE_TYPE_BLOB; 5018 EINA_VALUE_TYPE_BLOB = &_EINA_VALUE_TYPE_BLOB;
4737 EINA_VALUE_TYPE_STRUCT = &_EINA_VALUE_TYPE_STRUCT; 5019 EINA_VALUE_TYPE_STRUCT = &_EINA_VALUE_TYPE_STRUCT;
5020 EINA_VALUE_TYPE_MODEL = &_EINA_VALUE_TYPE_MODEL;
4738 5021
4739 EINA_VALUE_BLOB_OPERATIONS_MALLOC = &_EINA_VALUE_BLOB_OPERATIONS_MALLOC; 5022 EINA_VALUE_BLOB_OPERATIONS_MALLOC = &_EINA_VALUE_BLOB_OPERATIONS_MALLOC;
4740 5023
@@ -4800,6 +5083,7 @@ EAPI const Eina_Value_Type *EINA_VALUE_TYPE_UCHAR = NULL;
4800EAPI const Eina_Value_Type *EINA_VALUE_TYPE_USHORT = NULL; 5083EAPI const Eina_Value_Type *EINA_VALUE_TYPE_USHORT = NULL;
4801EAPI const Eina_Value_Type *EINA_VALUE_TYPE_UINT = NULL; 5084EAPI const Eina_Value_Type *EINA_VALUE_TYPE_UINT = NULL;
4802EAPI const Eina_Value_Type *EINA_VALUE_TYPE_ULONG = NULL; 5085EAPI const Eina_Value_Type *EINA_VALUE_TYPE_ULONG = NULL;
5086EAPI const Eina_Value_Type *EINA_VALUE_TYPE_TIMESTAMP = NULL;
4803EAPI const Eina_Value_Type *EINA_VALUE_TYPE_UINT64 = NULL; 5087EAPI const Eina_Value_Type *EINA_VALUE_TYPE_UINT64 = NULL;
4804EAPI const Eina_Value_Type *EINA_VALUE_TYPE_CHAR = NULL; 5088EAPI const Eina_Value_Type *EINA_VALUE_TYPE_CHAR = NULL;
4805EAPI const Eina_Value_Type *EINA_VALUE_TYPE_SHORT = NULL; 5089EAPI const Eina_Value_Type *EINA_VALUE_TYPE_SHORT = NULL;
@@ -4816,6 +5100,7 @@ EAPI const Eina_Value_Type *EINA_VALUE_TYPE_HASH = NULL;
4816EAPI const Eina_Value_Type *EINA_VALUE_TYPE_TIMEVAL = NULL; 5100EAPI const Eina_Value_Type *EINA_VALUE_TYPE_TIMEVAL = NULL;
4817EAPI const Eina_Value_Type *EINA_VALUE_TYPE_BLOB = NULL; 5101EAPI const Eina_Value_Type *EINA_VALUE_TYPE_BLOB = NULL;
4818EAPI const Eina_Value_Type *EINA_VALUE_TYPE_STRUCT = NULL; 5102EAPI const Eina_Value_Type *EINA_VALUE_TYPE_STRUCT = NULL;
5103EAPI const Eina_Value_Type *EINA_VALUE_TYPE_MODEL = NULL;
4819 5104
4820EAPI const Eina_Value_Blob_Operations *EINA_VALUE_BLOB_OPERATIONS_MALLOC = NULL; 5105EAPI const Eina_Value_Blob_Operations *EINA_VALUE_BLOB_OPERATIONS_MALLOC = NULL;
4821 5106
diff --git a/libraries/eina/src/modules/Makefile.in b/libraries/eina/src/modules/Makefile.in
index 1ee8386..62d4a09 100644
--- a/libraries/eina/src/modules/Makefile.in
+++ b/libraries/eina/src/modules/Makefile.in
@@ -36,20 +36,24 @@ host_triplet = @host@
36subdir = src/modules 36subdir = src/modules
37DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 37DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
38ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 38ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
39am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 39am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \
40 $(top_srcdir)/m4/efl_benchmark.m4 \ 40 $(top_srcdir)/m4/eina/eina_check.m4 \
41 $(top_srcdir)/m4/efl_compiler_flag.m4 \ 41 $(top_srcdir)/m4/common/efl_attribute.m4 \
42 $(top_srcdir)/m4/efl_coverage.m4 $(top_srcdir)/m4/efl_cpu.m4 \ 42 $(top_srcdir)/m4/common/efl_benchmark.m4 \
43 $(top_srcdir)/m4/efl_doxygen.m4 \ 43 $(top_srcdir)/m4/common/efl_compiler_flag.m4 \
44 $(top_srcdir)/m4/efl_examples.m4 \ 44 $(top_srcdir)/m4/common/efl_coverage.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \ 45 $(top_srcdir)/m4/common/efl_cpu.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 46 $(top_srcdir)/m4/common/efl_doxygen.m4 \
47 $(top_srcdir)/m4/efl_threads.m4 \ 47 $(top_srcdir)/m4/common/efl_examples.m4 \
48 $(top_srcdir)/m4/efl_voltron.m4 $(top_srcdir)/m4/eina_bench.m4 \ 48 $(top_srcdir)/m4/common/efl_fnmatch.m4 \
49 $(top_srcdir)/m4/eina_check.m4 $(top_srcdir)/m4/libtool.m4 \ 49 $(top_srcdir)/m4/common/efl_path_max.m4 \
50 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 50 $(top_srcdir)/m4/common/efl_tests.m4 \
51 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 51 $(top_srcdir)/m4/common/efl_threads.m4 \
52 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac 52 $(top_srcdir)/m4/common/efl_voltron.m4 \
53 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
54 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
55 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
56 $(top_srcdir)/configure.ac
53am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 57am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
54 $(ACLOCAL_M4) 58 $(ACLOCAL_M4)
55mkinstalldirs = $(install_sh) -d 59mkinstalldirs = $(install_sh) -d
@@ -150,13 +154,13 @@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
150EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ 154EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
151EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 155EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
152EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ 156EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
157EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@
153EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 158EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
154EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 159EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
155EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 160EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
156EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ 161EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@
157EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ 162EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@
158EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ 163EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@
159EINA_CPPFLAGS = @EINA_CPPFLAGS@
160EINA_LIBS = @EINA_LIBS@ 164EINA_LIBS = @EINA_LIBS@
161EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ 165EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@
162EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ 166EMEMOA_CFLAGS = @EMEMOA_CFLAGS@
@@ -166,6 +170,8 @@ ESCAPE_LIBS = @ESCAPE_LIBS@
166EVIL_CFLAGS = @EVIL_CFLAGS@ 170EVIL_CFLAGS = @EVIL_CFLAGS@
167EVIL_LIBS = @EVIL_LIBS@ 171EVIL_LIBS = @EVIL_LIBS@
168EXEEXT = @EXEEXT@ 172EXEEXT = @EXEEXT@
173EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
174EXOTIC_LIBS = @EXOTIC_LIBS@
169FGREP = @FGREP@ 175FGREP = @FGREP@
170GLIB_CFLAGS = @GLIB_CFLAGS@ 176GLIB_CFLAGS = @GLIB_CFLAGS@
171GLIB_LIBS = @GLIB_LIBS@ 177GLIB_LIBS = @GLIB_LIBS@
@@ -201,6 +207,8 @@ PACKAGE_URL = @PACKAGE_URL@
201PACKAGE_VERSION = @PACKAGE_VERSION@ 207PACKAGE_VERSION = @PACKAGE_VERSION@
202PATH_SEPARATOR = @PATH_SEPARATOR@ 208PATH_SEPARATOR = @PATH_SEPARATOR@
203PKG_CONFIG = @PKG_CONFIG@ 209PKG_CONFIG = @PKG_CONFIG@
210PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
211PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
204RANLIB = @RANLIB@ 212RANLIB = @RANLIB@
205SED = @SED@ 213SED = @SED@
206SET_MAKE = @SET_MAKE@ 214SET_MAKE = @SET_MAKE@
diff --git a/libraries/eina/src/modules/mp/Makefile.in b/libraries/eina/src/modules/mp/Makefile.in
index d3a6dd9..7283b72 100644
--- a/libraries/eina/src/modules/mp/Makefile.in
+++ b/libraries/eina/src/modules/mp/Makefile.in
@@ -43,20 +43,24 @@ host_triplet = @host@
43subdir = src/modules/mp 43subdir = src/modules/mp
44DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 44DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
45ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 45ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
46am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 46am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \
47 $(top_srcdir)/m4/efl_benchmark.m4 \ 47 $(top_srcdir)/m4/eina/eina_check.m4 \
48 $(top_srcdir)/m4/efl_compiler_flag.m4 \ 48 $(top_srcdir)/m4/common/efl_attribute.m4 \
49 $(top_srcdir)/m4/efl_coverage.m4 $(top_srcdir)/m4/efl_cpu.m4 \ 49 $(top_srcdir)/m4/common/efl_benchmark.m4 \
50 $(top_srcdir)/m4/efl_doxygen.m4 \ 50 $(top_srcdir)/m4/common/efl_compiler_flag.m4 \
51 $(top_srcdir)/m4/efl_examples.m4 \ 51 $(top_srcdir)/m4/common/efl_coverage.m4 \
52 $(top_srcdir)/m4/efl_fnmatch.m4 \ 52 $(top_srcdir)/m4/common/efl_cpu.m4 \
53 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 53 $(top_srcdir)/m4/common/efl_doxygen.m4 \
54 $(top_srcdir)/m4/efl_threads.m4 \ 54 $(top_srcdir)/m4/common/efl_examples.m4 \
55 $(top_srcdir)/m4/efl_voltron.m4 $(top_srcdir)/m4/eina_bench.m4 \ 55 $(top_srcdir)/m4/common/efl_fnmatch.m4 \
56 $(top_srcdir)/m4/eina_check.m4 $(top_srcdir)/m4/libtool.m4 \ 56 $(top_srcdir)/m4/common/efl_path_max.m4 \
57 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 57 $(top_srcdir)/m4/common/efl_tests.m4 \
58 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 58 $(top_srcdir)/m4/common/efl_threads.m4 \
59 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac 59 $(top_srcdir)/m4/common/efl_voltron.m4 \
60 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
61 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
62 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
63 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 64am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4) 65 $(ACLOCAL_M4)
62mkinstalldirs = $(install_sh) -d 66mkinstalldirs = $(install_sh) -d
@@ -158,13 +162,13 @@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
158EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ 162EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
159EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 163EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
160EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ 164EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
165EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@
161EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 166EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
162EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 167EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
163EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 168EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
164EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ 169EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@
165EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ 170EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@
166EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ 171EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@
167EINA_CPPFLAGS = @EINA_CPPFLAGS@
168EINA_LIBS = @EINA_LIBS@ 172EINA_LIBS = @EINA_LIBS@
169EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ 173EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@
170EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ 174EMEMOA_CFLAGS = @EMEMOA_CFLAGS@
@@ -174,6 +178,8 @@ ESCAPE_LIBS = @ESCAPE_LIBS@
174EVIL_CFLAGS = @EVIL_CFLAGS@ 178EVIL_CFLAGS = @EVIL_CFLAGS@
175EVIL_LIBS = @EVIL_LIBS@ 179EVIL_LIBS = @EVIL_LIBS@
176EXEEXT = @EXEEXT@ 180EXEEXT = @EXEEXT@
181EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
182EXOTIC_LIBS = @EXOTIC_LIBS@
177FGREP = @FGREP@ 183FGREP = @FGREP@
178GLIB_CFLAGS = @GLIB_CFLAGS@ 184GLIB_CFLAGS = @GLIB_CFLAGS@
179GLIB_LIBS = @GLIB_LIBS@ 185GLIB_LIBS = @GLIB_LIBS@
@@ -209,6 +215,8 @@ PACKAGE_URL = @PACKAGE_URL@
209PACKAGE_VERSION = @PACKAGE_VERSION@ 215PACKAGE_VERSION = @PACKAGE_VERSION@
210PATH_SEPARATOR = @PATH_SEPARATOR@ 216PATH_SEPARATOR = @PATH_SEPARATOR@
211PKG_CONFIG = @PKG_CONFIG@ 217PKG_CONFIG = @PKG_CONFIG@
218PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
219PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
212RANLIB = @RANLIB@ 220RANLIB = @RANLIB@
213SED = @SED@ 221SED = @SED@
214SET_MAKE = @SET_MAKE@ 222SET_MAKE = @SET_MAKE@
diff --git a/libraries/eina/src/modules/mp/buddy/Makefile.am b/libraries/eina/src/modules/mp/buddy/Makefile.am
index c699c9d..c0a6cd7 100644
--- a/libraries/eina/src/modules/mp/buddy/Makefile.am
+++ b/libraries/eina/src/modules/mp/buddy/Makefile.am
@@ -6,7 +6,6 @@ AM_CPPFLAGS = \
6-I$(top_builddir)/src/include \ 6-I$(top_builddir)/src/include \
7-I$(top_srcdir)/src/lib \ 7-I$(top_srcdir)/src/lib \
8-I$(top_builddir)/src/lib \ 8-I$(top_builddir)/src/lib \
9@EINA_CPPFLAGS@ \
10@EFL_EINA_BUILD@ 9@EFL_EINA_BUILD@
11 10
12controllerdir = $(libdir)/eina/modules/mp/buddy/$(MODULE_ARCH) 11controllerdir = $(libdir)/eina/modules/mp/buddy/$(MODULE_ARCH)
diff --git a/libraries/eina/src/modules/mp/buddy/Makefile.in b/libraries/eina/src/modules/mp/buddy/Makefile.in
index 5619b2c..449c511 100644
--- a/libraries/eina/src/modules/mp/buddy/Makefile.in
+++ b/libraries/eina/src/modules/mp/buddy/Makefile.in
@@ -37,20 +37,24 @@ host_triplet = @host@
37subdir = src/modules/mp/buddy 37subdir = src/modules/mp/buddy
38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 40am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \
41 $(top_srcdir)/m4/efl_benchmark.m4 \ 41 $(top_srcdir)/m4/eina/eina_check.m4 \
42 $(top_srcdir)/m4/efl_compiler_flag.m4 \ 42 $(top_srcdir)/m4/common/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 $(top_srcdir)/m4/efl_cpu.m4 \ 43 $(top_srcdir)/m4/common/efl_benchmark.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \ 44 $(top_srcdir)/m4/common/efl_compiler_flag.m4 \
45 $(top_srcdir)/m4/efl_examples.m4 \ 45 $(top_srcdir)/m4/common/efl_coverage.m4 \
46 $(top_srcdir)/m4/efl_fnmatch.m4 \ 46 $(top_srcdir)/m4/common/efl_cpu.m4 \
47 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 47 $(top_srcdir)/m4/common/efl_doxygen.m4 \
48 $(top_srcdir)/m4/efl_threads.m4 \ 48 $(top_srcdir)/m4/common/efl_examples.m4 \
49 $(top_srcdir)/m4/efl_voltron.m4 $(top_srcdir)/m4/eina_bench.m4 \ 49 $(top_srcdir)/m4/common/efl_fnmatch.m4 \
50 $(top_srcdir)/m4/eina_check.m4 $(top_srcdir)/m4/libtool.m4 \ 50 $(top_srcdir)/m4/common/efl_path_max.m4 \
51 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 51 $(top_srcdir)/m4/common/efl_tests.m4 \
52 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 52 $(top_srcdir)/m4/common/efl_threads.m4 \
53 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac 53 $(top_srcdir)/m4/common/efl_voltron.m4 \
54 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
55 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
56 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
57 $(top_srcdir)/configure.ac
54am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 58am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
55 $(ACLOCAL_M4) 59 $(ACLOCAL_M4)
56mkinstalldirs = $(install_sh) -d 60mkinstalldirs = $(install_sh) -d
@@ -166,13 +170,13 @@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
166EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ 170EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
167EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 171EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
168EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ 172EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
173EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@
169EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 174EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
170EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 175EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
171EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 176EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
172EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ 177EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@
173EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ 178EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@
174EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ 179EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@
175EINA_CPPFLAGS = @EINA_CPPFLAGS@
176EINA_LIBS = @EINA_LIBS@ 180EINA_LIBS = @EINA_LIBS@
177EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ 181EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@
178EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ 182EMEMOA_CFLAGS = @EMEMOA_CFLAGS@
@@ -182,6 +186,8 @@ ESCAPE_LIBS = @ESCAPE_LIBS@
182EVIL_CFLAGS = @EVIL_CFLAGS@ 186EVIL_CFLAGS = @EVIL_CFLAGS@
183EVIL_LIBS = @EVIL_LIBS@ 187EVIL_LIBS = @EVIL_LIBS@
184EXEEXT = @EXEEXT@ 188EXEEXT = @EXEEXT@
189EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
190EXOTIC_LIBS = @EXOTIC_LIBS@
185FGREP = @FGREP@ 191FGREP = @FGREP@
186GLIB_CFLAGS = @GLIB_CFLAGS@ 192GLIB_CFLAGS = @GLIB_CFLAGS@
187GLIB_LIBS = @GLIB_LIBS@ 193GLIB_LIBS = @GLIB_LIBS@
@@ -217,6 +223,8 @@ PACKAGE_URL = @PACKAGE_URL@
217PACKAGE_VERSION = @PACKAGE_VERSION@ 223PACKAGE_VERSION = @PACKAGE_VERSION@
218PATH_SEPARATOR = @PATH_SEPARATOR@ 224PATH_SEPARATOR = @PATH_SEPARATOR@
219PKG_CONFIG = @PKG_CONFIG@ 225PKG_CONFIG = @PKG_CONFIG@
226PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
227PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
220RANLIB = @RANLIB@ 228RANLIB = @RANLIB@
221SED = @SED@ 229SED = @SED@
222SET_MAKE = @SET_MAKE@ 230SET_MAKE = @SET_MAKE@
@@ -297,7 +305,6 @@ AM_CPPFLAGS = \
297-I$(top_builddir)/src/include \ 305-I$(top_builddir)/src/include \
298-I$(top_srcdir)/src/lib \ 306-I$(top_srcdir)/src/lib \
299-I$(top_builddir)/src/lib \ 307-I$(top_builddir)/src/lib \
300@EINA_CPPFLAGS@ \
301@EFL_EINA_BUILD@ 308@EFL_EINA_BUILD@
302 309
303controllerdir = $(libdir)/eina/modules/mp/buddy/$(MODULE_ARCH) 310controllerdir = $(libdir)/eina/modules/mp/buddy/$(MODULE_ARCH)
diff --git a/libraries/eina/src/modules/mp/chained_pool/Makefile.am b/libraries/eina/src/modules/mp/chained_pool/Makefile.am
index 815bab7..42d0d7e 100644
--- a/libraries/eina/src/modules/mp/chained_pool/Makefile.am
+++ b/libraries/eina/src/modules/mp/chained_pool/Makefile.am
@@ -6,7 +6,6 @@ AM_CPPFLAGS = \
6-I$(top_builddir)/src/include \ 6-I$(top_builddir)/src/include \
7-I$(top_srcdir)/src/lib \ 7-I$(top_srcdir)/src/lib \
8-I$(top_builddir)/src/lib \ 8-I$(top_builddir)/src/lib \
9@EINA_CPPFLAGS@ \
10@EFL_EINA_BUILD@ \ 9@EFL_EINA_BUILD@ \
11@VALGRIND_CFLAGS@ 10@VALGRIND_CFLAGS@
12 11
diff --git a/libraries/eina/src/modules/mp/chained_pool/Makefile.in b/libraries/eina/src/modules/mp/chained_pool/Makefile.in
index 03b639f..78299a4 100644
--- a/libraries/eina/src/modules/mp/chained_pool/Makefile.in
+++ b/libraries/eina/src/modules/mp/chained_pool/Makefile.in
@@ -37,20 +37,24 @@ host_triplet = @host@
37subdir = src/modules/mp/chained_pool 37subdir = src/modules/mp/chained_pool
38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 40am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \
41 $(top_srcdir)/m4/efl_benchmark.m4 \ 41 $(top_srcdir)/m4/eina/eina_check.m4 \
42 $(top_srcdir)/m4/efl_compiler_flag.m4 \ 42 $(top_srcdir)/m4/common/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 $(top_srcdir)/m4/efl_cpu.m4 \ 43 $(top_srcdir)/m4/common/efl_benchmark.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \ 44 $(top_srcdir)/m4/common/efl_compiler_flag.m4 \
45 $(top_srcdir)/m4/efl_examples.m4 \ 45 $(top_srcdir)/m4/common/efl_coverage.m4 \
46 $(top_srcdir)/m4/efl_fnmatch.m4 \ 46 $(top_srcdir)/m4/common/efl_cpu.m4 \
47 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 47 $(top_srcdir)/m4/common/efl_doxygen.m4 \
48 $(top_srcdir)/m4/efl_threads.m4 \ 48 $(top_srcdir)/m4/common/efl_examples.m4 \
49 $(top_srcdir)/m4/efl_voltron.m4 $(top_srcdir)/m4/eina_bench.m4 \ 49 $(top_srcdir)/m4/common/efl_fnmatch.m4 \
50 $(top_srcdir)/m4/eina_check.m4 $(top_srcdir)/m4/libtool.m4 \ 50 $(top_srcdir)/m4/common/efl_path_max.m4 \
51 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 51 $(top_srcdir)/m4/common/efl_tests.m4 \
52 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 52 $(top_srcdir)/m4/common/efl_threads.m4 \
53 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac 53 $(top_srcdir)/m4/common/efl_voltron.m4 \
54 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
55 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
56 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
57 $(top_srcdir)/configure.ac
54am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 58am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
55 $(ACLOCAL_M4) 59 $(ACLOCAL_M4)
56mkinstalldirs = $(install_sh) -d 60mkinstalldirs = $(install_sh) -d
@@ -166,13 +170,13 @@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
166EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ 170EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
167EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 171EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
168EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ 172EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
173EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@
169EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 174EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
170EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 175EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
171EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 176EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
172EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ 177EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@
173EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ 178EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@
174EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ 179EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@
175EINA_CPPFLAGS = @EINA_CPPFLAGS@
176EINA_LIBS = @EINA_LIBS@ 180EINA_LIBS = @EINA_LIBS@
177EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ 181EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@
178EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ 182EMEMOA_CFLAGS = @EMEMOA_CFLAGS@
@@ -182,6 +186,8 @@ ESCAPE_LIBS = @ESCAPE_LIBS@
182EVIL_CFLAGS = @EVIL_CFLAGS@ 186EVIL_CFLAGS = @EVIL_CFLAGS@
183EVIL_LIBS = @EVIL_LIBS@ 187EVIL_LIBS = @EVIL_LIBS@
184EXEEXT = @EXEEXT@ 188EXEEXT = @EXEEXT@
189EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
190EXOTIC_LIBS = @EXOTIC_LIBS@
185FGREP = @FGREP@ 191FGREP = @FGREP@
186GLIB_CFLAGS = @GLIB_CFLAGS@ 192GLIB_CFLAGS = @GLIB_CFLAGS@
187GLIB_LIBS = @GLIB_LIBS@ 193GLIB_LIBS = @GLIB_LIBS@
@@ -217,6 +223,8 @@ PACKAGE_URL = @PACKAGE_URL@
217PACKAGE_VERSION = @PACKAGE_VERSION@ 223PACKAGE_VERSION = @PACKAGE_VERSION@
218PATH_SEPARATOR = @PATH_SEPARATOR@ 224PATH_SEPARATOR = @PATH_SEPARATOR@
219PKG_CONFIG = @PKG_CONFIG@ 225PKG_CONFIG = @PKG_CONFIG@
226PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
227PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
220RANLIB = @RANLIB@ 228RANLIB = @RANLIB@
221SED = @SED@ 229SED = @SED@
222SET_MAKE = @SET_MAKE@ 230SET_MAKE = @SET_MAKE@
@@ -297,7 +305,6 @@ AM_CPPFLAGS = \
297-I$(top_builddir)/src/include \ 305-I$(top_builddir)/src/include \
298-I$(top_srcdir)/src/lib \ 306-I$(top_srcdir)/src/lib \
299-I$(top_builddir)/src/lib \ 307-I$(top_builddir)/src/lib \
300@EINA_CPPFLAGS@ \
301@EFL_EINA_BUILD@ \ 308@EFL_EINA_BUILD@ \
302@VALGRIND_CFLAGS@ 309@VALGRIND_CFLAGS@
303 310
diff --git a/libraries/eina/src/modules/mp/chained_pool/eina_chained_mempool.c b/libraries/eina/src/modules/mp/chained_pool/eina_chained_mempool.c
index 020d0ad..e56df4c 100644
--- a/libraries/eina/src/modules/mp/chained_pool/eina_chained_mempool.c
+++ b/libraries/eina/src/modules/mp/chained_pool/eina_chained_mempool.c
@@ -52,7 +52,7 @@
52#include "eina_private.h" 52#include "eina_private.h"
53 53
54#ifndef NVALGRIND 54#ifndef NVALGRIND
55# include <valgrind/memcheck.h> 55# include <memcheck.h>
56#endif 56#endif
57 57
58#if defined DEBUG || defined EINA_DEBUG_MALLOC 58#if defined DEBUG || defined EINA_DEBUG_MALLOC
diff --git a/libraries/eina/src/modules/mp/ememoa_fixed/Makefile.am b/libraries/eina/src/modules/mp/ememoa_fixed/Makefile.am
index 4a27b3e..242b446 100644
--- a/libraries/eina/src/modules/mp/ememoa_fixed/Makefile.am
+++ b/libraries/eina/src/modules/mp/ememoa_fixed/Makefile.am
@@ -6,7 +6,6 @@ AM_CPPFLAGS = \
6-I$(top_builddir)/src/include \ 6-I$(top_builddir)/src/include \
7-I$(top_srcdir)/src/lib \ 7-I$(top_srcdir)/src/lib \
8-I$(top_builddir)/src/lib \ 8-I$(top_builddir)/src/lib \
9@EINA_CPPFLAGS@ \
10@EMEMOA_CFLAGS@ \ 9@EMEMOA_CFLAGS@ \
11@EFL_EINA_BUILD@ 10@EFL_EINA_BUILD@
12 11
diff --git a/libraries/eina/src/modules/mp/ememoa_fixed/Makefile.in b/libraries/eina/src/modules/mp/ememoa_fixed/Makefile.in
index ccc4f1a..d16d123 100644
--- a/libraries/eina/src/modules/mp/ememoa_fixed/Makefile.in
+++ b/libraries/eina/src/modules/mp/ememoa_fixed/Makefile.in
@@ -37,20 +37,24 @@ host_triplet = @host@
37subdir = src/modules/mp/ememoa_fixed 37subdir = src/modules/mp/ememoa_fixed
38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 40am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \
41 $(top_srcdir)/m4/efl_benchmark.m4 \ 41 $(top_srcdir)/m4/eina/eina_check.m4 \
42 $(top_srcdir)/m4/efl_compiler_flag.m4 \ 42 $(top_srcdir)/m4/common/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 $(top_srcdir)/m4/efl_cpu.m4 \ 43 $(top_srcdir)/m4/common/efl_benchmark.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \ 44 $(top_srcdir)/m4/common/efl_compiler_flag.m4 \
45 $(top_srcdir)/m4/efl_examples.m4 \ 45 $(top_srcdir)/m4/common/efl_coverage.m4 \
46 $(top_srcdir)/m4/efl_fnmatch.m4 \ 46 $(top_srcdir)/m4/common/efl_cpu.m4 \
47 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 47 $(top_srcdir)/m4/common/efl_doxygen.m4 \
48 $(top_srcdir)/m4/efl_threads.m4 \ 48 $(top_srcdir)/m4/common/efl_examples.m4 \
49 $(top_srcdir)/m4/efl_voltron.m4 $(top_srcdir)/m4/eina_bench.m4 \ 49 $(top_srcdir)/m4/common/efl_fnmatch.m4 \
50 $(top_srcdir)/m4/eina_check.m4 $(top_srcdir)/m4/libtool.m4 \ 50 $(top_srcdir)/m4/common/efl_path_max.m4 \
51 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 51 $(top_srcdir)/m4/common/efl_tests.m4 \
52 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 52 $(top_srcdir)/m4/common/efl_threads.m4 \
53 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac 53 $(top_srcdir)/m4/common/efl_voltron.m4 \
54 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
55 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
56 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
57 $(top_srcdir)/configure.ac
54am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 58am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
55 $(ACLOCAL_M4) 59 $(ACLOCAL_M4)
56mkinstalldirs = $(install_sh) -d 60mkinstalldirs = $(install_sh) -d
@@ -166,13 +170,13 @@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
166EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ 170EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
167EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 171EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
168EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ 172EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
173EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@
169EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 174EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
170EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 175EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
171EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 176EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
172EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ 177EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@
173EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ 178EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@
174EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ 179EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@
175EINA_CPPFLAGS = @EINA_CPPFLAGS@
176EINA_LIBS = @EINA_LIBS@ 180EINA_LIBS = @EINA_LIBS@
177EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ 181EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@
178EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ 182EMEMOA_CFLAGS = @EMEMOA_CFLAGS@
@@ -182,6 +186,8 @@ ESCAPE_LIBS = @ESCAPE_LIBS@
182EVIL_CFLAGS = @EVIL_CFLAGS@ 186EVIL_CFLAGS = @EVIL_CFLAGS@
183EVIL_LIBS = @EVIL_LIBS@ 187EVIL_LIBS = @EVIL_LIBS@
184EXEEXT = @EXEEXT@ 188EXEEXT = @EXEEXT@
189EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
190EXOTIC_LIBS = @EXOTIC_LIBS@
185FGREP = @FGREP@ 191FGREP = @FGREP@
186GLIB_CFLAGS = @GLIB_CFLAGS@ 192GLIB_CFLAGS = @GLIB_CFLAGS@
187GLIB_LIBS = @GLIB_LIBS@ 193GLIB_LIBS = @GLIB_LIBS@
@@ -217,6 +223,8 @@ PACKAGE_URL = @PACKAGE_URL@
217PACKAGE_VERSION = @PACKAGE_VERSION@ 223PACKAGE_VERSION = @PACKAGE_VERSION@
218PATH_SEPARATOR = @PATH_SEPARATOR@ 224PATH_SEPARATOR = @PATH_SEPARATOR@
219PKG_CONFIG = @PKG_CONFIG@ 225PKG_CONFIG = @PKG_CONFIG@
226PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
227PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
220RANLIB = @RANLIB@ 228RANLIB = @RANLIB@
221SED = @SED@ 229SED = @SED@
222SET_MAKE = @SET_MAKE@ 230SET_MAKE = @SET_MAKE@
@@ -297,7 +305,6 @@ AM_CPPFLAGS = \
297-I$(top_builddir)/src/include \ 305-I$(top_builddir)/src/include \
298-I$(top_srcdir)/src/lib \ 306-I$(top_srcdir)/src/lib \
299-I$(top_builddir)/src/lib \ 307-I$(top_builddir)/src/lib \
300@EINA_CPPFLAGS@ \
301@EMEMOA_CFLAGS@ \ 308@EMEMOA_CFLAGS@ \
302@EFL_EINA_BUILD@ 309@EFL_EINA_BUILD@
303 310
diff --git a/libraries/eina/src/modules/mp/ememoa_unknown/Makefile.am b/libraries/eina/src/modules/mp/ememoa_unknown/Makefile.am
index 2814e31..249541a 100644
--- a/libraries/eina/src/modules/mp/ememoa_unknown/Makefile.am
+++ b/libraries/eina/src/modules/mp/ememoa_unknown/Makefile.am
@@ -6,7 +6,6 @@ AM_CPPFLAGS = \
6-I$(top_builddir)/src/include \ 6-I$(top_builddir)/src/include \
7-I$(top_srcdir)/src/lib \ 7-I$(top_srcdir)/src/lib \
8-I$(top_builddir)/src/lib \ 8-I$(top_builddir)/src/lib \
9@EINA_CPPFLAGS@ \
10@EMEMOA_CFLAGS@ \ 9@EMEMOA_CFLAGS@ \
11@EFL_EINA_BUILD@ 10@EFL_EINA_BUILD@
12 11
diff --git a/libraries/eina/src/modules/mp/ememoa_unknown/Makefile.in b/libraries/eina/src/modules/mp/ememoa_unknown/Makefile.in
index 8b0ec6e..18a43a5 100644
--- a/libraries/eina/src/modules/mp/ememoa_unknown/Makefile.in
+++ b/libraries/eina/src/modules/mp/ememoa_unknown/Makefile.in
@@ -37,20 +37,24 @@ host_triplet = @host@
37subdir = src/modules/mp/ememoa_unknown 37subdir = src/modules/mp/ememoa_unknown
38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 40am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \
41 $(top_srcdir)/m4/efl_benchmark.m4 \ 41 $(top_srcdir)/m4/eina/eina_check.m4 \
42 $(top_srcdir)/m4/efl_compiler_flag.m4 \ 42 $(top_srcdir)/m4/common/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 $(top_srcdir)/m4/efl_cpu.m4 \ 43 $(top_srcdir)/m4/common/efl_benchmark.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \ 44 $(top_srcdir)/m4/common/efl_compiler_flag.m4 \
45 $(top_srcdir)/m4/efl_examples.m4 \ 45 $(top_srcdir)/m4/common/efl_coverage.m4 \
46 $(top_srcdir)/m4/efl_fnmatch.m4 \ 46 $(top_srcdir)/m4/common/efl_cpu.m4 \
47 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 47 $(top_srcdir)/m4/common/efl_doxygen.m4 \
48 $(top_srcdir)/m4/efl_threads.m4 \ 48 $(top_srcdir)/m4/common/efl_examples.m4 \
49 $(top_srcdir)/m4/efl_voltron.m4 $(top_srcdir)/m4/eina_bench.m4 \ 49 $(top_srcdir)/m4/common/efl_fnmatch.m4 \
50 $(top_srcdir)/m4/eina_check.m4 $(top_srcdir)/m4/libtool.m4 \ 50 $(top_srcdir)/m4/common/efl_path_max.m4 \
51 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 51 $(top_srcdir)/m4/common/efl_tests.m4 \
52 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 52 $(top_srcdir)/m4/common/efl_threads.m4 \
53 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac 53 $(top_srcdir)/m4/common/efl_voltron.m4 \
54 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
55 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
56 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
57 $(top_srcdir)/configure.ac
54am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 58am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
55 $(ACLOCAL_M4) 59 $(ACLOCAL_M4)
56mkinstalldirs = $(install_sh) -d 60mkinstalldirs = $(install_sh) -d
@@ -166,13 +170,13 @@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
166EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ 170EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
167EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 171EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
168EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ 172EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
173EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@
169EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 174EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
170EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 175EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
171EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 176EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
172EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ 177EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@
173EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ 178EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@
174EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ 179EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@
175EINA_CPPFLAGS = @EINA_CPPFLAGS@
176EINA_LIBS = @EINA_LIBS@ 180EINA_LIBS = @EINA_LIBS@
177EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ 181EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@
178EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ 182EMEMOA_CFLAGS = @EMEMOA_CFLAGS@
@@ -182,6 +186,8 @@ ESCAPE_LIBS = @ESCAPE_LIBS@
182EVIL_CFLAGS = @EVIL_CFLAGS@ 186EVIL_CFLAGS = @EVIL_CFLAGS@
183EVIL_LIBS = @EVIL_LIBS@ 187EVIL_LIBS = @EVIL_LIBS@
184EXEEXT = @EXEEXT@ 188EXEEXT = @EXEEXT@
189EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
190EXOTIC_LIBS = @EXOTIC_LIBS@
185FGREP = @FGREP@ 191FGREP = @FGREP@
186GLIB_CFLAGS = @GLIB_CFLAGS@ 192GLIB_CFLAGS = @GLIB_CFLAGS@
187GLIB_LIBS = @GLIB_LIBS@ 193GLIB_LIBS = @GLIB_LIBS@
@@ -217,6 +223,8 @@ PACKAGE_URL = @PACKAGE_URL@
217PACKAGE_VERSION = @PACKAGE_VERSION@ 223PACKAGE_VERSION = @PACKAGE_VERSION@
218PATH_SEPARATOR = @PATH_SEPARATOR@ 224PATH_SEPARATOR = @PATH_SEPARATOR@
219PKG_CONFIG = @PKG_CONFIG@ 225PKG_CONFIG = @PKG_CONFIG@
226PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
227PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
220RANLIB = @RANLIB@ 228RANLIB = @RANLIB@
221SED = @SED@ 229SED = @SED@
222SET_MAKE = @SET_MAKE@ 230SET_MAKE = @SET_MAKE@
@@ -297,7 +305,6 @@ AM_CPPFLAGS = \
297-I$(top_builddir)/src/include \ 305-I$(top_builddir)/src/include \
298-I$(top_srcdir)/src/lib \ 306-I$(top_srcdir)/src/lib \
299-I$(top_builddir)/src/lib \ 307-I$(top_builddir)/src/lib \
300@EINA_CPPFLAGS@ \
301@EMEMOA_CFLAGS@ \ 308@EMEMOA_CFLAGS@ \
302@EFL_EINA_BUILD@ 309@EFL_EINA_BUILD@
303 310
diff --git a/libraries/eina/src/modules/mp/fixed_bitmap/Makefile.am b/libraries/eina/src/modules/mp/fixed_bitmap/Makefile.am
index caf239e..1f2527b 100644
--- a/libraries/eina/src/modules/mp/fixed_bitmap/Makefile.am
+++ b/libraries/eina/src/modules/mp/fixed_bitmap/Makefile.am
@@ -6,7 +6,6 @@ AM_CPPFLAGS = \
6-I$(top_builddir)/src/include \ 6-I$(top_builddir)/src/include \
7-I$(top_srcdir)/src/lib \ 7-I$(top_srcdir)/src/lib \
8-I$(top_builddir)/src/lib \ 8-I$(top_builddir)/src/lib \
9@EINA_CPPFLAGS@ \
10@EFL_EINA_BUILD@ 9@EFL_EINA_BUILD@
11 10
12controllerdir = $(libdir)/eina/modules/mp/fixed_bitmap/$(MODULE_ARCH) 11controllerdir = $(libdir)/eina/modules/mp/fixed_bitmap/$(MODULE_ARCH)
diff --git a/libraries/eina/src/modules/mp/fixed_bitmap/Makefile.in b/libraries/eina/src/modules/mp/fixed_bitmap/Makefile.in
index 337f820..2a6b782 100644
--- a/libraries/eina/src/modules/mp/fixed_bitmap/Makefile.in
+++ b/libraries/eina/src/modules/mp/fixed_bitmap/Makefile.in
@@ -37,20 +37,24 @@ host_triplet = @host@
37subdir = src/modules/mp/fixed_bitmap 37subdir = src/modules/mp/fixed_bitmap
38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 40am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \
41 $(top_srcdir)/m4/efl_benchmark.m4 \ 41 $(top_srcdir)/m4/eina/eina_check.m4 \
42 $(top_srcdir)/m4/efl_compiler_flag.m4 \ 42 $(top_srcdir)/m4/common/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 $(top_srcdir)/m4/efl_cpu.m4 \ 43 $(top_srcdir)/m4/common/efl_benchmark.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \ 44 $(top_srcdir)/m4/common/efl_compiler_flag.m4 \
45 $(top_srcdir)/m4/efl_examples.m4 \ 45 $(top_srcdir)/m4/common/efl_coverage.m4 \
46 $(top_srcdir)/m4/efl_fnmatch.m4 \ 46 $(top_srcdir)/m4/common/efl_cpu.m4 \
47 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 47 $(top_srcdir)/m4/common/efl_doxygen.m4 \
48 $(top_srcdir)/m4/efl_threads.m4 \ 48 $(top_srcdir)/m4/common/efl_examples.m4 \
49 $(top_srcdir)/m4/efl_voltron.m4 $(top_srcdir)/m4/eina_bench.m4 \ 49 $(top_srcdir)/m4/common/efl_fnmatch.m4 \
50 $(top_srcdir)/m4/eina_check.m4 $(top_srcdir)/m4/libtool.m4 \ 50 $(top_srcdir)/m4/common/efl_path_max.m4 \
51 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 51 $(top_srcdir)/m4/common/efl_tests.m4 \
52 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 52 $(top_srcdir)/m4/common/efl_threads.m4 \
53 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac 53 $(top_srcdir)/m4/common/efl_voltron.m4 \
54 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
55 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
56 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
57 $(top_srcdir)/configure.ac
54am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 58am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
55 $(ACLOCAL_M4) 59 $(ACLOCAL_M4)
56mkinstalldirs = $(install_sh) -d 60mkinstalldirs = $(install_sh) -d
@@ -166,13 +170,13 @@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
166EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ 170EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
167EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 171EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
168EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ 172EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
173EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@
169EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 174EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
170EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 175EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
171EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 176EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
172EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ 177EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@
173EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ 178EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@
174EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ 179EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@
175EINA_CPPFLAGS = @EINA_CPPFLAGS@
176EINA_LIBS = @EINA_LIBS@ 180EINA_LIBS = @EINA_LIBS@
177EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ 181EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@
178EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ 182EMEMOA_CFLAGS = @EMEMOA_CFLAGS@
@@ -182,6 +186,8 @@ ESCAPE_LIBS = @ESCAPE_LIBS@
182EVIL_CFLAGS = @EVIL_CFLAGS@ 186EVIL_CFLAGS = @EVIL_CFLAGS@
183EVIL_LIBS = @EVIL_LIBS@ 187EVIL_LIBS = @EVIL_LIBS@
184EXEEXT = @EXEEXT@ 188EXEEXT = @EXEEXT@
189EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
190EXOTIC_LIBS = @EXOTIC_LIBS@
185FGREP = @FGREP@ 191FGREP = @FGREP@
186GLIB_CFLAGS = @GLIB_CFLAGS@ 192GLIB_CFLAGS = @GLIB_CFLAGS@
187GLIB_LIBS = @GLIB_LIBS@ 193GLIB_LIBS = @GLIB_LIBS@
@@ -217,6 +223,8 @@ PACKAGE_URL = @PACKAGE_URL@
217PACKAGE_VERSION = @PACKAGE_VERSION@ 223PACKAGE_VERSION = @PACKAGE_VERSION@
218PATH_SEPARATOR = @PATH_SEPARATOR@ 224PATH_SEPARATOR = @PATH_SEPARATOR@
219PKG_CONFIG = @PKG_CONFIG@ 225PKG_CONFIG = @PKG_CONFIG@
226PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
227PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
220RANLIB = @RANLIB@ 228RANLIB = @RANLIB@
221SED = @SED@ 229SED = @SED@
222SET_MAKE = @SET_MAKE@ 230SET_MAKE = @SET_MAKE@
@@ -297,7 +305,6 @@ AM_CPPFLAGS = \
297-I$(top_builddir)/src/include \ 305-I$(top_builddir)/src/include \
298-I$(top_srcdir)/src/lib \ 306-I$(top_srcdir)/src/lib \
299-I$(top_builddir)/src/lib \ 307-I$(top_builddir)/src/lib \
300@EINA_CPPFLAGS@ \
301@EFL_EINA_BUILD@ 308@EFL_EINA_BUILD@
302 309
303controllerdir = $(libdir)/eina/modules/mp/fixed_bitmap/$(MODULE_ARCH) 310controllerdir = $(libdir)/eina/modules/mp/fixed_bitmap/$(MODULE_ARCH)
diff --git a/libraries/eina/src/modules/mp/one_big/Makefile.am b/libraries/eina/src/modules/mp/one_big/Makefile.am
index 8ca1a62..35069a2 100644
--- a/libraries/eina/src/modules/mp/one_big/Makefile.am
+++ b/libraries/eina/src/modules/mp/one_big/Makefile.am
@@ -6,7 +6,6 @@ AM_CPPFLAGS = \
6-I$(top_builddir)/src/include \ 6-I$(top_builddir)/src/include \
7-I$(top_srcdir)/src/lib \ 7-I$(top_srcdir)/src/lib \
8-I$(top_builddir)/src/lib \ 8-I$(top_builddir)/src/lib \
9@EINA_CPPFLAGS@ \
10@EFL_EINA_BUILD@ \ 9@EFL_EINA_BUILD@ \
11@VALGRIND_CFLAGS@ 10@VALGRIND_CFLAGS@
12 11
diff --git a/libraries/eina/src/modules/mp/one_big/Makefile.in b/libraries/eina/src/modules/mp/one_big/Makefile.in
index c8560c9..4a2c229 100644
--- a/libraries/eina/src/modules/mp/one_big/Makefile.in
+++ b/libraries/eina/src/modules/mp/one_big/Makefile.in
@@ -37,20 +37,24 @@ host_triplet = @host@
37subdir = src/modules/mp/one_big 37subdir = src/modules/mp/one_big
38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 40am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \
41 $(top_srcdir)/m4/efl_benchmark.m4 \ 41 $(top_srcdir)/m4/eina/eina_check.m4 \
42 $(top_srcdir)/m4/efl_compiler_flag.m4 \ 42 $(top_srcdir)/m4/common/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 $(top_srcdir)/m4/efl_cpu.m4 \ 43 $(top_srcdir)/m4/common/efl_benchmark.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \ 44 $(top_srcdir)/m4/common/efl_compiler_flag.m4 \
45 $(top_srcdir)/m4/efl_examples.m4 \ 45 $(top_srcdir)/m4/common/efl_coverage.m4 \
46 $(top_srcdir)/m4/efl_fnmatch.m4 \ 46 $(top_srcdir)/m4/common/efl_cpu.m4 \
47 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 47 $(top_srcdir)/m4/common/efl_doxygen.m4 \
48 $(top_srcdir)/m4/efl_threads.m4 \ 48 $(top_srcdir)/m4/common/efl_examples.m4 \
49 $(top_srcdir)/m4/efl_voltron.m4 $(top_srcdir)/m4/eina_bench.m4 \ 49 $(top_srcdir)/m4/common/efl_fnmatch.m4 \
50 $(top_srcdir)/m4/eina_check.m4 $(top_srcdir)/m4/libtool.m4 \ 50 $(top_srcdir)/m4/common/efl_path_max.m4 \
51 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 51 $(top_srcdir)/m4/common/efl_tests.m4 \
52 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 52 $(top_srcdir)/m4/common/efl_threads.m4 \
53 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac 53 $(top_srcdir)/m4/common/efl_voltron.m4 \
54 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
55 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
56 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
57 $(top_srcdir)/configure.ac
54am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 58am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
55 $(ACLOCAL_M4) 59 $(ACLOCAL_M4)
56mkinstalldirs = $(install_sh) -d 60mkinstalldirs = $(install_sh) -d
@@ -166,13 +170,13 @@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
166EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ 170EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
167EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 171EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
168EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ 172EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
173EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@
169EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 174EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
170EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 175EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
171EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 176EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
172EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ 177EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@
173EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ 178EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@
174EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ 179EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@
175EINA_CPPFLAGS = @EINA_CPPFLAGS@
176EINA_LIBS = @EINA_LIBS@ 180EINA_LIBS = @EINA_LIBS@
177EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ 181EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@
178EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ 182EMEMOA_CFLAGS = @EMEMOA_CFLAGS@
@@ -182,6 +186,8 @@ ESCAPE_LIBS = @ESCAPE_LIBS@
182EVIL_CFLAGS = @EVIL_CFLAGS@ 186EVIL_CFLAGS = @EVIL_CFLAGS@
183EVIL_LIBS = @EVIL_LIBS@ 187EVIL_LIBS = @EVIL_LIBS@
184EXEEXT = @EXEEXT@ 188EXEEXT = @EXEEXT@
189EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
190EXOTIC_LIBS = @EXOTIC_LIBS@
185FGREP = @FGREP@ 191FGREP = @FGREP@
186GLIB_CFLAGS = @GLIB_CFLAGS@ 192GLIB_CFLAGS = @GLIB_CFLAGS@
187GLIB_LIBS = @GLIB_LIBS@ 193GLIB_LIBS = @GLIB_LIBS@
@@ -217,6 +223,8 @@ PACKAGE_URL = @PACKAGE_URL@
217PACKAGE_VERSION = @PACKAGE_VERSION@ 223PACKAGE_VERSION = @PACKAGE_VERSION@
218PATH_SEPARATOR = @PATH_SEPARATOR@ 224PATH_SEPARATOR = @PATH_SEPARATOR@
219PKG_CONFIG = @PKG_CONFIG@ 225PKG_CONFIG = @PKG_CONFIG@
226PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
227PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
220RANLIB = @RANLIB@ 228RANLIB = @RANLIB@
221SED = @SED@ 229SED = @SED@
222SET_MAKE = @SET_MAKE@ 230SET_MAKE = @SET_MAKE@
@@ -297,7 +305,6 @@ AM_CPPFLAGS = \
297-I$(top_builddir)/src/include \ 305-I$(top_builddir)/src/include \
298-I$(top_srcdir)/src/lib \ 306-I$(top_srcdir)/src/lib \
299-I$(top_builddir)/src/lib \ 307-I$(top_builddir)/src/lib \
300@EINA_CPPFLAGS@ \
301@EFL_EINA_BUILD@ \ 308@EFL_EINA_BUILD@ \
302@VALGRIND_CFLAGS@ 309@VALGRIND_CFLAGS@
303 310
diff --git a/libraries/eina/src/modules/mp/one_big/eina_one_big.c b/libraries/eina/src/modules/mp/one_big/eina_one_big.c
index dadec65..1159378 100644
--- a/libraries/eina/src/modules/mp/one_big/eina_one_big.c
+++ b/libraries/eina/src/modules/mp/one_big/eina_one_big.c
@@ -42,7 +42,7 @@
42#include "eina_lock.h" 42#include "eina_lock.h"
43 43
44#ifndef NVALGRIND 44#ifndef NVALGRIND
45# include <valgrind/memcheck.h> 45# include <memcheck.h>
46#endif 46#endif
47 47
48#include "eina_private.h" 48#include "eina_private.h"
diff --git a/libraries/eina/src/modules/mp/pass_through/Makefile.am b/libraries/eina/src/modules/mp/pass_through/Makefile.am
index 8f48974..33bd58c 100644
--- a/libraries/eina/src/modules/mp/pass_through/Makefile.am
+++ b/libraries/eina/src/modules/mp/pass_through/Makefile.am
@@ -6,7 +6,6 @@ AM_CPPFLAGS = \
6-I$(top_builddir)/src/include \ 6-I$(top_builddir)/src/include \
7-I$(top_srcdir)/src/lib \ 7-I$(top_srcdir)/src/lib \
8-I$(top_builddir)/src/lib \ 8-I$(top_builddir)/src/lib \
9@EINA_CPPFLAGS@ \
10@EFL_EINA_BUILD@ 9@EFL_EINA_BUILD@
11 10
12controllerdir = $(libdir)//eina/modules/mp/pass_through/$(MODULE_ARCH) 11controllerdir = $(libdir)//eina/modules/mp/pass_through/$(MODULE_ARCH)
diff --git a/libraries/eina/src/modules/mp/pass_through/Makefile.in b/libraries/eina/src/modules/mp/pass_through/Makefile.in
index f5664be..5c84e6b 100644
--- a/libraries/eina/src/modules/mp/pass_through/Makefile.in
+++ b/libraries/eina/src/modules/mp/pass_through/Makefile.in
@@ -37,20 +37,24 @@ host_triplet = @host@
37subdir = src/modules/mp/pass_through 37subdir = src/modules/mp/pass_through
38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 40am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \
41 $(top_srcdir)/m4/efl_benchmark.m4 \ 41 $(top_srcdir)/m4/eina/eina_check.m4 \
42 $(top_srcdir)/m4/efl_compiler_flag.m4 \ 42 $(top_srcdir)/m4/common/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 $(top_srcdir)/m4/efl_cpu.m4 \ 43 $(top_srcdir)/m4/common/efl_benchmark.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \ 44 $(top_srcdir)/m4/common/efl_compiler_flag.m4 \
45 $(top_srcdir)/m4/efl_examples.m4 \ 45 $(top_srcdir)/m4/common/efl_coverage.m4 \
46 $(top_srcdir)/m4/efl_fnmatch.m4 \ 46 $(top_srcdir)/m4/common/efl_cpu.m4 \
47 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 47 $(top_srcdir)/m4/common/efl_doxygen.m4 \
48 $(top_srcdir)/m4/efl_threads.m4 \ 48 $(top_srcdir)/m4/common/efl_examples.m4 \
49 $(top_srcdir)/m4/efl_voltron.m4 $(top_srcdir)/m4/eina_bench.m4 \ 49 $(top_srcdir)/m4/common/efl_fnmatch.m4 \
50 $(top_srcdir)/m4/eina_check.m4 $(top_srcdir)/m4/libtool.m4 \ 50 $(top_srcdir)/m4/common/efl_path_max.m4 \
51 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 51 $(top_srcdir)/m4/common/efl_tests.m4 \
52 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 52 $(top_srcdir)/m4/common/efl_threads.m4 \
53 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac 53 $(top_srcdir)/m4/common/efl_voltron.m4 \
54 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
55 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
56 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
57 $(top_srcdir)/configure.ac
54am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 58am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
55 $(ACLOCAL_M4) 59 $(ACLOCAL_M4)
56mkinstalldirs = $(install_sh) -d 60mkinstalldirs = $(install_sh) -d
@@ -166,13 +170,13 @@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
166EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ 170EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
167EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 171EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
168EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ 172EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
173EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@
169EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 174EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
170EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 175EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
171EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 176EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
172EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ 177EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@
173EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ 178EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@
174EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ 179EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@
175EINA_CPPFLAGS = @EINA_CPPFLAGS@
176EINA_LIBS = @EINA_LIBS@ 180EINA_LIBS = @EINA_LIBS@
177EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ 181EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@
178EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ 182EMEMOA_CFLAGS = @EMEMOA_CFLAGS@
@@ -182,6 +186,8 @@ ESCAPE_LIBS = @ESCAPE_LIBS@
182EVIL_CFLAGS = @EVIL_CFLAGS@ 186EVIL_CFLAGS = @EVIL_CFLAGS@
183EVIL_LIBS = @EVIL_LIBS@ 187EVIL_LIBS = @EVIL_LIBS@
184EXEEXT = @EXEEXT@ 188EXEEXT = @EXEEXT@
189EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
190EXOTIC_LIBS = @EXOTIC_LIBS@
185FGREP = @FGREP@ 191FGREP = @FGREP@
186GLIB_CFLAGS = @GLIB_CFLAGS@ 192GLIB_CFLAGS = @GLIB_CFLAGS@
187GLIB_LIBS = @GLIB_LIBS@ 193GLIB_LIBS = @GLIB_LIBS@
@@ -217,6 +223,8 @@ PACKAGE_URL = @PACKAGE_URL@
217PACKAGE_VERSION = @PACKAGE_VERSION@ 223PACKAGE_VERSION = @PACKAGE_VERSION@
218PATH_SEPARATOR = @PATH_SEPARATOR@ 224PATH_SEPARATOR = @PATH_SEPARATOR@
219PKG_CONFIG = @PKG_CONFIG@ 225PKG_CONFIG = @PKG_CONFIG@
226PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
227PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
220RANLIB = @RANLIB@ 228RANLIB = @RANLIB@
221SED = @SED@ 229SED = @SED@
222SET_MAKE = @SET_MAKE@ 230SET_MAKE = @SET_MAKE@
@@ -297,7 +305,6 @@ AM_CPPFLAGS = \
297-I$(top_builddir)/src/include \ 305-I$(top_builddir)/src/include \
298-I$(top_srcdir)/src/lib \ 306-I$(top_srcdir)/src/lib \
299-I$(top_builddir)/src/lib \ 307-I$(top_builddir)/src/lib \
300@EINA_CPPFLAGS@ \
301@EFL_EINA_BUILD@ 308@EFL_EINA_BUILD@
302 309
303controllerdir = $(libdir)//eina/modules/mp/pass_through/$(MODULE_ARCH) 310controllerdir = $(libdir)//eina/modules/mp/pass_through/$(MODULE_ARCH)
diff --git a/libraries/eina/src/tests/Makefile.am b/libraries/eina/src/tests/Makefile.am
index 7e05ba9..cf500f5 100644
--- a/libraries/eina/src/tests/Makefile.am
+++ b/libraries/eina/src/tests/Makefile.am
@@ -66,7 +66,8 @@ eina_test_strbuf.c \
66eina_test_str.c \ 66eina_test_str.c \
67eina_test_quadtree.c \ 67eina_test_quadtree.c \
68eina_test_simple_xml_parser.c \ 68eina_test_simple_xml_parser.c \
69eina_test_value.c 69eina_test_value.c \
70eina_test_model.c
70 71
71eina_suite_LDADD = @CHECK_LIBS@ $(top_builddir)/src/lib/libeina.la -lm 72eina_suite_LDADD = @CHECK_LIBS@ $(top_builddir)/src/lib/libeina.la -lm
72 73
diff --git a/libraries/eina/src/tests/Makefile.in b/libraries/eina/src/tests/Makefile.in
index c56211a..81e58ba 100644
--- a/libraries/eina/src/tests/Makefile.in
+++ b/libraries/eina/src/tests/Makefile.in
@@ -43,20 +43,24 @@ host_triplet = @host@
43subdir = src/tests 43subdir = src/tests
44DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 44DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
45ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 45ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
46am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ 46am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \
47 $(top_srcdir)/m4/efl_benchmark.m4 \ 47 $(top_srcdir)/m4/eina/eina_check.m4 \
48 $(top_srcdir)/m4/efl_compiler_flag.m4 \ 48 $(top_srcdir)/m4/common/efl_attribute.m4 \
49 $(top_srcdir)/m4/efl_coverage.m4 $(top_srcdir)/m4/efl_cpu.m4 \ 49 $(top_srcdir)/m4/common/efl_benchmark.m4 \
50 $(top_srcdir)/m4/efl_doxygen.m4 \ 50 $(top_srcdir)/m4/common/efl_compiler_flag.m4 \
51 $(top_srcdir)/m4/efl_examples.m4 \ 51 $(top_srcdir)/m4/common/efl_coverage.m4 \
52 $(top_srcdir)/m4/efl_fnmatch.m4 \ 52 $(top_srcdir)/m4/common/efl_cpu.m4 \
53 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ 53 $(top_srcdir)/m4/common/efl_doxygen.m4 \
54 $(top_srcdir)/m4/efl_threads.m4 \ 54 $(top_srcdir)/m4/common/efl_examples.m4 \
55 $(top_srcdir)/m4/efl_voltron.m4 $(top_srcdir)/m4/eina_bench.m4 \ 55 $(top_srcdir)/m4/common/efl_fnmatch.m4 \
56 $(top_srcdir)/m4/eina_check.m4 $(top_srcdir)/m4/libtool.m4 \ 56 $(top_srcdir)/m4/common/efl_path_max.m4 \
57 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 57 $(top_srcdir)/m4/common/efl_tests.m4 \
58 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 58 $(top_srcdir)/m4/common/efl_threads.m4 \
59 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac 59 $(top_srcdir)/m4/common/efl_voltron.m4 \
60 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
61 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
62 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
63 $(top_srcdir)/configure.ac
60am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 64am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4) 65 $(ACLOCAL_M4)
62mkinstalldirs = $(install_sh) -d 66mkinstalldirs = $(install_sh) -d
@@ -159,7 +163,8 @@ am__eina_suite_SOURCES_DIST = eina_suite.c eina_test_fp.c \
159 eina_test_rectangle.c eina_test_list.c \ 163 eina_test_rectangle.c eina_test_list.c \
160 eina_test_matrixsparse.c eina_test_tiler.c eina_test_strbuf.c \ 164 eina_test_matrixsparse.c eina_test_tiler.c eina_test_strbuf.c \
161 eina_test_str.c eina_test_quadtree.c \ 165 eina_test_str.c eina_test_quadtree.c \
162 eina_test_simple_xml_parser.c eina_test_value.c 166 eina_test_simple_xml_parser.c eina_test_value.c \
167 eina_test_model.c
163@EFL_ENABLE_TESTS_TRUE@am_eina_suite_OBJECTS = eina_suite.$(OBJEXT) \ 168@EFL_ENABLE_TESTS_TRUE@am_eina_suite_OBJECTS = eina_suite.$(OBJEXT) \
164@EFL_ENABLE_TESTS_TRUE@ eina_test_fp.$(OBJEXT) \ 169@EFL_ENABLE_TESTS_TRUE@ eina_test_fp.$(OBJEXT) \
165@EFL_ENABLE_TESTS_TRUE@ eina_test_stringshare.$(OBJEXT) \ 170@EFL_ENABLE_TESTS_TRUE@ eina_test_stringshare.$(OBJEXT) \
@@ -195,7 +200,8 @@ am__eina_suite_SOURCES_DIST = eina_suite.c eina_test_fp.c \
195@EFL_ENABLE_TESTS_TRUE@ eina_test_str.$(OBJEXT) \ 200@EFL_ENABLE_TESTS_TRUE@ eina_test_str.$(OBJEXT) \
196@EFL_ENABLE_TESTS_TRUE@ eina_test_quadtree.$(OBJEXT) \ 201@EFL_ENABLE_TESTS_TRUE@ eina_test_quadtree.$(OBJEXT) \
197@EFL_ENABLE_TESTS_TRUE@ eina_test_simple_xml_parser.$(OBJEXT) \ 202@EFL_ENABLE_TESTS_TRUE@ eina_test_simple_xml_parser.$(OBJEXT) \
198@EFL_ENABLE_TESTS_TRUE@ eina_test_value.$(OBJEXT) 203@EFL_ENABLE_TESTS_TRUE@ eina_test_value.$(OBJEXT) \
204@EFL_ENABLE_TESTS_TRUE@ eina_test_model.$(OBJEXT)
199eina_suite_OBJECTS = $(am_eina_suite_OBJECTS) 205eina_suite_OBJECTS = $(am_eina_suite_OBJECTS)
200@EFL_ENABLE_TESTS_TRUE@eina_suite_DEPENDENCIES = \ 206@EFL_ENABLE_TESTS_TRUE@eina_suite_DEPENDENCIES = \
201@EFL_ENABLE_TESTS_TRUE@ $(top_builddir)/src/lib/libeina.la 207@EFL_ENABLE_TESTS_TRUE@ $(top_builddir)/src/lib/libeina.la
@@ -296,13 +302,13 @@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
296EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ 302EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@
297EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ 303EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
298EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ 304EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@
305EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@
299EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ 306EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
300EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ 307EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
301EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ 308EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
302EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ 309EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@
303EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ 310EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@
304EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ 311EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@
305EINA_CPPFLAGS = @EINA_CPPFLAGS@
306EINA_LIBS = @EINA_LIBS@ 312EINA_LIBS = @EINA_LIBS@
307EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ 313EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@
308EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ 314EMEMOA_CFLAGS = @EMEMOA_CFLAGS@
@@ -312,6 +318,8 @@ ESCAPE_LIBS = @ESCAPE_LIBS@
312EVIL_CFLAGS = @EVIL_CFLAGS@ 318EVIL_CFLAGS = @EVIL_CFLAGS@
313EVIL_LIBS = @EVIL_LIBS@ 319EVIL_LIBS = @EVIL_LIBS@
314EXEEXT = @EXEEXT@ 320EXEEXT = @EXEEXT@
321EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
322EXOTIC_LIBS = @EXOTIC_LIBS@
315FGREP = @FGREP@ 323FGREP = @FGREP@
316GLIB_CFLAGS = @GLIB_CFLAGS@ 324GLIB_CFLAGS = @GLIB_CFLAGS@
317GLIB_LIBS = @GLIB_LIBS@ 325GLIB_LIBS = @GLIB_LIBS@
@@ -347,6 +355,8 @@ PACKAGE_URL = @PACKAGE_URL@
347PACKAGE_VERSION = @PACKAGE_VERSION@ 355PACKAGE_VERSION = @PACKAGE_VERSION@
348PATH_SEPARATOR = @PATH_SEPARATOR@ 356PATH_SEPARATOR = @PATH_SEPARATOR@
349PKG_CONFIG = @PKG_CONFIG@ 357PKG_CONFIG = @PKG_CONFIG@
358PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
359PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
350RANLIB = @RANLIB@ 360RANLIB = @RANLIB@
351SED = @SED@ 361SED = @SED@
352SET_MAKE = @SET_MAKE@ 362SET_MAKE = @SET_MAKE@
@@ -465,7 +475,8 @@ AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_srcdir)/src/include \
465@EFL_ENABLE_TESTS_TRUE@eina_test_str.c \ 475@EFL_ENABLE_TESTS_TRUE@eina_test_str.c \
466@EFL_ENABLE_TESTS_TRUE@eina_test_quadtree.c \ 476@EFL_ENABLE_TESTS_TRUE@eina_test_quadtree.c \
467@EFL_ENABLE_TESTS_TRUE@eina_test_simple_xml_parser.c \ 477@EFL_ENABLE_TESTS_TRUE@eina_test_simple_xml_parser.c \
468@EFL_ENABLE_TESTS_TRUE@eina_test_value.c 478@EFL_ENABLE_TESTS_TRUE@eina_test_value.c \
479@EFL_ENABLE_TESTS_TRUE@eina_test_model.c
469 480
470@EFL_ENABLE_TESTS_TRUE@eina_suite_LDADD = @CHECK_LIBS@ $(top_builddir)/src/lib/libeina.la -lm 481@EFL_ENABLE_TESTS_TRUE@eina_suite_LDADD = @CHECK_LIBS@ $(top_builddir)/src/lib/libeina.la -lm
471@EFL_ENABLE_TESTS_TRUE@cxx_compile_test_SOURCES = cxx_compile_test.cxx 482@EFL_ENABLE_TESTS_TRUE@cxx_compile_test_SOURCES = cxx_compile_test.cxx
@@ -704,6 +715,7 @@ distclean-compile:
704@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_main.Po@am__quote@ 715@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_main.Po@am__quote@
705@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_matrixsparse.Po@am__quote@ 716@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_matrixsparse.Po@am__quote@
706@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_mempool.Po@am__quote@ 717@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_mempool.Po@am__quote@
718@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_model.Po@am__quote@
707@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_module.Po@am__quote@ 719@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_module.Po@am__quote@
708@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_quadtree.Po@am__quote@ 720@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_quadtree.Po@am__quote@
709@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_rbtree.Po@am__quote@ 721@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_rbtree.Po@am__quote@
diff --git a/libraries/eina/src/tests/eina_suite.c b/libraries/eina/src/tests/eina_suite.c
index 648a717..b34d016 100644
--- a/libraries/eina/src/tests/eina_suite.c
+++ b/libraries/eina/src/tests/eina_suite.c
@@ -68,6 +68,7 @@ static const Eina_Test_Case etc[] = {
68 { "Sched", eina_test_sched }, 68 { "Sched", eina_test_sched },
69 { "Simple Xml Parser", eina_test_simple_xml_parser}, 69 { "Simple Xml Parser", eina_test_simple_xml_parser},
70 { "Value", eina_test_value }, 70 { "Value", eina_test_value },
71 { "Model", eina_test_model },
71 { NULL, NULL } 72 { NULL, NULL }
72}; 73};
73 74
@@ -137,6 +138,8 @@ static void _mempool_init(void)
137static void _mempool_shutdown(void) 138static void _mempool_shutdown(void)
138{ 139{
139 eina_module_list_free(_modules); 140 eina_module_list_free(_modules);
141 if (_modules)
142 eina_array_free(_modules);
140 /* TODO delete the list */ 143 /* TODO delete the list */
141 eina_shutdown(); 144 eina_shutdown();
142} 145}
diff --git a/libraries/eina/src/tests/eina_suite.h b/libraries/eina/src/tests/eina_suite.h
index 6eaaec7..d399298 100644
--- a/libraries/eina/src/tests/eina_suite.h
+++ b/libraries/eina/src/tests/eina_suite.h
@@ -56,5 +56,6 @@ void eina_test_fp(TCase *tc);
56void eina_test_sched(TCase *tc); 56void eina_test_sched(TCase *tc);
57void eina_test_simple_xml_parser(TCase *tc); 57void eina_test_simple_xml_parser(TCase *tc);
58void eina_test_value(TCase *tc); 58void eina_test_value(TCase *tc);
59void eina_test_model(TCase *tc);
59 60
60#endif /* EINA_SUITE_H_ */ 61#endif /* EINA_SUITE_H_ */
diff --git a/libraries/eina/src/tests/eina_test_clist.c b/libraries/eina/src/tests/eina_test_clist.c
index 901c0e8..115afc2 100644
--- a/libraries/eina/src/tests/eina_test_clist.c
+++ b/libraries/eina/src/tests/eina_test_clist.c
@@ -6,7 +6,7 @@
6#include <string.h> 6#include <string.h>
7#include <assert.h> 7#include <assert.h>
8 8
9#include <Eina.h> 9#include "Eina.h"
10#include "eina_suite.h" 10#include "eina_suite.h"
11 11
12Eina_Clist string_list = EINA_CLIST_INIT(string_list); 12Eina_Clist string_list = EINA_CLIST_INIT(string_list);
diff --git a/libraries/eina/src/tests/eina_test_counter.c b/libraries/eina/src/tests/eina_test_counter.c
index 2a3f30d..4d956fd 100644
--- a/libraries/eina/src/tests/eina_test_counter.c
+++ b/libraries/eina/src/tests/eina_test_counter.c
@@ -27,6 +27,43 @@
27#include "Eina.h" 27#include "Eina.h"
28#include "eina_safety_checks.h" 28#include "eina_safety_checks.h"
29 29
30#ifdef EINA_SAFETY_CHECKS
31struct log_ctx {
32 const char *msg;
33 const char *fnc;
34 Eina_Bool did;
35};
36
37/* tests should not output on success, just uncomment this for debugging */
38//#define SHOW_LOG 1
39
40static void
41_eina_test_safety_print_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__)
42{
43 struct log_ctx *ctx = data;
44 va_list cp_args;
45 const char *str;
46
47 va_copy(cp_args, args);
48 str = va_arg(cp_args, const char *);
49 va_end(cp_args);
50
51 ck_assert_int_eq(level, EINA_LOG_LEVEL_ERR);
52 ck_assert_str_eq(fmt, "%s");
53 ck_assert_str_eq(ctx->msg, str);
54 ck_assert_str_eq(ctx->fnc, fnc);
55 ctx->did = EINA_TRUE;
56
57#ifdef SHOW_LOG
58 eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args);
59#else
60 (void)d;
61 (void)file;
62 (void)line;
63#endif
64}
65#endif
66
30START_TEST(eina_counter_simple) 67START_TEST(eina_counter_simple)
31{ 68{
32 Eina_Counter *cnt; 69 Eina_Counter *cnt;
@@ -61,6 +98,7 @@ START_TEST(eina_counter_simple)
61 dump = eina_counter_dump(cnt); 98 dump = eina_counter_dump(cnt);
62 fail_if(!dump); 99 fail_if(!dump);
63 100
101 /* TODO: parse dump and check if it's right */
64 fprintf(stderr, "%s", dump); 102 fprintf(stderr, "%s", dump);
65 103
66 free(dump); 104 free(dump);
@@ -86,13 +124,65 @@ START_TEST(eina_counter_break)
86 124
87#ifdef EINA_SAFETY_CHECKS 125#ifdef EINA_SAFETY_CHECKS
88 { 126 {
127 struct log_ctx ctx;
89 char *dump; 128 char *dump;
90 129
130#define TEST_MAGIC_SAFETY(fn, _msg) \
131 ctx.msg = _msg; \
132 ctx.fnc = fn; \
133 ctx.did = EINA_FALSE
134
135 eina_log_print_cb_set(_eina_test_safety_print_cb, &ctx);
136
137#ifdef SHOW_LOG
91 fprintf(stderr, "you should have a safety check failure below:\n"); 138 fprintf(stderr, "you should have a safety check failure below:\n");
139#endif
140 TEST_MAGIC_SAFETY("eina_counter_new",
141 "safety check failed: name == NULL");
142 cnt = eina_counter_new(NULL);
143 fail_if(cnt);
144 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
145 fail_unless(ctx.did);
146
147#ifdef SHOW_LOG
148 fprintf(stderr, "you should have a safety check failure below:\n");
149#endif
150 TEST_MAGIC_SAFETY("eina_counter_free",
151 "safety check failed: counter == NULL");
152 eina_counter_free(NULL);
153 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
154 fail_unless(ctx.did);
155
156#ifdef SHOW_LOG
157 fprintf(stderr, "you should have a safety check failure below:\n");
158#endif
159 TEST_MAGIC_SAFETY("eina_counter_start",
160 "safety check failed: counter == NULL");
161 eina_counter_start(NULL);
162 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
163 fail_unless(ctx.did);
164
165#ifdef SHOW_LOG
166 fprintf(stderr, "you should have a safety check failure below:\n");
167#endif
168 TEST_MAGIC_SAFETY("eina_counter_stop",
169 "safety check failed: counter == NULL");
170 eina_counter_stop(NULL, 0);
171 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
172 fail_unless(ctx.did);
173
174
175#ifdef SHOW_LOG
176 fprintf(stderr, "you should have a safety check failure below:\n");
177#endif
178 TEST_MAGIC_SAFETY("eina_counter_dump",
179 "safety check failed: counter == NULL");
92 dump = eina_counter_dump(NULL); 180 dump = eina_counter_dump(NULL);
93 fail_if(dump); 181 fail_if(dump);
94 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); 182 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
95 free(dump); 183 fail_unless(ctx.did);
184
185 eina_log_print_cb_set(eina_log_print_cb_stderr, NULL);
96 } 186 }
97#endif 187#endif
98 188
diff --git a/libraries/eina/src/tests/eina_test_error.c b/libraries/eina/src/tests/eina_test_error.c
index 506f406..57f6950 100644
--- a/libraries/eina/src/tests/eina_test_error.c
+++ b/libraries/eina/src/tests/eina_test_error.c
@@ -33,6 +33,41 @@
33 33
34#define TEST_TEXT "The big test\n" 34#define TEST_TEXT "The big test\n"
35 35
36struct log_ctx {
37 const char *msg;
38 const char *fnc;
39 Eina_Bool did;
40};
41
42/* tests should not output on success, just uncomment this for debugging */
43//#define SHOW_LOG 1
44
45static void
46_eina_test_safety_print_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__)
47{
48 struct log_ctx *ctx = data;
49 va_list cp_args;
50 const char *str;
51
52 va_copy(cp_args, args);
53 str = va_arg(cp_args, const char *);
54 va_end(cp_args);
55
56 ck_assert_int_eq(level, EINA_LOG_LEVEL_ERR);
57 ck_assert_str_eq(fmt, "%s");
58 ck_assert_str_eq(ctx->msg, str);
59 ck_assert_str_eq(ctx->fnc, fnc);
60 ctx->did = EINA_TRUE;
61
62#ifdef SHOW_LOG
63 eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args);
64#else
65 (void)d;
66 (void)file;
67 (void)line;
68#endif
69}
70
36START_TEST(eina_error_errno) 71START_TEST(eina_error_errno)
37{ 72{
38 int test; 73 int test;
@@ -52,8 +87,157 @@ START_TEST(eina_error_errno)
52} 87}
53END_TEST 88END_TEST
54 89
90START_TEST(eina_error_test_find)
91{
92 int test, r;
93 const char *str;
94
95 eina_init();
96
97 test = eina_error_msg_register(TEST_TEXT);
98 ck_assert_int_ne(test, 0);
99
100 str = eina_error_msg_get(test);
101 fail_unless(str != NULL);
102 ck_assert_str_eq(str, TEST_TEXT);
103
104 eina_error_set(test);
105 fail_if(eina_error_get() != test);
106
107 r = eina_error_find(TEST_TEXT);
108 ck_assert_int_eq(r, test);
109
110 eina_shutdown();
111}
112END_TEST
113
114START_TEST(eina_error_test_modify)
115{
116 int test, r;
117 const char *str, smsg[] = "Do not copy this string";
118
119 eina_init();
120
121 test = eina_error_msg_register("Some Test Error");
122 ck_assert_int_ne(test, 0);
123
124 str = eina_error_msg_get(test);
125 fail_unless(str != NULL);
126 ck_assert_str_eq(str, "Some Test Error");
127
128 eina_error_set(test);
129 fail_if(eina_error_get() != test);
130
131 fail_unless(eina_error_msg_modify(test, "ABCDE"));
132
133 r = eina_error_find("ABCDE");
134 ck_assert_int_eq(r, test);
135
136 test = eina_error_msg_static_register(smsg);
137 ck_assert_int_ne(test, 0);
138
139 str = eina_error_msg_get(test);
140 fail_unless(str != NULL);
141 fail_unless(str == smsg);
142
143 fail_unless(eina_error_msg_modify(test, "Change that!"));
144 r = eina_error_find("Change that!");
145 ck_assert_int_eq(r, test);
146
147 eina_shutdown();
148}
149END_TEST
150
151START_TEST(eina_error_test_lots)
152{
153 char buf[64];
154 int codes[512];
155 unsigned int i;
156
157 eina_init();
158
159 for (i = 0; i < sizeof(codes)/sizeof(codes[0]); i++)
160 {
161 snprintf(buf, sizeof(buf), "myerr-%d", i);
162 codes[i] = eina_error_msg_register(buf);
163 ck_assert_int_ne(codes[i], 0);
164 }
165
166 for (i = 0; i < sizeof(codes)/sizeof(codes[0]); i++)
167 {
168 int found;
169
170 snprintf(buf, sizeof(buf), "myerr-%d", i);
171
172 found = eina_error_find(buf);
173 ck_assert_int_eq(codes[i], found);
174 }
175
176 eina_shutdown();
177}
178END_TEST
179
180#ifdef EINA_SAFETY_CHECKS
181START_TEST(eina_error_test_failures)
182{
183 struct log_ctx ctx;
184
185 eina_init();
186
187 eina_log_print_cb_set(_eina_test_safety_print_cb, &ctx);
188
189#define TEST_MAGIC_SAFETY(fn, _msg) \
190 ctx.msg = _msg; \
191 ctx.fnc = fn; \
192 ctx.did = EINA_FALSE
193
194 TEST_MAGIC_SAFETY("eina_error_msg_register",
195 "safety check failed: msg == NULL");
196 ck_assert_int_eq(eina_error_msg_register(NULL), 0);
197 fail_unless(ctx.did);
198
199 TEST_MAGIC_SAFETY("eina_error_msg_static_register",
200 "safety check failed: msg == NULL");
201 ck_assert_int_eq(eina_error_msg_static_register(NULL), 0);
202 fail_unless(ctx.did);
203
204 ck_assert_int_eq(eina_error_msg_modify(0, "X"), EINA_FALSE);
205 ck_assert_int_eq(eina_error_msg_modify(4096, "X"), EINA_FALSE);
206
207 TEST_MAGIC_SAFETY("eina_error_msg_modify",
208 "safety check failed: msg == NULL");
209 ck_assert_int_eq(eina_error_msg_modify(EINA_ERROR_OUT_OF_MEMORY, NULL),
210 EINA_FALSE);
211 fail_unless(ctx.did);
212
213 ck_assert_str_eq(eina_error_msg_get(EINA_ERROR_OUT_OF_MEMORY),
214 "Out of memory");
215
216 TEST_MAGIC_SAFETY("eina_error_find",
217 "safety check failed: msg == NULL");
218 ck_assert_int_eq(eina_error_find(NULL), 0);
219 fail_unless(ctx.did);
220
221 ck_assert_int_eq(eina_error_find("Non-existent Error..."), 0);
222
223 fail_if(eina_error_msg_get(0));
224 fail_if(eina_error_msg_get(4096));
225
226 eina_log_print_cb_set(eina_log_print_cb_stderr, NULL);
227
228 eina_shutdown();
229}
230END_TEST
231#endif
232
55void 233void
56eina_test_error(TCase *tc) 234eina_test_error(TCase *tc)
57{ 235{
58 tcase_add_test(tc, eina_error_errno); 236 tcase_add_test(tc, eina_error_errno);
237 tcase_add_test(tc, eina_error_test_find);
238 tcase_add_test(tc, eina_error_test_modify);
239 tcase_add_test(tc, eina_error_test_lots);
240#ifdef EINA_SAFETY_CHECKS
241 tcase_add_test(tc, eina_error_test_failures);
242#endif
59} 243}
diff --git a/libraries/eina/src/tests/eina_test_file.c b/libraries/eina/src/tests/eina_test_file.c
index 55e9976..a3ba998 100644
--- a/libraries/eina/src/tests/eina_test_file.c
+++ b/libraries/eina/src/tests/eina_test_file.c
@@ -28,6 +28,44 @@
28#include "Eina.h" 28#include "Eina.h"
29#include "eina_safety_checks.h" 29#include "eina_safety_checks.h"
30 30
31#ifdef EINA_SAFETY_CHECKS
32struct log_ctx {
33 const char *msg;
34 const char *fnc;
35 Eina_Bool did;
36};
37
38/* tests should not output on success, just uncomment this for debugging */
39//#define SHOW_LOG 1
40
41static void
42_eina_test_safety_print_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__)
43{
44 struct log_ctx *ctx = data;
45 va_list cp_args;
46 const char *str;
47
48 va_copy(cp_args, args);
49 str = va_arg(cp_args, const char *);
50 va_end(cp_args);
51
52 ck_assert_int_eq(level, EINA_LOG_LEVEL_ERR);
53 ck_assert_str_eq(fmt, "%s");
54 ck_assert_str_eq(ctx->msg, str);
55 ck_assert_str_eq(ctx->fnc, fnc);
56 ctx->did = EINA_TRUE;
57
58#ifdef SHOW_LOG
59 eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args);
60#else
61 (void)d;
62 (void)file;
63 (void)line;
64#endif
65}
66#endif
67
68
31START_TEST(eina_file_split_simple) 69START_TEST(eina_file_split_simple)
32{ 70{
33 Eina_Array *ea; 71 Eina_Array *ea;
@@ -35,10 +73,26 @@ START_TEST(eina_file_split_simple)
35 eina_init(); 73 eina_init();
36 74
37#ifdef EINA_SAFETY_CHECKS 75#ifdef EINA_SAFETY_CHECKS
76#ifdef SHOW_LOG
38 fprintf(stderr, "you should have a safety check failure below:\n"); 77 fprintf(stderr, "you should have a safety check failure below:\n");
78#endif
79 struct log_ctx ctx;
80
81#define TEST_MAGIC_SAFETY(fn, _msg) \
82 ctx.msg = _msg; \
83 ctx.fnc = fn; \
84 ctx.did = EINA_FALSE
85
86 eina_log_print_cb_set(_eina_test_safety_print_cb, &ctx);
87
88 TEST_MAGIC_SAFETY("eina_file_split", "safety check failed: path == NULL");
39 ea = eina_file_split(NULL); 89 ea = eina_file_split(NULL);
40 fail_if(ea); 90 fail_if(ea);
41 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); 91 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
92 fail_unless(ctx.did);
93
94 eina_log_print_cb_set(eina_log_print_cb_stderr, NULL);
95#undef TEST_MAGIC_SAFETY
42#endif 96#endif
43 97
44#ifdef _WIN32 98#ifdef _WIN32
diff --git a/libraries/eina/src/tests/eina_test_inlist.c b/libraries/eina/src/tests/eina_test_inlist.c
index c27f393..a8631e7 100644
--- a/libraries/eina/src/tests/eina_test_inlist.c
+++ b/libraries/eina/src/tests/eina_test_inlist.c
@@ -34,6 +34,43 @@ struct _Eina_Test_Inlist
34 EINA_INLIST; 34 EINA_INLIST;
35}; 35};
36 36
37#ifdef EINA_SAFETY_CHECKS
38struct log_ctx {
39 const char *msg;
40 const char *fnc;
41 Eina_Bool did;
42};
43
44/* tests should not output on success, just uncomment this for debugging */
45//#define SHOW_LOG 1
46
47static void
48_eina_test_safety_print_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__)
49{
50 struct log_ctx *ctx = data;
51 va_list cp_args;
52 const char *str;
53
54 va_copy(cp_args, args);
55 str = va_arg(cp_args, const char *);
56 va_end(cp_args);
57
58 ck_assert_int_eq(level, EINA_LOG_LEVEL_ERR);
59 ck_assert_str_eq(fmt, "%s");
60 ck_assert_str_eq(ctx->msg, str);
61 ck_assert_str_eq(ctx->fnc, fnc);
62 ctx->did = EINA_TRUE;
63
64#ifdef SHOW_LOG
65 eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args);
66#else
67 (void)d;
68 (void)file;
69 (void)line;
70#endif
71}
72#endif
73
37static Eina_Test_Inlist * 74static Eina_Test_Inlist *
38_eina_test_inlist_build(int i) 75_eina_test_inlist_build(int i)
39{ 76{
@@ -52,6 +89,10 @@ START_TEST(eina_inlist_simple)
52 Eina_Test_Inlist *tmp; 89 Eina_Test_Inlist *tmp;
53 Eina_Test_Inlist *prev; 90 Eina_Test_Inlist *prev;
54 int i = 0; 91 int i = 0;
92#ifdef EINA_SAFETY_CHECKS
93 Eina_Inlist *bkp;
94 struct log_ctx ctx;
95#endif
55 96
56 fail_if(!eina_init()); 97 fail_if(!eina_init());
57 98
@@ -106,16 +147,142 @@ START_TEST(eina_inlist_simple)
106 } 147 }
107 148
108#ifdef EINA_SAFETY_CHECKS 149#ifdef EINA_SAFETY_CHECKS
150 bkp = lst;
151 eina_log_print_cb_set(_eina_test_safety_print_cb, &ctx);
152
153#define TEST_MAGIC_SAFETY(fn, _msg) \
154 ctx.msg = _msg; \
155 ctx.fnc = fn; \
156 ctx.did = EINA_FALSE
157
158#ifdef SHOW_LOG
109 fprintf(stderr, "you should have a safety check failure below:\n"); 159 fprintf(stderr, "you should have a safety check failure below:\n");
160#endif
110 { 161 {
111 Eina_Inlist *tmp2 = eina_inlist_remove(NULL, EINA_INLIST_GET(tmp)); 162 Eina_Inlist *tmp2;
163
164 TEST_MAGIC_SAFETY("eina_inlist_remove",
165 "safety check failed: list == NULL");
166
167 tmp2 = eina_inlist_remove(NULL, EINA_INLIST_GET(tmp));
112 fail_if(tmp2 != NULL); 168 fail_if(tmp2 != NULL);
113 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); 169 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
170 fail_unless(ctx.did);
114 } 171 }
115 172
116 fprintf(stderr, "you should have a safety check failure below:\n"); 173#ifdef SHOW_LOG
174 fprintf(stderr, "you should have a safety check failure below:\n");
175#endif
176 TEST_MAGIC_SAFETY("eina_inlist_remove",
177 "safety check failed: item == NULL");
117 lst = eina_inlist_remove(lst, NULL); 178 lst = eina_inlist_remove(lst, NULL);
118 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); 179 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
180 fail_unless(ctx.did);
181
182#ifdef SHOW_LOG
183 fprintf(stderr, "you should have a safety check failure below:\n");
184#endif
185 TEST_MAGIC_SAFETY("eina_inlist_append",
186 "safety check failed: new_l == NULL");
187 lst = eina_inlist_append(lst, NULL);
188 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
189 fail_unless(ctx.did);
190
191#ifdef SHOW_LOG
192 fprintf(stderr, "you should have a safety check failure below:\n");
193#endif
194 TEST_MAGIC_SAFETY("eina_inlist_append_relative",
195 "safety check failed: new_l == NULL");
196 lst = eina_inlist_append_relative(lst, NULL, NULL);
197 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
198 fail_unless(ctx.did);
199
200#ifdef SHOW_LOG
201 fprintf(stderr, "you should have a safety check failure below:\n");
202#endif
203 TEST_MAGIC_SAFETY("eina_inlist_prepend",
204 "safety check failed: new_l == NULL");
205 lst = eina_inlist_prepend(lst, NULL);
206 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
207 fail_unless(ctx.did);
208
209#ifdef SHOW_LOG
210 fprintf(stderr, "you should have a safety check failure below:\n");
211#endif
212 TEST_MAGIC_SAFETY("eina_inlist_prepend_relative",
213 "safety check failed: new_l == NULL");
214 lst = eina_inlist_prepend_relative(lst, NULL, NULL);
215 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
216 fail_unless(ctx.did);
217
218#ifdef SHOW_LOG
219 fprintf(stderr, "you should have a safety check failure below:\n");
220#endif
221 TEST_MAGIC_SAFETY("eina_inlist_find",
222 "safety check failed: item == NULL");
223 lst = eina_inlist_find(lst, NULL);
224 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
225 fail_unless(ctx.did);
226
227#ifdef SHOW_LOG
228 fprintf(stderr, "you should have a safety check failure below:\n");
229#endif
230 TEST_MAGIC_SAFETY("eina_inlist_demote",
231 "safety check failed: list == NULL");
232 lst = eina_inlist_demote(NULL, NULL);
233 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
234 fail_unless(ctx.did);
235
236#ifdef SHOW_LOG
237 fprintf(stderr, "you should have a safety check failure below:\n");
238#endif
239 TEST_MAGIC_SAFETY("eina_inlist_demote",
240 "safety check failed: item == NULL");
241 lst = eina_inlist_demote((void*)1L, NULL);
242 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
243 fail_unless(ctx.did);
244 lst = NULL;
245
246#ifdef SHOW_LOG
247 fprintf(stderr, "you should have a safety check failure below:\n");
248#endif
249 TEST_MAGIC_SAFETY("eina_inlist_promote",
250 "safety check failed: list == NULL");
251 lst = eina_inlist_promote(NULL, NULL);
252 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
253 fail_unless(ctx.did);
254
255#ifdef SHOW_LOG
256 fprintf(stderr, "you should have a safety check failure below:\n");
257#endif
258 TEST_MAGIC_SAFETY("eina_inlist_promote",
259 "safety check failed: item == NULL");
260 lst = eina_inlist_promote((void*)1L, NULL);
261 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
262 fail_unless(ctx.did);
263 lst = NULL;
264
265#ifdef SHOW_LOG
266 fprintf(stderr, "you should have a safety check failure below:\n");
267#endif
268 TEST_MAGIC_SAFETY("eina_inlist_sorted_insert",
269 "safety check failed: item == NULL");
270 lst = eina_inlist_sorted_insert(NULL, NULL, NULL);
271 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
272 fail_unless(ctx.did);
273
274#ifdef SHOW_LOG
275 fprintf(stderr, "you should have a safety check failure below:\n");
276#endif
277 TEST_MAGIC_SAFETY("eina_inlist_sorted_insert",
278 "safety check failed: func == NULL");
279 lst = eina_inlist_sorted_insert(NULL, (void*)1L, NULL);
280 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
281 fail_unless(ctx.did);
282 lst = NULL;
283
284 eina_log_print_cb_set(eina_log_print_cb_stderr, NULL);
285 lst = bkp;
119#endif 286#endif
120 287
121 tmp = EINA_INLIST_CONTAINER_GET(lst, Eina_Test_Inlist); 288 tmp = EINA_INLIST_CONTAINER_GET(lst, Eina_Test_Inlist);
diff --git a/libraries/eina/src/tests/eina_test_list.c b/libraries/eina/src/tests/eina_test_list.c
index 6e08847..ce70d03 100644
--- a/libraries/eina/src/tests/eina_test_list.c
+++ b/libraries/eina/src/tests/eina_test_list.c
@@ -338,10 +338,50 @@ START_TEST(eina_test_sorted_insert)
338} 338}
339END_TEST 339END_TEST
340 340
341START_TEST(eina_test_list_split)
342{
343 Eina_List *left = NULL, *right = NULL ;
344 Eina_List *list = NULL;
345 Eina_List *l;
346 void *list_data;
347 int i;
348
349 eina_init();
350
351 list = eina_list_append(list, "tigh");
352 list = eina_list_append(list, "adar");
353 list = eina_list_append(list, "baltar");
354 list = eina_list_append(list, "roslin");
355 list = eina_list_append(list, "baltar");
356 list = eina_list_append(list, "roslin");
357 list = eina_list_append(list, "baltar");
358 list = eina_list_append(list, "roslin");
359
360 fail_if(list == NULL);
361 fail_if(eina_list_count(list) != 8);
362
363 for ( i = 0; i < 200; i++)
364 {
365 left = eina_list_split_list(list, eina_list_nth_list(list, i % 2), &right);
366
367 if (i % 2 == 0)
368 fail_if(eina_list_count(left) == 1 && eina_list_count(right) + eina_list_count(left) == i + 7);
369 else
370 fail_if(eina_list_count(left) == 2 && eina_list_count(right) + eina_list_count(left) == i + 7);
371
372 list = eina_list_merge(left, right);
373 list = eina_list_append(list, "roslin");
374 }
375
376 eina_shutdown();
377}
378END_TEST
379
341void 380void
342eina_test_list(TCase *tc) 381eina_test_list(TCase *tc)
343{ 382{
344 tcase_add_test(tc, eina_test_simple); 383 tcase_add_test(tc, eina_test_simple);
345 tcase_add_test(tc, eina_test_merge); 384 tcase_add_test(tc, eina_test_merge);
346 tcase_add_test(tc, eina_test_sorted_insert); 385 tcase_add_test(tc, eina_test_sorted_insert);
386 tcase_add_test(tc, eina_test_list_split);
347} 387}
diff --git a/libraries/eina/src/tests/eina_test_log.c b/libraries/eina/src/tests/eina_test_log.c
index ba17d5f..e0f0363 100644
--- a/libraries/eina/src/tests/eina_test_log.c
+++ b/libraries/eina/src/tests/eina_test_log.c
@@ -27,18 +27,119 @@
27#include "eina_suite.h" 27#include "eina_suite.h"
28#include "Eina.h" 28#include "Eina.h"
29 29
30 START_TEST(eina_log_macro) 30struct log_ctx {
31 int level;
32 int line;
33 const char *msg;
34 const char *fnc;
35 const char *dom;
36 Eina_Bool did;
37};
38
39/* tests should not output on success, just uncomment this for debugging */
40//#define SHOW_LOG 1
41
42static void
43_eina_test_log(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__)
31{ 44{
45 struct log_ctx *ctx = data;
46 ck_assert_int_eq(ctx->level, level);
47 ck_assert_int_eq(ctx->line, line);
48 ck_assert_str_eq(ctx->msg, fmt);
49 ck_assert_str_eq(ctx->fnc, fnc);
50 ck_assert_str_eq(file, __FILE__);
51 ctx->did = EINA_TRUE;
52#ifdef SHOW_LOG
53 eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args);
54#else
55 (void)d;
56#endif
57}
58
59static void
60_eina_test_log_domain(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__)
61{
62 struct log_ctx *ctx = data;
63 ck_assert_int_eq(ctx->level, level);
64 ck_assert_int_eq(ctx->line, line);
65 ck_assert_str_eq(ctx->msg, fmt);
66 ck_assert_str_eq(ctx->fnc, fnc);
67 ck_assert_str_eq(file, __FILE__);
68 ck_assert_str_eq(ctx->dom, d->name);
69 ctx->did = EINA_TRUE;
70#ifdef SHOW_LOG
71 eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args);
72#endif
73}
74
75static void
76_eina_test_log_safety(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__)
77{
78 struct log_ctx *ctx = data;
79 va_list cp_args;
80 const char *str;
81
82 va_copy(cp_args, args);
83 str = va_arg(cp_args, const char *);
84 va_end(cp_args);
85
86 ck_assert_int_eq(ctx->level, level);
87 ck_assert_str_eq(fmt, "%s");
88 ck_assert_str_eq(ctx->msg, str);
89 ck_assert_str_eq(ctx->fnc, fnc);
90 ctx->did = EINA_TRUE;
91
92#ifdef SHOW_LOG
93 eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args);
94#else
95 (void)d;
96 (void)file;
97 (void)line;
98#endif
99}
100
101START_TEST(eina_log_macro)
102{
103 struct log_ctx ctx;
104 int oldlevel;
105
32 fail_if(!eina_init()); 106 fail_if(!eina_init());
33 107
108 oldlevel = eina_log_level_get();
34 eina_log_level_set(EINA_LOG_LEVEL_DBG); 109 eina_log_level_set(EINA_LOG_LEVEL_DBG);
35 eina_log_print_cb_set(eina_log_print_cb_file, stderr); 110 eina_log_print_cb_set(_eina_test_log, &ctx);
111
112#define TEST_LOG_CTX(lvl, _msg) \
113 ctx.level = lvl; \
114 ctx.line = __LINE__ + 1; \
115 ctx.msg = _msg; \
116 ctx.fnc = __FUNCTION__; \
117 ctx.did = EINA_FALSE
118
119 TEST_LOG_CTX(EINA_LOG_LEVEL_CRITICAL, "Critical message");
120 EINA_LOG_CRIT("Critical message");
121 fail_unless(ctx.did);
122
123 TEST_LOG_CTX(EINA_LOG_LEVEL_ERR, "An error");
124 EINA_LOG_ERR("An error");
125 fail_unless(ctx.did);
36 126
37 EINA_LOG_CRIT("Critical message\n"); 127 TEST_LOG_CTX(EINA_LOG_LEVEL_WARN, "A warning");
38 EINA_LOG_ERR("An error\n"); 128 EINA_LOG_WARN("A warning");
39 EINA_LOG_INFO("An info\n"); 129 fail_unless(ctx.did);
40 EINA_LOG_WARN("A warning\n"); 130
41 EINA_LOG_DBG("A debug\n"); 131 TEST_LOG_CTX(EINA_LOG_LEVEL_INFO, "An info");
132 EINA_LOG_INFO("An info");
133 fail_unless(ctx.did);
134
135 TEST_LOG_CTX(EINA_LOG_LEVEL_DBG, "A debug");
136 EINA_LOG_DBG("A debug");
137 fail_unless(ctx.did);
138
139#undef TEST_LOG_CTX
140
141 eina_log_print_cb_set(eina_log_print_cb_stderr, NULL);
142 eina_log_level_set(oldlevel);
42 143
43 eina_shutdown(); 144 eina_shutdown();
44} 145}
@@ -46,16 +147,54 @@ END_TEST
46 147
47START_TEST(eina_log_domains_macros) 148START_TEST(eina_log_domains_macros)
48{ 149{
150 struct log_ctx ctx;
151 int oldlevel;
152
49 fail_if(!eina_init()); 153 fail_if(!eina_init());
50 154
155 /* make global log level blocker */
156 oldlevel = eina_log_level_get();
157 eina_log_level_set(EINA_LOG_LEVEL_CRITICAL);
158 eina_log_print_cb_set(_eina_test_log_domain, &ctx);
159
51 int d = eina_log_domain_register("MyDomain", EINA_COLOR_GREEN); 160 int d = eina_log_domain_register("MyDomain", EINA_COLOR_GREEN);
52 fail_if(d < 0); 161 fail_if(d < 0);
53 162
54 EINA_LOG_DOM_CRIT(d, "A critical message\n"); 163 /* make specific domain permissive */
55 EINA_LOG_DOM_ERR(d, "An error\n"); 164 eina_log_domain_level_set("MyDomain", EINA_LOG_LEVEL_DBG);
56 EINA_LOG_DOM_WARN(d, "A warning\n"); 165
57 EINA_LOG_DOM_DBG(d, "A debug\n"); 166#define TEST_LOG_CTX(lvl, _msg) \
58 EINA_LOG_DOM_INFO(d, "An info\n"); 167 ctx.level = lvl; \
168 ctx.line = __LINE__ + 1; \
169 ctx.msg = _msg; \
170 ctx.fnc = __FUNCTION__; \
171 ctx.dom = "MyDomain"; \
172 ctx.did = EINA_FALSE
173
174 TEST_LOG_CTX(EINA_LOG_LEVEL_CRITICAL, "A critical message");
175 EINA_LOG_DOM_CRIT(d, "A critical message");
176 fail_unless(ctx.did);
177
178 TEST_LOG_CTX(EINA_LOG_LEVEL_ERR, "An error");
179 EINA_LOG_DOM_ERR(d, "An error");
180 fail_unless(ctx.did);
181
182 TEST_LOG_CTX(EINA_LOG_LEVEL_WARN, "A warning");
183 EINA_LOG_DOM_WARN(d, "A warning");
184 fail_unless(ctx.did);
185
186 TEST_LOG_CTX(EINA_LOG_LEVEL_INFO, "An info");
187 EINA_LOG_DOM_INFO(d, "An info");
188 fail_unless(ctx.did);
189
190 TEST_LOG_CTX(EINA_LOG_LEVEL_DBG, "A debug");
191 EINA_LOG_DOM_DBG(d, "A debug");
192 fail_unless(ctx.did);
193
194#undef TEST_LOG_CTX
195
196 eina_log_print_cb_set(eina_log_print_cb_stderr, NULL);
197 eina_log_level_set(oldlevel);
59 198
60 eina_shutdown(); 199 eina_shutdown();
61} 200}
@@ -120,6 +259,8 @@ END_TEST
120 259
121START_TEST(eina_log_level_indexes) 260START_TEST(eina_log_level_indexes)
122{ 261{
262 struct log_ctx ctx;
263
123 fail_if(!eina_init()); 264 fail_if(!eina_init());
124 fail_if(!eina_threads_init()); 265 fail_if(!eina_threads_init());
125 fail_if(!eina_threads_init()); 266 fail_if(!eina_threads_init());
@@ -127,11 +268,41 @@ START_TEST(eina_log_level_indexes)
127 int d = eina_log_domain_register("Levels", EINA_COLOR_GREEN); 268 int d = eina_log_domain_register("Levels", EINA_COLOR_GREEN);
128 fail_if(d < 0); 269 fail_if(d < 0);
129 270
271 eina_log_print_cb_set(_eina_test_log_domain, &ctx);
272
273#define TEST_LOG_CTX(lvl, _msg) \
274 ctx.level = lvl; \
275 ctx.line = __LINE__ + 1; \
276 ctx.msg = _msg; \
277 ctx.fnc = __FUNCTION__; \
278 ctx.dom = "Levels"; \
279 ctx.did = EINA_FALSE;
280
130 // Displayed unless user sets level lower than -1 281 // Displayed unless user sets level lower than -1
131 EINA_LOG(d, -1, "Negative index message\n"); 282 eina_log_domain_level_set("Levels", -1);
283 TEST_LOG_CTX(-1, "Negative index message");
284 EINA_LOG(d, -1, "Negative index message");
285 fail_unless(ctx.did);
286
287 eina_log_domain_level_set("Levels", -2);
288 TEST_LOG_CTX(-1, "Negative index message");
289 EINA_LOG(d, -1, "Negative index message");
290 fail_if(ctx.did);
132 291
133 // Displayed only if user sets level 6 or higher 292 // Displayed only if user sets level 6 or higher
134 EINA_LOG(d, 6, "Higher level debug\n"); 293 eina_log_domain_level_set("Levels", 6);
294 TEST_LOG_CTX(6, "Higher level debug");
295 EINA_LOG(d, 6, "Higher level debug");
296 fail_unless(ctx.did);
297
298 eina_log_domain_level_set("Levels", 5);
299 TEST_LOG_CTX(6, "Higher level debug");
300 EINA_LOG(d, 6, "Higher level debug");
301 fail_if(ctx.did);
302
303#undef TEST_LOG_CTX
304
305 eina_log_print_cb_set(eina_log_print_cb_stderr, NULL);
135 306
136 eina_threads_shutdown(); 307 eina_threads_shutdown();
137 eina_threads_shutdown(); 308 eina_threads_shutdown();
@@ -141,6 +312,7 @@ END_TEST
141 312
142START_TEST(eina_log_customize) 313START_TEST(eina_log_customize)
143{ 314{
315 struct log_ctx ctx;
144 int d; 316 int d;
145 317
146 /* please don't define EINA_LOG_LEVELS for it */ 318 /* please don't define EINA_LOG_LEVELS for it */
@@ -182,11 +354,28 @@ START_TEST(eina_log_customize)
182 fail_if(eina_log_domain_registered_level_get(d) != 890); 354 fail_if(eina_log_domain_registered_level_get(d) != 890);
183 355
184 eina_log_domain_unregister(d); 356 eina_log_domain_unregister(d);
357
358#ifdef EINA_SAFETY_CHECKS
359#ifdef SHOW_LOG
185 fputs("NOTE: You should see a failed safety check or " 360 fputs("NOTE: You should see a failed safety check or "
186 "a crash if compiled without safety checks support.\n", 361 "a crash if compiled without safety checks support.\n",
187 stderr); 362 stderr);
363#endif
188 eina_log_abort_on_critical_set(EINA_FALSE); 364 eina_log_abort_on_critical_set(EINA_FALSE);
365 eina_log_function_disable_set(EINA_FALSE);
366
367 eina_log_print_cb_set(_eina_test_log_safety, &ctx);
368 ctx.level = EINA_LOG_LEVEL_ERR;
369 ctx.msg = "safety check failed: _log_domains[domain].deleted is true";
370 ctx.fnc = "eina_log_domain_registered_level_get";
371 ctx.did = EINA_FALSE;
189 fail_if(eina_log_domain_registered_level_get(d) != EINA_LOG_LEVEL_UNKNOWN); 372 fail_if(eina_log_domain_registered_level_get(d) != EINA_LOG_LEVEL_UNKNOWN);
373 fail_unless(ctx.did);
374
375 eina_log_print_cb_set(eina_log_print_cb_stderr, NULL);
376#else
377#warning "Compiled without safety checks"
378#endif
190 379
191#undef test_set_get_bool 380#undef test_set_get_bool
192#undef test_set_get 381#undef test_set_get
diff --git a/libraries/eina/src/tests/eina_test_magic.c b/libraries/eina/src/tests/eina_test_magic.c
index d2c3d49..d0a374e 100644
--- a/libraries/eina/src/tests/eina_test_magic.c
+++ b/libraries/eina/src/tests/eina_test_magic.c
@@ -40,21 +40,95 @@ struct _Eina_Magic_Struct
40 EINA_MAGIC 40 EINA_MAGIC
41}; 41};
42 42
43struct log_ctx {
44 const char *msg;
45 const char *fnc;
46 Eina_Bool did;
47};
48
49/* tests should not output on success, just uncomment this for debugging */
50//#define SHOW_LOG 1
51
52static void
53_eina_test_safety_print_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__)
54{
55 struct log_ctx *ctx = data;
56 va_list cp_args;
57 const char *str;
58
59 va_copy(cp_args, args);
60 str = va_arg(cp_args, const char *);
61 va_end(cp_args);
62
63 ck_assert_int_eq(level, EINA_LOG_LEVEL_ERR);
64 ck_assert_str_eq(fmt, "%s");
65 ck_assert_str_eq(ctx->msg, str);
66 ck_assert_str_eq(ctx->fnc, fnc);
67 ctx->did = EINA_TRUE;
68
69#ifdef SHOW_LOG
70 eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args);
71#else
72 (void)d;
73 (void)file;
74 (void)line;
75#endif
76}
77
78static void
79_eina_test_magic_print_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__)
80{
81 struct log_ctx *ctx = data;
82
83 ck_assert_int_eq(level, EINA_LOG_LEVEL_CRITICAL);
84 ck_assert_str_eq(ctx->msg, fmt);
85 ck_assert_str_eq(ctx->fnc, fnc);
86 ctx->did = EINA_TRUE;
87
88#ifdef SHOW_LOG
89 eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args);
90#else
91 (void)d;
92 (void)file;
93 (void)line;
94#endif
95}
96
97#ifdef EINA_SAFETY_CHECKS
98#define TEST_MAGIC_SAFETY(fn, _msg) \
99 ctx.msg = _msg; \
100 ctx.fnc = fn; \
101 ctx.did = EINA_FALSE
102#endif
103
43START_TEST(eina_magic_simple) 104START_TEST(eina_magic_simple)
44{ 105{
45 Eina_Magic_Struct *ems = NULL; 106 Eina_Magic_Struct *ems = NULL;
107 struct log_ctx ctx;
46 108
47 eina_init(); 109 eina_init();
48 110
111 eina_log_print_cb_set(_eina_test_safety_print_cb, &ctx);
112
49 eina_magic_string_set(EINA_MAGIC_TEST, EINA_MAGIC_STRING); 113 eina_magic_string_set(EINA_MAGIC_TEST, EINA_MAGIC_STRING);
50 114
51#ifdef EINA_SAFETY_CHECKS 115#ifdef EINA_SAFETY_CHECKS
116#ifdef SHOW_LOG
52 fprintf(stderr, "you should have a safety check failure below:\n"); 117 fprintf(stderr, "you should have a safety check failure below:\n");
118#endif
119 TEST_MAGIC_SAFETY("eina_magic_string_set",
120 "safety check failed: magic_name == NULL");
53 eina_magic_string_set(EINA_MAGIC_TEST2, NULL); 121 eina_magic_string_set(EINA_MAGIC_TEST2, NULL);
54 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); 122 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
123 fail_unless(ctx.did);
55 124
125#ifdef SHOW_LOG
56 fprintf(stderr, "you should have a safety check failure below:\n"); 126 fprintf(stderr, "you should have a safety check failure below:\n");
127#endif
128 TEST_MAGIC_SAFETY("eina_magic_string_set",
129 "safety check failed: magic_name == NULL");
57 eina_magic_string_set(EINA_MAGIC_TEST2, NULL); 130 eina_magic_string_set(EINA_MAGIC_TEST2, NULL);
131 fail_unless(ctx.did);
58 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); 132 fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED);
59#endif 133#endif
60 134
@@ -64,10 +138,22 @@ START_TEST(eina_magic_simple)
64 fail_if(strcmp(eina_magic_string_get( 138 fail_if(strcmp(eina_magic_string_get(
65 EINA_MAGIC_TEST), EINA_MAGIC_STRING) != 0); 139 EINA_MAGIC_TEST), EINA_MAGIC_STRING) != 0);
66 140
141 eina_log_print_cb_set(_eina_test_magic_print_cb, &ctx);
142
67#ifdef EINA_MAGIC_DEBUG 143#ifdef EINA_MAGIC_DEBUG
68 fail_if(EINA_MAGIC_CHECK(ems, EINA_MAGIC_TEST)); 144 fail_if(EINA_MAGIC_CHECK(ems, EINA_MAGIC_TEST));
145#ifdef SHOW_LOG
69 fprintf(stderr, "you should see 'Input handle pointer is NULL' below\n"); 146 fprintf(stderr, "you should see 'Input handle pointer is NULL' below\n");
147#endif
148 TEST_MAGIC_SAFETY(__FUNCTION__,
149 "*** Eina Magic Check Failed !!!\n"
150 " Input handle pointer is NULL !\n"
151 "*** NAUGHTY PROGRAMMER!!!\n"
152 "*** SPANK SPANK SPANK!!!\n"
153 "*** Now go fix your code. Tut tut tut!\n"
154 "\n");
70 EINA_MAGIC_FAIL(ems, EINA_MAGIC_TEST); 155 EINA_MAGIC_FAIL(ems, EINA_MAGIC_TEST);
156 fail_unless(ctx.did);
71 157
72 ems = malloc(sizeof (Eina_Magic_Struct)); 158 ems = malloc(sizeof (Eina_Magic_Struct));
73 fail_if(!ems); 159 fail_if(!ems);
@@ -76,15 +162,39 @@ START_TEST(eina_magic_simple)
76 fail_if(!EINA_MAGIC_CHECK(ems, EINA_MAGIC_TEST)); 162 fail_if(!EINA_MAGIC_CHECK(ems, EINA_MAGIC_TEST));
77 163
78 EINA_MAGIC_SET(ems, EINA_MAGIC_NONE); 164 EINA_MAGIC_SET(ems, EINA_MAGIC_NONE);
165#ifdef SHOW_LOG
79 fprintf(stderr, 166 fprintf(stderr,
80 "you should see 'Input handle has already been freed' below\n"); 167 "you should see 'Input handle has already been freed' below\n");
168#endif
169 TEST_MAGIC_SAFETY(__FUNCTION__,
170 "*** Eina Magic Check Failed !!!\n"
171 " Input handle has already been freed!\n"
172 "*** NAUGHTY PROGRAMMER!!!\n"
173 "*** SPANK SPANK SPANK!!!\n"
174 "*** Now go fix your code. Tut tut tut!\n"
175 "\n");
81 EINA_MAGIC_FAIL(ems, EINA_MAGIC_TEST); 176 EINA_MAGIC_FAIL(ems, EINA_MAGIC_TEST);
177 fail_unless(ctx.did);
82 178
83 EINA_MAGIC_SET(ems, 42424242); 179 EINA_MAGIC_SET(ems, 42424242);
180#ifdef SHOW_LOG
84 fprintf(stderr, "you should see 'Input handle is wrong type' below\n"); 181 fprintf(stderr, "you should see 'Input handle is wrong type' below\n");
182#endif
183 TEST_MAGIC_SAFETY(__FUNCTION__,
184 "*** Eina Magic Check Failed !!!\n"
185 " Input handle is wrong type\n"
186 " Expected: %08x - %s\n"
187 " Supplied: %08x - %s\n"
188 "*** NAUGHTY PROGRAMMER!!!\n"
189 "*** SPANK SPANK SPANK!!!\n"
190 "*** Now go fix your code. Tut tut tut!\n"
191 "\n");
85 EINA_MAGIC_FAIL(ems, EINA_MAGIC_TEST); 192 EINA_MAGIC_FAIL(ems, EINA_MAGIC_TEST);
193 fail_unless(ctx.did);
86#endif 194#endif
87 195
196 eina_log_print_cb_set(eina_log_print_cb_stderr, NULL);
197
88 eina_shutdown(); 198 eina_shutdown();
89} 199}
90END_TEST 200END_TEST
diff --git a/libraries/eina/src/tests/eina_test_simple_xml_parser.c b/libraries/eina/src/tests/eina_test_simple_xml_parser.c
index 94e6a2a..7093019 100644
--- a/libraries/eina/src/tests/eina_test_simple_xml_parser.c
+++ b/libraries/eina/src/tests/eina_test_simple_xml_parser.c
@@ -44,15 +44,17 @@ START_TEST(eina_simple_xml_parser_node_dump)
44 char *buf; 44 char *buf;
45 45
46 fseek(f, 0, SEEK_SET); 46 fseek(f, 0, SEEK_SET);
47 buf = malloc(sz); 47 buf = malloc(sz + 1);
48 if (buf) 48 if (buf)
49 { 49 {
50 if (fread(buf, 1, sz, f)) 50 if (fread(buf, 1, sz, f))
51 { 51 {
52 Eina_Simple_XML_Node_Root *root = eina_simple_xml_node_load 52 Eina_Simple_XML_Node_Root *root = eina_simple_xml_node_load
53 (buf, sz, EINA_TRUE); 53 (buf, sz, EINA_TRUE);
54 buf[sz] = '\0';
54 char *out = eina_simple_xml_node_dump(&root->base, " "); 55 char *out = eina_simple_xml_node_dump(&root->base, " ");
55 puts(out); 56 //puts(out);
57 ck_assert_str_eq(out, buf);
56 free(out); 58 free(out);
57 eina_simple_xml_node_root_free(root); 59 eina_simple_xml_node_root_free(root);
58 free(buf); 60 free(buf);
diff --git a/libraries/eina/src/tests/eina_test_ustr.c b/libraries/eina/src/tests/eina_test_ustr.c
index eaeba9d..75126cc 100644
--- a/libraries/eina/src/tests/eina_test_ustr.c
+++ b/libraries/eina/src/tests/eina_test_ustr.c
@@ -28,6 +28,43 @@
28#include "eina_suite.h" 28#include "eina_suite.h"
29#include "Eina.h" 29#include "Eina.h"
30 30
31#ifdef EINA_SAFETY_CHECKS
32struct log_ctx {
33 const char *msg;
34 const char *fnc;
35 Eina_Bool did;
36};
37
38/* tests should not output on success, just uncomment this for debugging */
39//#define SHOW_LOG 1
40
41static void
42_eina_test_safety_print_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__)
43{
44 struct log_ctx *ctx = data;
45 va_list cp_args;
46 const char *str;
47
48 va_copy(cp_args, args);
49 str = va_arg(cp_args, const char *);
50 va_end(cp_args);
51
52 ck_assert_int_eq(level, EINA_LOG_LEVEL_ERR);
53 ck_assert_str_eq(fmt, "%s");
54 ck_assert_str_eq(ctx->msg, str);
55 ck_assert_str_eq(ctx->fnc, fnc);
56 ctx->did = EINA_TRUE;
57
58#ifdef SHOW_LOG
59 eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args);
60#else
61 (void)d;
62 (void)file;
63 (void)line;
64#endif
65}
66#endif
67
31static const Eina_Unicode STR1[] = {'P', 'a', 'n', 't', 's',' ', 'O', 'n', 0}; 68static const Eina_Unicode STR1[] = {'P', 'a', 'n', 't', 's',' ', 'O', 'n', 0};
32static const Eina_Unicode STR2[] = {'P', 'a', 'n', 't', 's',' ', 'O', 'f', 'f', 0}; 69static const Eina_Unicode STR2[] = {'P', 'a', 'n', 't', 's',' ', 'O', 'f', 'f', 0};
33static const Eina_Unicode STR3[] = {'P', 'a', 'n', 't', 's',' ', 'O', 'n', 0}; 70static const Eina_Unicode STR3[] = {'P', 'a', 'n', 't', 's',' ', 'O', 'n', 0};
@@ -126,14 +163,42 @@ START_TEST(eina_unicode_strncpy_test)
126 rv = eina_unicode_strncpy(buf, STR1, 0); 163 rv = eina_unicode_strncpy(buf, STR1, 0);
127 fail_if(buf[0] != '7'); 164 fail_if(buf[0] != '7');
128 165
129 /* may segfault */ 166#ifdef EINA_SAFETY_CHECKS
130 buf[0] = '7'; 167 {
131 rv = eina_unicode_strncpy(buf, NULL, 0); 168 struct log_ctx ctx;
132 fail_if(buf[0] != '7'); 169
170#define TEST_MAGIC_SAFETY(fn, _msg) \
171 ctx.msg = _msg; \
172 ctx.fnc = fn; \
173 ctx.did = EINA_FALSE
174
175 eina_log_print_cb_set(_eina_test_safety_print_cb, &ctx);
133 176
134 /* Hopefully won't segfault */ 177 /* may segfault */
135 rv = eina_unicode_strncpy(NULL, STR1, 0); 178 buf[0] = '7';
136 fail_if(rv != NULL); 179#ifdef SHOW_LOG
180 fprintf(stderr, "you should have a safety check failure below:\n");
181#endif
182 TEST_MAGIC_SAFETY("eina_unicode_strncpy",
183 "safety check failed: source == NULL");
184 rv = eina_unicode_strncpy(buf, NULL, 0);
185 fail_if(buf[0] != '7');
186 fail_unless(ctx.did);
187
188 /* Hopefully won't segfault */
189#ifdef SHOW_LOG
190 fprintf(stderr, "you should have a safety check failure below:\n");
191#endif
192 TEST_MAGIC_SAFETY("eina_unicode_strncpy",
193 "safety check failed: dest == NULL");
194 rv = eina_unicode_strncpy(NULL, STR1, 0);
195 fail_if(rv != NULL);
196 fail_unless(ctx.did);
197
198 eina_log_print_cb_set(eina_log_print_cb_stderr, NULL);
199#undef TEST_MAGIC_SAFETY
200 }
201#endif
137 202
138 eina_shutdown(); 203 eina_shutdown();
139} 204}
@@ -151,8 +216,30 @@ START_TEST(eina_ustr_strlen_test)
151 fail_if(eina_unicode_strlen(STR3) != 8); 216 fail_if(eina_unicode_strlen(STR3) != 8);
152 fail_if(eina_unicode_strlen(STR4) != 1); 217 fail_if(eina_unicode_strlen(STR4) != 1);
153 fail_if(eina_unicode_strlen(EMPTYSTR) != 0); 218 fail_if(eina_unicode_strlen(EMPTYSTR) != 0);
154 /* Eina unicode doesn't take NULL */ 219
155 // fail_if(eina_unicode_strlen(NULL)); 220#ifdef EINA_SAFETY_CHECKS
221 {
222 struct log_ctx ctx;
223
224#define TEST_MAGIC_SAFETY(fn, _msg) \
225 ctx.msg = _msg; \
226 ctx.fnc = fn; \
227 ctx.did = EINA_FALSE
228
229 eina_log_print_cb_set(_eina_test_safety_print_cb, &ctx);
230
231#ifdef SHOW_LOG
232 fprintf(stderr, "you should have a safety check failure below:\n");
233#endif
234 TEST_MAGIC_SAFETY("eina_unicode_strlen",
235 "safety check failed: ustr == NULL");
236 fail_if(eina_unicode_strlen(NULL));
237 fail_unless(ctx.did);
238
239 eina_log_print_cb_set(eina_log_print_cb_stderr, NULL);
240#undef TEST_MAGIC_SAFETY
241 }
242#endif
156 243
157 eina_shutdown(); 244 eina_shutdown();
158} 245}
@@ -174,7 +261,30 @@ START_TEST(eina_unicode_strnlen_test)
174 fail_if(eina_unicode_strnlen(STR2,3) != 3); 261 fail_if(eina_unicode_strnlen(STR2,3) != 3);
175 fail_if(eina_unicode_strnlen(STR3,3) != 3); 262 fail_if(eina_unicode_strnlen(STR3,3) != 3);
176 fail_if(eina_unicode_strnlen(EMPTYSTR,1) != 0); 263 fail_if(eina_unicode_strnlen(EMPTYSTR,1) != 0);
177 fail_if(eina_unicode_strnlen(NULL,0) != 0); 264
265#ifdef EINA_SAFETY_CHECKS
266 {
267 struct log_ctx ctx;
268
269#define TEST_MAGIC_SAFETY(fn, _msg) \
270 ctx.msg = _msg; \
271 ctx.fnc = fn; \
272 ctx.did = EINA_FALSE
273
274 eina_log_print_cb_set(_eina_test_safety_print_cb, &ctx);
275
276#ifdef SHOW_LOG
277 fprintf(stderr, "you should have a safety check failure below:\n");
278#endif
279 TEST_MAGIC_SAFETY("eina_unicode_strnlen",
280 "safety check failed: ustr == NULL");
281 fail_if(eina_unicode_strnlen(NULL,0) != 0);
282 fail_unless(ctx.did);
283
284 eina_log_print_cb_set(eina_log_print_cb_stderr, NULL);
285#undef TEST_MAGIC_SAFETY
286 }
287#endif
178 288
179 eina_shutdown(); 289 eina_shutdown();
180} 290}
diff --git a/libraries/eina/src/tests/eina_test_value.c b/libraries/eina/src/tests/eina_test_value.c
index 2d04c2f..94a5ab7 100644
--- a/libraries/eina/src/tests/eina_test_value.c
+++ b/libraries/eina/src/tests/eina_test_value.c
@@ -1140,8 +1140,10 @@ START_TEST(eina_value_test_array)
1140 fail_unless(eina_inarray_append(inarray, &c) >= 0); 1140 fail_unless(eina_inarray_append(inarray, &c) >= 0);
1141 desc.subtype = EINA_VALUE_TYPE_CHAR; 1141 desc.subtype = EINA_VALUE_TYPE_CHAR;
1142 desc.step = 0; 1142 desc.step = 0;
1143 desc.array = inarray; /* will be adopted and freed by value */ 1143 desc.array = inarray;
1144 fail_unless(eina_value_set(value, desc)); /* manually configure */ 1144 fail_unless(eina_value_set(value, desc)); /* manually configure */
1145 eina_inarray_free(inarray);
1146
1145 fail_unless(eina_value_array_get(value, 0, &c)); 1147 fail_unless(eina_value_array_get(value, 0, &c));
1146 fail_unless(c == 11); 1148 fail_unless(c == 11);
1147 fail_unless(eina_value_array_get(value, 1, &c)); 1149 fail_unless(eina_value_array_get(value, 1, &c));
@@ -1242,11 +1244,13 @@ START_TEST(eina_value_test_list)
1242 1244
1243 desc.subtype = EINA_VALUE_TYPE_STRING; 1245 desc.subtype = EINA_VALUE_TYPE_STRING;
1244 desc.list = NULL; 1246 desc.list = NULL;
1245 desc.list = eina_list_append(desc.list, strdup("hello")); 1247 desc.list = eina_list_append(desc.list, "hello");
1246 desc.list = eina_list_append(desc.list, strdup("world")); 1248 desc.list = eina_list_append(desc.list, "world");
1247 desc.list = eina_list_append(desc.list, strdup("eina")); 1249 desc.list = eina_list_append(desc.list, "eina");
1248 fail_unless(eina_list_count(desc.list) == 3); 1250 fail_unless(eina_list_count(desc.list) == 3);
1249 fail_unless(eina_value_set(value, desc)); 1251 fail_unless(eina_value_set(value, desc));
1252 eina_list_free(desc.list);
1253
1250 fail_unless(eina_value_list_get(value, 0, &s)); 1254 fail_unless(eina_value_list_get(value, 0, &s));
1251 fail_unless(s != NULL); 1255 fail_unless(s != NULL);
1252 fail_unless(strcmp(s, "hello") == 0); 1256 fail_unless(strcmp(s, "hello") == 0);
@@ -1351,14 +1355,17 @@ START_TEST(eina_value_test_hash)
1351 fail_unless(desc.hash != NULL); 1355 fail_unless(desc.hash != NULL);
1352 /* watch out hash pointer is to a size of subtype->value_size! */ 1356 /* watch out hash pointer is to a size of subtype->value_size! */
1353 ptr = malloc(sizeof(char *)); 1357 ptr = malloc(sizeof(char *));
1354 *ptr = strdup("there"); 1358 *ptr = "there";
1355 fail_unless(eina_hash_add(desc.hash, "hi", ptr)); 1359 fail_unless(eina_hash_add(desc.hash, "hi", ptr));
1356 ptr = malloc(sizeof(char *)); 1360 ptr = malloc(sizeof(char *));
1357 *ptr = strdup("y"); 1361 *ptr = "y";
1358 fail_unless(eina_hash_add(desc.hash, "x", ptr)); 1362 fail_unless(eina_hash_add(desc.hash, "x", ptr));
1359
1360 fail_unless(eina_value_set(value, desc)); 1363 fail_unless(eina_value_set(value, desc));
1361 1364
1365 free(eina_hash_find(desc.hash, "hi"));
1366 free(eina_hash_find(desc.hash, "x"));
1367 eina_hash_free(desc.hash);
1368
1362 fail_unless(eina_value_hash_get(value, "hi", &s)); 1369 fail_unless(eina_value_hash_get(value, "hi", &s));
1363 fail_unless(s != NULL); 1370 fail_unless(s != NULL);
1364 fail_unless(strcmp(s, "there") == 0); 1371 fail_unless(strcmp(s, "there") == 0);
@@ -1606,6 +1613,20 @@ START_TEST(eina_value_test_struct)
1606 fail_unless(eina_value_struct_get(value, "c", &c)); 1613 fail_unless(eina_value_struct_get(value, "c", &c));
1607 fail_unless(c == 0xf); 1614 fail_unless(c == 0xf);
1608 1615
1616 fail_unless(eina_value_struct_member_value_get
1617 (value, myst_members + 0, &other));
1618 fail_unless(other.type == EINA_VALUE_TYPE_INT);
1619 fail_unless(eina_value_get(&other, &i));
1620 fail_unless(i == 5678);
1621 eina_value_flush(&other);
1622
1623 fail_unless(eina_value_struct_member_value_get
1624 (value, myst_members + 1, &other));
1625 fail_unless(other.type == EINA_VALUE_TYPE_CHAR);
1626 fail_unless(eina_value_get(&other, &c));
1627 fail_unless(c = 0xf);
1628 eina_value_flush(&other);
1629
1609 str = eina_value_to_string(value); 1630 str = eina_value_to_string(value);
1610 fail_unless(str != NULL); 1631 fail_unless(str != NULL);
1611 fail_unless(strcmp(str, "{i: 5678, c: 15}") == 0); 1632 fail_unless(strcmp(str, "{i: 5678, c: 15}") == 0);
@@ -1704,6 +1725,7 @@ START_TEST(eina_value_test_struct)
1704 fail_unless(strcmp(str, "{a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7, h: 8, i: 9, j: 10, k: 12, l: 13, m: 14, n: 15, o: 16, p: 17, q: 18, r: 19, s: 20, t: 21, u: 22, v: 23, x: 24}") == 0); 1725 fail_unless(strcmp(str, "{a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7, h: 8, i: 9, j: 10, k: 12, l: 13, m: 14, n: 15, o: 16, p: 17, q: 18, r: 19, s: 20, t: 21, u: 22, v: 23, x: 24}") == 0);
1705 free(str); 1726 free(str);
1706 1727
1728 eina_value_flush(&other);
1707 eina_value_free(value); 1729 eina_value_free(value);
1708 eina_shutdown(); 1730 eina_shutdown();
1709} 1731}
@@ -1728,7 +1750,7 @@ START_TEST(eina_value_test_array_of_struct)
1728 EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH, 1750 EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH,
1729 myst_members, 4, sizeof(struct myst) 1751 myst_members, 4, sizeof(struct myst)
1730 }; 1752 };
1731 Eina_Value *value; 1753 Eina_Value *value, array_item;
1732 char *str; 1754 char *str;
1733 int i; 1755 int i;
1734 1756
@@ -1740,20 +1762,17 @@ START_TEST(eina_value_test_array_of_struct)
1740 for (i = 0; i < 10; i++) 1762 for (i = 0; i < 10; i++)
1741 { 1763 {
1742 Eina_Value_Struct desc; 1764 Eina_Value_Struct desc;
1743 struct myst *st; 1765 struct myst st;
1744 char buf[64]; 1766 char buf[64];
1745 1767
1746 snprintf(buf, sizeof(buf), "item%02d", i); 1768 snprintf(buf, sizeof(buf), "item%02d", i);
1747 st = malloc(sizeof(struct myst)); 1769 st.a = i;
1748 fail_unless(st != NULL); 1770 st.b = i * 10;
1749 st->a = i; 1771 st.c = i * 100;
1750 st->b = i * 10; 1772 st.s = buf;
1751 st->c = i * 100;
1752 st->s = strdup(buf);
1753 fail_unless(st->s != NULL);
1754 1773
1755 desc.desc = &myst_desc; 1774 desc.desc = &myst_desc;
1756 desc.memory = st; 1775 desc.memory = &st;
1757 fail_unless(eina_value_array_append(value, desc)); 1776 fail_unless(eina_value_array_append(value, desc));
1758 } 1777 }
1759 1778
@@ -1773,11 +1792,66 @@ START_TEST(eina_value_test_array_of_struct)
1773 "]") == 0); 1792 "]") == 0);
1774 free(str); 1793 free(str);
1775 1794
1795 eina_value_array_value_get(value, 2, &array_item);
1796 eina_value_struct_get(&array_item, "a", &i);
1797 ck_assert_int_eq(i, 2);
1798 eina_value_struct_get(&array_item, "b", &i);
1799 ck_assert_int_eq(i, 20);
1800 eina_value_struct_get(&array_item, "c", &i);
1801 ck_assert_int_eq(i, 200);
1802 eina_value_struct_get(&array_item, "s", &str);
1803 ck_assert_str_eq(str, "item02");
1804 eina_value_flush(&array_item);
1805
1776 eina_value_free(value); 1806 eina_value_free(value);
1777 eina_shutdown(); 1807 eina_shutdown();
1778} 1808}
1779END_TEST 1809END_TEST
1780 1810
1811
1812START_TEST(eina_value_test_model)
1813{
1814 Eina_Value *value, inv;
1815 Eina_Model *model, *m;
1816 char *str;
1817
1818 eina_init();
1819
1820 value = eina_value_new(EINA_VALUE_TYPE_MODEL);
1821 fail_unless(value != NULL);
1822
1823 model = eina_model_new(EINA_MODEL_TYPE_GENERIC);
1824 fail_unless(model != NULL);
1825
1826 fail_unless(eina_value_setup(&inv, EINA_VALUE_TYPE_INT));
1827 fail_unless(eina_value_set(&inv, 1234));
1828 fail_unless(eina_model_property_set(model, "i", &inv));
1829 eina_value_flush(&inv);
1830
1831 fail_unless(eina_value_set(value, model));
1832 fail_unless(eina_model_refcount(model) == 2);
1833
1834 fail_unless(eina_value_get(value, &m));
1835 fail_unless(m == model);
1836 fail_unless(eina_model_refcount(m) == 2);
1837
1838 fail_unless(eina_value_pset(value, &model));
1839 fail_unless(eina_model_refcount(model) == 2);
1840
1841 str = eina_value_to_string(value);
1842 fail_unless(str != NULL);
1843 fail_unless(strcmp(str, "Eina_Model_Type_Generic({i: 1234}, [])") == 0);
1844 free(str);
1845
1846 eina_value_free(value);
1847
1848 fail_unless(eina_model_refcount(model) == 1);
1849 eina_model_unref(model);
1850
1851 eina_shutdown();
1852}
1853END_TEST
1854
1781void 1855void
1782eina_test_value(TCase *tc) 1856eina_test_value(TCase *tc)
1783{ 1857{
@@ -1796,4 +1870,5 @@ eina_test_value(TCase *tc)
1796 tcase_add_test(tc, eina_value_test_blob); 1870 tcase_add_test(tc, eina_value_test_blob);
1797 tcase_add_test(tc, eina_value_test_struct); 1871 tcase_add_test(tc, eina_value_test_struct);
1798 tcase_add_test(tc, eina_value_test_array_of_struct); 1872 tcase_add_test(tc, eina_value_test_array_of_struct);
1873 tcase_add_test(tc, eina_value_test_model);
1799} 1874}